Автор работы: Пользователь скрыл имя, 08 Мая 2013 в 10:03, курсовая работа
В истории развития цивилизации произошло несколько информационных революций — преобразований общественных отношений из-за кардинальных изменений в сфере обработки информации. Следствием подобных преобразований являлось приобретение человеческим обществом нового качества.
Первая революция связана с изобретением письменности, что привело к гигантскому качественному скачку. Появилась возможность передачи знаний от поколения к поколению.
Вторая (середина XVI в.) вызвана изобретением книгопечатания, которое радикально изменило индустриальное общество, культуру, организацию деятельности.
Введение 4
1. Постановка задачи 6
2. Выбор решения 7
2.1 Определение необходимых модулей 7
2.2 Определение структуры файла базы данных 8
3. Описание разработки программы 9
4. Отладка и тестирование 13
5. Описание программы 14
5.1 Разработка приложения KursRab.exe 14
5.2 Разработка меню 16
6. Руководство пользователя 17
Заключение 20
Список используемых источников 21
Таблица 1 – описание состояний в программе | ||
Введенная цифра |
Действие пользователя |
Действие программы |
“1” |
Выбран пункт меню “Добавление данных о студенте”. |
Выводятся диалоги ввода данных для добавления записи. |
“2” |
Выбран пункт меню ”Вывод данных о студентах” |
Выводится таблица данных, считанных из файла “std.txt”, либо введенная вручную. |
“3” |
Выбран пункт меню ”Фильтрация данных по алфавиту” |
Выводится диалог ввода первой буквы фамилии, по которой стоит производить фильтрацию. В случае успеха будет выведена таблица с отфильтрованными данными. |
“4” |
Выбран пункт меню ”Поиск студента по фамилии” |
Выводится диалог ввода фамилии интересующего студента. В случае успеха будет выдана полная информация о нужном студенте. |
“5” |
Выбран пункт меню ”Сохранение данных в файл” |
База данных будет сохранена в файл “std.txt” |
“6” |
Выбран пункт меню ”Удаление БД” |
В случае успеха БД будет удалена из памяти. |
“7” |
Выбран пункт меню ”Удаление элемента БД” |
Выводится диалог ввода порядкового номера студента, которого требуется удалить. |
“8” |
Выбран пункт меню ”Изменение данных о студенте” |
Выводится диалог ввода порядкового номера студента, информацию о котором следует исправить. |
“9” |
Выбран пункт меню ”Сортировка по алфавиту” |
Выводится таблица, с отсортированной по алфавиту (первая буква фамилии) информацией. |
“10” |
Выбран пункт меню ”Считывание данных из файла” |
База данных будет считана из файла “std.txt” |
“0” |
Выбран пункт меню ”Выход” |
Производится выход из программы |
Иерархическая структура программы представлена на рисунке 5.
Рисунок
5 – иерархическая структура
Меню реализовано в файле KursRab.cpp и состоит из следующих пунктов:
«Добавление данных о студенте», «Вывод данных о студентах», «фильтрация данных по алфавиту», «Поиск студента по фамилии», «Сохранение данных в файл», «Удаление БД», «Удаление элемента БД», «Изменение данных о студенте», «Сортировка по алфавиту», «Считывание данных из файла» и «Выход из программы». Главной задачей функций, находящихся в файле KursRab.cpp, является предоставление возможности пользователю выбрать один из пунктов меню и вернуть программе номер выбранного пункта меню.
Меню реагирует на введенные числа от 0 до 10.
Программа KursRab.exe предназначена для хранения информации о какой-либо группе студентов. Программа имеет интуитивно понятный интерфейс и поддерживает такие операции как добавления новой записи, удаления записи, редактирования записи, поиск записи, сохранение существующей БД, а также несколько второстепенных операций, как сортировка по алфавиту или фильтрация по алфавиту.
Для открытия и вывода на экран существующей БД необходимо выбрать пункт меню «Вывод данных о студентах».
Рисунок 6.1 – Окно вывода полной информации о студентах
Для сохранения существующего каталога необходимо выбрать пункт меню «Сохранение данных в файл». На экране появиться надпись «Сохранение прошло успешно!» в случае, если не возникло ошибок.
Рисунок 6.2 – Сохранение файла
Для редактирования данных нужно выбрать пункт «Изменение данных о студенте», ввести порядковый номер интересующего студента и выбрать то, что хотите отредактировать.
Рисунок 6.2 – Меню редактирования
Для добавления новой записи необходимо заполнить пять диалогов: ввести порядковый номер (следите за тем, чтобы каждый порядковый номер был уникальным, иначе программа может работать некорректно), нажать клавишу Enter, ввести фамилию студента, нажать клавишу Enter, ввести дату рождения, нажать клавишу Enter, ввести номер группы, нажать клавишу Enter, ввести номер телефона, нажать клавишу Enter.
Рисунок 6.3 – Меню добавления новой записи
Для удаления записи необходимо ввести номер удаляемого элемента и нажать клавишу Enter. После чего, в случае отсутствия ошибок при выполнении, вы будете должны заново ввести нумерацию.
Рисунок 6.4 – Меню удаления элемента
Для поиска записи в каталоге необходимо выбрать пункт меню "Поиск студента по фамилии". Далее необходимо ввести фамилию необходимого студента.
Рисунок 6.5 – Меню поиска
Для считывания данных из файла необходимо выбрать пункт меню "Считывание данных из файла". Если данные считались успешно, то на экране появится надпись "Извлечение прошло успешно".
Рисунок 6.6 – Меню считывания из файла
Для фильтрации по алфавиту нужно ввести букву алфавита, по которой следует производить фильтрацию. В случае успеха на экране появится таблица с интересующими вас данными.
Рисунок 6.7 – Меню фильтрации
Для сортировки по алфавиту нужно просто выбрать данный пункт в меню и в случае успеха вы получите отсортированные по алфавиту данные.
Рисунок 6.8 – Меню фильтрации
При выполнении данной курсовой работы были освоены приемы создания псевдографического интерфейса. Усвоены механизмы реализации меню. Изучены функции работы с файлом. Получены базовые навыки программирования на языке С. Изучены основные возможности среды программирования Microsoft Visual Studio 2005. Получены навыки отладки и тестирования программ.
В рамках выполнения курсовой работы была написана программа, необходимая для ведения списка студентов какой-либо группы. Программа предоставляет небольшой, но достаточный для использования список возможностей. Не требует большого количества системных ресурсов и обеспечивает быструю обработку базы данных.
В дальнейшем программу можно улучшить, добавив в интерфейс горячие клавиши на каждый пункт меню. Добавить вывод сообщений об ошибках и подсказок при неверных действиях пользователя. Оптимизировать код для более быстрого выполнения различных операций.
Приложение А
Листинг программы
А.1 – «Файл KursRab.cpp»
#include "standlib.h"
#include "library.h"
void main()
{
setlocale(LC_ALL, "Russian");
system("mode con cols=80 lines=34");
list *head, *tail;
int k=0,guffy=1;
int* guf=&guffy;
int* nov=&k;
char j=0;
char p=0;
system( "color B1" );
printf(" ______________________________
printf(" |
printf(" |
printf(" |_____________________________
printf(" |
printf(" |
'Список Студентов'
printf(" |_____________________________
printf("
|
printf("
|
printf(" | Разработал студент группы 11вв2 Никитин Антон |\n");
printf("
|
printf("
|_____________________________
printf("\n\n\n\n\n\n");
printf(" нажмите на любую клавишу, чтобы продолжить \n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("
_getch();
system("cls");
system( "color 3B" );
while(j!=27)
{
printf(" \n\n
printf("\n\n");
printf("
______________________________
printf(" | 1) Добавление данных о студенте |\n");
printf("
|_____________________________
printf(" | 2) Вывод данных о студентах |\n");
printf("
|_____________________________
printf(" | 3) Фильтрация данных по алфавиту |\n");
printf("
|_____________________________
printf(" | 4) Поиск студента по фамилии |\n");
printf("
|_____________________________
printf(" | 5) Сохранение данных в файл |\n");
printf("
|_____________________________
printf(" | 6) Удаление БД |\n");
printf("
|_____________________________
printf(" | 7) Удаление элемента БД |\n");
printf("
|_____________________________
printf(" | 8) Изменение данных о студенте |\n");
printf("
|_____________________________
printf(" | 9) Сортировка по алфавиту |\n");
printf("
|_____________________________
printf(" | 0) Считывание данных из файла |\n");
printf("
|_____________________________
printf(" | ESC) Выход из программы |\n");
printf("
|_____________________________
printf("\n");
printf("
______________________________
printf(" | Нажмите на соответсвующую нужному пункту клавишу |\n");
printf("
|_____________________________
j=getch();
system( "cls" );
switch (j)
{
case '1':
{
if (k==0)
{
New(head,tail, guf);
system("cls");
printf("
______________________________
printf(" |Нажмите 1 для продолжения или любую другую клавишу для выхода|\n");
printf("
|_____________________________
p=getch();
if(p=='1')
{
k=1;
system("cls");
}
else
{
k=1;
p=1;
system("cls");
break;
}
}
while(p=='1')
{
Add(tail);
system("cls");
printf("
______________________________
printf(" |Нажмите 1 для продолжения или любую другую клавишу для выхода|\n");
printf("
|_____________________________
p=getch();
}
p=1;
system("cls");
break;
}
case '2':
Print(head,tail, guf);
system("cls");
break;
case '3':
FiltrAlf(head, guf);
system("cls");
break;
case '4':
poiskpofam(head, guf);
system("cls");
break;
case '5':
{
savein(head, guf);
break;
}
case '6':
{
DeleteBD(head, guf);
k=0;
system("cls");
break;
}
case '7':
{
DeleteElem(head, tail, guf, nov);
system("cls");
break;
}
case '8':
{
izmdan(head, guf);
system("cls");
break;
}
case '9':
{
sortalf(head, guf);
system("cls");
break;
}
case '0':
{
readfrom(head, tail, guf, nov);
break;
}
}
}
if (*guf!=1)
{
list *first;
list *nextt;
first=head;
nextt=head->next;
while (nextt!=NULL)
{
delete(first);
first=nextt;
nextt=nextt->next;
}
delete(first);
}
printf("
______________________________
printf("
|
До свидания!
printf("
|