Вывести информацию о поездах, отправляющихся в Москву от 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);
}
//-------------------------------------------------------------------------