C语言知识课程规划设计教师工资管理计划系统(职工工资管理计划系统).doc
-+课程设计 教师工资管理系统运行平台:VC6.0(其他平台未经测试,不一定保证有效)制作者:弓箭 中南大学 信息科学与工程学院源代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#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_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);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 welcome()printf("nnn >>>>>欢迎使用教师工资管理系统Beta1.2<<<<<n");printf(" *n");printf(" * C语言课程设计 教师工资管理系统 *n"); printf(" * 班级: 电气信息类1001班 学号:0909100119 *n");printf(" * 姓名:弓箭 *n");printf(" *n");printf("nn 按下任意键进入系统.");getch();system("cls");/*制作人员名单*/void list()system("cls");printf("nnn >>>>>版权所有 侵权必究<<<<<n");printf("*n");printf("* 学校(College): 中南大学 Central South University *n");printf("* 软件名称(Software): 教师工资管理系统 Teachers 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("nn 按下任意键返回主菜单.");getch();/*菜单函数*/int menu()int i;printf("nnn >>>>>欢迎使用教师工资管理系统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,num30,name20;p1=p2=p3=px=(struct teacher *)malloc(LEN);if(head=load()!=NULL)don=n;printf(" 请输入要插入的教师信息:n");printf(" -n");printf(" 请输入教工号:");gets(num);px->num=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);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_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);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("教工号 姓名 性别 单位名称 家庭住址 联系电话n");printf(" %-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->cost_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;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();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 2:printf(" 请输入要插入的教师姓名:");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("教工号 姓名 性别 单位名称 家庭住址 联系电话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_gongjijin,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)/*如果插入点为头指针*/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();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();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=atoi(num);printf(" 请输入姓名:");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_gongjijin;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,num230;p1=head=(struct teacher *)malloc(LEN);if(head=load()!=NULL)doint num=0;char name20;p1=head;system("cls");printf("nnn >>>>>>>>>>> 修改教师信息 <<<<<<<<<<<n");printf(" *n");printf(" * 1.输入教师号 *n");printf(" * 2.输入姓名 *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("nnn >>>>>欢迎使用教师工资管理系统Beta1.2<<<<<n");printf("-原信息如下:-n");printf("教工号 姓名 性别 单位名称 家庭住址 联系电话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.1lfn",p1->cost_phone,p1->cost_water_elec,p1->cost_rent,p1->cost_tax,p1->cos