教师工资管理系统课程设计报告.docx

上传人:b****2 文档编号:23230674 上传时间:2023-05-15 格式:DOCX 页数:18 大小:294.20KB
下载 相关 举报
教师工资管理系统课程设计报告.docx_第1页
第1页 / 共18页
教师工资管理系统课程设计报告.docx_第2页
第2页 / 共18页
教师工资管理系统课程设计报告.docx_第3页
第3页 / 共18页
教师工资管理系统课程设计报告.docx_第4页
第4页 / 共18页
教师工资管理系统课程设计报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

教师工资管理系统课程设计报告.docx

《教师工资管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《教师工资管理系统课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。

教师工资管理系统课程设计报告.docx

教师工资管理系统课程设计报告

东莞理工学院

《C语言程序设计》课程设计报告

 

题目:

教师工资管理系统

专业:

工业工程1班(本)

年级:

2013级1班

小组成员:

129李惠敏113郭雁华

指导教师:

彭义春老师

时间:

2014年6月22日~6月26日

地点:

图书馆、E机房

东莞理工学院计算机学院制

2014年6月

 

1.课程设计目的

1)通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。

2)通过课程设计,学会设计数据结构。

其中,包括对函数、结构数组、指针、链表和数据文件等知识的运用。

3)通过课程设计,训练C程序调试能力,能运用合理的控制流程编写清晰高效的程序。

4)通过课程设计,培养分析问题、思考问题和动手解决实际问题的能力。

2.课程设计内容

第10题:

教师工资管理系统

每个教师的信息为:

教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。

注:

应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。

A、教师信息处理:

(1)输入教师信息

(2)插入(修改)教师信息:

(3)删除教师信息:

(4)浏览教师信息:

 提示:

具体功能及操作参考题1。

B、教师数据处理:

(1)按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。

(2)教师实发工资、应发工资、合计扣款计算。

 提示:

计算规则如题目。

(3)教师数据管理

 提示:

输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件。

(4)教师数据查询:

 提示:

输入教师号或其他信息,即读出所有数据信息,并显示出来。

(5)教师综合信息输出

提示:

输出教师信息到屏幕。

3.总体设计

(1)系统功能模块

图1系统功能模块图

(2)模块化设计

为实现系统功能,本程序主要分为七个模块。

它们分别为:

输入教师信息、新增教师信息、修改教师信息、删除教师信息、查找教师信息、分类教师信息和保存信息。

这七个函数再通过主函数调用分别得以实现。

主函数main,首先提供了程序运行时的友好界面,列出了清单,提供用户做出选择,以便决定使用主菜单的哪种功能。

然后,通过执行多分支选择语句—switch语句,分别实现其它各个函数的调用功能。

其它各个函数的功能分别如下:

Voidmenu():

用于打印出主菜单选项;

PAY*input():

用于对教师个人信息中数据的输入;

PAY*insert():

用于新增教师个人信息;

PAY*revise():

用于对教师个人信息的修改。

PAY*del():

用于对教师个人信息的删除;

Voidsearch():

用于对教师个人信息的查找;

PAY*open():

用于打开教师个人信息中的所有信息;

Voidoutput():

用于对教师个人信息中数据的输出;

Voidsave(PAY*head):

用于对教师个人信息中数据以文件的形式保存起来;

(3)模块接口设计

本程序中,大量地运用了链表,这样就使对教师个人信息的插入、删除和修改变得更为简便些。

本程序执行的入口是main函数,然后在main函数中首先调用了menu函数,这就实现了对教师信息中的数据的读入。

接下来在do-while语句中再套用switch语句实现对各个函数的调用。

最后,再从main函数中结束整个程序的运行。

4.详细设计

(1)数据结构设计

本程序中,运用了多种数据结构。

首先对于教师个人信息中各项详细信息的记录用了结构数组的形式,然后又运用链表动态地分配内存单元,在Input函数中,把保存在数组中的值再赋值给其中的一个结点,通过指针的后移,把多个数据连成一个链,形成一个链表。

在这过程当中,还运用了数据文件的方式,每一次从终端输入的数据都以数据文件的形式保存到了磁盘。

对于主要数据结构的举例如下:

结构数组:

typedefstructpay{

longnum,tel;

charname[20],sex[10],dw[20],add[20];

floatshould_pay,jbgz,jt,shbt;

floatkoukuan,rent,gj,sd,tel_fee,sds;

floatactual_pay;

structpay*next;

};

(2)流程图

主函数流程图:

图2.主函数流程图

PAY*input()函数流程图:

图3.教师信息输入函数流程图

PAY*Insert()函数流程图:

图4.教师信息插入函数流程图

VoidSearch()函数流程图:

图5.教师信息查询函数流程图

PAY*Del()函数流程图:

图6.教师信息删除函数流程图

PAY*Revise()函数流程图:

图7.教师信息修改函数流程图

5.调试与测试

(1)调试过程中的主要问题

由于本程序是分模块设计的,所以运行时选择完任务并且执行完任务后,又会继续回到用户选择界面,供用户继续选择任务并执行任务,整个程序以文件形式读写,所以每次都可对输入的数据进行保存。

但在调试修改、模块等其它的程序中,总是无法正确退出。

所以,总体上来说,在调试过程中还是有比较大的困难。

(2)测试结果的分析与讨论

①登录主界面:

㈠若账号输入正确:

㈡若账号输入不正确:

②创建工资信息:

㈠输入完成后按7存盘:

③新增工资信息:

④修改工资信息:

⑤删除工资信息:

㈠删除后存盘:

㈡再查找删除后的信息:

⑥查找工资信息:

⑦分类信息列表:

⑧保存信息:

⑨退出程序:

6.设计体会

通过为期五天的课程设计,我们对《C语言程序设计》这门课程有了更深一步的了解。

它是计算机程序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。

同时,也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。

运用C语言中的算法思想作数据结构,结合C语言基本知识,编写一个教师工资管理系统。

通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。

另外,在调试每一个模块中,有些模块是很棘手的。

但,我们经过不断地修改和调试,最终,我们还是克服了这些困难,顿时就觉得很开心,而且还有点小小的成就感。

原来,我们无论面对什么困难,只要不放弃,并且执著当初的目标,那么,我们总会成功的。

当然,对于这次的二人合作,我们觉得还不错。

分工比较明显,而且,我们也会时时刻刻地交流各自的想法。

虽然,我们两个在C语言方面不是最厉害的,但,我们至少很努力和很认真地完成课程设计。

所以,无论结果如何,我们都问心无愧了。

参考文献

3-5篇,格式如下:

[1]何钦铭,颜晖.C语言程序设计(第2版)[M].北京:

高等教育出版社.2012年3月.

[2]肖捷,陈雪芳.C/C语言程序设计实训教程与水平考试指导(第1版)[M].北京:

高等教育出版社.2012年3月.

[3]颜晖,柳俊.C语言程序设计实验与习题指导(第2版)[M].北京:

高等教育出版社.2012年3月.

附件:

程序清单

说明:

将代码贴在下表中,文字大小小五,英文采用TimeNewRoman,行间距1倍,段前段后0行,代码必须有足够的注释。

Calculator()/*简单计算器*/

{

inta[4],b[4],c[4],i,j,k;/*定义ab两个数组存放数*/

charch[4];/*定义c存放运算符*/

FILE*fp1,*fp2;

fp1=fopen("expres.txt","r");/*打开expres文件*/

if(fp1==NULL)/*判断打开成功*/

{

printf("Cannotopenfileexpres\n");

exit

(1);

}

for(i=0;i<=3;i++)

fscanf(fp1,"%d%c%d",&a[i],&ch[i],&b[i]);/*循环读入四道题*/

for(j=0;j<=3;j++)

{

switch(ch[j])/*判断运算符*/

{case'+':

c[j]=a[j]+b[j];break;

case'-':

c[j]=a[j]-b[j];break;

case'*':

c[j]=a[j]*b[j];break;

case'/':

c[j]=a[j]/b[j];break;

}

}

fp2=fopen("result.txt","w");/*打开文件result*/

if(fp2==NULL)/*判断打开文件是否成功*/

{

printf("Cannotopenfileexpres\n");

exit

(2);

}

for(k=0;k<=3;k++)/*循环向文件中输入结果*/

fprintf(fp2,"%d%c%d=%d\n",a[k],ch[k],b[k],c[k]);

printf("succeed!

\n");

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1