Скачиваний:
61
Добавлен:
02.05.2014
Размер:
11.96 Кб
Скачать
//kyrs_ope.cpp
extern char ch;
extern int size;
int fs=0;
const int tab=1;
const int zag=4;
const int tex=7;
struct kyrs {
char na[30];
float pl, ze;
int et, ye, id;
} list[500], tmp, fin[500];
void load(char *base);
void save(char *base);
void add(char *base);
void view(char *base);
void edit(char *base);
void delet(char *base);
void find(char *base);
void sort(char *base);
void sort1();
void sort2();
void sort3();
void sort4();
void sort5();
void replace(int);
void open(char *base){
load(base);
clrscr();
textcolor(9);
cprintf("\r\n");cprintf("\r\n");cprintf("\r\n");cprintf("\r\n");cprintf("\r\n");
for (int i=0;i<30;i++)cprintf(" ");cprintf("%c",char(201));
for (i=0;i<16;i++)cprintf("%c",char(205));cprintf("%c\r\n",char(187));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c Select action: %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c1. View table %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c2. Edit table %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c3. Add record %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c4. Delete %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c5. Find %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c6. Sort %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c7. Exit %c\r\n",char(186),char(186));
for (i=0;i<30;i++)cprintf(" ");cprintf("%c",char(200));
for (i=0;i<16;i++)cprintf("%c",char(205));cprintf("%c\r\n",char(188));
do ch=getch();
while((ch!='1')&&(ch!='2')&&(ch!='3')&&(ch!='4')&&(ch!='5')&&(ch!='6')&&(ch!='7'));
switch (ch){
case '1': view(base);break;
case '2': edit(base);break;
case '3': add(base);break;
case '4': delet(base);break;
case '5': find(base);break;
case '6': sort(base);break;
case '7': exit(0); break;
default: exit(0);
}}
void sort(char *base){
clrscr();
textcolor(5);
cprintf("Please select field:\r\n1.Naimenovanie 2.Ploshad 3.Etagnost 4.God soorugeniya 5.Zena\n6.Back to menu");
do ch=getch();
while((ch!='1')&&(ch!='2')&&(ch!='3')&&(ch!='4')&&(ch!='5')&&(ch!='6'));
switch (ch){
case '1': sort1();break;
case '2': sort2();break;
case '3': sort3();break;
case '4': sort4();break;
case '5': sort5();break;
case '6': open(base);break;
default: exit(0);}
textcolor(15);save(base);
cprintf("\r\nSorting...OK! View base");
getch();open(base);}
void sort1(){
int i,j;
for (i=0; i<size; i++)
for (j=0; j<size; j++)
if (strcmp(list[j].na,list[j+1].na)>0) replace(j);
}
void sort2(){
int i,j;
for (i=0; i<size; i++)
for (j=0; j<size; j++)
if (list[j].pl<list[j+1].pl) replace(j);}
void sort3(){
int i,j;
for (i=0; i<size; i++)
for (j=0; j<size; j++)
if (list[j].et<list[j+1].et) replace(j);}
void sort4(){
int i,j;
for (i=0; i<size; i++)
for (j=0; j<size; j++)
if (list[j].ye<list[j+1].ye) replace(j);}
void sort5(){
int i,j;
for (i=0; i<size; i++)
for (j=0; j<size; j++)
if (list[j].ze<list[j+1].ze) replace(j);}
void replace(int x){
strcpy(tmp.na,list[x].na);
tmp.pl=list[x].pl;tmp.et=list[x].et;
tmp.ye=list[x].ye;tmp.ze=list[x].ze;
strcpy(list[x].na,list[x+1].na);
list[x].pl=list[x+1].pl;list[x].et=list[x+1].et;
list[x].ye=list[x+1].ye;list[x].ze=list[x+1].ze;
strcpy(list[x+1].na,tmp.na);
list[x+1].pl=tmp.pl;list[x+1].et=tmp.et;
list[x+1].ye=tmp.ye;list[x+1].ze=tmp.ze;
strcpy(tmp.na, "");
tmp.pl=0;tmp.et=0;tmp.ye=0;tmp.ze=0;}
void find(char *base){
clrscr();
textcolor(5);cprintf("Please enter find record:\r\n");
printf("Naimenovanie: ");cin.getline(tmp.na,30);
printf("Ploshad (m^2): ");scanf("%f",&tmp.pl);
printf("Etagnost: ");scanf("%u",&tmp.et);
printf("God soorugeniya: ");scanf("%u",&tmp.ye);
printf("Zena (mln. rub.): ");scanf("%f",&tmp.ze);
char *css;int t=0;
for (;t<=strlen(tmp.na);t++){
css=strchr (tmp.na,' '); if (css) *(css)='_';}
int j=0,i=0;
for (;j<=size;j++)
if ((strcmp(tmp.na,list[j].na)==0)||(tmp.pl==list[j].pl)||(tmp.et==list[j].et)||(tmp.ye==list[j].ye)||(tmp.ze==list[j].ze)){
strcpy(fin[i].na,list[j].na);
fin[i].pl=list[j].pl;fin[i].et=list[j].et;
fin[i].ye=list[j].ye;fin[i].ze=list[j].ze;
fin[i].id=list[j].id;i++;}
fs=--i;
strcpy(tmp.na, "");
tmp.pl=0;tmp.et=0;tmp.ye=0;tmp.ze=0;
getch();
textcolor(tab);int z,l,p=0;clrscr();
cout<<char(201); for(z=1; z<=3; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=20; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=15; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=4; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=15; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=15; z++)cout<<char(205);
cout<<char(187)<<"\n";
cout<<char(186); textcolor(zag); cprintf("%3s","ID"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%20s","Name"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Plosad"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%4s","Etag"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Year"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Zena"); textcolor(tab);
cout<<char(186)<<"\n";
cout<<char(204); for(l=1; l<=3; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=20; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=15; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=4; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=15; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=15; l++)cout<<char(205);
cout<<char(185)<<"\n";
for(z=0; z<=fs; z++){
cout<<char(186); textcolor(tex); cprintf("%3u",fin[z].id);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%20s", fin[z].na);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%15.2f", fin[z].pl);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%4u", fin[z].et);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%15u", fin[z].ye);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%15.2f", fin[z].ze);textcolor(tab);
cout<<char(186)<<"\n";
if (z<=(fs-1)){
cout<<char(204);
for(l=1; l<=3; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=20; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=15; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=4; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=15; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=15; l++)cout<<char(205); cout<<char(185)<<"\n";}
p++;
if (p==10){
p=0;getch();}}
cout<<char(200);
for(z=1; z<=3; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=20; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=15; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=4; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=15; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=15; z++)cout<<char(205); cout<<char(188)<<"\n";
getch();open(base);}
void delet(char *base){
clrscr();int i,j;
textcolor(1);cprintf("ID: ");scanf("%u",&i);--i;
if (i==size) --size;else{
for (j=i;j<size;j++){
strcpy(list[j].na,list[j+1].na);
list[j].pl=list[j+1].pl;
list[j].et=list[j+1].et;
list[j].ye=list[j+1].ye;
list[j].ze=list[j+1].ze;
}--size;}
textcolor(4);cprintf("\r\nDelete record %u...OK!\r\n",i+1);
getch();save(base);open(base);}
void edit(char *base){
clrscr();int i;
textcolor(1);cprintf("ID: ");scanf("%u",&i);--i;
cprintf("\r\nOLD:\r\n");
printf("Naimenovanie : %30s\n",list[i].na);
printf("Ploshad (m^2) : %30.2f\n",list[i].pl);
printf("Etagnost : %30u\n",list[i].et);
printf("God soorugeniya : %30u\n",list[i].ye);
printf("Zena (mln. rub.): %30.2f\n",list[i].ze);
cprintf("\r\nNEW:\r\n");
printf("Naimenovanie: ");cin.getline(tmp.na,30);
printf("Ploshad (m^2): ");scanf("%f",&tmp.pl);
printf("Etagnost: ");scanf("%u",&tmp.et);
printf("God soorugeniya: ");scanf("%u",&tmp.ye);
printf("Zena (mln. rub.): ");scanf("%f",&tmp.ze);
char *css;int t=0;
for (;t<=strlen(tmp.na);t++){
css=strchr (tmp.na,' '); if (css) *(css)='_';}
strcpy(list[i].na,tmp.na);
list[i].pl=tmp.pl;list[i].et=tmp.et;
list[i].ye=tmp.ye;list[i].ze=tmp.ze;
strcpy(tmp.na, "");
tmp.pl=0;tmp.et=0;tmp.ye=0;tmp.ze=0;
save(base);getch();open(base);}
void view(char *base){
textcolor(tab);int z,l,p=0;clrscr();
cout<<char(201); for(z=1; z<=3; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=20; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=15; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=4; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=15; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=15; z++)cout<<char(205);
cout<<char(187)<<"\n";
cout<<char(186); textcolor(zag); cprintf("%3s","ID"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%20s","Name"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Plosad"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%4s","Etag"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Year"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Zena"); textcolor(tab);
cout<<char(186)<<"\n";
cout<<char(204); for(l=1; l<=3; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=20; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=15; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=4; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=15; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=15; l++)cout<<char(205);
cout<<char(185)<<"\n";
for(z=0; z<=size; z++){
cout<<char(186); textcolor(tex); cprintf("%3u",list[z].id);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%20s", list[z].na);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%15.2f", list[z].pl);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%4u", list[z].et);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%15u", list[z].ye);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%15.2f", list[z].ze);textcolor(tab);
cout<<char(186)<<"\n";
if (z<=(size-1)){
cout<<char(204);
for(l=1; l<=3; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=20; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=15; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=4; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=15; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=15; l++)cout<<char(205); cout<<char(185)<<"\n";}
p++;
if (p==10){
p=0;getch();}}
cout<<char(200);
for(z=1; z<=3; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=20; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=15; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=4; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=15; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=15; z++)cout<<char(205); cout<<char(188)<<"\n";
getch();open(base);}
void add(char *base){
clrscr();
FILE *f=fopen(base,"a");
textcolor(15);
printf("Naimenovanie: ");cin.getline(tmp.na,30);
printf("Ploshad (m^2): ");scanf("%f",&tmp.pl);
printf("Etagnost: ");scanf("%u",&tmp.et);
printf("God soorugeniya: ");scanf("%u",&tmp.ye);
printf("Zena (mln. rub.): ");scanf("%f",&tmp.ze);
char *css;int t=0;
for (;t<=strlen(tmp.na);t++){
css=strchr (tmp.na,' '); if (css) *(css)='_';}
size++;
strcpy(list[size].na,tmp.na);
list[size].pl=tmp.pl;
list[size].et=tmp.et;
list[size].ye=tmp.ye;
list[size].ze=tmp.ze;
strcpy(tmp.na, "");
tmp.pl=0;tmp.et=0;
tmp.ye=0;tmp.ze=0;
fclose(f);
save(base);
open(base);
}
void save(char *base){
int j=0;
FILE *f=fopen(base,"w");
fprintf(f,"%s %1.2f %u %u %1.2f", list[j].na, list[j].pl, list[j].et, list[j].ye, list[j].ze);
for (j=1;j<=size;j++)
fprintf(f,"\n%s %1.2f %u %u %1.2f", list[j].na, list[j].pl, list[j].et, list[j].ye, list[j].ze);
fclose(f);
}
void load(char *base){
int j=0;
FILE *f=fopen(base,"r");
while(!feof(f)){
fscanf(f,"%s %f %u %u %f", &tmp.na , &tmp.pl, &tmp.et, &tmp.ye, &tmp.ze);
if (strcmp(tmp.na,"")!=0){
strcpy(list[j].na,tmp.na);
list[j].pl=tmp.pl;
list[j].et=tmp.et;
list[j].ye=tmp.ye;
list[j].ze=tmp.ze;
list[j].id=j+1;
j++;}
strcpy(tmp.na, "");
tmp.pl=0;tmp.et=0;
tmp.ye=0;tmp.ze=0;}
size=--j;fclose(f);}
Соседние файлы в папке Курсовая работа - База данных Сооружения аэропорта