xinxi[i].jiangjin, xinxi[i].shuidian, xinxi[i].fangzu);
void add(yuangong xinxi[],int realmoney[]) //(2)添加员工信息函数 {
if (xinren.gonghao < xinxi[0].gonghao) //小于第一个员工工号{
for (i = 10; i > 0; i--) {
时插入到第一个位置
int x,i,j,k,m;
struct yuangong xinren; //定义新员工结构体 begin2: //程序返回开始处 printf(\请以下次序输入新员工的信息\\n\);
printf(\工号 姓名 基本工资 补贴 奖金 水电 房租\\n\);scanf(\,&xinren.gonghao, xinren.name,
for (i = 0; i < 10; i++) //判断输入的新员工工{ }
if (xinren.gonghao == xinxi[i].gonghao) { }
printf(\当前工号已存在,请检查后重新输入\\n\);
goto begin2; //如果工号已经存在,
if(j==0) { }
fanhuicaidan(); }
printf(\此员工不存在\\n\);
goto begin1; //若无此工号返回重 }
}
printf(\└─────────────────────────────j=1;
─────────────┘\\n\);
新输入
&xinren.gongzi,&xinren.butie,&xinren.jiangjin,&xinren.shuidian,&xinren.fangzu);
号是否已经存在
返回到开始处重新输入
}
}
xinxi[i] = xinxi[i - 1];
xinxi[0] = xinren;
if (xinren.gonghao > xinxi[9].gonghao) //大于最后一个员工工{ }
for (j = 0; j < 10; j++) //找到新员工工号位于
printf(\┌────────────────────────────────printf(\│工号 姓名 基本工资 补贴 奖金 printf(\├─────────────────────────────────for (i = 0; i < 11; i++) {
printf(\│%-8d%-24s%-16d%-10d%-10d%-8d%-8d│\\n\, xinxi[i].gonghao,
{ }
if (xinren.gonghao > xinxi[j].gonghao && xinren.gonghao < { }
for (k = 10; k > j; k--)
xinxi[k] = xinxi[k - 1]; xinxi[j + 1] = xinren;
xinxi[10] = xinren;
号时插入到最后位置
哪两个之间
xinxi[j + 1].gonghao)
──────────┐\\n\); 水电 房租 │\\n\); ─────────┤\\n\);
xinxi[i].name, xinxi[i].gongzi, xinxi[i].butie, xinxi[i].jiangjin, xinxi[i].shuidian, xinxi[i].fangzu);
}
printf(\└─────────────────────────────────}
─────────┘\\n\);
void del(yuangong xinxi[]) //(3)删除员工信息函数 {
if (m == 0) //通过m的{ } else {
for(j=0;j<10;j++)
if (strcmp(name, xinxi[j].name) == 0) {
for (k = j; k < 9; k++)
xinxi[k] = xinxi[k + 1];
printf(\未找到此员工,请核实后重新输入\\n\);
goto begin3; //未找到员
值进行操作
int x,i,j,k,m=0; char name[20];
begin3: //程序返回printf(\请输入要删除员工的名字:\); scanf(\, name);
for (i = 0; i < 10; i++) //判断文件{ }
if (strcmp(name, xinxi[i].name) == 0)
m = 1;
开始处
中有没有输入的名字并改变m的值
工,返回重新输入
}
}
printf(\┌────────────────────────────────printf(\│工号 姓名 基本工资 补贴 奖金 printf(\├─────────────────────────────────for (i = 0; i < 9; i++) {
printf(\│%-8d%-24s%-16d%-10d%-10d%-8d%-8d│\\n\, xinxi[i].gonghao,
──────────┐\\n\); 水电 房租 │\\n\); ─────────┤\\n\);
xinxi[i].name, xinxi[i].gongzi, xinxi[i].butie, xinxi[i].jiangjin, xinxi[i].shuidian, xinxi[i].fangzu);
}
printf(\└─────────────────────────────────}
─────────┘\\n\);
void real(yuangong xinxi[],int realmoney[]) //(4)计算实发工资函数 { }
void all(yuangong xinxi[], int realmoney[]) //(5)求所有员工各项总和函数 {
int x,allgongzi=0, allbutie=0,alljiangjin=0, allshuidian=0, allfangzu=0,allshifa=0,i; for (i = 0; i < 10; i++) { }
printf(\┌────────────────────────────────printf(\│总基本工资 总补贴 总奖金 总水电费 总房租 总printf(\├─────────────────────────────────printf(\│%-18d%-12d%-13d%-12d%-12d%-17d│
allgongzi = allgongzi + xinxi[i].gongzi; allbutie = allbutie + xinxi[i].butie;
alljiangjin = alljiangjin + xinxi[i].jiangjin; allshuidian = allshuidian + xinxi[i].shuidian; allfangzu = allfangzu + xinxi[i].fangzu; allshifa = allshifa + realmoney[i]; int i,x;
printf(\┌────────────────┐\\n\); printf(\│工号 姓名 实发工资 │\\n\); printf(\├────────────────┤\\n\); for(i=0;i<10;i++)
printf(\│%-9d%-12s%-11d│\\n\, xinxi[i].gonghao, xinxi[i].name,realmoney[i]); printf(\└────────────────┘\\n\); printf(\是否返回主菜单?是请按1,退出程序请按0并回车键确定:\); scanf(\, &x); switch (x) {
case 1:longjmp(fanhuizhi, 0); break; case 0:exit(0); break; }
──────────┐\\n\); 实发工资 │\\n\); ─────────┤\\n\);
\\n\,allgongzi,allbutie,alljiangjin,allshuidian,allfangzu,allshifa);
void rank(yuangong xinxi[], int realmoney[]) //(6)排序函数 { }
printf(\┌──────────────────────────────printf(\│工号 姓名 基本工资 补贴 奖金 水电 printf(\├───────────────────────────────for (i = 0; i < 10; i++)
printf(\│%-8d%-14s%-16d%-10d%-10d%-8d%-14d%-14d%-6d│\\n\,
xinxi[i].gonghao, xinxi[i].name, xinxi[i].gongzi, xinxi[i].butie,
────────────────────┐\\n\); 房租 实发工资 实发工资排名│\\n\); ───────────────────┤\\n\);
int i,x, j, k, t;
struct yuangong change; //定义一个用for (i = 0; i < 9; i++) //通过冒泡法{ }
for (j = 0; j < 9 - i; j++)
if (realmoney[j] > realmoney[j + 1]) { }
change = xinxi[j]; xinxi[j] = xinxi[j + 1]; xinxi[j + 1] = change; t = realmoney[j];
realmoney[j] = realmoney[j + 1]; realmoney[j + 1] = t;
printf(\└─────────────────────────────────fanhuicaidan(); }
─────────┘\\n\);
于交换的结构体 依据实发工资排序
xinxi[i].jiangjin, xinxi[i].shuidian, xinxi[i].fangzu, realmoney[i], i + 1);
printf(\└───────────────────────────────fanhuicaidan();
───────────────────┘\\n\);