| |||
Реферат: Отчет по учебной практике ОАиП база данных студентов (создание, поиск, удаление, сортировка, все, что надо написанная на С++)
СОДЕРЖАНИЕ 1. Название программы. 2. Поставленная задача. 3. Функциональное предназначение программы. 4. Описание управления, интерфейса, основных переменных и функций. 5. Блок-схема по ЕСПД 19.003-80. 6. Исходный код программы. 7. Список используемой литературы 1. Название программы 2. Поставленная задача Написать базу данных (БД) на языке С++ позволяющую хранить информацию о студентах (Ф.И.О., номер группы, средний балл, уникальный код записи (порядковый №)). База данных должна содержать основные функции : добавление записи, удаление записи, редактирование записи, поиск и сортировку по заданным параметрам. 3. Функциональное предназначение программы Данная программа представляет собой базу данных позволяющую хранить
информацию о студентах (Фамилию, Имя, Отчество, № группы, средний балл). 4. Описание управления, интерфейса, основных переменных и функций. Все данные вводятся с клавиатуры. Enter (для выбора или подтверждения), Esc (для отмены, выхода в предыдущее меню), стрелки вправо, влево (для перемещения по меню), вверх, вниз (для скроллинга данных). Основные переменные: структура записей : typedef struct { int num; - уникальный № (код) записи char lastName[16]; - фамилия студента char firstName[11]; - имя студента char midName[16]; - отчество студента char groupNumber[6]; - № группы студента float mark; - средний балл учащегося } data; fn - имя рабочего файла; Вызываемые функции: void interface(char *) - функция основного интерфейса программы. В качестве входного параметра принимает имя рабочего файла fn которое передается функциями void create() или void open(). В этой функции реализовано весьма удобное меню, через которое и происходит вызов последующий функция добавления, сортировки, удаления, поиска и редактирования; void add(char *) - функция добавление записи в БД. Входной параметр fn имя файла. Использует функцию int find_max_num(char *) для присваивания вводимой записи свой уникальный номер. void del(char *) - функция удаление записи из БД. Входной параметр fn имя файла. Использует временный файл temp.$$$, в конце выполнения функции временный файл переименовывается в файл под именем переменной fn; void edit(char *) - функция редактирования существующей записи. Входной параметр fn имя файла. Позволяет изменять № (код) записи, а также любую информацию записи; void view(char *, int ) - функция вывода данных на экран. Входной параметр fn имя файла; void find(char *) - функция поиска записи по (ее уникальному №,по Фамилии, по Имени). Входной параметр fn имя файла; void sort(char *) - функция сортировки записей БД по (№ записей, Ф.И.О, среднему баллу учащихся, № группы студента). Входной параметр fn имя файла. Использует “пузырьковый” метод сортировки данных в файле. int find_max_num(char *) - функция поиска максимального № записи в файле БД. Входной параметр fn имя файла. Возвращает значение № максимальной записи в файле … для функции void add(char *); int get_number(char *) - возвращает количество записей в файле. Входной параметр fn имя файла; void create() - создание файла БД. Идет запрос на имя файла , после этого к имени файла автоматически добавляется расширение “.dat” имя этого файла считается рабочим для всей программы. При удачном создании файла его имя передается в функцию void interface(char *) и т.д.; void open() - открытие файла БД. Идет запрос на имя файла , после этого к имени файла автоматически добавляется расширение “.dat” имя этого файла считается рабочим для всей программы. При удачном открытии файла его имя передается в функцию void interface(char *) и т.д.; int check(char *, data) – функция проверки при вводе информации на ее идентичность. Вызывается функциями добавления записи void add(char *) и редактирования записи void edit(char *). В качестве первого входного значения используется имя рабочего файла fn , в качестве второго структура данных типа data (описанная в разделе основные переменные). В качестве возвращаемого параметра используется переменная pr, которая может принимать значения 0 или 1, для определения идентичности данных; Нестандартные и системные средства, вроде бы, не используются
1) Если диск заполнен или защищён от записи невозможно записать информацию в файл; 2) Если невозможно открыть файл программа выдает сообщение об этом и закроется 5.Блок-схема по ЕСПД 19.003-80. void main() Лист 01 void open() void interface(char *) алгоритм сортировки (по № записи) fp – указатель на файл; s1,s2 – структуры данных типа data; oldfs,newfs – флаги (признаки), 6. Исходный код программы
#define ENTER 7181 typedef struct { int num; char lastName[16]; char firstName[11]; char midName[16]; char groupNumber[6]; float mark; void interface(char *); void add(char *); void del(char *); void edit(char *); void view(char *, int ); void find(char *); void sort(char *); int find_max_num(char *); int get_number(char *); void create(); void open(); int check(char *, data);
void main() while (1) { textbackground(1); textcolor(WHITE); clrscr(); _setcursortype(_NOCURSOR); textcolor(10); cprintf("::::::::::::::::::"); textcolor(15); cprintf(" eBase v1.666 Copyright (C) Serj Sventitski "); textcolor(10); cprintf("::::::::::::::::::"); switch(key) { case LEFT: if (counter>0) { color[counter]=4; color[--counter]=0; } break; case RIGHT: if (counter0) { color[counter]=4; color[--counter]=0; } break; case RIGHT: if (counter=get_number(fn)) num--; view(fn,num); break; } if (key==283) return; if (key == ENTER) { switch(counter) { case 0: add(fn); clrscr(); break; case 1: del(fn); break; case 2: edit(fn); clrscr(); break; case 3: find(fn); break; case 4: sort(fn); break; case 5: return; } } } void add(char *fn) FILE *fp; data st; int pr; while (1) { st.num=find_max_num(fn)+1; clrscr(); _setcursortype(_SOLIDCURSOR); gotoxy(20,6); coutst.lastName; gotoxy(20,8); coutst.firstName; gotoxy(20,10); coutst.midName; gotoxy(20,12); coutst.groupNumber; gotoxy(20,14); cout |
|