1、C语言课程设计教师工资管理系统职工工资管理系统课程设计 教师工资管理系统运行平台: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 d
2、e_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;
3、 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)
4、; /*欢迎菜单函数*/void welcome() printf(nnn 欢迎使用教师工资管理系统Beta1.2版权所有 XXILLEGAL COPY BANNED欢迎使用教师工资管理系统Beta1.2num=atoi(num); printf( 请输入姓名:);gets(px-name); printf( 请输入性别:);gets(px-sex); printf( 请输入单位名称:);gets(px-workplace); printf( 请输入家庭住址:);gets(px-address); printf( 请输入联系电话:);gets(num);px-phone=atoi(num);
5、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-c
6、ost_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_
7、rent+px-cost_tax+px-cost_weisheng+px-cost_gongjijin; px-shifa_salary=px-yingfa_salary-px-cost_all; printf( 数据输入完毕,按下任意键继续.);getch(); system(cls); printf(nnn 插入教师信息 n); printf( *n); printf( * 1.输入教师号 *n); printf( * 2.输入姓名 *n); printf( * 3.返回上级菜单 *n); printf( *n); printf( 请选择插入方式:); scanf(%d,&i);getch
8、ar(); while (i3) 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(教工号 姓名 性别 单位名称 家庭住址 联系电话n); printf( %
9、-4d %-13s %s %-19s %-19s%-14ldn,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.1lfn,px-cost_phone,px-cost_water_elec,px-cost_rent,px-cost_tax,px-cost_weisheng,px-cost_gongjijin,px-cos
10、t_all); printf(基本工资 津贴 生活补贴 应发工资 实发工资n); printf( %-13.1lf %-13.1lf %-13.1lf %-13.1lf %-13.1lfn,px-de_salary,px-de_jintie,px-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; p
11、1-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
12、)=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( 请输入要插入的教师姓名:); gets(name); p1=he
13、ad; 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(教工号 姓名 性别 单位名称 家庭住址 联系电话n); printf( %-4d %-13s %s %-19s %-19s%-14ldn,p1-num,p1-name,p1-sex,p1-workplace,p1-address,p1-phone); printf(电话费 水电费
14、房租 个人所得税 卫生费 公积金 合计扣款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.1lfn,p1-de_sa
15、lary,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)/*如果插入点为头指针*/ p1-next=px; p2=head; else if(p1-next=NULL)/*如果插入点为末尾指针*/ p3=p1;p1=head;p2=head; while(p1-next!=p3) p1
16、=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(p
17、2-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,num30; 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); prin
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1