commit 0f349ce538a54d686355ede8e8517c9e050b6426 Author: 18408000312@stu.hut.edu.cn <18408000312@stu.hut.edu.cn> Date: Fri Jan 11 12:17:13 2019 +0800 first commit diff --git a/职工信息管理系统.c b/职工信息管理系统.c new file mode 100644 index 0000000..d32a63e --- /dev/null +++ b/职工信息管理系统.c @@ -0,0 +1,472 @@ +#include +#include +#include +#include + + +struct worker +{ + char ID[20];// + char name[20];// + char sex[5];//Ա + char born[20];// + char edu[20];//ѧ + char position[20];//ְ + char wage[10];// + char address[100];//סַ + char tel[15];//绰 +}work[1000]; +int n ; +int temp; + +//ļдģ +void read()// +{ + FILE *fp; + int i = 0; + if( (fp = fopen("d:\\date.txt","r")) == NULL ) + { + printf("D̸Ŀ¼½һıļļΪdate\n\n\n"); + system("pause"); + system("cls"); + return ; + } + fscanf(fp,"%d\n",&n); + while(i < n) + { + fscanf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",work[i].ID,work[i].name,work[i].sex,work[i].born,work[i].edu,work[i].position,work[i].wage,work[i].address,work[i].tel); + i ++; + } + fclose(fp); +} +void write()//д +{ + FILE *fp; + int i = 0; + if( (fp = fopen("d:\\date.txt","w")) == NULL ) + { + printf("޷ļ\n"); + return ; + } + fprintf(fp,"%d\n",n); + while(i < n) + { + fprintf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",work[i].ID,work[i].name,work[i].sex,work[i].born,work[i].edu,work[i].position,work[i].wage,work[i].address,work[i].tel); + i ++; + } + fclose(fp); +} + + +//ģ +void input()// Ӽ +{ + int i; + int flag;//ǹǷѴ + int sz;//charǷϢ + char sex;//Ա + char c;//ָY?N + read();//ǰȽļԭеݶ(ȡڴ) + + do + { + flag = 0; + printf("\t\tְĹ:(0001-1000) \n\t\t"); + scanf("%s",work[n].ID); + for(i = 0 ; i < n ; i ++) //йȽ + { + temp=atoi(work[n].ID); + if(!(temp>0000&&temp<=1000&&strlen(work[n].ID)<=4)) + { + printf("\t\tŲڹ涨Χ롣\n\n\t\t"); + getch();system("cls"); + input(); + } + if(strcmp(work[i].ID,work[n].ID) == 0) + { + flag = 1; //IDѴڣflagΪ1 + break; + } + } + if(flag) //ʾȽϽŴ/ + { + printf("\t\tùѴڣ\n\n"); + printf("\t\tǷ?(Y/N): "); + scanf("%*c%c",&c); + if(c == 'N' || c == 'n') break; + system("cls"); + continue; + } + printf("\n\t\tְϢ: \n\n"); + printf("\t\t:\t\t"); + scanf("%s",work[n].name); + printf("\t\tԱ:\t\t"); + scanf("%s",work[n].sex); + printf("\t\t:\t"); + scanf("%s",work[n].born); + printf("\t\tѧ:\t\t"); + scanf("%s",work[n].edu); + printf("\t\tְ:\t\t"); + scanf("%s",work[n].position); + do //빤ʣǷзϢ + { + int j; + char pay[10]; + sz=1; + printf("\t\t:\t\t"); + scanf("%s",pay); + for(j=0;j='0'&&pay[j]<='9'); + else sz=0; + } + if(sz==0) printf("\t\t벻ҪϢ\n\n"); + else strcpy(work[n].wage,pay); + }while(sz==0); + + printf("\t\tסַ:\t\t"); + scanf("%s",work[n].address); + + do //绰룬ǷзϢ + { + int j; + char num[15]; + sz=1; + printf("\t\t绰:\t\t"); + scanf("%s",num); + for(j=0;j='0'&&num[j]<='9'); + else sz=0; + } + if(sz==0) printf("\t\t벻ҪϢ\n\n"); + else strcpy(work[n].tel,num); + }while(sz==0); + + printf("\n\t\tǷ?(Y/N): "); + scanf("%*c%c",&c); + n ++; + } + while( c != 'N' && c != 'n'); + write(); //(ڴ)дļ + printf("\n\n\t\tѱ棡\n\n"); +} + + + +//ʾģ +void output_inf(int id) +{ + printf("\t\t|* *|\n"); + printf("\t\t| :\t%s\n",work[id].ID); + printf("\t\t| :\t%s\n",work[id].name); + printf("\t\t| Ա:\t%s\n",work[id].sex); + printf("\t\t| :\t%s\n",work[id].born); + printf("\t\t| ѧ:\t%s\n",work[id].edu); + printf("\t\t| ְ:\t%s\n",work[id].position); + printf("\t\t| :\t%s\n",work[id].wage); + printf("\t\t| סַ:\t%s\n",work[id].address); + printf("\t\t| 绰:\t%s\n",work[id].tel); + printf("\t\t|* *|\n"); + printf("\t\t|---------------------------------------------|\n"); + //printf("\n\n\n"); +} +void show()//ʾְϢ +{ + int i; + read(); + if(n == 0) printf("޼¼!\n\n"); + else + for(i = 0 ; i < n ; i ++) + { + if(i==0) printf("\n\t\t|=============================================|\n"); + output_inf(i);//ʾģ + if(i==(n-1)) printf("\t\t|=============================================|\n"); + } +} + + +//ѯģ +void que()//ѯϢ +{ + char num; + int flag,i; + char q_id[20] ;//ѯ + char q_name[20] ;//ѯ + char q_edu[20] ; //ѯѧ + char q_position[20] ;//ѯְλ + char c;//ָY?N + read();//򿪳ҪѯǰݣҪȶ + while(1) + { + system("cls"); + printf("\n\n"); + printf("\t\t|====================================================|\n"); + printf("\t\t| ѯ |\n"); + printf("\t\t|====================================================|\n"); + printf("\t\t|* *|\n"); + printf("\t\t| 1.Ųѯ |\n"); + printf("\t\t| |\n"); + printf("\t\t| 2.ѯ |\n"); + printf("\t\t| |\n"); + printf("\t\t| 3.ѧѯ |\n"); + printf("\t\t| |\n"); + printf("\t\t| 4.ְѯ |\n"); + printf("\t\t| |\n"); + printf("\t\t| ˳ģ |\n"); + printf("\t\t|* *|\n"); + printf("\t\t|====================================================|\n"); + printf("\t\tָ(1-4):"); + scanf("%*c%c",&num); + if(num <'1' || num >'4') + { + printf("\t\tָ\n\n"); + //printf( "˻˵\n"); + system("pause"); + printf( "\n\t\t˻˵\n\n"); + break; + } + system("cls"); + flag = 0;//ְϢǷ + if(num == '1')//Ųѯ + { + printf("\t\tҪѯְĹţ"); + scanf("%s",q_id); + for(i = 0 ; i < n ;i ++) + { + if( strcmp(work[i].ID,q_id) == 0) + { + output_inf(i); + flag = 1;// + break; + } + } + } + else if(num == '2')//ѯ + { + printf("\t\tҪѯְ"); + scanf("%s",q_name); + for(i = 0 ; i < n ;i ++) + { + if( strcmp(work[i].name,q_name) == 0) + { + output_inf(i); + flag = 1;// + } + } + } + else if(num == '3')//ѧѯ + { + printf("\t\tҪѯְѧ"); + + scanf("%s",q_edu); + for(i = 0 ; i < n ;i ++) + { + if( strcmp(work[i].edu,q_edu) == 0) + { + output_inf(i); + flag = 1;// + } + } + } + else if(num == '4')//ְѯ + { + printf("\t\tҪѯְְ"); + scanf("%s",q_position); + for(i = 0 ; i < n ;i ++) + { + if( strcmp(work[i].position,q_position) == 0) + { + output_inf(i); + flag = 1;// + } + } + } + if(!flag)//жǷиְϢ + { + printf("\n\n\t\t޸ְϢ!\n\n"); + } + printf("\n\n\t\tǷѯ(Y/N):"); + + scanf("%*c%c",&c); + if(c == 'N' || c == 'n') break; + } +} + +//޸Ϣģ +void mod()//޸ְϢ +{ + char change_ID[20];//޸ĵְĹ + int number;//ְϢеλ + char num;//ָ + char message[100];//޸ĵϢ + char c;//ָY?N + int flag; + int i; + int sz; + read(); + while(1) + { + flag = 0; + system("cls"); + printf("\n\n\t\t޸ĵְĹţ"); + scanf("%s",change_ID); + for(i = 0 ; i < n ; i ++) + { + if( strcmp(work[i].ID,change_ID) == 0 ) + { + number = i; + flag = 1; + break; + } + } + if(!flag) + { + printf("\n\n\t\t޴ԱϢ\n\n"); + printf("\n\n\t\tǷ޸(Y/N):"); + scanf("%*c%c",&c); + if(c == 'N' || c == 'n') break; + continue; + } + sz=1; + printf("\n\n"); + printf("\t\t|====================================================|\n"); + printf("\t\t| ޸ |\n"); + printf("\t\t|====================================================|\n"); + printf("\t\t|* *|\n"); + printf("\t\t| 1.޸ |\n"); + printf("\t\t| |\n"); + printf("\t\t| 2.޸ѧ |\n"); + printf("\t\t| |\n"); + printf("\t\t| 3.޸ְ |\n"); + printf("\t\t| |\n"); + printf("\t\t| 4.޸Ĺ |\n"); + printf("\t\t| |\n"); + printf("\t\t| 5.޸סַ |\n"); + printf("\t\t| |\n"); + printf("\t\t| 6.޸ĵ绰 |\n"); + printf("\t\t| |\n"); + printf("\t\t| ˳ģ |\n"); + printf("\t\t|* *|\n"); + printf("\t\t|====================================================|\n"); + printf("\n\t\tָ(1-6):"); + scanf("%*c%c",&num); + if(num < '1' || num > '6') + { + printf("\t\tָ\n\n"); + system("pause"); + continue; + } + system("cls"); + printf("\n\n\t\t޸ĺϢ"); + scanf("%s",message); + printf("\n\n\t\tȷҪ޸(Y/N)"); + scanf("%*c%c",&c); + if(c == 'N' || c == 'n') {sz=0;break;} + switch(num) + { + case '1' : strcpy(work[number].name,message); break; + case '2' : strcpy(work[number].edu,message); break; + case '3' : strcpy(work[number].position,message); break; + case '4' : strcpy(work[number].wage,message); break; + case '5' : strcpy(work[number].address,message); break; + case '6' : strcpy(work[number].tel,message); break; + } + system("cls"); + printf("\n\n\t\tǷ޸(Y/N):"); + scanf("%*c%c",&c); + if(c == 'N' || c == 'n') {if(sz==1) write();break;} + else {if(sz==1) write();if(sz==0) read();} + } + +} + + +//ɾϢģ +void del()//ɾְϢ +{ + char delete_ID[20];//ɾְ + int i,j; + int flag;//ǷиְϢ + char c; + read(); + while(1) + { + system("cls"); + flag = 0; + printf("\t\tɾְϢĹţ"); + scanf("%s",delete_ID); + for(i = 0 ; i < n ; i ++) + { + if( strcmp(work[i].ID,delete_ID) == 0) + { + n --; + flag = 1; + for(j = i ; j < n ; j ++) + { + work[j] =work[j + 1]; + } + break; + } + } + if(!flag) printf("\n\n\t\t޴ԱϢ\n\n"); + else printf("\n\n\t\tɾɹ\n"); + printf("\n\n\t\tǷɾ(Y/N):"); + scanf("%*c%c",&c); + if(c == 'N' || c == 'n') break; + } + write(); +} + +//˵ģ +void menu()//˵ +{ + //printf("\t\t************ְϢϵͳ˵**********\n"); + printf("\n\n"); + printf("\t\t|====================================================|\n"); + printf("\t\t| ѧϢϵͳ |\n"); + printf("\t\t|====================================================|\n"); + printf("\t\t|* *|\n"); + printf("\t\t| 1.¼ְϢ |\n"); + printf("\t\t| |\n"); + printf("\t\t| 2.ʾְϢ |\n"); + printf("\t\t| |\n"); + printf("\t\t| 3.ѯְϢ |\n"); + printf("\t\t| |\n"); + printf("\t\t| 4.޸ְϢ |\n"); + printf("\t\t| |\n"); + printf("\t\t| 5.ɾְϢ |\n"); + printf("\t\t| |\n"); + printf("\t\t| 0.˳ |\n"); + printf("\t\t|* *|\n"); + printf("\t\t|====================================================|\n"); + printf("\t\t\n"); + printf("\t\tָ(0-5): "); +} + + +int main() +{ + int num; + n = 0; + system("color 0B"); + while(1) + { + menu(); //ò˵ + scanf("%d",&num); + system("cls"); + switch(num) + { + case 1: input(); break; + case 2: show(); break; + case 3: que(); break; + case 4: mod(); break; + case 5: del(); break; + case 0: printf("\t\tллʹã\n\n"); return 0; + default :printf("\n\t\t--->Чָ!\n\n\n"); + } + system("pause"); + system("cls"); + } +} + diff --git a/职工信息管理系统.exe b/职工信息管理系统.exe new file mode 100644 index 0000000..6ded72f Binary files /dev/null and b/职工信息管理系统.exe differ