附录〈源程序〉
#include
struct worker {
char name[30]; char ID[10];
int salary1,salary2,salary3; };
int dq(struct worker wo[]); void show();
void bc(struct worker wo[]); void add(); void see(); void search(); void ghcz(); void xmcz(); void del(); void xmsc(); void ghsc(); void statistics(); void modify(); void ghxg(); void xmxg(); void reserve(); void back(); void author();
struct worker wo[100]; //保存所有的职工信息int Number=0; //记录总的职工人数 void main() {
int choose=0; while(true) {
show();
printf(\请选择:\scanf(\system(\switch(choose) {
case 0: exit(0);//退出 break;
case 1: add();
back();//添加职工信息 break;
case 2: see();
back();//查看职工信息 break;
case 3: search();
back();// 查找职工信息 break;
case 4: del();
back();//删除职工信息 break;
case 5: statistics(); back();//统计职工工资
10
break;
case 6: modify();
back();//修改职工信息 break;
case 7:reserve(); back();//保存数据 break;
case 8:author(); back();//作者信息 break; default: break; }
fflush(stdin); getchar(); system(\} }
int dq(struct worker wo[]) {
FILE *fp=NULL; int i=0;
fp=fopen(\
while(fread(&wo[i],sizeof(struct worker),1,fp)) i++;
fclose(fp); return i; }
void show() {
printf(\
printf(\职工工资管理系统****************\\n\\n\printf(\☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆*\\n\\n\printf(\添加职工信息^^^^^^^^^^^^^^^^^\\n\printf(\查看职工信息^^^^^^^^^^^^^^^^^\\n\printf(\查找职工信息^^^^^^^^^^^^^^^^^\\n\printf(\删除职工信息^^^^^^^^^^^^^^^^^\\n\printf(\统计职工工资^^^^^^^^^^^^^^^^^\\n\printf(\修改职工信息^^^^^^^^^^^^^^^^^\\n\printf(\保 存 数 据^^^^^^^^^^^^^^^^^\\n\printf(\作 者 信 息^^^^^^^^^^^^^^^^^\\n\printf(\退 出 系 统^^^^^^^^^^^^^^^^^\\n\\n\printf(\★★★★★★★★★★★★★★★★★★★★★★★*\\n\}
void bc(struct worker *wo) {
FILE *fp=NULL;
fp=fopen(\fwrite(wo,sizeof(struct worker),1,fp); fclose(fp); }
//添加职工信息 void add() {
int numberTemp=0;
11
int i=0;
struct worker temp;
printf(\请输入要添加职工个数:\scanf(\for(i=0;i printf(\输入第%d个职工信息\\n\printf(\姓名:\ scanf(\printf(\工号:\scanf(\printf(\基本工资:\ scanf(\printf(\职务工资:\ scanf(\printf(\津贴:\ scanf(\ wo[Number++]=temp; //写入到数组 bc(&temp); //写入到文件 } printf(\添加成功\\n\} //查看职工信息 void see() { int i=0; printf(\以下是全部职工\\n\ printf(\姓名\\t工号\\t基本工资\\t职务工资\\t津贴\\n\while(i printf(\i++; } } //查找职工信息 void search() { int n=0; printf(\按姓名查找\\n\printf(\按工号查找\\n\ scanf(\switch(n) { case 1: xmcz(); break; case 2: ghcz(); break; default: printf(\输入错误!\\n\break; } } void xmcz()//按姓名查找 { char name[30]; int i=0; printf(\请输入要查找职工姓名:\scanf(\ 12 system(\ printf(\姓名\\t工号\\t基本工资\\t职务工资\\t津贴\\n\for (i=0;i if (strcmp(name,wo[i].name)==0) { printf(\} } } void ghcz()//按工号查找 { char id[10]; int i=0; printf(\请输入要查找职工工号:\scanf(\system(\ printf(\姓名\\t工号\\t基本工资\\t职务工资\\t津贴\\n\for (i=0;i if (strcmp(id,wo[i].ID)==0) { printf(\} } } //删除职工信息 void del() { int n=0; printf(\按姓名删除\\n\printf(\按工号删除\\n\scanf(\switch(n) { case 1: xmsc(); break; case 2: ghsc(); break; } } void xmsc()//按姓名删除 { FILE *fp=NULL; char name[30]; int i=0; int j=0; printf(\请输入要删除的职工姓名:\scanf(\for(i=0;i if (strcmp(name,wo[i].name)==0) { for (j=i;j wo[j]=wo[j+1]; } Number--; } 13 } //将剩余数据写入文件 擦除以前的数据 fp=fopen(\for (i=0;i fwrite(&wo[i],sizeof(struct worker),1,fp); } fclose(fp); printf(\删除成功;\\n\ } void ghsc()//按工号删除 { FILE *fp=NULL; char id[60]; int i=0; int j=0; printf(\请输入要删除的职工工号:\scanf(\ for(i=0;i if (strcmp(id,wo[i].ID)==0) { for (j=i;j wo[j]=wo[j+1]; } Number--; } } //将剩余数据写入文件 擦除以前的数据 fp=fopen(\for (i=0;i fwrite(&wo[i],sizeof(struct worker),1,fp); } fclose(fp); printf(\删除成功;\\n\} //统计职工工资 void statistics() { int i=0; double s=0.0; double sum[100]; for(i=0;i sum[i]=wo[i].salary1+wo[i].salary2+wo[i].salary3; printf(\的总工资为:%f\\n\} for(i=0;i s+=sum[i]; } printf(\平均工资为:%f\\n\ } 14