Скачиваний:
50
Добавлен:
02.05.2014
Размер:
12.1 Кб
Скачать
//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 fio[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.F.I.O 2.Nomer otdela 3.Tabel'niy nomer 4.Kol-vo rab. chasov 5.Zarplata\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].fio,list[j+1].fio)>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.fio,list[x].fio);
tmp.pl=list[x].pl;tmp.et=list[x].et;
tmp.ye=list[x].ye;tmp.ze=list[x].ze;
strcpy(list[x].fio,list[x+1].fio);
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].fio,tmp.fio);
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.fio, "");
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("F.I.O: ");cin.getline(tmp.fio,30);
printf("Nomer otdela: ");scanf("%f",&tmp.pl);
printf("Tabel'niy nomer: ");scanf("%u",&tmp.et);
printf("Kol-vo rab. chasov: ");scanf("%u",&tmp.ye);
printf("Zarplata (t. rub.): ");scanf("%f",&tmp.ze);
char *css;int t=0;
for (;t<=strlen(tmp.fio);t++){
css=strchr (tmp.fio,' '); if (css) *(css)='_';}
int j=0,i=0;
for (;j<=size;j++)
if ((strcmp(tmp.fio,list[j].fio)==0)||(tmp.pl==list[j].pl)||(tmp.et==list[j].et)||(tmp.ye==list[j].ye)||(tmp.ze==list[j].ze)){
strcpy(fin[i].fio,list[j].fio);
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.fio, "");
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<=16; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=15; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=8; 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("%16s","F.I.O"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Nomer otdela"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%8s","T.nomer"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Rab. chasi"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Zarplata"); 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<=16; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=15; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=8; 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("%16s", fin[z].fio);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%15.0f", fin[z].pl);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%8u", 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<=16; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=15; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=8; 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<=16; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=15; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=8; 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].fio,list[j+1].fio);
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("F.I.O : %30s\n",list[i].fio);
printf("Nomer Otdel: %30.0f\n",list[i].pl);
printf("Tabel'niy nomer : %30u\n",list[i].et);
printf("Kol-vo rab. chasov : %30u\n",list[i].ye);
printf("Zarplata (t. rub.): %30.2f\n",list[i].ze);
cprintf("\r\nNEW:\r\n");
printf("F.I.O: ");cin.getline(tmp.fio,30);
printf("Nomer otdela: ");scanf("%f",&tmp.pl);
printf("Tabel'niy nomer: ");scanf("%u",&tmp.et);
printf("Kol-vo rab. chasov: ");scanf("%u",&tmp.ye);
printf("Zarplata (t. rub.): ");scanf("%f",&tmp.ze);
char *css;int t=0;
for (;t<=strlen(tmp.fio);t++){
css=strchr (tmp.fio,' '); if (css) *(css)='_';}
strcpy(list[i].fio,tmp.fio);
list[i].pl=tmp.pl;list[i].et=tmp.et;
list[i].ye=tmp.ye;list[i].ze=tmp.ze;
strcpy(tmp.fio, "");
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<=16; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=15; z++)cout<<char(205);
cout<<char(203); for(z=1; z<=8; 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("%16s","F.I.O"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","N otdela"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%8s","T.nomer"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Rab.chasi"); textcolor(tab);
cout<<char(186); textcolor(zag); cprintf("%15s","Zarplata"); 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<=16; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=15; l++)cout<<char(205);
cout<<char(206); for(l=1; l<=8; 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("%16s", list[z].fio);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%15.0f", list[z].pl);textcolor(tab);
cout<<char(186); textcolor(tex); cprintf("%8u", 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<=16; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=15; l++)cout<<char(205); cout<<char(206);
for(l=1; l<=8; 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<=16; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=15; z++)cout<<char(205); cout<<char(202);
for(z=1; z<=8; 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("F.I.O: ");cin.getline(tmp.fio,30);
printf("Nomer otdela: ");scanf("%f",&tmp.pl);
printf("Tabel'niy nomer: ");scanf("%u",&tmp.et);
printf("Kol-vo rab. chasov: ");scanf("%u",&tmp.ye);
printf("Zarplata (t. rub.): ");scanf("%f",&tmp.ze);
char *css;int t=0;
for (;t<=strlen(tmp.fio);t++){
css=strchr (tmp.fio,' '); if (css) *(css)='_';}
size++;
strcpy(list[size].fio,tmp.fio);
list[size].pl=tmp.pl;
list[size].et=tmp.et;
list[size].ye=tmp.ye;
list[size].ze=tmp.ze;
strcpy(tmp.fio, "");
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.0f %u %u %1.2f", list[j].fio, list[j].pl, list[j].et, list[j].ye, list[j].ze);
for (j=1;j<=size;j++)
fprintf(f,"\n%s %1.0f %u %u %1.2f", list[j].fio, 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.fio , &tmp.pl, &tmp.et, &tmp.ye, &tmp.ze);
if (strcmp(tmp.fio,"")!=0){
strcpy(list[j].fio,tmp.fio);
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.fio, "");
tmp.pl=0;tmp.et=0;
tmp.ye=0;tmp.ze=0;}
size=--j;fclose(f);}
Соседние файлы в папке Курсовая работа - Ведомость зарплаты