- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中南大学
本科生课程设计(实践)任务书、设计报告
(C++应用基础课程设计)
题 目 工资管理系统 学生学号
学生姓名指导教师 学 院 专业班级 指导老师
计算机基础教学实验中心
2011年09月08日
教师工资管理系统
摘要:每个的信息为:号、姓名、性别、家庭住址、联系电话、。A、信息处理
(1) 输入信息
插入(修改)信息:
删除信息:
浏览信息:
提示:B、数据处理:
按录入
(2) 教师实发工资、应发工资、合计扣款计算。
提示:数据管理
提示:输入号,读出并显示该信息,输入新数据,将改后信息写入文件
数据查询:
提示:输入号,即读出所有数据信息,并显示出来。
综合信息输出
提示:输出信息到屏幕。
…while,例如DoDelete()和DoFind()用的是do…while, AddNew()用到的是while语句。
(3)成员函数的设计。
成员函数是系统的灵魂,因为所有的处理过程的细节都在成员函数中完成的。编写成员函数实际上就是一个算法的实现。成员函数的设计包括两方面内容:成员函数算法的实现和成员函数过程的实现。
①成员函数算法的实现
工资管理系统不能单凭数组来处理数据,因为企业教师数是不确定的,并且数组在删除和查找某条信息是相当繁琐。所以该系统需要一个全新的数据处理方式——链表。链表是最简单也是最常用的一种动态数据结构,它是对动态获得的内存进行组织的一种结构。它不需要实现定义固定的长度,灵活性更强。
链表是算法的关键。在添加新的数据时,可以表头插入也可以表尾插入,这两种插入方法决定了其他成员函数数据的处理。本系统中采取的是表尾插入的方法。在删除某信息时需要判断数据是在表头,表中还是表尾,如果删除的是在表中,则需要将删除的前后链表连接起来。总之,本系统大量运用了链表的5种基本操作:建立链表、链表的插入、删除、输入和查找。
②成员函数过程的实现
算法确定后还需要控制屏幕显示、条件的判断以及调用其它成员函数。成员函数之间是可以相互调用的,例如成员函数List()就调用了成员函数ListCount()来统计当前链表信息的总数,同时还调用了成员函数Print()来输出Worker_pay()的信息。整个过程中还有一个重要的指针,Worker_pay *Find(),它被Search(),RemoveItem()以及AddItem()所调用。其次成员函数中大量运用到了程序控制结构。例如,AddItem()中用if来判断是否是链表的表头,List()中用到了while语句来实现循环输出。最后屏幕上则需要显示一些完成了某种功能的标志,例如“成功删除编号为xx的信息”,“成功修改编号为xx的信息”等。
(3)系统结构框架
系统的结构框架主要是系统的流程图以及函数之间的调用关系,该图能描述系统清晰准确的表现出系统的功能实现。
教师工资管理系统结构框架图
2教师工资管理系统功能及系统设计介绍
该工资管理系统可以分为5个模块,每个模块都有其对应的功能以及其设计。下面对系统的功能和模块的实现进行简要分析。
(1)输入模块
输入模块的功能是创建存储教师工资信息的存储系统以及添加某教师的工资信息。其中的信息包括教师编号,基本工资,津贴,房租,交通费以及银行储蓄。为实现输入的功能,有两个方面的任务:定义结构体以及建立链表。
①定义结构体
结构体的名称为Worker_pay,其中包含的信息有教师编号(num),基本工资(pay[0]),津贴(pay[1]),房租(pay[2]),交通费(pay[3]),储蓄(pay[4])以及个人所得税(tax),应扣数(deduct),实发数(actualpay)。定义一个pay的数组时为了简化变量的定义,使程序更有条理。
②建立链表
通过从表尾插入的方法来建立链表,首先要先设立一个头指针(head)来存放链表的首地址。然后,不断用new运算符生成一个新的起点,将这个起点链入已有的链表尾部;如果链表中还没有结点,则这个新结点将是首结点,否则,将新结点的地址赋给原有链表的尾结点的next指针。
(2)删除模块
删除模块的功能是删除某教师的工资信息。当然,信息包括所有输入的信息,以及程序内部函数计算的信息例如个人所得税,实发数。
从一个链表中删去一个结点,首先从表头开始,找到被删结点后,只要改变链接关系即可,使被删结点的前去结点的指针域指向被删结点的后继结点。如果删去的结点是首结点,则将第二个结点的地址作为新的链表的首地址返回;如果删去的结点是链尾,则将被删结点的前驱作为新的链尾。
(3)修改模块
修改模块的功能是修改某教师的部分工资信息。
要修改某教师的信息首先必须从表头开始搜寻,当找到指定的编号是,重新对其赋值即可
文档评论(0)