教师工资管理系统课程设计报告Word文档下载推荐.docx
《教师工资管理系统课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《教师工资管理系统课程设计报告Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
设计内容
要求
12月20日
熟悉题目、查阅资料,拟定设计方案
按要求制定出切实可行的方案
12月21日
设计程序构造及完成函数调用查询
完成系统结构及部分程序设计
12月22日—23日
充分调用各类函数完成剩余部分程序
先进行程序组装及完成部分程序调试
12月24日—25日
产品整理调试并完成设计报告
实现设计要求,报告按要求装订成册
12月26日
答辩
展示产品,并简明扼要自述五分钟
六、主要参考文献
(1)Stephen《PrimerPlus》著由云巅工作室译北京:
人民邮电出版社2014年12月
(2)谭浩强.《程序设计(第四版)》北京:
清华大学出版社2010年6月
审核批准意见
系主任(签字)年月日
指导教师评语及成绩评定表
指导教师评语
成绩
设计过程
(40)
设计报告
(50)
小组答辩
(10)
总成绩
(100)
指导教师签字:
年月日
一、设计目的…………………………………………………….1
二、总体设计…………………………………………………….1
三、详细设计…………………………………………………….2
四、程序测试…………………………………………………….6
五、运行结果…………………………………………………….6
六、结论与心得………………………………………………….8
参考文献………………………………………………………….10
一、设计目的
该系统是为了完成教师工资的管理,各个队友分工合作最后完成教师工资的管理系统,以便更好更方便的管理教师工资。
1.删除、统计等功能的实现;
2.基本掌握面向过程程序设计的基本思路和方法,达到熟练掌握C语言的基本知识和技能,能够利用所学到的知识和技能,解决简单的程序设计问题。
为了能够方便对教师的工资进行管理,对信息进行排序、插入、查找;
3.培养上机动手能力,使学生巩固《C语言程序设计》课程的学习内容,掌握如何使用面向过程的计算机语言进行程序设计的基本方法,强化上机动手能力,闯过编程关为后续各门计算机课程的学习打下坚实基础;
4.掌握各类C语言函数的使用方法及技巧,充分运用各级C语言函数完成简单程序的设计与运行;
二、需求分析
(1)教师信息处理。
该模块包括教师信息的输入、修改、删除以及浏览和统计等功能,每个模块在程序系统中用一个函数来实现,模块总体框图如图
(1)所示
图一
(1)模式框架图;
(2)教师数据处理。
该系统包括以下大板块:
A、在数据处理过程中会根据教师号录入教师的基本工资、津贴、生活补贴补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据;
B、教师实发工资,应发工资,合计扣款计算;
C、教师数据管理;
D、教师数据查询;
E、教师综合信息输出;
三、详细设计
(1)总体的流程图;
(2)任务分配;
(3)辅助信息的采集与数据处理
A、了解教师工资的具体管理与发放情况;
B、进行基本运算函数的确定与改写;
C、主函数、结构体函数、调用函数的确定;
第一部分
structteacher*creat();
structteacher
{
charnum[11];
charname[10];
charsex[8];
charunit[10];
charaddress[10];
longtelnum;
floatsalary_1;
floatallowance;
floatlife_allow;
floatsalary_2;
floattel_fee;
floattax;
floathealth_fee;
floatwater_fee;
floatrent;
floatgrant;
floattotal_fee;
floatactual_salary;
structteacher*next;
};
第二部分
structteacher*insert(structteacher*head,structteacher*teach)
structteacher*p0,*p1,*p2;
p1=head;
p0=teach;
if(head==NULL)
{
head=p0;
p0->
next=NULL;
}
else
while((p0->
num>
p1->
num)&
&
(p1->
next!
=NULL))
{p2=p1;
p1=p1->
next;
}
if(p0->
num<
num)
{
if(head==p1)head=p0;
elsep2->
next=p0;
p0->
next=p1;
}
{p1->
n=n+1;
return(head);
四、程序调试与错误分析
1.刚开始运行插入函数时,总不能插入正确信息
2.开始编译排序函数时出现无法正确插入函数及无法输出正确结果的情况。
3.编译查询函数时,总是无法输出正确信息。
4.各级函数调用出现很大问题,对函数使用不当以及函数调用的错误都造成了很多错误。
5.对删除函数的调用错误,导致输出结果错误。
6.对于很多C语句的使用不够熟练,出错较多。
7.针对以上错误,我虚心求教,向老师和同学求教,并顺利解决了程序编译过程中出现的问题和错误,成功的完成了本程序的编译
五、运行结果
进入页面图2
程序的输入图3
程序的输出图4
六、结论与心得
课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
教师工资管理系统这个题目很大,设计量也很大,也很繁琐,让我认识到这个课题非一人可以解决。
但从另一方面,为了出色地完成这次课程设计,我不断地细读课本,获得新知识的同时,提升了自己的能力。
更重要的是我们进行了团队合作。
整个设计分模块实现功能,每个模块分别有不同的函数。
每个同学都有自己的分工。
链表的建立实现输入信息功能,相比较于数组更加方便,更加节省程序的运行时间和存储空间。
通过使用文件fread和write函数方便的将数据信息写入文件并载入显示段。
通过这十几天的训练和设计与团队合作,我学会了很多,也对C语言程序设计有了一个新的认识与理解,从中也得到了很多乐趣,在这两周时间里看到同学们自己的劳动成果还是挺开心。
而C语言的设计为自己以独立编程打下了基础。
参考文献
[1]【美】StephenPrata《PrimerPlus》著由云巅工作室译。
北京:
人民邮电出版社2014年12月。
[2]谭浩强.《程序设计(第四版)》北京:
清华大学出版社2010年6月。
附录一
部分源程序
#include<
stdio.h>
stdlib.h>
conio.h>
#defineLENsizeof(structteacher)
intn;
structteacher*head;
FILE*fp;
structteacher*creat(void)
structteacher*p1,*p2;
n=0;
p1=p2=(structteacher*)malloc(LEN);
printf("
教师号:
"
);
scanf("
%d"
&
num);
fflush(stdin);
printf("
教师姓名:
gets(p1->
name);
教师性别:
sex);
单位名称:
unit);
家庭地址:
address);
电话号码:
%ld"
telnum);
基本工资:
%f"
salary_1);
津贴:
allowance);
生活补贴:
life_allow);
电话费:
tel_fee);
个人所得税:
tax);
房租:
rent);
公积金:
grant);
水电费:
water_fee);
卫生费:
health_fee);
p1->
salary_2=p1->
salary_1+p1->
allowance+p1->
life_allow;
total_fee=p1->
tel_fee+p1->
water_fee+p1->
rent+p1->
tax+p1->
health_fee+p1->
grant;
actual_salary=p1->
salary_2-p1->
total_fee;
head=NULL;
while(p1->
num!
=0)
n=n+1;
if(n==1)head=p1;
p2=p1;
p1=(structteacher*)malloc(LEN);
p2->
voidprint(structteacher*head)
structteacher*p;
printf("
\nNow,These%drecordsare:
\n"
n);
p=head;
if(head!
=NULL)
do
%5d\t\t"
p->
%-10s\n"
%-6s\t\t"
%-10s\t"
%8ld\n"
%5.0f\t\t"
%5.0f\n"
%5.0f\t"
\t电话费:
应发工资:
salary_2);
合计扣款:
total_fee);
实发工资:
%5.0f\n\n\n"
actual_salary);
p=p->
}while(p!
=NULL);
structteacher*del(structteacher*head,intnumber)
structteacher*p1,*p2;
if(head==NULL){printf("
\nlistnull\n"
return(head);
while(number!
=p1->
num&
{p2=p1;
if(number==p1->
if(p1==head)head=p1->
elsep2->
next=p1->
删除:
%d\n"
number);
n=n-1;
elseprintf("
%ldisnotfound\n"
voidsave()
{inti;
structteacher*p1;
if((fp=fopen("
teacher_list"
"
wb"
))==NULL)
{printf("
cannotopenfile\n"
return;
for(i=0;
i<
n;
i++)
{if(fwrite(p1,sizeof(structteacher),1,fp)!
=1)
filewriteerror\n"
p1=p1->
}
fclose(fp);
voidload()
structteacher*p1,*p2;
if((fp=fopen("
rb"
))==NULL)
}
p1=p2=(structteacher*)malloc(LEN);
head=p1;
do
if(fread(p1,sizeof(structteacher),1,fp)!
fileerror\n"
gotoend;
if(p1->
p1=(structteacher*)malloc(LEN);
break;
}while
(1);
end:
voidquery(structteacher*p)
{
intno;
pleaseinputnum:
scanf("
no);
while(p->
=no)
p=p->
voidedit(structteacher*p)
inta;
a);
%d\n\n"
a);
for(;
;
)
{if(p->
num==a)
{
printf("
%5.0f\t\t