Смекни!
smekni.com

Інформаційно-довідкова система (стр. 3 из 3)

}

void save_list()

{

FILE *f;

f=fopen("с:\vuz.my","w+");

for (int i=0;i<=list.count;i++)

{

char tmp[150];

strcpy(tmp,list.m[i].name);

strcat(tmp,",");

strcat(tmp,list.m[i].adress);

strcat(tmp,",");

strcat(tmp,list.m[i].phone);

strcat(tmp,",");

strcat(tmp,list.m[i].countf);

strcat(tmp,",");

strcat(tmp,list.m[i].duplom);

fprintf(f,"%s&bsol;n",tmp);

}

fclose(f);

}

void delete_list()

{

if (page*15+pos<=list.count)

{

for (int i=page*15+pos;i<list.count;i++)

{

list.m[i]=list.m[i+1];

}

list.count--;

refresh_list();

}

}

void sort_list(int vub)

{

value tmpv;

if (vub==0)

{

for (int i=0;i<=list.count;i++)

{

for (int j=0;j<=list.count;j++)

{

if (strcmp(list.m[i].name,list.m[j].name)<0)

{

tmpv=list.m[i];

list.m[i]=list.m[j];

list.m[j]=tmpv;

}

}

}

}

if (vub==1)

{

for (int i=0;i<=list.count;i++)

{

for (int j=0;j<=list.count;j++)

{

if (strcmp(list.m[i].adress,list.m[j].adress)<0)

{

tmpv=list.m[i];

list.m[i]=list.m[j];

list.m[j]=tmpv;

}

}

}

}

if (vub==2)

{

for (int i=0;i<=list.count;i++)

{

for (int j=0;j<=list.count;j++)

{

if (strcmp(list.m[i].phone,list.m[j].phone)<0)

{

tmpv=list.m[i];

list.m[i]=list.m[j];

list.m[j]=tmpv;

}

}

}

}

if (vub==3)

{

for (int i=0;i<=list.count;i++)

{

for (int j=0;j<=list.count;j++)

{

if (strcmp(list.m[i].countf,list.m[j].countf)<0)

{

tmpv=list.m[i];

list.m[i]=list.m[j];

list.m[j]=tmpv;

}

}

}

}

if (vub==4)

{

for (int i=0;i<=list.count;i++)

{

for (int j=0;j<=list.count;j++)

{

if (strcmp(list.m[i].duplom,list.m[j].duplom)<0)

{

tmpv=list.m[i];

list.m[i]=list.m[j];

list.m[j]=tmpv;

}

}

}

}

refresh_list();

}

void find_list()

{

int vub;

mit_1:

gotoxy(3,23);

printf(" ");

gotoxy(3,23);

printf("FIND: | Name-1 | Adress-2 | Phone-3 | CountF-4 | Duplom-5 | ");

cursor(1);

scanf("%d",&vub);

if((vub<1)||(vub>5)){goto mit_1;}

gotoxy(3,23);

printf(" ");

gotoxy(3,23);

printf("Find Text: ");

char s[50];

scanf("%s",&s);

for (int i=0;i<=list.count;i++)

{

char s1[50];

switch(vub)

{

case 1: strcpy(s1,list.m[i].name);break;

case 2: strcpy(s1,list.m[i].adress);break;

case 3: strcpy(s1,list.m[i].phone);break;

case 4: strcpy(s1,list.m[i].countf);break;

case 5: strcpy(s1,list.m[i].duplom);break;

}

if (strcmp(s1,s)==0)

{

gotoxy(3,pos+6);

printf(" ");

int j=i;

int l=0;

while (j-15>=0)

{

j=j-15;

l++;

}

page=l;

pos=j;

refresh_list();

gotoxy(3,pos+6);

printf(">");

gotoxy(3,23);

printf("Press ENTER ");

mit_2:

int c=getche();

if (c!=13){goto mit_2;}

}

}

cursor(0);

gotoxy(3,23);

printf(" ");

}

void new_window(int vub)

{

clrscr();

cursor(0);

ramka(2,2,80,3);

ramka(2,5,80,21);

ramka(2,23,80,24);

gotoxy(2,2);

printf("| Save-1 | Insert-2 | Delete-3 | Sort-4,5,6,7,8 | Find-9 | Close-ESC |");

gotoxy(12,5);

printf("NAME ADRESS PHONE COUNTF DUPLOM");

if (vub==1)

{

refresh_list();

}

pos=0;

mi2:

gotoxy(3,23);

int c=getche();

switch (c)

{

case 49:save_list(); break;

case 50:insert_list(); break;

case 51:delete_list(); break;

case 52:sort_list(0); break;

case 53:sort_list(1); break;

case 54:sort_list(2); break;

case 55:sort_list(3); break;

case 56:sort_list(4); break;

case 57:find_list(); break;

case 72:

if (pos!=0)

{

gotoxy(3,pos+6);

printf(" ");

pos--;

gotoxy(3,pos+6);

printf(">");

}

else

{

if (page!=0)

{

page--;

gotoxy(3,pos+6);

printf(" ");

pos=14;

refresh_list();

}

}

break;

case 80:

if (pos!=14)

{

gotoxy(3,pos+6);

printf(" ");

pos++;

gotoxy(3,pos+6);

printf(">");

}

else

{

if (page_count>page)

{

gotoxy(3,pos+6);

printf(" ");

page++;

pos=0;

refresh_list();

}

}

break;

case 27:goto mi1;break;

}

goto mi2;

mi1:

}

void open_list()

{

clrscr();

FILE *f;

f=fopen("с:&bsol;vuz.my","r");

char *s;

list.count=-1;

while(! feof(f))

{

list.count++;

fscanf(f,"%s&bsol;n",s);

// printf("%s&bsol;n",s);

char *p;

p = strtok(s,",");

int l=0;

while (p)

{

switch(l)

{

case 0:strcpy(list.m[list.count].name,p);break;

case 1:strcpy(list.m[list.count].adress,p);break;

case 2:strcpy(list.m[list.count].phone,p);break;

case 3:strcpy(list.m[list.count].countf,p);break;

case 4:strcpy(list.m[list.count].duplom,p);break;

}

l++;

p = strtok(NULL,",");

}

}

fclose(f);

}

void main_menu()

{

mit_3:

clrscr();

ramka(2,2,80,24);

ramka(20,8,60,16);

gotoxy(35,10);

printf("New list - 1");

gotoxy(35,12);

printf("Open list - 2");

gotoxy(35,14);

printf("Exit - 3 ");

cursor(0);

mit_1:

gotoxy(45,14);

char c=getche();

if ((c!='1')&&(c!='2')&&(c!='3'))

{

goto mit_1;

}

switch (c)

{

case '1':page_count=0;page=0;list.count=-1; new_window(0);goto mit_3; break;

case '2':open_list();new_window(1);goto mit_3; break;

case '3':goto mit2; break;

}

goto mit_1;

mit2:

}

void main()

{

list.count=-1;

main_menu();

//

//

open_list();

// new_window();

char s[10];

// scanf("%s",&s);

}

Додаток 2. Результати роботи програми

Початок програми

Створив файл

Висновки

Після виконання курсової роботи я отримав необхідні знання та практичні навички роботи з із роботою з файлами, навчився програмувати розгалужені та циклічні процеси, зрозумів як працювати з часом та будувати меню програм.

Отримана програма є якісною, швидкою при виконанні і не потребує значних ресурсів комп’ютера для її запуску. Якихось недоліків я не помітив.

Дана програма може згодитися для дуже багатьох користувачів, підприємств, навчальних установ. Вона є універсальною, оскільки годинник є невід’ємним атрибутом будь-якої комп’ютерної системи. Тому актуальність даної програми є надзвичайно великою.

На цій курсовій роботі я освоїв методи програмування на мові сі і виконав завдання про: Інформаційно- довідкова система “Вищі навчальні заклади м. Львова”

Література

1) Кравець П. О. Методичні вказівки до виконання лабораторних робіт з дисципліни “Проблемно-орієнтовані мови програмування”, 2005.

2) Кравець П. О. Методичні вказівки до виконання курсової роботи з дисципліни “Проблемно-орієнтовані мови програмування”, 2005

3) Культин Н. С, С++ в задачах и примерах, Санкт-Петербург 2005.

4) Ричард Хезфилд, Лоуренс Кирби Исскуство программирования на С, Москва, Санкт-Петербург 2001

5) Павловская Т. А., Щупак Ю. А. С,С++ - программирование на языке високого уровня (Структурное программирование), Санкт-Петербург 2003

6) Романов Е. Л. Практикум по программированию на С++, Санкт-Петербург 2004

Дияк І.І. Пропедевтика прикладного програмування – Київ, ІСДО, 1994 – 176 с.

Фролов Г.Д., Кузнецов Э.И. Элементы информатики. – М.: Высш. шк., 1989. - 304 с.

Кушниренко А.Г., Лебедев Т.В. Программирование для математиков. – М.: Наука, 1988 – 384 с.

С.А.Абрамов, Е.В.Зима. Начала информатики. – М.: Наука, 1989. - 256 с.

В.И.Пильщиков. Сборник упражнений по языку Паскаль. – М.: Наука, 1989. – 160 с.

С.А.Абрамов, Т.Т.Гнездилова, Е.Н.Капустина. Задачи по программированию. – М.: Наука, 1988. – 224 с.

В.М.Брябрин. Программное обеспечение персональных ЭВМ. – М.: Наука, 1989. – 272 с.

В. Э.Фигурнов. IBM PC для пользователя. Изд. шестое. – М.: “Инфа М”, 1995. – 432 с.

В.П.Грибанов, С.В.Дробин, В.Д.Медведев. Операционные системы. М.: “Финансы и статистика”. 1990. – 230 с.

В.И.Касьянов, В.К.Сабельфельд. Сборник заданий по практикуму на ЭВМ. – М.: “Наука”, 1986. – 272 с.

Н.П.Трифонов, Е.И.Пасхин. Практикум на ЭВМ. – М.: Наука, 1982. – 288 с.

М.Дансмур, Е.Дейвис. Операционная система UNIX и программирование на языке СИ. – М.: “Радио и связь”, 1989. – 192 с.

В.В.Фаронов. Турбо Паскаль. – МВТУ, М., 1992. – 304 с.

Е.А.Зуев. Язык программирования TURBO PASCAL 6.0. – М. “Унитех”, 1992. – 298 с.

А.Епанешников, Е.Епанешников. Програмирование в среде Turbo Pascal 7.0. -3-е изд., - М.: "ДИАЛОГ-МИФИ", 1997. - 288 с.

Delphi 2. Энциклопедия пользователя: Пер. с англ./Чарльз Калверт. - К.: НИПФ "ДиаСофт Лтд.", 1996. - 736 с.

Использование Delphi 3. Специальное издание.: Пер. с англ. - К.: Диалектика, 1997. - 768 с.

Delphi 4. Библия разработчика: Пер. с англ. - К.; СПб.: Диалектика, 1998. - 672.