Необходимо предусмотреть возможность сохранения выбранных записей в файле, задаваемом пользователем.
Программа должна иметь дружественный интерфейс и обеспечивать устойчивую работу при случайном нажатии на клавишу.
Все детали выполнения работы должны быть согласованы с преподавателем.
Контрольные примеры:
При запуске программы перед нами появляется меню, состоящее из 7 пунктов.
1. Рекомендации пользователю.
2. Ввод данных.
3. Вывод всех данных.
4. Просмотр, удаление, добавление.
5. Поиск данных по определенному признаку.
6. Сортировка.
7. Выход.
Чтобы познакомиться с программой нужно зайти в пункт №1. Здесь имеется краткое описание того, что программа умеет делать.
Пока мы не введем данные через пункт №2, все остальные пункты, кроме 1 и 7, будут не активными. Поэтому заходим в пункт №2.
Здесь сразу же появляется запрос: «Это будет новая картотека?» Если да, то создается новая картотека, или можно загрузить ее из файла.
Наконец данные введены и можно переходить к другим пунктам.
Чтобы просмотреть все, что было введено воспользуемся пунктом №3. Для выхода в главное меню нужно нажать любую клавишу.
С помощью пункта №4 мы можем пролистать всю нашу картотеку. Плюс к этому мы можем добавлять или удалять элементы из списка. А делать это довольно просто, если следовать подсказкам, появляющимся в нижней части экрана.
Щелкнув цифру 5, открываем подменю поиска элементов.
1. Поиск по названию планеты.
2. Поиск по годам открытия.
Если хотим найти например планету Венера, то выбираем пункт №1, вводим слово Венера и либо получаем информация о такой планете (если такая планета есть в базе данных), либо не получаем информации о такой планете (если такая планета не занесена в базу данных).
В пункте №6 мы можем отсортировать картотеку по названиям планет.
Выход из программы осуществляется через пункт №7.
Описание структур данных:
struct PL //структура PL
{
char namepl[18]; //Названия планет
int year; //Когда была открыта
char people[15]; //Кем была открыта
unsigned int sputnik; //Сколько спутников имеет
PL *prev; //Указатель на предыдущий элемент списка
PL *next; //Указатель на последующий элемент списка
};
Спецификация функций:
- Void menu1(); - функция главного меню
Menu1();
- Void menu2(); - функция подменю поиска
Menu2();
- void sovet(char *s)
- void vvod(PL *pla)
- PL* vvodall()
- void vivodall(PL *pla)
- void spisok(PL* pla)
- PL* vvodspisok(PL* pla)
- PL* vozvr(PL* pla)
- PL* korrekt(PL *pla)
- PL* delit(PL* pla)
- void poisk1(PL *pla)
- void poisk2(PL *pla)
- void klear(PL* pla)
- char * fname()
- int save1(PL *pla,char *filename)
- int save(PL *pla)
- PL *load(PL *pla)
- PL *sort(PL *pla)
Инструкция пользователю:
Запускаете программу. Появляется меню перед вами. Если хотите немножко ознакомиться с программой, то почитайте рекомендации (пункт №1). Вводите данные через пункт №2. Здесь вы можете ввести данные либо с клавиатуры, либо загрузить их из файла. Чтобы просмотреть все что вы ввели или загрузили воспользуйтесь пунктом №3 главного меню. А если вы хотите просмотреть все карточки по- порядку, то вам непременно нужно будет зайти в пункт №4. Здесь вы сможете просмотреть все карточки, удалить какую- либо из них (или все), а также добавить карточки, воспользовавшись вспомогательными клавишами и следуя указаниям, появляющимся в нижней части экрана.
Найти какую- нибудь карточку вам поможет пункт №5. В нем имеется два вида поиска: по названиям планет, или по году открытия той или иной планеты.
В пункте №6 происходит сортировка карточек по названиям планет.
Выход из программы осуществляется через пункт №7.
Заключение:
В ходе проделанной работы мной были освоены структурные типы данных. Я научился работать с файлами, т.е. делать такме вещи как открытие, закрытие файла, запись в файл данных. Также была освоена работа со списками. Это такие операции как ввод элементов, удаление какого- нибудь элемента из списка или добавление элементов в связанный список.
Содержание: