计算机技术基础

上传人:206****923 文档编号:37641267 上传时间:2018-04-20 格式:DOC 页数:25 大小:163.62KB
返回 下载 相关 举报
计算机技术基础_第1页
第1页 / 共25页
计算机技术基础_第2页
第2页 / 共25页
计算机技术基础_第3页
第3页 / 共25页
计算机技术基础_第4页
第4页 / 共25页
计算机技术基础_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《计算机技术基础》由会员分享,可在线阅读,更多相关《计算机技术基础(25页珍藏版)》请在金锄头文库上搜索。

1、 计算机技术基础计算机技术基础 课程项目设计报告书课程项目设计报告书题题 目:目:教师工资管理系统教师工资管理系统专专 业:业: 资源勘查工程资源勘查工程 班级及组号:班级及组号: 三班三班 二组二组 组长学号姓名:组长学号姓名: 110440317 赵功哲赵功哲 组员学号姓名:组员学号姓名:110440318 曹慧曹慧 110440319 郑帅郑帅 110440311 张涛张涛 110440320 李萧朋李萧朋110440312 孙肖辉孙肖辉指导老师:指导老师: 程慧芳程慧芳 设计时间:设计时间: 2012 年年 5 月月 28 日日 2012 年年 6 月月 9 日日 1.1.设计设计目的

2、与内容要求目的与内容要求经历半个学期的 c 语言学习以后,对它有了一定的认识,它可以实现很多有趣的问题。但我深知真正要掌握它的精髓还有很长的路要走,书本上的知识是远远不够的。作为一名合格的程序员,不但要有科学的方法还要有细致、耐心、负责的精神。这正是我学习 c 语言的过程中所得到的对今后学习和工作最有用最重要的收获。2.2.小组分工和每位组员的贡献说明小组分工和每位组员的贡献说明为了锻炼大家的分工和合作能力,提高大家对 C 语言的了解我们具体分工如下:赵功哲赵功哲同学,分开每个模板的任务及具体方法曹慧曹慧同学:思考输入模块,并做程序设计;张涛张涛同学:思考删除模块,并做程序设计;郑帅郑帅同学:

3、思考修改模块,并做程序设计;李萧鹏李萧鹏同学:思考查找模块,并做程序设计;孙肖辉孙肖辉同学:列表模块调试过程中遇到的主要问题及解决办法最后我们共同讨论程序的设计,流程图的流程,并不断修改,完善程序。3 3 教师工资管理系统教师工资管理系统摘要:每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资 合计扣款。具体实现如下功能:A、教师信息处理(1) 输入教师信息(2)

4、 插入(修改)教师信息:(3) 删除教师信息:(4) 浏览教师信息:提示:具体功能及操作参考题 1。B、教师数据处理:(1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。(2) 教师实发工资、应发工资、合计扣款计算。提示:计算规则如题目。(3) 教师数据管理提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4) 教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。(5) 教师综合信息输出提示:输出教师信息到屏幕。.教师工资管理系统开发设计思想教师工资管理系统开发设计思想对于一个管理系统而言,主函数

5、,函数以及成员函数是其重要组成部分。系统开发设计也是从该三方面入手,下面加以详细阐述。(1)主函数的设计在做一个系统开发前,一定要明确系统的功能以及功能实现时的输出(屏幕显示) 。编写主函数的主要任务就是确定调用函数以及控制屏幕显示。确定调用的函数根据要求,该系统至少应该实现五种基本功能:输出工作信息,删除工资信息,修改工资信息,查找工资信息,列出所有信息。实现以上任何一种功能都必须要调用一个函数,根据标识符的定义规则,依次命名为AddNew(),DoDelete(),DoMotify(),DoFind(),List().屏幕显示一个系统要想处理信息,首先必须要输出菜单及提示信息,通过用户在键

6、盘上的输入来选择某个功能。为实现该屏幕显示,输出语句完全可以放在 main()函数中,但为了使主函数清晰明了,我设计了一个菜单函数 Main()供其调用。(2)函数的设计编写函数的目的就是编写一个能实现某种功能的函数供主函数调用。根据 C+面向对象的特点,函数也可以调用类中的成员函数。这样主函数,函数以及成员函数之间的层次分明,关系就清晰明了,不会有冗长的感觉。函数设计的主要任务是确定调用的成员函数以及屏幕显示。确定调用的成员函数。不同的函数调用的成员函数是不尽相同的,基本上每个函数都有一个对应的成员函数,例如 AddNew()与 AddItem(),DoDelete()与 RemoveIte

7、m(),DoFind()与 Search(),DoMotify()与 Replace(),List()与 Worker.List()对应,这些成员函数都是共有函数,并且只被其对应函数唯一调用一次。当然,每个函数不可能只调用一个成员函数,例如 AddNew()还调用了另外两个函数 Input()和 Actualpay()。屏幕显示编写函数也需要控制输出以及功能间的转换,从而每一个函数都需要有一个循环来控制其结束。结束的条件都是“当输入的编号为 0 时结束” ,循环语句有 while 也有 dowhile,例如 DoDelete()和 DoFind()用的是dowhile, AddNew()用到的

8、是 while 语句。(3)成员函数的设计。成员函数是系统的灵魂,因为所有的处理过程的细节都在成员函数中完成的。编写成员函数实际上就是一个算法的实现。成员函数的设计包括两方面内容:成员函数算法的实现和成员函数过程的实现。成员函数算法的实现工资管理系统不能单凭数组来处理数据,因为企业教师数是不确定的,并且数组在删除和查找某条信息是相当繁琐。所以该系统需要一个全新的数据处理方式链表。链表是最简单也是最常用的一种动态数据结构,它是对动态获得的内存进行组织的一种结构。它不需要实现定义固定的长度,灵活性更强。链表是算法的关键。在添加新的数据时,可以表头插入也可以表尾插入,这两种插入方法决定了其他成员函数

9、数据的处理。本系统中采取的是表尾插入的方法。在删除某信息时需要判断数据是在表头,表中还是表尾,如果删除的是在表中,则需要将删除的前后链表连接起来。总之,本系统大量运用了链表的 5 种基本操作:建立链表、链表的插入、删除、输入和查找。成员函数过程的实现算法确定后还需要控制屏幕显示、条件的判断以及调用其它成员函数。成员函数之间是可以相互调用的,例如成员函数 List()就调用了成员函数ListCount()来统计当前链表信息的总数,同时还调用了成员函数Print()来输出 Worker_pay()的信息。整个过程中还有一个重要的指针,Worker_pay *Find(),它被 Search(),R

10、emoveItem()以及 AddItem()所调用。其次成员函数中大量运用到了程序控制结构。例如,AddItem()中用 if 来判断是否是链表的表头,List()中用到了 while 语句来实现循环输出。最后屏幕上则需要显示一些完成了某种功能的标志,例如“成功删除编号为xx 的信息” , “成功修改编号为 xx 的信息”等。(3)系统结构框架系统的结构框架主要是系统的流程图以及函数之间的调用关系,该图能描述系统清晰准确的表现出系统的功能实现。教师工资管理系统功能及系统设计介绍教师工资管理系统功能及系统设计介绍该工资管理系统可以分为 5 个模块,每个模块都有其对应的功能以及其设 计。下面对系

11、统的功能和模块的实现进行简要分析。(1)输入模块输入模块的功能是创建存储教师工资信息的存储系统以及添加某教师的工 资信息。其中的信息包括教师编号,基本工资,津贴,房租,交通费以及银行 储蓄。为实现输入的功能,有两个方面的任务:定义结构体以及建立链表。定义结构体结构体的名称为 Worker_pay,其中包含的信息有教师编号(num) ,基本工 资(pay0),津贴(pay1),房租(pay2),交通费(pay3),储蓄(pay4)以 及个人所得税(tax),应扣数(deduct),实发数(actualpay)。定义一个 pay 的 数组时为了简化变量的定义,使程序更有条理。建立链表通过从表尾插入

12、的方法来建立链表,首先要先设立一个头指针(head) 来存放链表的首地址。然后,不断用 new 运算符生成一个新的起点,将这个起 点链入已有的链表尾部;如果链表中还没有结点,则这个新结点将是首结点, 否则,将新结点的地址赋给原有链表的尾结点的 next 指针。(2)删除模块删除模块的功能是删除某教师的工资信息。当然,信息包括所有输入的信 息,以及程序内部函数计算的信息例如个人所得税,实发数。 从一个链表中删去一个结点,首先从表头开始,找到被删结点后,只要改 变链接关系即可,使被删结点的前去结点的指针域指向被删结点的后继结点。 如果删去的结点是首结点,则将第二个结点的地址作为新的链表的首地址返回

13、; 如果删去的结点是链尾,则将被删结点的前驱作为新的链尾。(3)修改模块修改模块的功能是修改某教师的部分工资信息。 要修改某教师的信息首先必须从表头开始搜寻,当找到指定的编号是,重 新对其赋值即可。(4)查找模块查找模块的功能就是输出指定编号教师的工资信息。 查找链表中的信息时比较简单的,在上面的模块中也用到了,主要是注意 查找叶必须从表头开始。(5)列表模块列表模块的功能是输出当月全体教师的工资信息。 列表模块就是依次输出链表中各结点的数据。首先要知道链表头结点的地 址,也就是 head 的值,然后设一个指针变量 p,先指向第一个结点,输出 p 所 指结点的数据与的值,然后使 p 后移一个结

14、点,再输出其数据与的值;依链表 顺序而行,依次输出相应结点数据域的值,直到链表的尾结点。(5)调试过程中遇到的主要问题及解决办法设计初期,先完成初步构思,写出主函数。然后对主函数所涉及的各个 模块进行编程,将各个模块利用指针和链表联系起来。在环境中进行调试,应 一边编译,一边调试,并且要一个模块一个模块的调试。直至此模块完全没有 错误时,在进入下一模块的调试。不能直接输入全部的代码一次性调,这样错 误会很多,并且不易找出和修改。在完成程序的编译链接后,要用多组数据进 行审查,确保做到系统无误。设计过程中,不应忽视环境提示的警告,有时程序运行不正确与警告也有 很大的关系。这次设计中遇到很多问题都

15、是提示类型不匹配,这时就要认真检 查前面的代码,及时改正并且认真仔细,杜绝此类错再次发生。编写代码时应该少用全局变量,全局变量在编写试看似定义次数少,很方 便。但全局变量出错几率较大,且不易修改,每次修改时都要全面考虑,所以 应避免用到。程序调试中碰到的错误可以使自己学到知识。养成良好的编程习惯,可以 节省很多时间,避免很多不必要的错误。 在编辑完整个程序后,进行调试阶段总是会数显 head 无定义。 解决办法:再类的定义是忘记声明指针 Worker_pay *head;。4 4 教师工资管理系统结构框架教师工资管理系统结构框架图图教师工资管理系统输出主菜单输入选项添加教师工资信息删除教师工资

16、信息修改教师工资信息输出指定教师工资信息输出全体教师工资信息AddNew()DoDelete()DoMotify()DoFind()List()AddItem()RemovrItem()Replace()Search().List()退出结束5 5 技术难点、项目特色与作品效果图技术难点、项目特色与作品效果图/题目:工资管理系统题目:工资管理系统/代码如下: #include /标准输入输出头文件 #include /standard library 标准库头文件包含了 C、C+语言 的最常用的系统函数 该文件包含了的 C 语言标准库函数的定义 #include / malloc 的全称是 memory allocation,中文叫动态内 存分配 #include /字符串处理 #include /

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号