C语言课程设计报告教师工资管理系统职工工资管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计教师工资管理系统运行平台:VC6.0〔其他平台未经测试,不一定保证有效〕
制弓箭中南大学信息科学与工程学院
源代码如下:
*include <stdio.h>
*include <stdlib.h>
*include <string.h>
*include <conio.h>
*define LEN sizeof(struct teacher)
struct teacher
{
int num;
char name[20];
char sex[20];
char workplace[50];
char address[50];
long phone;
double de_salary;
double de_jintie;
double de_shenghuobutie;
double yingfa_salary;
double cost_phone;
double cost_water_elec;
double cost_rent;
double cost_tax;
double cost_weisheng;
double cost_gongjijin;
double cost_all;
double shifa_salary;
struct teacher *next;
};
/***********************************读取函数************************************/
struct teacher *load()
{
struct teacher *p1,*p2,*head;
FILE *fp;
int i=1;
if((fp=fopen("save","rb"))==NULL)
{
printf(" 文件不存在!按下任意键返回主菜单...");getch();
return (NULL);
}
else
{
head=NULL;
p1=(struct teacher *)malloc(LEN);
while (fread(p1,LEN-4,1,fp)==1)
{
if(i==1)
{
head=p1;
p2=p1;
i=2;
}
else
{
p2->next=p1;
p2=p2->next;
}
p1=(struct teacher *)malloc(LEN);
}
p2->next=NULL;
free(p1);
fclose(fp);
return(head);
}
}
/**********************************欢送菜单函数*************************************/
void wele()
{
printf("\n\n\n >>>>>欢送使用教师工资管理系统Beta1.2<<<<<\n");
printf(" *******************************************************\n");
printf(" * C语言课程设计教师工资管理系统*\n");
printf(" * 班级:电气信息类1001班学号:0909100119 *\n");
printf(" * XX:弓箭*\n");
printf(" *******************************************************\n");
printf("\n\n 按下任意键进入系统...");
getch();
system("cls");
}
/**********************************制作人员*************************************/
void list()
{
system("cls");
printf("\n\n\n >>>>>所有侵权必究<<<<<\n");
printf("*******************************************************************************\n");
printf("* 学校(College): 中南大学Central South University *\n");
printf("* 软件名称(Software):教师工资管理系统Teacher's Salary Managing System *\n");
printf("* 版本号(Edition): Beta1.2 *\n");
printf("* 制作人(Producer):弓箭James *\n");
printf("* 所在班级(Class):电气信息类1001班Electric Information 1001 *\n");
printf("* 所在学院(Institute):信息科学与工程学院Information Engineering Institute*\n");
printf("*******************************************************************************\n");
printf(" >>>>>ILLEGAL COPY BANNED<<<<<\n");
printf("\n\n 按下任意键返回主菜单...");
getch();
}
/***********************************菜单函数*****************************************/
int menu()
{
int i;
printf("\n\n\n >>>>>欢送使用教师工资管理系统Beta1.2<<<<<\n");
printf(" *******************************************************\n");
printf(" * 1.输入教师信息*\n");
printf(" * 2.插入教师信息*\n");
printf(" * 3.修改教师信息*\n");
printf(" * 4.删除教师信息*\n");
printf(" * 5.浏览教师信息*\n");
printf(" * 6.显示制作人员*\n");
printf(" * 7.退出系统*\n");
printf(" *******************************************************\n");
printf(" 请输入你想要的操作:");
scanf("%d",&i);getchar();
return i;
}
/***********************************插入函数*****************************************/
void input()
{
struct teacher *head,*p1,*p2,*p3,*px;
int i,t;
FILE *fp;
char k,n='n',num[30],name[20];
p1=p2=p3=px=(struct teacher *)malloc(LEN);
if((head=load())!=NULL)
{
do
{
n='n';
printf(" 请输入要插入的教师信息:\n");
printf(" ------------------------------\n");
printf(" 请输入教工号:");gets(num);px->num=atoi(num);
printf(" 请输入XX:");gets(px->name);
printf(" 请输入性别:");gets(px->sex);
printf(" 请输入单位名称:");gets(px->workplace);
printf(" 请输入家庭住址:");gets(px->address);
printf(" 请输入联系:");gets(num);px->phone=atoi(num);
printf(" 请输入根本工资:");gets(num);px->de_salary=atof(num);
printf(" 请输入津贴:");gets(num);px->de_jintie=atof(num);
printf(" 请输入生活补贴:");gets(num);px->de_shenghuobutie=atof(num);
printf(" 请输入费:");gets(num);px->cost_phone=atof(num);
printf(" 请输入水电费:");gets(num);px->cost_water_elec=atof(num);
printf(" 请输入房租:");gets(num);px->cost_rent=atof(num);
printf(" 请输入个人所得税:");gets(num);px->cost_tax=atof(num);
printf(" 请输入卫生费:");gets(num);px->cost_weisheng=atof(num);
printf(" 请输入公积金:");gets(num);px->cost_gongjijin=atof(num);
px->yingfa_salary=px->de_salary+px->de_jintie+px->de_shenghuobutie;
px->cost_all=px->cost_phone+px->cost_water_elec+px->cost_rent+px->cost_tax+px->cost_weisheng+px->cost_g ongjijin;
px->shifa_salary=px->yingfa_salary-px->cost_all;
printf(" 数据输入完毕,按下任意键继续...");getch();
system("cls");
printf("\n\n\n >>>>>>>>>>> 插入教师信息<<<<<<<<<<<\n");
printf(" *******************************************************\n");
printf(" * 1.输入教师号*\n");
printf(" * 2.输入XX *\n");
printf(" * 3.返回上级菜单*\n");
printf(" *******************************************************\n");
printf(" 请选择插入式:");
scanf("%d",&i);getchar();
while (i<1||i>3)
{
printf(" 输入有误!请重新输入:");
scanf("%d",&i);getchar();
}
switch(i)
{
case 1:printf(" 请输入要插入在哪条数据后面:");
scanf("%d",&t);getchar();
p1=head;
while (p1->num!=t)
{
if (p1->next!=NULL)
{ p1=p1->next;
}
else
{
printf(" 查找不到相关数据!\n");
break;
}
}
if (p1->num==t)
{
printf("-----------------------------要插入的信息如下:--------------------------------\n");
printf("教工号XX 性别单位名称家庭住址联系\n");
printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",px->num,px->name,px->sex,px->workplace,px->address,px->phone);
printf("费水电费房租个人所得税卫生费公积金合计扣款\n");
printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf\n",px->cost_phone,px->cost_water_elec,px ->cost_rent,px->cost_tax,px->cost_weisheng,px->cost_gongjijin,px->cost_all);
printf("根本工资津贴生活补贴应发工资实发工资\n");
printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",px->de_salary,px->de_jintie,px->de_shenghuobutie,px->yin gfa_salary,px->shifa_salary);
printf("-------------------------------------------------------------------------------\n");
printf(" 确定插入吗.〔y或n〕:");
scanf("%c",&k);getchar();
}
if (k=='y'||k=='Y')
{
if (p1->num==t)
{
if(p1==head)/*如果插入点为头指针*/
{
p3=p1->next;
p1->next=px;
px->next=p3;
p2=head;
}
else if(p1->next==NULL)/*如果插入点为末尾指针*/
{
p3=p1;p1=head;p2=head;
while(p1->next!=p3)
{p1=p1->next;}
p1=p1->next;
p1->next=px;
px->next=NULL;
}
else{/*如果插入点为中间指针*/
p3=p1;p1=head;p2=head;
while(p1->next!=p3)
{p1=p1->next;}
p1=p1->next;
p3=p1->next;
px->next=p3;
p1->next=px;
}
if((fp=fopen("save","wb"))==NULL)
{
printf(" 文件不存在!按下任意键返回主菜单...");getch();
}
else
{
do
{
fwrite(p2,LEN-4,1,fp);
if(p2->next!=NULL)
p2=p2->next;
}while(p2->next!=NULL);
if(p2!=head)
fwrite(p2,LEN-4,1,fp);
}fclose(fp);
printf(" 插入成功!按下任意键继续...");getch();
}
}
else {printf(" 插入已被取消!按下任意键继续...");getch();}
break;
case 2:printf(" 请输入要插入的教师XX:");
gets(name);
p1=head;
while (strcmp((p1->name),name)!=0)
{
if (p1->next!=NULL)
p1=p1->next;
else
{
printf(" 查找不到相关数据!\n");
break;
}
}
if (strcmp((p1->name),name)==0)
{
printf("-----------------------------要插入的信息如下:--------------------------------\n");
printf("教工号XX 性别单位名称家庭住址联系\n");
printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",p1->num,p1->name,p1->sex,p1->workplace,p1->address,p1->phone);
printf("费水电费房租个人所得税卫生费公积金合计扣款\n");
printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf \n",p1->cost_phone,p1->cost_water_elec,p1->cost_rent,p1->cost_tax,p1->cost_weisheng,p1->cost_gongjijin,p1->cost_all);
printf("根本工资津贴生活补贴应发工资实发工资\n");
printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",p1->de_salary,p1->de_jintie,p1->de_shenghuobutie,p1->yin gfa_salary,p1->shifa_salary);
printf("-------------------------------------------------------------------------------\n");
printf(" 确定插入吗.〔y或n〕:");
scanf("%c",&k);getchar();
}
if (k=='y'||k=='Y')
{
if (strcmp((p1->name),name)==0)
{
if(p1==head)/*如果插入点为头指针*/
{
p1->next=px;
p2=head;
}
else if(p1->next==NULL)/*如果插入点为末尾指针*/
{
p3=p1;p1=head;p2=head;
while(p1->next!=p3)
{p1=p1->next;}
p1=p1->next;
p1->next=px;
px->next=NULL;
}
else{/*如果插入点为中间指针*/
p3=p1;p1=head;p2=head;
while(p1->next!=p3)
{p1=p1->next;}
p1=p1->next;
p1->next=px;
p3=p3->next;
px->next=p3;
}
if((fp=fopen("save","wb"))==NULL)
{
printf(" 文件不存在!按下任意键返回主菜单...");getch();
}
else
{
do
{
fwrite(p2,LEN-4,1,fp);
if(p2->next!=NULL)
p2=p2->next;
}while(p2->next!=NULL);
if(p2!=head)
fwrite(p2,LEN-4,1,fp);
}fclose(fp);
printf(" 插入成功!按下任意键继续...");getch();
}
}
else {printf(" 插入已被取消!按下任意键继续...");getch();}
break;
case 3:break;
default :break;
}
if (i!=3)
{
printf("\n 继续插入其他教师的信息吗.〔y或n〕");
scanf("%c",&n);getchar();
}
}while((n=='y'||n=='Y')&&i!=3);
}
printf(" 数据插入成功!按下任意键返回主菜单...");getch();
getchar();
}
/***********************************输入函数*****************************************/
void insert()
{
FILE *fp;
char m,num[30];
struct teacher *p1;
p1=(struct teacher *)malloc(LEN);
if((fp=fopen("save","ab"))==NULL)
{
printf(" 文件不存在!按下任意键返回主菜单...");getch();
}
else
{
printf(" 请输入教师信息:\n");
do
{
printf(" ------------------------------\n");
printf(" 请输入教工号:");gets(num);p1->num=atoi(num);
printf(" 请输入XX:");gets(p1->name);
printf(" 请输入性别:");gets(p1->sex);
printf(" 请输入单位名称:");gets(p1->workplace);
printf(" 请输入家庭住址:");gets(p1->address);
printf(" 请输入联系:");gets(num);p1->phone=atoi(num);
printf(" 请输入根本工资:");gets(num);p1->de_salary=atof(num);
printf(" 请输入津贴:");gets(num);p1->de_jintie=atof(num);
printf(" 请输入生活补贴:");gets(num);p1->de_shenghuobutie=atof(num);
printf(" 请输入费:");gets(num);p1->cost_phone=atof(num);
printf(" 请输入水电费:");gets(num);p1->cost_water_elec=atof(num);
printf(" 请输入房租:");gets(num);p1->cost_rent=atof(num);
printf(" 请输入个人所得税:");gets(num);p1->cost_tax=atof(num);
printf(" 请输入卫生费:");gets(num);p1->cost_weisheng=atof(num);
printf(" 请输入公积金:");gets(num);p1->cost_gongjijin=atof(num);
p1->yingfa_salary=p1->de_salary+p1->de_jintie+p1->de_shenghuobutie;
p1->cost_all=p1->cost_phone+p1->cost_water_elec+p1->cost_rent+p1->cost_tax+p1->cost_weisheng+p1->cost_g ongjijin;
p1->shifa_salary=p1->yingfa_salary-p1->cost_all;
fwrite(p1,LEN-4,1,fp);
printf(" 输入下一个.〔y或n〕");
m=getchar();
if(m!='y'&&m!='Y')
{printf(" 数据保存成功!按下任意键返回主菜单...");getch();}
getchar();
}while (m=='y'||m=='Y');
}
fclose(fp);
}
/***********************************修改函数*****************************************/
void modify()
{
struct teacher *head,*p1,*p2;
int i;
FILE *fp;
char m='n',n='n',num2[30];
p1=head=(struct teacher *)malloc(LEN);
if((head=load())!=NULL)
{
do
{
int num=0;
char name[20];
p1=head;
system("cls");
printf("\n\n\n >>>>>>>>>>> 修改教师信息<<<<<<<<<<<\n");
printf(" *******************************************************\n");
printf(" * 1.输入教师号*\n");
printf(" * 2.输入XX *\n");
printf(" * 3.返回上级菜单*\n");
printf(" *******************************************************\n");
printf(" 请选择修改式:");
scanf("%d",&i);getchar();
while (i<1||i>3)
{
printf(" 输入有误!请重新输入:");
scanf("%d",&i);getchar();
}
switch(i)
{
case 1:printf(" 请输入要修改的教师号:");
scanf("%d",&num);getchar();
while (p1->num!=num)
{
if (p1->next!=NULL)
p1=p1->next;
else
{
printf(" 查找不到相关数据!\n");
break;
}
}
if (p1->num==num)
{
system("cls");
printf("\n\n\n >>>>>欢送使用教师工资管理系统Beta1.2<<<<<\n");
printf("----------------------------------原信息如下:---------------------------------\n");
printf("教工号XX 性别单位名称家庭住址联系\n");
printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",p1->num,p1->name,p1->sex,p1->workplace,p1->address,p1->phone);
printf("费水电费房租个人所得税卫生费公积金合计扣款\n");
printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf\n",p1->cost_phone,p1->cost_water_elec,p1 ->cost_rent,p1->cost_tax,p1->cost_weisheng,p1->cost_gongjijin,p1->cost_all);
printf("根本工资津贴生活补贴应发工资实发工资\n");
printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",p1->de_salary,p1->de_jintie,p1->de_shenghuobutie,p1->yin gfa_salary,p1->shifa_salary);
printf("-------------------------------------------------------------------------------\n");
printf(" *******************************************************\n");
printf(" * 1.教师号 2.XX *\n");
printf(" * 3.性别 4.单位名称*\n");
printf(" * 5.家庭住址 6.联系*\n");
printf(" * 7.根本工资8.津贴*\n");
printf(" * 9.生活补贴10.费*\n");
printf(" * 11.水电费12.房租*\n");
printf(" * 13.所得税14.卫生费*\n");
printf(" * 15.公积金*\n");
printf(" *******************************************************\n");
do
{
printf(" 请选择要修改的数据:");
scanf("%d",&i);getchar();
while (i>15||i<1)
{
printf(" 输入有误!请重新输入:");
scanf("%d",&i);getchar();
}
switch(i)
{
case 1:printf(" 请输入新教师号:");gets(num2);p1->num=atoi(num2);break;
case 2:printf(" 请输入新XX:");gets(p1->name);break;
case 3:printf(" 请输入新性别:");gets(p1->sex);break;
case 4:printf(" 请输入新单位名称:");gets(p1->workplace);break;
case 5:printf(" 请输入新家庭住址:");gets(p1->address);break;
case 6:printf(" 请输入新联系:");gets(num2);p1->phone=atoi(num2);break;
case 7:printf(" 请输入新根本工资:");gets(num2);p1->de_salary=atof(num2);break;
case 8:printf(" 请输入新津贴:");gets(num2);p1->de_jintie=atof(num2);break;
case 9:printf(" 请输入新生活补贴:");gets(num2);p1->de_shenghuobutie=atof(num2);break;
case 10:printf(" 请输入新费:");gets(num2);p1->cost_phone=atof(num2);break;
case 11:printf(" 请输入新水电费:");gets(num2);p1->cost_water_elec=atof(num2);break;
case 12:printf(" 请输入新房租:");gets(num2);p1->cost_rent=atof(num2);break;
case 13:printf(" 请输入新所得税:");gets(num2);p1->cost_tax=atof(num2);break;
case 14:printf(" 请输入新卫生费:");gets(num2);p1->cost_weisheng=atof(num2);break;
case 15:printf(" 请输入新公积金:");gets(num2);p1->cost_gongjijin=atof(num2);break;
default:break;
}
p1->yingfa_salary=p1->de_salary+p1->de_jintie+p1->de_shenghuobutie;
p1->cost_all=p1->cost_phone+p1->cost_water_elec+p1->cost_rent+p1->cost_tax+p1->cost_weisheng+p1->cost_g ongjijin;
p1->shifa_salary=p1->yingfa_salary-p1->cost_all;
printf(" 继续修改其他数据吗.(y或n):");
scanf("%c",&m);getchar();
}while (m=='y'||m=='Y');
p2=head;
if((fp=fopen("save","wb"))==NULL)
{
printf(" 文件不存在!按下任意键返回主菜单...");getch();
}
else
{
fwrite(head,LEN-4,1,fp);
do
{
p2=p2->next;
fwrite(p2,LEN-4,1,fp);
}while(p2->next!=NULL);
printf("------------------------------修改后数据如下:---------------------------------\n");
printf("教工号XX 性别单位名称家庭住址联系\n");
printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",p1->num,p1->name,p1->sex,p1->workplace,p1->address,p1->phone);
printf("费水电费房租个人所得税卫生费公积金合计扣款\n");
printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf \n",p1->cost_phone,p1->cost_water_elec,p1->cost_rent,p1->cost_tax,p1->cost_weisheng,p1->cost_gongjijin,p1->cost_all);
printf("根本工资津贴生活补贴应发工资实发工资\n");
printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",p1->de_salary,p1->de_jintie,p1->de_shenghuobutie,p1->yin gfa_salary,p1->shifa_salary);
printf("-------------------------------------------------------------------------------\n");
}
fclose(fp);
}
break;
case 2:printf(" 请输入要修改的教师XX:");
gets(name);
while (strcmp(p1->name,name)!=0)
{
if (p1->next!=NULL)
p1=p1->next;
else
{
printf(" 查找不到相关数据!\n");
break;
}
}
if (strcmp(p1->name,name)==0)
{
system("cls");
printf("\n\n\n >>>>>欢送使用教师工资管理系统Beta1.2<<<<<\n");
printf("----------------------------------原信息如下:---------------------------------\n");
printf("教工号XX 性别单位名称家庭住址联系\n");
printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",p1->num,p1->name,p1->sex,p1->workplace,p1->address,p1->phone);
printf("费水电费房租个人所得税卫生费公积金合计扣款\n");
printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf \n",p1->cost_phone,p1->cost_water_elec,p1->cost_rent,p1->cost_tax,p1->cost_weisheng,p1->cost_gongjijin,p1->cost_all);
printf("根本工资津贴生活补贴应发工资实发工资\n");
printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",p1->de_salary,p1->de_jintie,p1->de_shenghuobutie,p1->yin gfa_salary,p1->shifa_salary);
printf("-------------------------------------------------------------------------------\n");
printf(" *******************************************************\n");
printf(" * 1.教师号 2.XX *\n");
printf(" * 3.性别 4.单位名称*\n");
printf(" * 5.家庭住址 6.联系*\n");
printf(" * 7.根本工资8.津贴*\n");
printf(" * 9.生活补贴10.费*\n");
printf(" * 11.水电费12.房租*\n");
printf(" * 13.所得税14.卫生费*\n");
printf(" * 15.公积金*\n");
printf(" *******************************************************\n");
do
{
printf(" 请选择要修改的数据:");
scanf("%d",&i);getchar();
while (i>15||i<1)
{
printf(" 输入有误!请重新输入:");
scanf("%d",&i);getchar();
}
switch(i)
{
case 1:printf(" 请输入新教师号:");gets(num2);p1->num=atoi(num2);break;
case 2:printf(" 请输入新XX:");gets(p1->name);break;
case 3:printf(" 请输入新性别:");gets(p1->sex);break;
case 4:printf(" 请输入新单位名称:");gets(p1->workplace);break;
case 5:printf(" 请输入新家庭住址:");gets(p1->address);break;
case 6:printf(" 请输入新联系:");gets(num2);p1->phone=atoi(num2);break;
case 7:printf(" 请输入新根本工资:");gets(num2);p1->de_salary=atof(num2);break;
case 8:printf(" 请输入新津贴:");gets(num2);p1->de_jintie=atof(num2);break;
case 9:printf(" 请输入新生活补贴:");gets(num2);p1->de_shenghuobutie=atof(num2);break;
case 10:printf(" 请输入新费:");gets(num2);p1->cost_phone=atof(num2);break;
case 11:printf(" 请输入新水电费:");gets(num2);p1->cost_water_elec=atof(num2);break;
case 12:printf(" 请输入新房租:");gets(num2);p1->cost_rent=atof(num2);break;
case 13:printf(" 请输入新所得税:");gets(num2);p1->cost_tax=atof(num2);break;
case 14:printf(" 请输入新卫生费:");gets(num2);p1->cost_weisheng=atof(num2);break;
case 15:printf(" 请输入新公积金:");gets(num2);p1->cost_gongjijin=atof(num2);break;
default:break;
}
p1->yingfa_salary=p1->de_salary+p1->de_jintie+p1->de_shenghuobutie;
p1->cost_all=p1->cost_phone+p1->cost_water_elec+p1->cost_rent+p1->cost_tax+p1->cost_weisheng+p1->cost_g ongjijin;
p1->shifa_salary=p1->yingfa_salary-p1->cost_all;
printf(" 继续修改其他数据吗.(y或n):");
scanf("%c",&m);getchar();
}while (m=='y'||m=='Y');
p2=head;
if((fp=fopen("save","wb"))==NULL)
{
printf(" 文件不存在!按下任意键返回主菜单...");getch();
}
else
{
fwrite(head,LEN-4,1,fp);
do
{
p2=p2->next;
fwrite(p2,LEN-4,1,fp);
}while(p2->next!=NULL);
printf("------------------------------修改后数据如下:---------------------------------\n");
printf("教工号XX 性别单位名称家庭住址联系\n");
printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",p1->num,p1->name,p1->sex,p1->workplace,p1->address,p1->phone);
printf("费水电费房租个人所得税卫生费公积金合计扣款\n");
printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf \n",p1->cost_phone,p1->cost_water_elec,p1->cost_rent,p1->cost_tax,p1->cost_weisheng,p1->cost_gongjijin,p1->cost_all);
printf("根本工资津贴生活补贴应发工资实发工资\n");
printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",p1->de_salary,p1->de_jintie,p1->de_shenghuobutie,p1->yin gfa_salary,p1->shifa_salary);
printf("-------------------------------------------------------------------------------\n");
}
fclose(fp);
}
break;
case 3:break;
default :break;
}
if (i!=3)
{
printf("\n 继续修改其他教师的信息吗.〔y或n〕");
scanf("%c",&n);
}
}while((n=='y'||n=='Y')&&i!=3);
}
}
/***********************************删除函数*****************************************/
void deletes()
{
struct teacher *head,*p1,*p2,*p3;
int i;
char k;
FILE *fp;
char n='n';
p1=p2=p3=(struct teacher *)malloc(LEN);
if((head=load())!=NULL)
{
do
{
int num;
char name[20];
p1=head;
system("cls");
printf("\n\n\n >>>>>>>>>>> 删除教师信息<<<<<<<<<<<\n");
printf(" *******************************************************\n");
printf(" * 1.输入教师号*\n");
printf(" * 2.输入XX *\n");
printf(" * 3.返回上级菜单*\n");
printf(" *******************************************************\n");
printf(" 请选择删除式:");
scanf("%d",&i);getchar();
while (i<1||i>3)
{
printf(" 输入有误!请重新输入:");
scanf("%d",&i);getchar();
}
switch(i)
{
case 1:printf(" 请输入要删除的信息的教师号:");
scanf("%d",&num);getchar();
while (p1->num!=num)
{
if (p1->next!=NULL)
p1=p1->next;
else
{
printf(" 查找不到相关数据!\n");
break;
}
}
if (p1->num==num)
{
printf("-----------------------------要删除的信息如下:--------------------------------\n");
printf("教工号XX 性别单位名称家庭住址联系\n");
printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",p1->num,p1->name,p1->sex,p1->workplace,p1->address,p1->phone);
printf("费水电费房租个人所得税卫生费公积金合计扣款\n");
printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf\n",p1->cost_phone,p1->cost_water_elec,p1 ->cost_rent,p1->cost_tax,p1->cost_weisheng,p1->cost_gongjijin,p1->cost_all);
printf("根本工资津贴生活补贴应发工资实发工资\n");
printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",p1->de_salary,p1->de_jintie,p1->de_shenghuobutie,p1->yin gfa_salary,p1->shifa_salary);
printf("-------------------------------------------------------------------------------\n");
printf(" 确定删除吗.〔y或n〕:");
scanf("%c",&k);getchar();
}
if (k=='y'||k=='Y')
{
if (p1->num==num)
{
if(p1==head)
{
p1=p1->next;
p2=p1;
}
else if(p1->next==NULL)
{
p3=p1;p1=head;p2=head;
while(p1->next!=p3)
{p1=p1->next;}
p1->next=NULL;
}
else{
p2=head;p3=p1;p1=head;
while(p1->next!=p3)
{p1=p1->next;}
p3=p3->next;
p1->next=p3;
}
if((fp=fopen("save","wb"))==NULL)
{
printf(" 文件不存在!按下任意键返回主菜单...");getch();
}
else
{
do
{
fwrite(p2,LEN-4,1,fp);
if(p2->next!=NULL)
p2=p2->next;
}while(p2->next!=NULL);
if(p2!=head)
fwrite(p2,LEN-4,1,fp);
}fclose(fp);
printf(" 删除成功!按下任意键继续...");getch();
}
}
else {printf(" 删除已被取消!按下任意键继续...");getch();}
break;
case 2:printf(" 请输入要修改的教师XX:");
gets(name);
while (strcmp((p1->name),name)!=0)
{
if (p1->next!=NULL)
p1=p1->next;
else
{
printf(" 查找不到相关数据!\n");
break;
}
}
if (strcmp((p1->name),name)==0)
{
printf("-----------------------------要删除的信息如下:--------------------------------\n");
printf("教工号XX 性别单位名称家庭住址联系\n");
printf(" %-4d %-13s %s %-19s %-19s%-14ld\n",p1->num,p1->name,p1->sex,p1->workplace,p1->address,p1->phone);
printf("费水电费房租个人所得税卫生费公积金合计扣款\n");
printf(" %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf \n",p1->cost_phone,p1->cost_water_elec,p1->cost_rent,p1->cost_tax,p1->cost_weisheng,p1->cost_gongjijin,p1->cost_all);
printf("根本工资津贴生活补贴应发工资实发工资\n");
printf(" %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lf\n",p1->de_salary,p1->de_jintie,p1->de_shenghuobutie,p1->yin gfa_salary,p1->shifa_salary);
printf("-------------------------------------------------------------------------------\n");
printf(" 确定删除吗.〔y或n〕:");
scanf("%c",&k);getchar();
}
if (k=='y'||k=='Y')
{
if (strcmp((p1->name),name)==0)
{
if(p1==head)
{
p1=p1->next;
p2=p1;
}
else if(p1->next==NULL)
{
p3=p1;p1=head;p2=head;
while(p1->next!=p3)
{p1=p1->next;}
p1->next=NULL;
}
else{
p2=head;p3=p1;p1=head;
while(p1->next!=p3)
{p1=p1->next;}
p3=p3->next;
p1->next=p3;
}
if((fp=fopen("save","wb"))==NULL)
{
printf(" 文件不存在!按下任意键返回主菜单...");getch();
}
else
{
do
{
fwrite(p2,LEN-4,1,fp);
if(p2->next!=NULL)
p2=p2->next;
}while(p2->next!=NULL);
if(p2!=head)。