《c++公司人员管理系统实训报告课程设计(共53页).doc》由会员分享,可在线阅读,更多相关《c++公司人员管理系统实训报告课程设计(共53页).doc(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上沈 阳 工 程 学 院课 程 设 计设计题目: C+程序设计课程设计 公司人员管理系统 系 别 xx 班级 xx 学生姓名 XX 学 号 xx 指导教师 xx 职称 讲师 副教授 起止日期:2013 年12月30日起至 2014 年01月03日止专心-专注-专业沈 阳 工 程 学 院课程设计任务书 课程设计题目: 公司人员管理系统 系 别 信息学院 班级 计算本121 学生姓名 学 号 指导教师 职称 课程设计进行地点: F608 任 务 下 达 时 间: 2013年 12月01日起止日期:2013年12月30日起至2014年01月03日止教研室主任 年 月 日批准一
2、、 课程设计的原始资料及依据公司人员管理系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,分析和设计一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的公司人员管理系统,为公司主管部门的决策者和管理者提供充足的信息、快捷的查询和有效的管理方式,减少不必要的损失和浪费,提高人员管理的效率。二、 课程设计主要内容及要求设计名称:公司人员管理系统设计内容:某小型公司,主要有四类人员:经理,兼职技术人员,销售经理和兼职推销员.1) 人员信息包括姓名,编号,级别,当月薪水,计算月薪总额等2) 能够显示这些人员的全部信息.3) 添加删除功能:能根据公司人
3、事的变动情况,添加删除记录;4) 查询功能:能根据编号和姓名进行查询;5) 保存功能:启动程序时能读取人员信息,关闭程序时能将信息保存至硬盘文件。6) 人员编号在生成人员信息时自动生成,每输入一个人员信息编号顺序加1。设计要求:(1) 要求在设计的过程中建立清晰的类层次,并画出类图;(2) 设计功能满足要求、易于操作的友好界面;(3) 在系统的设计中,至少要用到面向对象的一种机制:继承、多态等;(4) 在完成该题目时,小组人员进行详细的任务分工,并要在报告中体现出来。三、 对课程设计说明书撰写内容、格式、字数的要求1课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的
4、、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。一般不应少于3000字。2在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。应做到文理通顺,内容正确完整,书写工整,装订整齐。3设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。4课程设计说明书手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表
5、题与图题采用宋体五号字。5课程设计说明书装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。四、 设计完成后应提交成果的种类、数量、质量等方面的要求1完成“任务书”中指定的功能,运行结果正确。2课程设计说明书。五、 时间进度安排顺序阶段日期计 划 完 成 内 容备注1第1天(12月30号)阅读资料2第2天(12月31号)系统分析设计3第3天(01月01号)程序编制、调试及运行4第4天(01月02号)成绩评定5第5天(01月02号)撰写课程设计说明书六、 参考文献1刘觉夫 王更生等编著C+程序设计.北京邮电大学出版社2曾辉 王更生 李广丽等编著C+程序设计实训教程.北京邮电大学出版社3谭
6、浩强编著C+面向对象程序设计.北京清华大学出版社4郑莉 董渊 何江舟等编著的C+语言程序设计.北京清华大学出版社5李强 贾云霞等编著的VisualC+项目开发实践.北京中国铁道出版社6皮德常编著的C+程序设计教程(第一版).北京清华大学出版社7钱能编著的C+程序设计教程(第二版).北京清华大学出版社8郑阿奇编著VisualC+教程.北京清华大学出版社沈 阳 工 程 学 院 C+程序设计 课程设计成绩评定表系(部): 信息学院 班级: 计算本121 学生姓名: 指 导 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.
7、15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.55432指导教师评审成绩(加权分合计乘以12) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论正确,论述
8、充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以8)分加权分合计评 阅 教 师 签 名: 年 月 日课 程 设 计 总 评 成 绩分沈 阳 工 程 学 院 C+程序设计 课程设计成绩评定表系(部): 信息学院 班级: 计算本121 学生姓名: 指 导 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.25432工作量按期圆满完成规定的设计任务
9、,工作量饱满,难度适宜。0.25432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.55432指导教师评审成绩(加权分合计乘以12) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以
10、8)分加权分合计评 阅 教 师 签 名: 年 月 日课 程 设 计 总 评 成 绩分沈 阳 工 程 学 院 C+程序设计 课程设计成绩评定表系(部): 信息学院 班级: 计算本121 学生姓名: 指 导 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,
11、图表完备,书写工整规范。0.55432指导教师评审成绩(加权分合计乘以12) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以8)分加权分合计评 阅 教 师 签 名: 年 月 日课 程 设 计 总 评 成 绩分摘要在当前的市场经济体制下,企业要想提高市场的竞争
12、力,取得好的经济效益,不但要有好的产品和销售服务,还必须加强对公司内部的人员管理,以提高内部人员的凝聚力和积极性、提高工作效率等。本文利用VisualC+6.0 编写程序,实现了用户对公司人员的编号、姓名、性别、部门。级别、工资等信息的管理操作。本系统主要有八个功能模块:到添加信息子系统、查询信息子系统、统计子系统、显示子系统、修改子系统、删除子系统、保存子系统和读取子系统。已经过全面的系统测试,能够很好的运行,达到了预期的效果。本系统主要实现了对四类人员的管理:经理管理、销售人员管理、技术人员管理、销售经理管理;主要运用了继承友元等编程方法来实现对这些人员的管理。 关键词:系统设计 人员管理
13、 信息 公司目录第一章 问题分析11引言公司人员管理系统是公司管理中的一个重要内容,随着时代的进步,公司人员数量也不断增加、分工的不断细化、各个行业间联系的不断密切,对人事管理的要求也不断提高。早期的人工方式的管理系统已不适合现代企业的公司的发展,实现企业人事管理的系统化、规范化、自动化,是现代公司管理的首选。此次课程设计的目的是以C+语言程序设计为基础,针对具有一定难度的综合性题目,进行分析、编程、调试和运行,进一步掌握面向对象和面向过程程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实践相结合,提高分析问题、解决问题的能力。通过设计一个简单的公司人员管理系统,进一步熟悉C+中类的概
14、念、类的封装、继承和多态的实现方式。了解系统开发的需要分析,类层次设计,模块分析,编码测试,模块组装与整体调试的全过程,逐步熟悉程序设计的方法,并养成良好的编程习惯。12课程设计的目的 要求学生能够熟练掌握C+语言的基本知识和技能。 基本掌握面向对象程序设计的基本思路和方法。 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。13设计题目(问题)描述和要求1.3.1设计内容: 某小型公司,主要有四类人员:经理,兼职技术人员,销售经理和兼职推销员. 人员信息包括姓名,编号,级别,当月薪水,计算月薪总额等能够显示这些人员的全部信息.添加删除功能:能根据公司人事的变动情况,添加删除记录;
15、查询功能:能根据编号和姓名进行查询;保存功能:启动程序时能读取人员信息,关闭程序时能将信息保存至硬盘文件。人员编号在生成人员信息时自动生成,每输入一个人员信息编号顺序加1。1.3.2设计要求:要求在设计的过程中建立清晰的类层次,并画出类图;设计功能满足要求、易于操作的友好界面;在系统的设计中,至少要用到面向对象的一种机制:继承、多态等;在完成该题目时,小组人员进行详细的任务分工,并要在报告中体现出来。14系统分析与分工1.4.1问题分析根据问题描述和要求,系统要求能够按姓名或者编号显示、查找、增加、删除和保存各类人员的信息。确定程序至少应该具备如下功能:“查询人员”、“增加人员”、“删除人员”
16、、“数据存盘”基本模块。系统既然具有“数据存盘”功能人员数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出人员数据,所以系统增加了“人员数据装入”模块,以方便用户使用、避免数据重复录入。考虑到系统实现简捷,人员数据文件采用文本文件,人员数据文件名:Person.txt。考虑到根据编号查找人员信息功能在“删除人员”模块都使用,所以可以考虑设置为一个模块。考虑到系统要求人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。这样就要求人员编号在增加人员时自动生成(增加1)且不重复。根据这个要求,可以考虑设置一个全局量:“当前最大编号”,每增加一个人员,当前最大编号自动增1,然后
17、新增加人员使用这个编号。为了保证系统能记忆这个编号,可以使用一个数据文件保存当前这个编号。系统每次开始运行前从文件读入这个编号,随着人员增加,编号自动增加,系统每次运行结束时将这个编号写入文件。本系统将初值(没有一个用户时)设置为0。考虑到人员的许多固定信息如:经理、销售经理的固定月薪,销售经理、销售人员提成,技术人员小时工资等都是一些不需要每个人员都要输入的信息,所以可以将这些信息都保存在一个数据文件中,本系统为了方便起见,将这些信息与“最大编号”全部保存在一个文件中,并使用“基础数据设置”模块进行设置和管理。基础数据文件也采用文本文件,基础数据文件名:Base.txt。本系统还提供“查询本
18、月经营信息”帮助计算销售总额,工资总额,并按照公式计算本月盈亏。综合考虑系统具有下面8项功能模块:增加人员,删除人员,修改人员,查询本月经营信息,基础数据设置,数据存盘,数据装入。系统使用的数据文件格式如下:Base.txt:(格式:项目 数据)经理固定月薪 3000销售经理固定月薪2000销售经理提成 1销售人员提成 2技术人员小时工资20ID6Person.txt:(格式:编号,姓名,人员类别,其它数据,销售员销售额,技术人员工作小时)2shijinwan33hejinwei 14zengying 4 1005chenying26sunyiming 3注:人员类型编号1经理;2销售经理;3
19、销售员;4技术人员1.4.2任务分工小组成员个人任务描述Xx 我主要负责小组分工合作,编写添加函数、删除函数,以及撰写论文的设计原理及部分内容,完成最后的论文汇总。Xxx 我主要负责编写程序的查找和修改模块及主函数等程序功能,负责链接调试程序,结合大家感受撰写论文的总结部分。Xx表1.1 任务分工 我主要负责编写程序的菜单,显示和删除模块,并负责撰写论文的摘要,引言,致谢部分。15设备器材参考书目、计算机、编译软件Microsoft Visual Studio 201016课程设计意义通过设计此系统,熟练掌握C+语言的基本知识和技能,基本掌握面向对象程序开发的基本思路和方法,培养学生的动手操作
20、能力,提高自主学艺能力,能够利用所学的基本知识和技能,进行简单应用程序设计。加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。第二章 设计原理与运行环境21 c+语言概述2.1.1 C+语言出现的历史背景 伟大的C+语言之父,Bjarne Stroustrup博士曾经说过:“一种程序设计思想要为人所用,不仅语言的特性必须是典雅的,而且它必须在真正的程序环境中能经得起考验。”面向对象程序设计方法的提出,以及它在编写大规模程序方面显示出的优越性,使人们开始重视面向对象程序设计语言的研究。在面向过程的ALGoL、ADA和MoDuLA2等语言的基础上,逐步演变形成
21、了面向对象的程序设计语言。20世纪60年代,美国国防部投入巨大的人力和物力,研制开发了ADA语言。ADA语言并非面向对象的程序设计语言,但它具有的模块化、信息隐藏、数据抽和并发执行等特点对于面向对象程序设计方法和技术起到了积极的推动作用。人们普遍认为,ADA语言是一种基于对象的程序设计语言。1967年出现了simula67语言,它是面向对象程序设计语言的鼻祖,提出了对象的概念,并且支持类和继承。随后出现的Smalltalk语言继续丰富和发展了面向对象程序设计的概念,并且提供了更加严格的信息隐藏机制。1980年问世的Smalltalk80语言是Smalltalk语言的改进版,开始向世人展现面向对
22、象程序设计的魅力。 1982年,美国AT&T公司贝尔实验室的Bjarne Stroustrup博士在c语言的基础上引入并扩充了面向对象的概念,发明了种新的程序语言。为了表达该语言与c语言的渊源关系,它被名为c+。此后c+语言历经了不断地完善,例如1990年c+语言引入模板和异常处理的概念,1993年引入运行时类型识别(RTTI)和名字空间(Name Space)的概念。1997年,c+语言成为美国国家标准(ANSI)。1998年,c+语言又成为了国际标准(ISO)。目前,c+语言已成为使用最广泛的面向对象程序设计语言之一。c+语言是以c语言为基础的,支持c语言的所有语法和几乎所有的技术,因此也
23、有人把c+语言看作是c语言的超集。同时c+语言支持面向对象程序设计方法的所有概念,它是一种非常实用的、功能极为强大的程序语言,相对而言较难掌握。2.1.2 C+语言的主要特点【优点】C+设计成静态类型、和C同样高效且可移植的多用途设计语言。 C+设计成直接的和广泛的支持多种(程序化程序设计、资料抽象化、泛型程序设计)。 C+设计成给程序设计者更多的选择,即使可能导致程序设计者选择错误。 C+设计成尽可能与C兼容,籍此提供一个从C到C+的平滑过渡。 C+避免平台限定或没有普遍用途的特性。 C+不使用会带来额外开销的特性。 C+设计成无需复杂的程序设计环境。 出于保证语言的简洁和运行高效等方面的考
24、虑,C+的很多特性都是以库(如STL)或其他的形式提供的,而没有直接添加到语言本身里。C+在一定程度上可以和很好的结合,甚至大多数C语言程序是在C+的集成开发环境中完成的。C+相对众多的面向对象的语言,具有相当高的性能。C+引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷。很多优秀的程序框架包括MFC、QT、wxWidgets就是使用的C+。人们一般认为,使用或的比C+低。但是,如果充分分析C+和这些语言的差别,会发现这句话的成立是有条件的。这个条件就是:规模和复杂度都比较小。如果不超过3有效代码(不包括生成器产生的代码),这句话基本上还能成立。否则,随着代码量和复杂度的增加
25、,C+的优势将会越来越明显。造成这种差别的就是C+的软件工程性。 【缺点】C+由于语言本身过度复杂,这甚至使人类难于理解其语义。更为糟糕的是C+的编译系统受到C+的复杂性的影响,非常难于编写,即使能够使用的编译器也存在了大量的问题,这些问题大多难于被发现。由于本身的复杂性,复杂的C+程序的正确性相当难于保证。也有人提出不支持多线程的原语等缺陷。不过有如此多的知名人士提出了如此多的缺陷,正说明C+被广泛使用和成功。C+语言由于过度的复杂性,以及与的文化相抵触,在unix/linux领域受到很多著名人士(比如Linux之父与著名黑客)的强烈批评与抵制。22 基本操作1新建一个工程 首先鼠标左键单击
26、“文件”菜单,选择“新建”单击鼠标左键,系统将弹出一个窗口,单击“工程”选项,将得到图2.1所示窗口。请在“工程名称”栏填入工程名,然后鼠标左键单击左边窗口倒数第三项“Win32 Console Application”,使该项变蓝,然后鼠标左键单击“确定”按钮。得到图2.2所示窗口,选择“一个空工程”,单击“完成”得到图2.3。再单击“确定”得到图2.4所示的窗口。图2.1新建工程窗口图2.2 选择控制台程序图2.3 创建新工程图2.4 Visual C+ 6.0 的工作环境2新建一个源文件 要新建一个C程序源文件可以选择“文件”菜单的“新建”选项,在弹出的窗口中选择“文件”选项单击,得到如
27、图2.5所示的窗口,其“位置”栏中的内容是默认的,在“添加到工程”前打勾,“工程名”也是默认的。图2.5 新建源文件3编辑程序编辑环境如图2.6所示。把程序代码输入计算机,如图2.7所示。图2.6 编辑区域图2.7 编辑程序4. 编译、连接、运行、调试一个程序 当源文件编辑完成后,就可以编译、连接和运行程序了。方法如下:单击“组建”菜单的“编译”选项,将完成编译工作得到*.cpp目标文件(文件名就是源文件的名字),编译结果将在窗口最下面的输出窗口显示。可根据窗口的提示修改源文件以改正错误。单击“组建”菜单的“组建”选项,完成连接工作得到可执行文件(文件名是工程名),连接的结果也将在窗口最下面的
28、输出窗口显示。单击“组建”菜单的“全部重建”选项,将完成编译和连接两项工作,编译和连接的结果将在输出窗口显示。单击“组建”菜单的“执行”选项,可运行程序,程序运行的结果如图2.8所示。图2.8 程序运行结果第三章 系统分析与设计31系统设计3.1.1系统总体框架使用面向对象的程序设计思想进行分析,整个系统涉及两大类信息和操作,公司,人员。所以系统主要涉及两个大类:公司类Company、人员类Person。系统的总体框架就是公司类,人员类的定义;主函数中定义一个公司对象,循环显示主菜单并根据用户选择调用公司类的相应方法(成员函数)。(1)公司类Company:考虑系统操作的人员信息的数量具有不确
29、定性,所以考虑使用链表保存、处理人员信息。公司类包含:所有人员信息的一个不带头结点的链表(作为数据成员)及可以对人员信息进行增,删,改,查询经营信息,基础数据设置,数据存盘,数据装入等操作的相关模块(Add,Delete,Modify,Query,Set,Save,Load)作为成员函数。(2)人员类Person:所有人员都具有的公共信息及操作可以使用人员类进行描述。由于系统具有4类人员且4类人员数据,操作有所不同,如销售员包含销售额,而技术人员包含工作小时数且计算工资的方法不同,所以应当为4类人员创建相应的Person类的派生类。(3)为了使公司类可以方便处理人员信息,可以考虑将公司类确定为
30、人员类的友元类或者人员类提供公共的方法以便公司类进行操作。为了公司类可以用共同方法操作人员类,可以将人员类的方法确定为虚函数。3.1.2类的层次图 类的层次图如图3.1所示。Person No,Name,Duty,Earning,next,Person(),CalcSalary(),Output()Manager Sales SalesManager Technician Manager(), Amount, Amount, t,CalcSalary(), Sales(),GetAmount(), SalesManager(), Technician(),Output() SetAmount(
31、), SetAmount(), GetT(),SetT(),CalcSalary(), CalcSalary(), CalcSalary(),Output() Output() Output()3.1 类的层次图其中:Person 类的No-人员编号,Name-人员姓名,Duty-人员类别,Earning-工资,next-指向下一个人员的指针;Person 类的CalcSalary(),Output()定义为纯虚函数分别表示要计算人员工资和输出人员信息,由于定义纯虚函数,所以Person是抽象类,具体计算工资,输出人员信息由派生类完成。各个派生的类,包含本类对象特有的数据,Sales:Amou
32、nt-销售员销售额,SalesManager:Amount-销售经理的总销售额(系统统计各个销售员销售额得到销售经理的总销售额),Technician:t-技术人员工作小时数。Company Person *Worker,Clear(),Company(),Company(),Add(),Delete(),Modify(),Query(),Set(),Save(),Load()其中:Worker就是人员链表。Clear()用于清除人员链表所有结点。Add(),Delete(),Modify(),Query(),Set(),Save(),Load()分别表示系统各个功能模块:增加人员,删除人员,
33、修改人员,查询本月经营信息,基础数据设置,数据存盘,数据装入。3.1.3系统流程图主函数首先调用菜单函数,显示菜单,菜单函数给出用户可选择的项目,用户可以通过选择该项前的代码来实现想要实现的功能。菜单函数返回一个值给主函数,主函数根据返回值,调用相应函数。主函数流程图如图3.2所示图3.2 主函数流程图32系统关键算法流程图(1)增加人员Company:Add()图3.3 增加人员函数流程图(2) 删除人员Company:Delete()图3.4 删除人员函数流程图(3) 显示本月经营信息Company:Display() 图3.5 显示本月经营信息函数流程图(4) 查询Company:Que
34、ry()图3.6 查询函数流程图(4) 保存Company:Save() 图3.7 保存函数流程图(7) 数据装入Company:Load()图3.7 数据装入函数流程图第四章 系统功能的实现4.1菜单函数菜单函数首先标出欢迎使用公司人员管理系统,然后给出用户可选择的项目,用户可以通过选择该项前的代码来实现想要实现的功能。程序源代码如下:void main()char c;Company a;dosystem(cls);coutntt* 公司人员管理系统 *n;coutttt1增加人员n;coutttt2删除人员n;coutttt3显示本月经营信息n;coutttt4基础数据设置n;coutt
35、tt5查询n;coutttt6保存n;coutc;switch(c)case 1: a.Add(); system(pause);break;case 2: a.Delete();system(pause);break;case 3: a.display(); system(pause);break;case 4: a.Set(); system(pause);break;case 5: a.Query(); system(pause);break;case 6: a.Save(); system(pause);break;while(c!=7);程序运行时,主界面如图4.1所示图4.1 菜单
36、功能实现用户可以通过选择该项前的代码来实现想要实现的功能,例如,要添加记录,从键盘输入1,按回车后,用户可按相应的提示进行添加操作。4.2添加功能添加功能要求:能根据公司人事的变动情况,添加记录。人员编号在生成人员信息时自动生成,每输入一个人员信息编号顺序加1。程序源代码如下:void Company:Add() Person *p; /新结点指针 int Duty; char Name20; double Amount,T; coutn* 新增员工 *n; /输入员工信息 ID+; coutDuty; coutName; if(Duty=3)coutAmount; else if(Duty=
37、4)coutT; /创建新员工结点 switch(Duty)case 1:p=new Manager(ID,Name,Duty); break;case 2:p=new SalesManager(ID,Name,Duty); break;case 3:p=new Sales(ID,Name,Duty,Amount); break;case 4:p=new Technician(ID,Name,Duty,T); break;p-next=0; /员工结点加入链表 if(Worker) /若已经存在结点Person *p2;p2=Worker;while(p2-next) /查找尾结点p2=p2-
38、next; p2-next=p; /连接 else /若不存在结点(表空)Worker=p; /连接在主界面中,选择1(即输入1,回车),即可输入要添加的信息,如图4.2所示。系统会罗列需要添加的项目,用户只需根据对应项目输入信息。图4.2 添加功能实现4.3删除功能删除功能要求:选中某个人的ID时,可对此人的相应数据进行删除。程序源代码如下:void Company:Delete() /删除人员 int No; coutn* 删除员工 *n; coutNo; /查找要删除的结点 Person *p1,*p2; p1=Worker; while(p1)if(p1-No=No) break; elsep2=p1;p1=p1-next; /删除结点 if(p1!=NULL)/若找到结点,则删除if(p1=Worker) /若要删除的结点是第一个结点Worker=p1-next;delete p1; else /若要删除的结点是后续结点p2-next=p1-next;delete p1;cout找到并删除n; else /未找到结点cout未找到!n;在主界面中输入2,系统提示输入要删除的名字,用户从键盘输入名字,系统便自动删除要删除的通讯录信息,并提示已经删除成功,如图4.3和4.4所示:图4.3 删除功能实