Автор работы: Пользователь скрыл имя, 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
printf("
|_____________________________
Sleep( 666 );
}
А.2 – «Файл newadd.cpp»
#include "standlib.h"
void New(list* &head, list* &tail, int* &guf) //добавление "головы"
{
head=new list;
printf("
______________________________
printf(" | Введите прядковый номер студента |\n");
printf("
|_____________________________
scanf("%d",&head->numb);
system("cls");
printf("
______________________________
printf(" | Введите фамилию студента |\n");
printf("
|_____________________________
scanf("%s", &head->fam);
system("cls");
printf("
______________________________
printf(" | Введите дату рождения студента |\n");
printf("
|_____________________________
scanf("%s", &head->date);
system("cls");
printf("
______________________________
printf(" | Введите номер группы студента |\n");
printf("
|_____________________________
scanf("%s", &head->group);
system("cls");
printf("
______________________________
printf(" | Введите контактный телефон студента |\n");
printf("
|_____________________________
scanf("%lf", &head->tel);
system("cls");
head->next=NULL;
tail=head;
*guf=0;
}
void Add(list* &tail) //Добавление последующих данных
{
list *T;
T=new list;
system("cls");
printf("
______________________________
printf(" | Введите прядковый номер студента |\n");
printf("
|_____________________________
scanf("%d",&T->numb);
system("cls");
printf("
______________________________
printf(" | Введите фамилию студента |\n");
printf("
|_____________________________
scanf("%s", &T->fam);
system("cls");
printf("
______________________________
printf(" | Введите дату рождения студента |\n");
printf("
|_____________________________
scanf("%s", &T->date);
system("cls");
printf("
______________________________
printf(" | Введите номер группы студента |\n");
printf("
|_____________________________
scanf("%s", &T->group);
system("cls");
printf("
______________________________
printf(" | Введите контактный телефон студента |\n");
printf("
|_____________________________
scanf("%lf", &T->tel);
T->next=NULL;
tail->next=T;
tail=T;
}
A.3 – «Файл print.cpp»
#include "standlib.h"
void Print(list* &head, list* &tail, int* &guf)//вывод на экран
{
if(*guf!=1)
{
list *T;
T=head;
printf("\n\n\n|| Номер || Фамилия || Дата рождения || Группа || телефон ||\n");
while (T!=NULL)
{
printf("%7d %16s %18s %15s %15.0f \n",T->numb, &T->fam, &T->date, &T->group, T->tel);
T=T->next;
}
_getch();
}
else
{
system("cls");
printf("
______________________________
printf(" | База Данных пуста! |\n");
printf(" | Нажмите на любую клавишу для выхода. |\n");
printf("
|_____________________________
_getch();
}
}
A.4 – «Файл poisk.cpp»
#include "standlib.h"
void poiskpofam(list* &head, int* &guf)//поиск по БД
{
list *Z, *T;
char q[20],l[20];
int i=0;
int r=0;
if(*guf!=1)
{
Z=head;
printf("
______________________________
printf(" | Введите фамилию студента, которого нужно найти |\n");
printf("
|_____________________________
scanf ("%s", &q);
while(q[r]!=0)
{
r++;
}
system("cls");
for(int j=0;j<r;j++)
q[j]=tolower(q[j]);
printf("\n\n\n|| Номер || Фамилия || Дата рождения || Группа || телефон ||\n");
while (Z!=NULL)
{
for(int j=0;j<r;j++)
{
l[j]=Z->fam[j];
l[j]=tolower(l[j]);
}
if (l[i]==q[i])
{
i++;
}
else
{
i=0;
Z=Z->next;
continue;
}
if (i==r)
{
printf("%7d %16s %18s %15s %15.0f \n",Z->numb, &Z->fam, &Z->date, &Z->group, Z->tel);
i=0;
T=head;
Z=Z->next;
}
}
if(T!=head)
{
system("cls");
printf("
______________________________
printf(" | Данного студента не существует. |\n");
printf(" | Нажмите на любую клавишу для выхода. |\n");
printf("
|_____________________________
}
}
else
{
printf("
______________________________
printf(" | База данных пуста! |\n");
printf(" | Нажмите на любую клавишу для выхода. |\n");
printf("
|_____________________________
}
_getch();
}
A.5 – «Файл saveread.cpp»
#include "standlib.h"
void savein(list* &head, int* &guf)
{
FILE* BD;
if(*guf!=1)
{
fflush(stdin);
list* bg;
while(999)
{
system("cls");
BD=fopen("E:\\kursrab\\std.
if(BD==NULL)
{
printf(" ______________________________
printf("| Упс, похоже не существует папки 'kursrab' по адресу |\n");
printf("|
printf("|
printf("|_____________________
fclose(BD);
_getch();
break;
}
fclose(BD);
BD=fopen("E:\\kursrab\\std.
bg=head;
while (bg!=NULL)
{
fprintf(BD,"%d %s %s %s %f\n",bg->numb, &bg->fam, &bg->date, &bg->group, bg->tel);
bg=bg->next;
}
fclose(BD);
system("cls");
printf("
______________________________
printf(" | Сохранение прошло успешно! |\n");
printf(" | Нажмите на любую клавишу для выхода. |\n");
printf("
|_____________________________
_getch();
system("cls");
break;
}
}
else
{
printf("
______________________________
printf(" | База Данных пуста! |\n");
printf(" | Нажмите на любую клавишу для выхода. |\n");
printf("
|_____________________________
_getch();
system("cls");
}
}
void readfrom(list* &head, list* &tail, int* &guf, int* &nov)
{
FILE* BD;
list *kpp;
int u=0;
BD=fopen("E:\\kursrab\\std.
while(999)
{
if(BD==NULL)
{
system("cls");
printf(" ______________________________
printf("| Упс, Вы забыли сохранить что-либо в файл |\n");
printf("| или не существует папки 'kursrab'(или самого файла) по адресу |\n");
printf("|
printf("|
printf("|_____________________
_getch();
system("cls");
break;
}
else
{
fclose(BD);
BD=fopen("E:\\kursrab\\std.
if(*guf==1)
{
fseek(BD, 0, SEEK_SET);
head=new list;
kpp=head;
tail=head;
while(!feof(BD))
{
fscanf(BD,"%d %s %s %s %lf",&kpp->numb, &kpp->fam, &kpp->date, &kpp->group, &kpp->tel);
if(kpp->fam[0]!=0)
{
kpp->next=NULL;
tail->next=kpp;
tail=kpp;
kpp=kpp->next;
kpp=new list;
kpp->fam[0]=0;
u++;
}
}
if(u==1)
{
head->next=NULL;
tail=head;
delete(kpp);
*nov=1;
}
else
{
delete(kpp);
*nov=1;
}
fclose(BD);
*guf=0;
printf("
______________________________
printf(" | Извлечение прошло успешно! |\n");
printf(" | Нажмите на любую клавишу для выхода. |\n");
printf("
|_____________________________
_getch();
system("cls");
break;
}
else
{
printf("
______________________________
printf(" | Пожалуйста, удалите текущую БД(цифра 6)! |\n");
printf(" | Нажмите на любую клавишу для выхода. |\n");
printf("
|_____________________________
_getch();
system("cls");
break;
}
}
break;
}
}
A.6 – «Файл izmdeleteelem.cpp»
#include "standlib.h"
void izmdan(list* &head, int* &guf)//изменение данных в БД
{
list *T;
int n;
char k=0;
char c=0;
if(*guf!=1)
{
while(666)
{
printf(" ______________________________
printf("| Введите порядковый номер элемента, в котором нужно сделать изменения |\n");
printf("|_____________________
scanf("%d", &n);
system("cls");
T=head;
while(T!=NULL)
{
if(T->numb==n)
{
printf("\n\n\n
______________________________
printf(" | 1) Изменение порядкового номера |\n");
printf("
|_____________________________
printf(" | 2) Изменение фамилии |\n");
printf("
|_____________________________
printf(" | 3) Изменение даты рождения |\n");
printf("
|_____________________________
printf(" | 4) Изменение номера группы |\n");
printf("
|_____________________________
printf(" | 5) Изменение номера телефона |\n");
printf("
|_____________________________
printf("
______________________________
printf(" | Введите номер соответствующего пункта |\n");
printf("
|_____________________________
c=getch();
system("cls");
switch(c)
{
case '1':
{
printf("
______________________________
printf(" | Введите новый порядковый номер |\n");
printf("
|_____________________________
scanf("%d", &T->numb);
system("cls");
break;
}
case '2':
{
printf("
______________________________
printf(" | Введите новую фамилию |\n");
printf("
|_____________________________
scanf("%s", &T->fam);
break;
}
case '3':
{
printf("
______________________________
printf(" | Введите новую дату рождения |\n");
printf("
|_____________________________
scanf("%s", &T->date);
break;
}
case '4':
{
printf("
______________________________
printf(" | Введите новый номер группы |\n");
printf("
|_____________________________
scanf("%s", &T->group);
break;
}
case '5':
{
printf("
______________________________
printf(" | Введите новый номер телефона |\n");
printf("
|_____________________________
scanf("%lf", &T->tel);
break;
}
}
break;
}
else
{
T=T->next;
}
}
if(T==NULL)
{
system("cls");
printf(" \n\n\n
______________________________
printf(" | Похоже Вы допустили ошибку при написании порядкового номера.|\n");
printf(" | Введите '1' для новой попытки или другую цифру для выхода. |\n");
printf("
|_____________________________
k=getch();
system("cls");
if(k=='1')
{
continue;
}
else
{
break;
}
}
else
{
break;
}
}
}
else
{
printf("
______________________________
printf(" | База Данных пуста! |\n");
printf(" | Нажмите на любую клавишу для выхода. |\n");
printf("
|_____________________________
_getch();
}
}
void DeleteBD(list* &head, int* &guf)//полное удаление БД
{
list *N, *P;
if(*guf!=1)
{
N=head;
P=head->next;
while (P!=NULL)
{
delete(N);
N=P;
P=P->next;
}
delete(N);
printf("
______________________________