#include #include #include #include int i=1; struct staffsinfor { char staffnums[100]; char name[100]; char sex[100]; char year[100]; char studyF[100]; char homedress[100]; char money[100]; char phonenum[100]; }staffs[50]; void reader() { FILE *fp; int n = 0; if( (fp = fopen("g:\\..txt","r")) == NULL ) { return 0; } fscanf(fp,"%d\n",&i); while(n < i) { fscanf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n",staffs[n].staffnums,staffs[n].name,staffs[n].sex,staffs[n].studyF,staffs[n].homedress,staffs[n].money,staffs[n].phonenum); n ++; } fclose(fp); } void writeer() { FILE *fp; int n = 0; if( (fp = fopen("g:\\..txt","wb")) == NULL ) { return ; } fprintf(fp,"%d\n",i); while(n < i) { fprintf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n",staffs[n].staffnums,staffs[n].name,staffs[n].sex,staffs[n].studyF,staffs[n].homedress,staffs[n].money,staffs[n].phonenum); n ++; } fclose(fp); } void input(struct staffsinfor staffs[]){ int n; int a; int c,d; reader(); system("cls"); do { system("cls"); printf("\t\t\t\t您在进行的是信息录入!\t\t\t\n\n\n"); a = 0; printf("\t\t请输入职工的工号: \n\t\t"); scanf("%s",staffs[i].staffnums); for(n = 0 ; n < i ; n ++) { if(strcmp(staffs[n].staffnums,staffs[i].staffnums) == 0) { a = 1; break; } } if(a!=0) { MessageBox(NULL,"职工号已存在","系统提示",MB_OK); d= MessageBox(NULL,"是否继续","系统提示",MB_YESNO); if(d==6) continue; break; } printf("\t\t请输入职工的姓名: \n\t\t"); scanf("%s",staffs[i].name); printf("\t\t请输入职工的性别: \n\t\t"); scanf("%s",staffs[i].sex); printf("\t\t请输入职工的年龄: \n\t\t"); scanf("%s",staffs[i].year); printf("\t\t请输入职工的学历: \n\t\t"); scanf("%s",staffs[i].studyF); printf("\t\t请输入职工的工资: \n\t\t"); scanf("%s",staffs[i].money); printf("\t\t请输入职工的住址: \n\t\t"); scanf("%s",staffs[i].homedress); printf("\t\t请输入职工的电话: \n\t\t"); scanf("%s",staffs[i].phonenum); c=MessageBox(NULL,"是否继续","系统提示",MB_YESNO); i ++; }while( c ==6); writeer(); MessageBox(NULL,"操作完成","系统提示",MB_OK); } void look(struct staffsinfor staffs[]){ int j;;char o; reader();j=i-1; three : system("cls"); printf("\t\t\t\t您在进行的是浏览名单!\n\n\n"); if(j==0) { MessageBox(NULL,"未找到名单信息!","系统提示",MB_OK); return 0; } system("cls"); printf("\t\t\t姓名:\n\t\t\t\t\t\t\t%s",staffs[j].name); printf("\n\t\t\t职工号:\n\t\t\t\t\t\t\t%s",staffs[j].staffnums); printf("\n\t\t\t性别:\n\t\t\t\t\t\t\t%s",staffs[j].sex); printf("\n\t\t\t年龄:\n\t\t\t\t\t\t\t%s",staffs[j].year); printf("\n\t\t\t学历:\n\t\t\t\t\t\t\t%s",staffs[j].studyF); printf("\n\t\t\t工资:\n\t\t\t\t\t\t\t%s",staffs[j].money); printf("\n\t\t\t家庭住址:\n\t\t\t\t\t\t\t%s",staffs[j].homedress); printf("\n\t\t\t电话号码:\n\t\t\t\t\t\t\t%s",staffs[j].phonenum); printf("\n\n\n\t\t\t\t\t\t按A和D切换名单\n\t\t\t\t\t\t按BackSpace退回菜单"); o=getch(); if(o=='A') { if(j==1) {system("cls"); printf("这已经是第一个了"); system("pause"); goto three; } j--; goto three; } if(o=='D') { if(j==i&&j!=i) {system("cls"); printf("这是最后一个了"); system("pause"); goto three; } j++; goto three; } if(o==8) return 0; } void output_inf(int id) { printf("\t\t 姓名: %s\n",staffs[id].name); printf("\t\t 工号: %s\n",staffs[id].staffnums); printf("\t\t 性别: %s\n",staffs[id].sex); printf("\t\t 年龄: %s\n",staffs[id].year); printf("\t\t 学历: %s\n",staffs[id].studyF); printf("\t\t 工资: %s\n",staffs[id].money); printf("\t\t 住址: %s\n",staffs[id].homedress); printf("\t\t 电话: %s\n",staffs[id].phonenum); printf("\n\n\n"); } void shanchu(){ int n,j;char delete_ID[20]; int flag; char c; reader(); while(1) { system("cls"); flag = 0; printf("请输入需删除职工信息的工号:"); scanf("%s",delete_ID); for(n=0;n 2) { printf("错误指令!\n\n"); system("pause"); continue; } system("cls"); flag = 0;//用来标记职工信息是否存在 if(num == 1)//按工号查询 { printf("\t\t请输入您要查询职工的工号:"); scanf("%s",q_id); for(n = 0 ; n < i ;n ++) { if( strcmp(staffs[n].staffnums,q_id) == 0) { output_inf(n); flag = 1;//标记 break; } } } else if(num == 2)//按姓名查询 { printf("\t\t请输入您要查询职工的姓名:"); scanf("%s",q_name); for(n = 0 ; n < i ;n ++) { if( strcmp(staffs[n].name,q_name) == 0) { output_inf(n); flag = 1;//标记 } } } else if(num ==0) return 0; if(!flag)//判断是否有该职工信息 { printf("\n\n无该职工信息!\n\n"); } int k; k= MessageBox(NULL,"是否继续?","系统提示",MB_YESNO); if(k!=6) break; } } void xiugai(){ char change_ID[20];//需修改的职工的工号 int number;//职工信息在数据中的位置 char num;//指令 char message[100];//修改的信息 char c;//指令Y?N int flag; int n; reader(); while(1) { flag = 0; system("cls"); printf("请输入需修改的职工的工号:"); scanf("%s",change_ID); for(n = 0 ; n < i ; n ++) { if( strcmp(staffs[n].staffnums,change_ID) == 0 ) { number = n; flag = 1; break; } } if(!flag) { printf("\n\n无此员工信息!!\n\n"); c=MessageBox(NULL,"是否继续?","系统提示",MB_YESNO); if(c==6) continue; break; } printf("\n\n\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* 按0退出 *\n"); printf("\t\t******************************************\n"); printf("\t\t请输入指令(1-6):"); scanf("%*c%c",&num); if(num < '1' || num > '6') { printf("错误指令!\n\n"); system("pause"); continue; } system("cls"); printf("请输入修改后的信息:"); scanf("%s",message); switch(num) { case '1' : strcpy(staffs[number].name,message); break; case '2' : strcpy(staffs[number].studyF,message); break; case '3' : strcpy(staffs[number].money,message); break; case '4' : strcpy(staffs[number].homedress,message); break; case '5' : strcpy(staffs[number].phonenum,message); break; case '6' : strcpy(staffs[number].sex,message);break; case '0' :exit(1); } system("cls");int k; k=MessageBox(NULL,"是否继续?","系统提示",MB_YESNO); if(k==6) break; } writeer(); } int main() { char a; /*职工信息管理系统设计(最多2人) 职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。 试设计一职工信息管理系统,使之能提供以下功能: 1、系统以菜单方式工作 2、职工信息录入功能(职工信息用文件保存)--输入 3、职工信息浏览功能--输出 4、职工信息查询功能--算法 查询方式 按学历查询等 按职工号查询等 5、职工信息删除、修改功能(可选项)*/ one : system("cls"); printf("\t\t\t\t管理菜单\t\t\t\t\n"); printf("**********************************************************************\n\n\n"); printf("\t\t\t\tA.录入信息\t\t\t\t\n\n"); printf("\t\t\t\tB.浏览名单\t\t\t\t\n\n"); printf("\t\t\t\tC.查询信息\t\t\t\t\n\n"); printf("\t\t\t\tD.删除信息\t\t\t\t\n\n"); printf("\t\t\t\tE.修改信息\t\t\t\t\n\n"); printf("\t\t\t\t\t按BackSpace返回上一页\n\n\n"); printf("\t\t\t\t\tBy--罗丁,高论域\n\n"); printf("**********************************************************************\n"); a=getch(); if(a=='A') { input(staffs); goto one; } else if(a=='B') { look(staffs); goto one; } else if(a=='C') { que(staffs); goto one; } else if(a=='D') { shanchu(); goto one; } else if(a=='E') { xiugai(); goto one; } else { printf("输入错误!"); system("pause"); goto one; } return 0; }