Вывести информацию о поездах, отправляющихся в Москву от 10 до 16 часов - C (СИ)
Формулировка задачи:
помогите решить задачку, или если сможете подкиньте код похожей програмки...
Организовать меню: Создание файла, Просмотр файла, Поиск, Выход. В файле содержатся сведения о поездах: № поезда, станция назначения, время отправления, время в пути. Вывести информацию о поездах, отправляющихся в Москву от 10 до 16 часов.
подскажите пожалуйсто, вот код собрал для создания и просмотра, низнаю как написать функцию поиска и вывода
#include <stdio.h> //Подключаем библиотеки #include <conio.h> #include <string.h> struct station // описываем структуру station { char stnazn[10]; // станция назначения int number; // номер поезда int t_otpr; // время отправления int t_vputi; // время в пути } sp; void input(FILE *); //функция создания нового файла void print(FILE *); //функция просмотра списка void find(FILE *); //функция поиска main() { char c; FILE *tf; //указатель на файл while (1) { puts("\n MENU"); //создаем меню для удобства работы puts(" ++++++++++++"); puts(" 1-sozdanie faila"); puts(" 2-prosmotr faila"); puts(" 3-poisk i vivod"); puts(" 0-vyhod \n"); c=getch(); switch(c) //оператор выбора { case '1':input(tf); break; case '2':print(tf);break; case '3':find(tf);break; case '0':return 0; default : puts("nevernuy regim!!!"); //если вводим другие числа , то выводиться предупреждение } } } void input(FILE *tf) // функция создания нового файла { char ch; tf=fopen("file.dat","wb"); // открытие бинарного файла для записи printf("\n vvedite informaciu o poezde \n"); do { printf(" nomer poezda: "); scanf("%d",&sp.number); printf("\n Stancia naznachenia: "); scanf("%s",sp.stnazn); printf(" Vremia otpravlenia: "); scanf("%d",&sp.t_otpr); printf(" Vremia v puti: "); scanf("%d",&sp.t_vputi); fwrite(&sp,sizeof(struct station),1,tf); printf("\n Zakonchity ? y/n"); ch=getch(); } while (ch != 'y'); fclose(tf); //Закрытие файла } void print(FILE *tf) //функция просмотра списка { int i; tf=fopen("file.dat","rb"); // открытие бинарного файла для чтения i=1; fread(&sp,sizeof(struct station),1,tf); //чтение из файла структуры station while(!feof(tf)) { printf("\n (%d) nomer poezda %s\n Stanciia naznacheniya %d ",i,sp.number,sp.stnazn); printf("\n Vremia otpravlenia:%d\n Vremia v puti:%d\n ",sp.t_otpr,sp.t_vputi); fread(&sp,sizeof(struct station),1,tf); i++; } getch(); } void find(FILE*tf) //функция поиска
Решение задачи: «Вывести информацию о поездах, отправляющихся в Москву от 10 до 16 часов»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #include<ctype.h> #include <dos.h> #define UP 72 #define DOWN 80 #define ENTER 13 const char *List[18]={"Створити новий файл ", "Завантажити з файла", " ПОШУК ЗА ", " Прізвищем ", " Вулицею ", " № будинку ", " № квартири ", " № телефону ", " СОРТУВАННЯ ЗА ", " Прізвищем ", " Вулицею ", " № будинку ", " № квартири ", " № телефону ", "Додати абонента", "Редагувати абонента ", "Видалити абонента", "ВИХІД"}; const char *ListAdd[6]={"Прізвище :", "Вулиця:", "Будинок :", "Квартира :", "Телефон :", "ВИХІД:"}; void Intro(); int OpenBase (FILE *out); void MsgBox(int x, int y, char *Caption); void Del (FILE *out, int kil); void InputWindow(FILE *out); void Frame(int x1, int y1, int x2, int y2); void Table(); void SearchFam(char *Parametr, FILE *out); void SearchAdr(char *Parametr, FILE *out); void SearchBud(char *Parametr, FILE *out); void SearchKv(char *Parametr, FILE *out); void SearchTel(char *Parametr, FILE *out); void SortFam(FILE *out); void SortAdr(FILE *out); void SortBud(FILE *out); void SortKv(FILE *out); void SortTel(FILE *out); void Add(FILE *out, int kil); char * ToUpper(char *str); void Print(int kil); //-------------------------------------- struct book{ char fam[20]; char street[20]; char bud[20]; char kv[20]; char tel[20]; }mas[200],obmin; void main() { char Error[30]="Помилка при відкриті файлу"; char InputName[15]="Введіть ім'я"; char InputAdress[15]="Введіть адресу"; char InputBud[20]="Введіть № будинку"; char InputKv[20]=" Введіть № квартири"; char InputTel[20]=" Введіть № телефону"; char Parametr[15]; char fName[15]; int kil=0,nomer=0; FILE *out; int Pos, i, kk; Intro(); label: Table(); gotoxy(55,1); textcolor(LIGHTGREEN); textbackground(BLACK); cprintf("Ю ЗІ"); textcolor(~RED); cprintf(" М Е Н Ю"); textcolor(LIGHTGREEN); textbackground(BLACK); cprintf("№І"); do { if (Pos>17) Pos=0; if (Pos<0) Pos=17; textcolor(LIGHTBLUE); textbackground(BLACK); for(i=0;i<18;i++) { gotoxy(55,i+2); if (i==17) { textcolor(BLACK); textbackground(LIGHTMAGENTA); } if (i<18) { textcolor(LIGHTGREEN); textbackground(BLACK); cprintf("Ю ЗІ"); if ((i<2) || (i>13)) { textcolor(BLACK); textbackground(LIGHTCYAN); } if (Pos==i) { textcolor(BLACK); textbackground(LIGHTRED); } if ((i==2) || (i==8)) { textcolor(BLACK); textbackground(YELLOW); } cprintf("%s", List[i]); textcolor(LIGHTGREEN); textbackground(BLACK); cprintf("№І"); } else { textcolor(LIGHTBLUE); textbackground(BLACK); cprintf("ЮИІ"); if ((Pos==i)||(i==4)||(i==9)) { textcolor(BLACK); textbackground(LIGHTBLUE); } else { textcolor(LIGHTBLUE); textbackground(BLACK); } cprintf("%s",List[i]); cprintf("Юј"); }} kk=getch(); window(1,1,80,25); switch (kk) { case UP: Pos=Pos-1; break; case DOWN: Pos=Pos+1; break; default: ; } }while (kk!=ENTER); if(Pos==0) { fcloseall(); MsgBox(5,1,InputName); gotoxy(6,2); scanf("%s",fName); window(2,1,30,8); textcolor(WHITE); textbackground(BLACK); clrscr(); if ((out = fopen(fName, "w+t"))==NULL) { MsgBox(5,1,Error); exit(1); } InputWindow(out); getch(); kil=OpenBase(out); } else if (Pos==1) { fcloseall(); MsgBox(5,1,InputName); gotoxy(6,2); scanf("%s",fName); window(2,1,30,8); textcolor(WHITE); textbackground(BLACK); clrscr(); if ((out = fopen(fName, "a+t"))==NULL) { MsgBox(5,1,Error); exit(1); } kil=OpenBase(out); } else if (Pos==3) { MsgBox(5,1,InputName); gotoxy(6,2); scanf("%s",Parametr); window(2,1,30,8); textcolor(WHITE); textbackground(BLACK); clrscr(); SearchFam(Parametr,out); getch(); OpenBase(out); } else if (Pos==4) { MsgBox(5,1,InputAdress); gotoxy(6,2); scanf("%s",Parametr); window(2,1,30,8); textcolor(WHITE); textbackground(BLACK); clrscr(); SearchAdr(Parametr,out); getch(); OpenBase(out); } else if (Pos==5) { MsgBox(5,1,InputBud); gotoxy(6,2); scanf("%s",Parametr); window(2,1,30,8); textcolor(WHITE); textbackground(BLACK); clrscr(); SearchBud(Parametr,out); getch(); OpenBase(out); } else if (Pos==6) { MsgBox(5,1,InputKv); gotoxy(6,2); scanf("%s",Parametr); window(2,1,30,8); textcolor(WHITE); textbackground(BLACK); clrscr(); SearchKv(Parametr,out); getch(); OpenBase(out); } else if (Pos==7) { MsgBox(5,1,InputTel); gotoxy(6,2); scanf("%s",Parametr); window(2,1,30,8); textcolor(WHITE); textbackground(BLACK); clrscr(); SearchTel(Parametr,out); getch(); OpenBase(out); } else if (Pos==9) { SortFam(out); getch(); OpenBase(out); } else if (Pos==10) { SortAdr(out); getch(); OpenBase(out); } else if (Pos==11) { SortBud(out); getch(); OpenBase(out); } else if (Pos==12) { SortKv(out); getch(); OpenBase(out); } else if (Pos==13) { SortTel(out); getch(); OpenBase(out); } else if (Pos==14) { InputWindow(out); getch(); OpenBase(out); } else if (Pos==15) { kil=OpenBase(out); fcloseall(); if ((out = fopen(fName, "w+t"))==NULL) { MsgBox(5,1,Error); exit(1); } Add(out, kil); OpenBase(out); } else if (Pos==16) { kil=OpenBase(out); fcloseall(); if ((out = fopen(fName, "w+t"))==NULL) { MsgBox(5,1,Error); exit(1); } Del(out,kil); OpenBase(out); } else if (Pos==17) { fcloseall(); exit(2); } goto label; } //------------------------------------------------------------------------ void Print(int kil) { int i; window(3,13,52,24); textbackground(BLACK); clrscr(); window(1,1,80,25); for(i=0;i<kil;i++) { gotoxy(3,i+13); textcolor(WHITE); textbackground(BLACK); mas[i].fam[0]=toupper(mas[i].fam[0]); mas[i].street[0]=toupper(mas[i].street[0]); cprintf("%13s%15s%6s%5s%11s\n",mas[i].fam,mas[i].street,mas[i].bud,mas[i].kv,mas[i].tel); } } void Intro() { int i; clrscr(); gotoxy(1,5); printf(" ЬЬЬЬ Ь Ь ЬЬ Ь Ь ЬЬЬЬ ЬЬЬ ЬЬ ЬЬ Ь Ь\n"); printf(" Ы Ы Ы Ы Ы Ы ЫЫ Ы Ы Ы Ы Ы Ы Ы Ы Ы ЬЯ \n"); printf(" ЫЬЬЬЯ ЫЬЬЫ Ы Ы Ы Ы Ы ЫЬЬЬ ЫЬЬЯ Ы Ы Ы Ы ЫЬЯ \n"); printf(" Ы Ы Ы Ы Ы Ы ЫЫ Ы Ы Ы Ы Ы Ы Ы Ы Ы \n"); printf(" Ы Ы Ы ЯЬЬЯ Ы Ы ЫЬЬЬ ЫЬЬЯ ЯЬЬЯ ЯЬЬЯ Ы Ы\n"); gotoxy(29,13); textcolor(~RED); cprintf("юююTELEPHONE BOOKююю\n"); gotoxy(20,14); cprintf("±±±±±±±±±±±±±±LVIV 2008±±±±±±±±±±±±±±±\n"); gotoxy(1,16); textcolor(DARKGRAY); for(i=1; i<=80; i++) cprintf("Я"); gotoxy(1,17); textcolor(DARKGRAY); for(i=1; i<=80; i++) cprintf("Ы"); gotoxy(1,19); textcolor(DARKGRAY); for(i=1; i<=80; i++) cprintf("Ы"); getchar(); clrscr(); } //------------------------------------------------------------------------ void MsgBox(int x, int y, char *Caption) { int i; window(x,y,x+25, y+2); textcolor(GREEN); textbackground(BLACK); clrscr(); for(i=2; i<=25; i++) { gotoxy(i,1); cprintf("Н"); gotoxy(i,3); cprintf("Н"); } textcolor(GREEN); textbackground(BLACK); gotoxy(1,1); cprintf("Й"); gotoxy(1,2); cprintf("є"); gotoxy(1,3); cprintf("И"); gotoxy(25,1); cprintf("""); gotoxy(25,2); cprintf("є"); gotoxy(25,3); cprintf("ј"); gotoxy(14-(int)(strlen(Caption)/2),1); textcolor(GREEN); textbackground(YELLOW); cprintf("%s",Caption); window(1,1,80,25); } //------------------------------------------------------------------------ int OpenBase(FILE *out) { int i=0; window(3,13,52,24); textbackground(BLACK); clrscr(); window(1,1,80,25); rewind(out); while (fscanf(out,"%s %s %s %s %s",mas[i].fam,mas[i].street,mas[i].bud,mas[i].kv,mas[i].tel)==5) { gotoxy(3,i+13); textcolor(WHITE); textbackground(BLACK); mas[i].fam[0]=toupper(mas[i].fam[0]); mas[i].street[0]=toupper(mas[i].street[0]); cprintf("%13s%15s%6s%5s%11s\n",mas[i].fam,mas[i].street,mas[i].bud,mas[i].kv,mas[i].tel); i++; } window(1,1,80,25); return i; } //------------------------------------------------------------------------ void InputWindow(FILE *out) { int n; Frame(2,2,40,10); gotoxy(3,3); cprintf("Скільки даних ввести:"); textcolor(BLACK); textbackground(LIGHTCYAN); cprintf(" "); textcolor(BLACK); textbackground(LIGHTGRAY); gotoxy(3,4); cprintf("Прізвище :"); textcolor(BLACK); textbackground(LIGHTCYAN); cprintf(" "); textcolor(BLACK); textbackground(LIGHTGRAY); gotoxy(3,5); cprintf("Вулиця:"); textcolor(BLACK); textbackground(LIGHTCYAN); cprintf(" "); textcolor(BLACK); textbackground(LIGHTGRAY); gotoxy(3,6); cprintf("Будинок :"); textcolor(BLACK); textbackground(LIGHTCYAN); cprintf(" "); textcolor(BLACK); textbackground(LIGHTGRAY); gotoxy(3,7); cprintf("Квартира :"); textcolor(BLACK); textbackground(LIGHTCYAN); cprintf(" "); textcolor(BLACK); textbackground(LIGHTGRAY); gotoxy(3,8); cprintf("Телефон :"); textcolor(BLACK); textbackground(LIGHTCYAN); cprintf(" "); textcolor(BLACK); textbackground(LIGHTGRAY); gotoxy(26,3); scanf("%d", &n); fflush(stdin); if (n==0) exit(1); for(int i=0;i<n;i++) { window(17,4,37,8); textbackground(CYAN); gotoxy(1,1); scanf("%s",mas[i].fam); gotoxy(1,2); scanf("%s",mas[i].street); gotoxy(1,3); scanf("%s",mas[i].bud); gotoxy(1,4); scanf("%s",mas[i].kv); gotoxy(1,5); scanf("%s",mas[i].tel); fprintf(out,"\n%s %s %s %s %s",mas[i].fam,mas[i].street,mas[i].bud,mas[i].kv,mas[i].tel); window(17,4,37,8); clrscr(); } window(2,2,40,9); textcolor(BLACK); textbackground(BLACK); clrscr(); window(1,1,80,25); } //------------------------------------------------------------------------- void SearchFam(char *Parametr, FILE *out) { char NotFound[20]="Записів не знайдено"; char fam1[20]="", *p, *q; int i=0, j=0, m=0; rewind(out); window(3,13,52,24); textcolor(GREEN); textbackground(BLACK); clrscr(); while (fscanf(out,"%s %s %s %s %s\n",mas[i].fam, mas[i].street,mas[i].bud,mas[i].kv,mas[i].tel)==5) { strcpy(fam1,mas[i].fam); ToUpper(Parametr); ToUpper(fam1); p=fam1; q=Parametr; j=0; while(*p) { if (*p==*q) j++; p++; q++; } if (j==strlen(Parametr)) { gotoxy(1,1+m); mas[i].fam[0]=toupper(mas[i].fam[0]); mas[i].street[0]=toupper(mas[i].street[0]); cprintf("%13s%15s%6s%5s%11s\n",mas[i].fam,mas[i].street,mas[i].bud,mas[i].kv,mas[i].tel); m++; } i++; } if (m==0) { window(5,2,30,4); MsgBox(5,2,NotFound); sleep(1); window(5,2,30,4); textbackground(BLACK); clrscr(); } window(1,1,80,25); } //------------------------------------------------------------------------- void SearchAdr(char *Parametr, FILE *out) { char NotFound[20]=" Записів не знайдено "; char street[20]="", *p, *q; int i=0, j=0, m=0; rewind(out); window(3,13,52,24); textcolor(GREEN); textbackground(BLACK); clrscr(); while (fscanf(out,"%s %s %s %s %s\n",mas[i].fam, mas[i].street,mas[i].bud,mas[i].kv,mas[i].tel)==5) { strcpy(street,mas[i].street); ToUpper(Parametr); ToUpper(street); p=street; q=Parametr; j=0; while(*p) { if (*p==*q) j++; p++; q++; } if (j==strlen(Parametr)) { gotoxy(1,m+1); mas[i].fam[0]=toupper(mas[i].fam[0]); mas[i].street[0]=toupper(mas[i].street[0]); cprintf("%13s%15s%6s%5s%11s\n",mas[i].fam,mas[i].street,mas[i].bud,mas[i].kv,mas[i].tel); m++; } i++; } if (m==0) { MsgBox(5,2,NotFound); sleep(1); window(5,2,30,4); textbackground(BLACK); clrscr(); } window(1,1,80,25); } //------------------------------------------------------------------------- void SearchBud(char *Parametr, FILE *out) { char NotFound[20]=" Записів не знайдено "; int i=0,m=0; rewind(out); window(3,13,52,24); textcolor(GREEN); textbackground(BLACK); clrscr(); while (fscanf(out,"%s %s %s %s %s\n",mas[i].fam, mas[i].street,mas[i].bud,mas[i].kv,mas[i].tel)==5) { if (strcmp(mas[i].bud,Parametr)==0) { gotoxy(1,m+1); mas[i].fam[0]=toupper(mas[i].fam[0]); mas[i].street[0]=toupper(mas[i].street[0]); cprintf("%13s%15s%6s%5s%11s\n",mas[i].fam, mas[i].street,mas[i].bud,mas[i].kv,mas[i].tel); m++; } i++; } if (m==0){ MsgBox(5,2,NotFound); sleep(1); window(5,2,30,4); textbackground(BLACK); clrscr(); } window(1,1,80,25); } //------------------------------------------------------------------------- void SearchKv(char *Parametr, FILE *out) { char NotFound[20]=" Записів не знайдено "; int i=0,m=0; rewind(out); window(3,13,52,24); textcolor(GREEN); textbackground(BLACK); clrscr(); while (fscanf(out,"%s %s %s %s %s\n",mas[i].fam, mas[i].street,mas[i].bud,mas[i].kv,mas[i].tel)==5) { if (strcmp(mas[i].kv,Parametr)==0) { gotoxy(1,m+1); mas[i].fam[0]=toupper(mas[i].fam[0]); mas[i].street[0]=toupper(mas[i].street[0]); cprintf("%13s%15s%6s%5s%11s\n",mas[i].fam, mas[i].street,mas[i].bud,mas[i].kv,mas[i].tel); m++; } i++; } if (m==0){ MsgBox(5,2,NotFound); sleep(1); window(5,2,30,4); textbackground(BLACK); clrscr(); } window(1,1,80,25); } //------------------------------------------------------------------------- void SearchTel(char *Parametr, FILE *out) { char NotFound[20]=" Записів не знайдено "; int i=0,m=0; rewind(out); window(3,13,52,24); textcolor(GREEN); textbackground(BLACK); clrscr(); while (fscanf(out,"%s %s %s %s %s\n",mas[i].fam, mas[i].street,mas[i].bud,mas[i].kv,mas[i].tel)==5) { if (strcmp(mas[i].tel,Parametr)==0) { gotoxy(1,m+1); mas[i].fam[0]=toupper(mas[i].fam[0]); mas[i].street[0]=toupper(mas[i].street[0]); cprintf("%13s%15s%6s%5s%11s\n",mas[i].fam, mas[i].street,mas[i].bud,mas[i].kv,mas[i].tel); m++; } i++; } if (m==0){ MsgBox(5,2,NotFound); sleep(1); window(5,2,30,4); textbackground(BLACK); clrscr(); } window(1,1,80,25); } //------------------------------------------------------------------------- void SortFam(FILE *out) { int i=0,j=0,kil=0; rewind(out); window(3,13,52,24); textcolor(GREEN); textbackground(BLACK); clrscr(); while (fscanf(out,"%s %s %s %s %s\n",mas[kil].fam, mas[kil].street,mas[kil].bud,mas[kil].kv,mas[kil].tel)==5) kil++; for(i=0;i<kil-1;i++) for(j=i+1;j<kil;j++) { mas[i].fam[0]=toupper(mas[i].fam[0]); mas[i].street[0]=toupper(mas[i].street[0]); mas[j].fam[0]=toupper(mas[j].fam[0]); mas[j].street[0]=toupper(mas[j].street[0]); if (strcmp(mas[i].fam,mas[j].fam)>0) { obmin=mas[i]; mas[i]=mas[j]; mas[j]=obmin; } } for (j=0; j<kil;j++) { gotoxy(1,j+1); cprintf("%13s%15s%6s%5s%11s\n",mas[j].fam, mas[j].street,mas[j].bud,mas[j].kv,mas[j].tel); } window(1,1,80,25); } //------------------------------------------------------------------------- void SortAdr(FILE *out) { int i=0,j=0,kil=0; rewind(out); window(3,13,52,24); textcolor(GREEN); textbackground(BLACK); clrscr(); while (fscanf(out,"%s %s %s %s %s\n",mas[kil].fam, mas[kil].street,mas[kil].bud,mas[kil].kv,mas[kil].tel)==5) kil++; for(i=0;i<kil-1;i++) for(j=i+1;j<kil;j++) { mas[i].fam[0]=toupper(mas[i].fam[0]); mas[i].street[0]=toupper(mas[i].street[0]); mas[j].fam[0]=toupper(mas[j].fam[0]); mas[j].street[0]=toupper(mas[j].street[0]); if (strcmp(mas[i].street,mas[j].street)>0) { obmin=mas[i]; mas[i]=mas[j]; mas[j]=obmin; } } for (j=0; j<kil;j++) { gotoxy(1,j+1); cprintf("%13s%15s%6s%5s%11s\n",mas[j].fam, mas[j].street,mas[j].bud,mas[j].kv,mas[j].tel); } window(1,1,80,25); } //------------------------------------------------------------------------- void SortBud(FILE *out) { int i=0,j=0,kil=0; long numb1; long numb2; rewind(out); window(3,13,52,24); textcolor(GREEN); textbackground(BLACK); clrscr(); while (fscanf(out,"%s %s %s %s %s\n",mas[kil].fam, mas[kil].street,mas[kil].bud,mas[kil].kv,mas[kil].tel)==5) kil++; for(i=0;i<kil-1;i++) for(j=i+1;j<kil;j++) { numb1=atol(mas[i].bud); numb2=atol(mas[j].bud); if (numb1>numb2) { obmin=mas[i]; mas[i]=mas[j]; mas[j]=obmin; } } for (j=0; j<kil;j++) { gotoxy(1,j+1); mas[j].fam[0]=toupper(mas[j].fam[0]); mas[j].street[0]=toupper(mas[j].street[0]); cprintf("%13s%15s%6s%5s%11s\n",mas[j].fam, mas[j].street,mas[j].bud,mas[j].kv,mas[j].tel); } window(1,1,80,25); } //------------------------------------------------------------------------- void SortKv(FILE *out) { int i=0,j=0,kil=0; long numb1; long numb2; rewind(out); window(3,13,52,24); textcolor(GREEN); textbackground(BLACK); clrscr(); while (fscanf(out,"%s %s %s %s %s\n",mas[kil].fam, mas[kil].street,mas[kil].bud,mas[kil].kv,mas[kil].tel)==5) kil++; for(i=0;i<kil-1;i++) for(j=i+1;j<kil;j++) { numb1=atol(mas[i].kv); numb2=atol(mas[j].kv); if (numb1>numb2) { obmin=mas[i]; mas[i]=mas[j]; mas[j]=obmin; } } for (j=0; j<kil;j++) { gotoxy(1,j+1); mas[j].fam[0]=toupper(mas[j].fam[0]); mas[j].street[0]=toupper(mas[j].street[0]); cprintf("%13s%15s%6s%5s%11s\n",mas[j].fam, mas[j].street,mas[j].bud,mas[j].kv,mas[j].tel); } window(1,1,80,25); } //------------------------------------------------------------------------- void SortTel(FILE *out) { int i=0,j=0,kil=0; long numb1; long numb2; rewind(out); window(3,13,52,24); textcolor(GREEN); textbackground(BLACK); clrscr(); while (fscanf(out,"%s %s %s %s %s\n",mas[kil].fam, mas[kil].street,mas[kil].bud,mas[kil].kv,mas[kil].tel)==5) kil++; for(i=0;i<kil-1;i++) for(j=i+1;j<kil;j++) { numb1=atol(mas[i].tel); numb2=atol(mas[j].tel); if (numb1>numb2) { obmin=mas[i]; mas[i]=mas[j]; mas[j]=obmin; } } for (j=0; j<kil;j++) { gotoxy(1,j+1); mas[j].fam[0]=toupper(mas[j].fam[0]); mas[j].street[0]=toupper(mas[j].street[0]); cprintf("%13s%15s%6s%5s%11s\n",mas[j].fam, mas[j].street,mas[j].bud,mas[j].kv,mas[j].tel); } window(1,1,80,25); } //------------------------------------------------------------------------- char *ToUpper(char *str) { int i=0; while (str[i]) { str[i]=toupper(str[i]); i++; } return str; } //------------------------------------------------------------------------- void Add(FILE *out, int kil) { int Padd=0, i=0, numb; char k; window(1,1,80,25); gotoxy(3,2); cprintf("Який запис редагувати(%d)",kil); gotoxy(28,2); cprintf("_\b"); scanf("%d",&numb); label: do { if(Padd>5) Padd=0; if(Padd<0) Padd=5; textcolor(LIGHTBLUE); textbackground(BLACK); for(i=0; i<=5; i++) { gotoxy(3,i+3); if (i<=5) { textcolor(LIGHTGREEN); textbackground(BLACK); cprintf("Ю ЗІ"); if (Padd==i) { textcolor(BLACK); textbackground(LIGHTRED); } cprintf("%s", ListAdd[i]); } else { textcolor(LIGHTBLUE); textbackground(BLACK); cprintf("ЮИІ"); cprintf("%s",ListAdd[i]); cprintf("Юј"); }} k=getch(); switch(k) { case UP: Padd=Padd-1; break; case DOWN: Padd=Padd+1; break; default: ; } } while(k!=ENTER); switch(Padd) { case 0: window(17,3,37,8); textbackground(CYAN); gotoxy(5,1); textcolor(BLACK); textbackground(LIGHTGRAY); cprintf(" "); gotoxy(5,1); scanf("%s",mas[numb-1].fam); window(21,3,37,8); textbackground(BLACK); clrscr(); getch(); Print(kil); break; case 1: window(17,3,37,8); textbackground(CYAN); gotoxy(5,2); textcolor(BLACK); textbackground(LIGHTGRAY); cprintf(" "); gotoxy(5,2); scanf("%s",mas[numb-1].street); window(21,3,37,8); textbackground(BLACK); clrscr(); getch(); Print(kil); break; case 2: window(17,3,37,8); textbackground(CYAN); gotoxy(5,3); textcolor(BLACK); textbackground(LIGHTGRAY); cprintf(" "); gotoxy(5,3); scanf("%s",mas[numb-1].bud); window(21,3,37,8); textbackground(BLACK); clrscr(); getch(); Print(kil); break; case 3: window(17,3,37,8); textbackground(CYAN); gotoxy(5,4); textcolor(BLACK); textbackground(LIGHTGRAY); cprintf(" "); gotoxy(5,4); scanf("%s",mas[numb-1].kv); window(21,3,37,8); textbackground(BLACK); clrscr(); getch(); Print(kil); break; case 4: window(17,3,37,8); textbackground(CYAN); gotoxy(5,5); textcolor(BLACK); textbackground(LIGHTGRAY); cprintf(" "); gotoxy(5,5); scanf("%s",mas[numb-1].tel); window(21,3,37,8); textbackground(BLACK); clrscr(); getch(); Print(kil); break; case 5: window(2,2,40,8); textbackground(BLACK); clrscr(); for (int e=0; e<kil; e++) fprintf(out, "%s %s %s %s %s\n",mas[e].fam, mas[e].street,mas[e].bud,mas[e].kv,mas[e].tel); return ; break; default: ; } goto label; } //------------------------------------------------------------------------- void Del(FILE *out, int kil) { int n; window(5,2,37,4); textcolor(GREEN); textbackground(BLACK); for(int i=2; i<=32; i++) { gotoxy(i,1); cprintf("Н"); gotoxy(i,3); cprintf("Н"); } textcolor(GREEN); textbackground(BLACK); gotoxy(1,1); cprintf("Й"); gotoxy(1,2); cprintf("є"); gotoxy(1,3); cprintf("И"); gotoxy(32,1); cprintf("""); gotoxy(32,2); cprintf("є"); gotoxy(32,3); cprintf("ј"); gotoxy(2,2); textcolor(GREEN); textbackground(YELLOW); cprintf("Який запис видалити(%d шт):", kil); gotoxy(30,2); textcolor(GREEN); textbackground(YELLOW); cscanf("%d",&n); rewind(out); for ( i=0;i<n-1;i++) fprintf(out,"%s %s %s %s %s\n",mas[i].fam, mas[i].street,mas[i].bud,mas[i].kv,mas[i].tel); for (int l=n;l<kil;l++) fprintf(out,"%s %s %s %s %s\n",mas[l].fam, mas[l].street,mas[l].bud,mas[l].kv,mas[l].tel); window(5,2,37,4); textcolor(GREEN); textbackground(BLACK); clrscr(); window(3,13,52,24); textcolor(WHITE); textbackground(BLACK); clrscr(); window(1,1,80,25); } //------------------------------------------------------------------------- void Table() { int i; textcolor(LIGHTCYAN); textbackground(DARKGRAY); window(1,1,80,25); gotoxy(2,10); cprintf("ЙННННННННННННННННЛННННННННННННЛНННННЛННННЛННННННННН""); gotoxy(2,11); cprintf("є I*iжia"Ё є A¤аeбa є Ѓг¤ є Kў є Te"eдo* є"); gotoxy(2,12); cprintf("МННННННННННННННННКННННННННННННКНННННКННННКННННННННН№"); for(i=1; i<=12; i++) { gotoxy(2,12+i); cprintf("є"); gotoxy(53,12+i); cprintf("є"); } textcolor(LIGHTCYAN); textbackground(BLACK); gotoxy(2,12+i); cprintf("ИННННННННННННННННННННННННННННННННННННННННННННННННННј"); } //------------------------------------------------------------------------- void Frame(int x1, int y1, int x2, int y2) { int i; window(x1,y1,x2,y2); textcolor(BLACK); textbackground(LIGHTGRAY); for(i=1; i<=x2-x1; i++) { gotoxy(i,1); cprintf("Н"); gotoxy(i,y2-y1); cprintf("Н"); } for(i=1; i<=y2-y1; i++) { gotoxy(1,i); cprintf("є"); gotoxy(x2-x1,i); cprintf("є"); } gotoxy((int)((x2-x1)/2)-(int)(14/2),1); cprintf("Введення даних"); textcolor(BLACK); textbackground(LIGHTGRAY); gotoxy(1,1); cprintf("Й"); gotoxy(x2-x1,1); cprintf("""); gotoxy(1,y2-y1); cprintf("И"); gotoxy(x2-x1,y2-y1); cprintf("ј"); window(x1+1,y1+1,x2-2,y2-2); clrscr(); window(1,1,80,25); } //-------------------------------------------------------------------------
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д