}
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\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("с:\vuz.my","r");
char *s;
list.count=-1;
while(! feof(f))
{
list.count++;
fscanf(f,"%s\n",s);
// printf("%s\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.