char function[32]; int wage; };
int read_file(struct employee st[]); void menu();
void write_file(struct employee st[]); void add();
void select(); //查看职工所有信息 void name_query(); //按姓名查询 void num_del(); //按工号删除 void tongji(); //统计 void sort(); //排序
void num_modify(); //按工号修改职工信息 void save(); //保存信息 void fh(); //返回主菜单
struct employee st[300]; //这个数组用来保存所有的职工信息 和文件里面的一致 int Number=0; //记录总的职工人数 也就是数组/文件里面的职工人数
void main() {
int choose=0; FILE *fp=NULL; char yesorno;
if((fp=fopen(\ {
printf(\提示:文件不存在,是否要创建一个?(y/n)\\n\ scanf(\ if(yesorno=='y'||yesorno=='Y') { //这里仅为了建立文件 fp=fopen(\
fclose(fp); //关闭fp所指的文件,释放文件缓冲区 } else exit(0); } else { Number=read_file(st); //要是文件已经有数据 将数据初始化到数组中 }
system(\ while(true) { menu();
printf(\请选择:\scanf(\system(\switch(choose) {
case 0:
exit(0); //退出
break; case 1: add();
fh();//增加职工信息
break; case 2: select();
fh();//查看职工信息
break; case 3:
name_query(); fh();// 查找 break;
case 4: num_del(); fh();//删除 break;
case 5: tongji(); fh();//统计 break; case 6: sort(); fh();//排序 break;
case 7:
num_modify(); fh();//修改后返回 break;
case 8: save(); fh();//保存
break; default:
break;
}
fflush(stdin); getchar(); system(\} }
void save() {
printf(\程序在运行时已自动保存.....\\n\}
void fh() {
printf(\按Enter键返回主菜单\\n\}
void num_modify() //修改职工信息 {
FILE *fp=NULL; char xh[60]; int i=0;
int changeIndex=0; //changeIndex 改变标记 int index=0;
printf(\请输入要修改的职工编号:\scanf(\
for (i=0;i if (strcmp(xh,st[i].num)==0) //比较输入工号和数组中已有工号 { changeIndex=i; //保存要修改的人的下标 break; } } printf(\工号\\t姓名\\t性别\\t部门\\t职能\\t工资\\n\ printf(\x].sex,st[changeIndex].department,st[changeIndex].function,st[changeIndex].wage); printf(\请重新输入该职工信息\printf(\工号:\ scanf(\printf(\姓名:\ scanf(\printf(\性别:\ scanf(\ printf(\部门:\ scanf(\printf(\职能:\ scanf(\printf(\工资:\ scanf(\ //信息修改后重新更新文件里面的数据 以保持数据一致性 fp=fopen(\for (i=0;i fwrite(&st[i],sizeof(struct student),1,fp); 入到fp所指向的文件中 } fclose(fp); printf(\修改成功\\n\} void sort()//排序 { struct student t; int wantNUmber=0; int i=0; int j=0; int k=0; for(i=0;i for(j=i+1;j { if(st[j].wage>st[k].wage) k=j; } if(k!=i) { t=st[i]; st[i]=st[k]; st[k]=t; } } printf(\你想输出前几名的成绩:\scanf(\if (wantNUmber>Number) //把ptr所指向n*size个字节输 { wantNUmber=Number; } printf(\工号\\t姓名\\t性别\\t部门\\t职能\\t工资\\n\for(i=0;i { printf(\ge); } } void tongji()//统计 { int i,m,k,max,min; double sum=0.0; for(i=0;i sum+=st[i].wage; } printf(\总工资为:%f\\n\ printf(\平均工资为:%f\\n\i=0;m=0;max=0; max=st[m].wage; for(i=1;i if (st[i].wage>max) m=i; max=st[m].wage; } printf(\最高工资为:%d\\n\ printf(\st[m].wage); i=0;k=0;min=0; min=st[0].wage; for(i=1;i { if (st[i].wage min=st[k].wage; } printf(\最底工资分:%d\\n\ printf(\.wage); } 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言职工信息管理系统课程设计(2)在线全文阅读。
相关推荐: