1、. -课程设计 教师工资管理系统运行平台:VC6.0其他平台未经测试,不一定保证有效制 弓箭 中南大学 信息科学与工程学院源代码如下:#include #include #include #include #define LEN sizeof(struct teacher)struct teacher int num;char name20;char sex20;char workplace50;char address50;long phone;double de_salary;double de_jintie;double de_shenghuobutie;double yingfa_sa
2、lary;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( 文件不存在!按下任意键
3、返回主菜单.);getch();return (NULL);elsehead=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(nnn 欢送使用教师工资管理系统Beta1.2所有 侵权必究ILLE
4、GAL COPY BANNED欢送使用教师工资管理系统Beta1.2num=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)
5、;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( 请输入卫生
6、费:);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_gongjijin;px-shifa_salary=px-yingfa_salary-px-
7、cost_all;printf( 数据输入完毕,按下任意键继续.);getch();system(cls);printf(nnn 插入教师信息 n);printf( *n);printf( * 1.输入教师号 *n);printf( * 2.输入XX *n);printf( * 3.返回上级菜单 *n);printf( *n);printf( 请选择插入式:);scanf(%d,&i);getchar();while (i3)printf( 输入有误!请重新输入:);scanf(%d,&i);getchar();switch(i)case 1:printf( 请输入要插入在哪条数据后面:);s
8、canf(%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%-14ldn,px-num,px-name,px-sex,px-workplace,px-address,px-phone);printf(费 水电费 房租 个人所得税 卫生费 公积金
9、合计扣款n);printf( %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lf %-10.1lfn,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.1lfn,px-de_salary,px-de_jintie,px-
10、de_shenghuobutie,px-yingfa_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=
11、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();elsedofwrite(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)
12、;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 性别 单位名称 家庭
13、住址 联系n);printf( %-4d %-13s %s %-19s %-19s%-14ldn,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_go
14、ngjijin,p1-cost_all);printf(根本工资 津贴 生活补贴 应发工资 实发工资n);printf( %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lfn,p1-de_salary,p1-de_jintie,p1-de_shenghuobutie,p1-yingfa_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)/*如果插入点为
15、头指针*/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( 文件不存在!按下
16、任意键返回主菜单.);getch();elsedofwrite(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
17、();while(n=y|n=Y)&i!=3);printf( 数据插入成功!按下任意键返回主菜单.);getch();getchar();/*输入函数*/void insert()FILE *fp;char m,num30;struct teacher *p1;p1=(struct teacher *)malloc(LEN);if(fp=fopen(save,ab)=NULL)printf( 文件不存在!按下任意键返回主菜单.);getch();elseprintf( 请输入教师信息:n);doprintf( -n);printf( 请输入教工号:);gets(num);p1-num=ato
18、i(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( 请输入生活补贴:)
19、;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);
20、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_gongjijin;p1-shifa_salary=p1-yingfa_salary-p1-cost_all;fwrite(p1,LEN-4,1,fp);printf( 输入
21、下一个?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,num230;p1=head=(struct teacher *)malloc(LEN);if(head=load()!=NULL)doint num=0;char name20;p1=head;system(cls);print
22、f(nnn 修改教师信息 n);printf( *n);printf( * 1.输入教师号 *n);printf( * 2.输入XX *n);printf( * 3.返回上级菜单 *n);printf( *n);printf( 请选择修改式:);scanf(%d,&i);getchar();while (i3)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(nnn 欢送使用教师工资管理系统Beta1.2num,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.1lfn,p