收藏 分销(赏)

c语言程序设计教师工资管理系统具体的设计报告.docx

上传人:人****来 文档编号:4816619 上传时间:2024-10-13 格式:DOCX 页数:35 大小:100.47KB
下载 相关 举报
c语言程序设计教师工资管理系统具体的设计报告.docx_第1页
第1页 / 共35页
c语言程序设计教师工资管理系统具体的设计报告.docx_第2页
第2页 / 共35页
c语言程序设计教师工资管理系统具体的设计报告.docx_第3页
第3页 / 共35页
c语言程序设计教师工资管理系统具体的设计报告.docx_第4页
第4页 / 共35页
c语言程序设计教师工资管理系统具体的设计报告.docx_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、c语言程序设计教师工资管理系统具体的设计报告352020年4月19日文档仅供参考课程设计报告学院:天津理工大学华信软件学院专业名称:软件工程课程设计科目C语言课程设计所在班级:一班学生学号: 5945学生姓名:吴健指导教师:陈立娜完成时间: 4月-6月教师工资管理系统每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资合计扣款。A、教师信息处理(1)输入教师信息(2

2、) 插入(修改)教师信息:(3) 删除教师信息:(4) 浏览教师信息:提示:具体功能及操作参考题1。B、教师数据处理:(1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。(2) 教师实发工资、应发工资、合计扣款计算。提示:计算规则如题目。(3) 教师数据管理提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4) 教师数据查询:提示:输入教师号或其它信息,即读出所有数据信息,并显示出来。(5) 教师综合信息输出提示:输出教师信息到屏幕。1. 课程设计目的和要求A 巩固和加强c语言程序设计课程的理论知识。B 掌握c语言的基

3、本概念,语法,语义和数据类型的使用特点。C 掌握c语言程序设计的方法及编程技巧,能正确使用c语言编写程序。D 进一步理解和运用结构化程序设计的思想和放法。E 使学生掌握调试程序的基本方法及上机操作方法。F 经过查询手册和文献资料,培养学生独立分析问题和解决问题的能力。G 初步掌握开发一个小型实用系统的基本方法。H 培养学生的创新能力和创新思维。I 培养学生良好的程序设计风格。进一步理解和运用2.课程设计题目及内容教师工资管理系统每个教师的信息为:教师名,姓名,性别,单位名称,家庭住址,联系电话,基本工资,津贴,生活补贴,应发工资,电话费,水电费,房租,所得税,卫生费,公积金,合计扣款,实发工资

4、。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资合计扣款。1教师信息处理J 输入教师信息K 插入(修改)教师信息L 删除教师信息;M 浏览教师信息;(提示:具体功能及操作参考题1。)2教师数据处理;A. 按教师号录入教师基本工资,津贴,生活补贴,电话费,水电费,房租,所得税,卫生费,公积金等基本信息;B. 教师实发工资、应发公资、合计扣款;C. 教师数据管理;(提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件。)D. 教师数据查询;(提示:输入教师好或其它信息,即读出所有数据信息,并显示出来。)E. 教师

5、综合信息输出;(提示;输出教师信息到屏幕。)一、 需求分析 教师信息处理A输入教师信息B插入修改教师信息C删除教师信息D浏览教师信息 教师数据处理A按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。B教师实发工资,应发工资,合计扣款计算。C教师数据管理D教师数据查询E教师综合信息输出二总体设计4总体设计、输出界面选择操作选择0读取文件执行freeall()退出系统选择1输入数据Break结束选择2浏览数据break选择3查询数据Break选择4选择5删除数据修改数据BreakBreak输出:无效选项Break结束建立动态链表。开辟一个新结点,并使

6、p1,p2指向它读入一个老师数据给P1所指的结点head=NULL n=0当读入的p1-num!=0表尾结点的指针变量置NULLn=n+1真 n=1 假head=p1 p2-next=p1把p1所指的结点把p1所指的结点作为第一结点连接到表尾p2=p1在开辟一个新结点,使p1指向它读入一个老师数据给p1所指结点删除结点真链表是一个空表假 p1=head当num!=p1-num以及p1所指的结点不是表尾结点结点 p2=p1 p1=p1-next是 p1是要删除的结点否是 p1所指的头结点否输出找 head=p1-next p2-next= 不到的信息 p1-next 息输出空表插入结点p1=he

7、ad,p0=stud是原来的链表是空表否当p0-nump1-num以及p1所指的不是表尾结点将p0所 p2指向p1位置指的结 p1向后移一个结点点作为 p0-numnum唯一的真假结点是p1指向头结点否 p1-next=p0head=p0 p2-next=p0 p0-next=NULL p0-next=p1 p0-next=p1修改调用query函数查找到相关结点地址修改相关结点的值域是否存在该教师信息修改完毕三、详细设计源程序#include#include#include#define LEN sizeof(struct teacher)struct teacher *creat();st

8、ruct teacherchar num11;char name10;char sex8;char unit10;char address10;long telnum;float salary_1;float allowance;float life_allow;float salary_2;float tel_fee;float tax;float health_fee;float water_fee;float rent;float grant;float total_fee;float actual_salary;struct teacher *next;int n;struct tea

9、cher *head;FILE *fp;struct teacher *creat(void)struct teacher *p1,*p2;n=0;p1=p2=(struct teacher *)malloc(LEN);printf(教师号:);scanf(%d,&p1-num);fflush(stdin);printf(教师姓名:);gets(p1-name);printf(教师性别:);gets(p1-sex);printf(单位名称:);gets(p1-unit);printf(家庭地址:);gets(p1-address);printf(电话号码:);scanf(%ld,&p1-tel

10、num);fflush(stdin);printf(基本工资:);scanf(%f,&p1-salary_1);fflush(stdin);printf(津贴:);scanf(%f,&p1-allowance);fflush(stdin);printf(生活补贴:);scanf(%f,&p1-life_allow);fflush(stdin);printf(电话费:);scanf(%f,&p1-tel_fee);fflush(stdin);printf(个人所得税:);scanf(%f,&p1-tax);fflush(stdin);printf(房租:);scanf(%f,&p1-rent);

11、fflush(stdin);printf(公积金:);scanf(%f,&p1-grant);fflush(stdin);printf(水电费:);scanf(%f,&p1-water_fee);fflush(stdin);printf(卫生费:);scanf(%f,&p1-health_fee);fflush(stdin); p1-salary_2=p1-salary_1+p1-allowance+p1-life_allow; p1-total_fee=p1-tel_fee+p1-water_fee+p1-rent+p1-tax+p1-health_fee+p1-grant; p1-actu

12、al_salary=p1-salary_2-p1-total_fee; head=NULL;while(p1-num!=0)n=n+1;if(n=1)head=p1;else p2-next=p1;p2=p1;p1=(struct teacher*)malloc(LEN);printf(教师号:);scanf(%d,&p1-num);fflush(stdin);printf(教师姓名:);gets(p1-name);printf(教师性别:);gets(p1-sex);printf(单位名称:);gets(p1-unit);printf(家庭地址:);gets(p1-address);prin

13、tf(电话号码:);scanf(%ld,&p1-telnum);fflush(stdin);printf(基本工资:);scanf(%f,&p1-salary_1);fflush(stdin);printf(津贴:);scanf(%f,&p1-allowance);fflush(stdin);printf(生活补贴:);scanf(%f,&p1-life_allow);fflush(stdin);printf(电话费:);scanf(%f,&p1-tel_fee);fflush(stdin);printf(个人所得税:);scanf(%f,&p1-tax);fflush(stdin);prin

14、tf(房租:);scanf(%f,&p1-rent);fflush(stdin);printf(公积金:);scanf(%f,&p1-grant);fflush(stdin);printf(水电费:);scanf(%f,&p1-water_fee);fflush(stdin);printf(卫生费:);scanf(%f,&p1-health_fee);fflush(stdin); p1-salary_2=p1-salary_1+p1-allowance+p1-life_allow; p1-total_fee=p1-tel_fee+p1-water_fee+p1-rent+p1-tax+p1-h

15、ealth_fee+p1-grant; p1-actual_salary=p1-salary_2-p1-total_fee; p2-next=NULL;return(head);void print(struct teacher *head)struct teacher *p;printf(nNow,These %d records are:n,n);p=head;if(head!=NULL)doprintf(教师号:%5dtt,p-num);printf(教师姓名:%-10sn,p-name);printf(教师性别:%-6stt,p-sex);printf(单位名称:%-10sn,p-un

16、it);printf(家庭地址:%-10st,p-address);printf(电话号码:%8ldn,p-telnum);printf(基本工资:%5.0ftt,p-salary_1);printf(津贴:%5.0fn,p-allowance);printf(生活补贴:%5.0ft,p-life_allow);printf(t电话费:%5.0fn,p-tel_fee);printf(个人所得税:%5.0ft,p-tax);printf(卫生费:%5.0fn,p-health_fee);printf(水电费:%5.0ftt,p-water_fee);printf(房租:%5.0fn,p-ren

17、t);printf(公积金:%5.0ftt,p-grant);printf(应发工资:%5.0fn,p-salary_2);printf(合计扣款:%5.0ftt,p-total_fee);printf(实发工资:%5.0fnnn,p-actual_salary);p=p-next;while(p!=NULL);struct teacher *insert(struct teacher*head,struct teacher *teach)struct teacher *p0,*p1,*p2;p1=head;p0=teach;if(head=NULL)head=p0;p0-next=NULL;

18、elsewhile(p0-nump1-num)&(p1-next!=NULL)p2=p1;p1=p1-next;if(p0-numnum)if(head=p1)head=p0;else p2-next=p0;p0-next=p1;elsep1-next=p0;p0-next=NULL;n=n+1;return(head);struct teacher *del(struct teacher *head,int number)struct teacher *p1,*p2;if(head=NULL)printf(nlist nulln);return(head);p1=head;while(num

19、ber!=p1-num&p1-next!=NULL)p2=p1;p1=p1-next;if(number=p1-num)if(p1=head)head=p1-next;else p2-next=p1-next;printf(删除:%dn,number);n=n-1;else printf(%ld is not foundn,number);return(head);void save() int i;struct teacher *p1; p1=head; if(fp=fopen(teacher_list,wb)=NULL) printf(cannot open filen); return;

20、 for(i=0;inext; fclose(fp);void load()struct teacher *p1,*p2;if(fp=fopen(teacher_list,rb)=NULL) printf(cannot open filen); return; p1=p2=(struct teacher *)malloc(LEN);head=p1;do if(fread(p1,sizeof(struct teacher),1,fp)!=1) printf(file errorn);goto end; if(p1-next!=NULL) p2=p1; p1=(struct teacher *)m

21、alloc(LEN); p2-next=p1; else break; while(1); end: fclose(fp);void query(struct teacher *p) int no;p=head;printf(please input num:n);scanf(%d,&no); while(p-num!=no)p=p-next;printf(基本工资:%5.0ftt,p-salary_1);printf(津贴:%5.0fn,p-allowance);printf(生活补贴:%5.0ft,p-life_allow);printf(t电话费:%5.0fn,p-tel_fee);pr

22、intf(个人所得税:%5.0ft,p-tax);printf(卫生费:%5.0fn,p-health_fee);printf(水电费:%5.0ftt,p-water_fee);printf(房租:%5.0fn,p-rent);printf(公积金:%5.0ftt,p-grant);printf(应发工资:%5.0fn,p-salary_2);printf(合计扣款:%5.0ftt,p-total_fee);printf(实发工资:%5.0fnnn,p-actual_salary);void edit(struct teacher *p)int a;printf(please input nu

23、m:n);scanf(%d,&a);printf(%dnn,a);for(;)if(p-num=a)printf(教师号:%5dtt,p-num);printf(教师姓名:%-10sn,p-name);printf(教师性别:%-6stt,p-sex);printf(单位名称:%-10sn,p-unit);printf(家庭地址:%-10st,p-address);printf(电话号码:%8ldn,p-telnum);printf(基本工资:%5.0ftt,p-salary_1);printf(津贴:%5.0fn,p-allowance);printf(生活补贴:%5.0ft,p-life_

24、allow);printf(t电话费:%5.0fn,p-tel_fee);printf(个人所得税:%5.0ft,p-tax);printf(卫生费:%5.0fn,p-health_fee);printf(水电费:%5.0ftt,p-water_fee);printf(房租:%5.0fn,p-rent);printf(公积金:%5.0ftt,p-grant);printf(应发工资:%5.0fn,p-salary_2);printf(合计扣款:%5.0ftt,p-total_fee);printf(实发工资:%5.0fnnn,p-actual_salary);printf(请输入新数据:n);

25、printf(教师号:);scanf(%d,&p-num);fflush(stdin);printf(教师姓名:); gets(p-name);printf(教师性别:); gets(p-sex);printf(工作单位:); gets(p-unit);printf(家庭地址:); gets(p-address);printf(电话号码:);scanf(%ld,&p-telnum);fflush(stdin);printf(基本工资:);scanf(%f,&p-salary_1);fflush(stdin);printf(津贴:);scanf(%f,&p-allowance);fflush(s

26、tdin);printf(生活补贴:);scanf(%f,&p-life_allow);fflush(stdin);printf(电话费:);scanf(%f,&p-tel_fee);fflush(stdin);printf(个人所得税:);scanf(%f,&p-tax);fflush(stdin);printf(房租:);scanf(%f,&p-rent);fflush(stdin);printf(公积金:);scanf(%f,&p-grant);fflush(stdin);printf(水电费:);scanf(%f,&p-water_fee);fflush(stdin);printf(卫

27、生费:);scanf(%f,&p-health_fee);fflush(stdin); p-salary_2=p-salary_1+p-allowance+p-life_allow; p-total_fee=p-tel_fee+p-water_fee+p-rent+p-tax+p-health_fee+p-grant; p-actual_salary=p-salary_2-p-total_fee; break; p=p-next;void welcome() printf(ttt+-+n); printf(ttt| |n); printf(ttt| 欢迎使用教师工资管理系统 |n); prin

28、tf(ttt| |n); printf(ttt+-+n); printf(nn); char mainmenu() char choice;printf(n温馨提示:为保证您的操作得到保存,请按正常顺序退出系统_n);printf(nn); printf(ttt-n); printf(ttt| 教师工资管理系统 |n); printf(ttt-n); printf(ttt| 1-输入教师信息 |n); printf(ttt| 2-插入教师信息 |n); printf(ttt| 3-删除教师信息 |n); printf(ttt| 4-浏览教师信息 |n); printf(ttt| 5-录入教师信

29、息 |n);printf(ttt| 6-查询教师信息 |n); printf(ttt| 7-修改教师信息 |n);printf(ttt| 8-加载教师信息 |n);printf(ttt| 0-退出系统 |n); printf(ttt|*|n); printf(ttt-n); printf(请输入您的选择:); dofflush(stdin);scanf(%c,&choice);fflush(stdin);while(choice8);return(choice); case 0: system(cls);exit(0); case 1: printf(input records:n);head

30、=creat();break; case 2:printf(input the inserted record:n);teach=(struct teacher *)malloc(LEN);printf(教师号:);scanf(%d,&teach-num);fflush(stdin);printf(教师姓名:); gets(teach-name);printf(教师性别:); gets(teach-sex);printf(单位名称:); gets(teach-unit);printf(家庭地址:); gets(teach-address);printf(电话号码:);scanf(%ld,&te

31、ach-telnum);fflush(stdin);printf(基本工资:);scanf(%f,&teach-salary_1);fflush(stdin);printf(津贴:);scanf(%f,&teach-allowance);fflush(stdin);printf(生活补贴:);scanf(%f,&teach-life_allow);fflush(stdin);printf(电话费:);scanf(%f,&teach-tel_fee);fflush(stdin);printf(个人所得税:);scanf(%f,&teach-tax);fflush(stdin);printf(房租

32、:);scanf(%f,&teach-rent);fflush(stdin);printf(公积金:);scanf(%f,&teach-grant);fflush(stdin);printf(水电费:);scanf(%f,&teach-water_fee);fflush(stdin);printf(卫生费:);scanf(%f,&teach-health_fee);fflush(stdin); teach-salary_2=teach-salary_1+teach-allowance+teach-life_allow; teach-total_fee=teach-tel_fee+teach-w

33、ater_fee+teach-rent+teach-tax+teach-health_fee+teach-grant; teach-actual_salary=teach-salary_2-teach-total_fee; head=insert(head,teach);print(head);break; case 3: printf(input the delete number:);scanf(%d,&del_num);getchar();head=del(head,del_num);print(head);break; case 4: print(head); break; case

34、5: save(); break; case 6:query(head);break;case 7:edit(head);break;case 8:load();break; 调试与测试进入页面输入输出心得体会持续两周的课程设计给了我太多感触,题目很大,设计量很大,也很繁杂,非一人之力能够解决。这样只是重新捡起书原来看,获得新知识。提升自己的能力。整个程序的设计是分模块实现具体的功能,每个模块分别由不同的函数。每个同学都有自己的分工。链表的建立实现输入信息功能,相比较于数组更加方便,更节省内存空间。经过使用文件fread和fwrite函数方便的将数据信息写入文件以及将文件中的信息载入显示段。经过这十几天的训练与设计我学会了很多,也更加熟悉c语言程序设计,从中得到很多乐趣,很快乐,感觉这些天我并没有浪费掉,而是利用了她,虽然天很热,可是能看见同学们自己设计的程序运行起来我还是很开心。在学校留着设计程序真的很有意义,很锻炼人的能力,为自己以后独立编程打下基础。a

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服