c公司人员管理系统实训报告课程设计_第1页
c公司人员管理系统实训报告课程设计_第2页
c公司人员管理系统实训报告课程设计_第3页
免费预览已结束,剩余58页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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) 添加删除功能 :能根据公司人事的变动情况 ,添加删除记录 ;4) 查询功能 :能根据编号和姓名进行查询 ;5) 保存功能

3、 :启动程序时能读取人员信息, 关闭程序时能将信息保存至硬盘文件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 谭浩强编著C+S向对象程序设计.北京清华大学出版社4 郑莉 董渊何

6、江舟等编著的C+语言程序设计.北京清华大学出版社5 李强 贾云霞等编著的Visual C+项目开发实践.北京中国铁道出版社 皮德常编著的C+g序设计教程(第一版).北京清华大学出版社7 钱能编著的C+程序设计教程(第二版).北京清华大学出版社8 郑阿奇编著Visual C+教程.北京清华大学出版社沈阳工程学院C+程序设计课程设计成绩评定表系(部):信息学院班级: 计算本121学生姓名: 指导教师评审意见评价 内容具体要求权重评分加权 分调研论证能独立查阅文献,收集资料;能制定课程设计方案 和日程安排。0.15432工作 能力 态度工作态度认真,遵守纪律,出勤情况是否良好,能 够独立完成设计工作

7、,0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度话宜。0.25432说明 书的 质量说明书立论正确,论述充分,结论严谨合理,文字 通顺,技术用语准确,符号统一,编号齐全,图表 完备,书写工整规范。0.55432指导教师评审成绩八(加权分合计乘以12)刀加权分合计指导教师签名:年 月日评阅教师评审意见评价 内容具体要求权重评分加权 分查阅 文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作 量工作量饱满,难度适中。0.55432说明说明书立论正确,论述充分,结论严谨合理,文字0.35432书的 通顺,技术用语准确,符号统一,编号齐全,图表 质里兀备,书与工整规氾。

8、评阅教师评审成绩八(加权分合计乘以8)刀加权分合计评阅教师签名:年 月日课程设计总评成绩分沈阳工程学院C+程序设计课程设计成绩评定表系(部):信息学院班级: 计算本121学生姓名: 指导教师评审意见评价 内容具体要求权重评分加权 分调研论证能独立查阅文献,收集资料;能制定课程设计方案 和日程安排。0.15432工作 能力 态度工作态度认真,遵守纪律,出勤情况是否良好,能 够独立完成设计工作,0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度话宜。0.25432说明 书的 质量说明书立论正确,论述充分,结论严谨合理,文字 通顺,技术用语准确,符号统一,编号齐全,图表 完备,书写工整

9、规范。0.55432指导教师评审成绩分(加权分合计乘以12)刀加权分合计指导教师签名:年 月日评阅教师评审意见评价 内容具体要求权重评分加权 分查阅 文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作 量工作量饱满,难度适中。0.55432说明说明书立论正确,论述充分,结论严谨合理,文字0.35432书的 通顺,技术用语准确,符号统一,编号齐全,图表 质里兀备,书与工整规氾。评阅教师评审成绩八(加权分合计乘以8)刀加权分合计评阅教师签名:年 月日课程设计总评成绩分沈阳工程学院C+程序设计课程设计成绩评定表系(部):信息学院班级:计算本121学生姓名:指导教师评审意见评价 内容具体

10、要求权重评分加权 分调研论证能独立查阅文献,收集资料;能制定课程设计方案 和日程安排。0.15432工作 能力 态度工作态度认真,遵守纪律,出勤情况是否良好,能 够独立完成设计工作,0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度话宜。0.25432说明 书的 质量说明书立论正确,论述充分,结论严谨合理,文字 通顺,技术用语准确,符号统一,编号齐全,图表 完备,书写工整规范。0.55432指导教师评审成绩分(加权分合计乘以12)刀加权分合计指导教师签名:年 月日评阅教师评审意见评价 内容具体要求权重评分加权 分查阅 文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工

11、作 量工作量饱满,难度适中。0.55432说明说明书立论正确,论述充分,结论严谨合理,文字0.35432书的 通顺,技术用语准确,符号统一,编号齐全,图表 质里兀备,书与工整规氾。评阅教师评审成绩八(加权分合计乘以8)刀加权分合计评阅教师签名:年 月日课程设计总评成绩分摘要在当前的市场经济体制下,企业要想提高市场的竞争力,取得好的经济效益,不但要有 好的产品和销售服务,还必须加强对公司内部的人员管理,以提高内部人员的凝聚力和积极 性、提高工作效率等。本文利用 VisualC+6.0编写程序,实现了用户对公司人员的编号、姓 名、性别、部门。级别、工资等信息的管理操作。本系统主要有八个功能模块:到

12、添加信息 子系统、查询信息子系统、统计子系统、显示子系统、修改子系统、删除子系统、保存子系 统和读取子系统。已经过全面的系统测试,能够很好的运行,达到了预期的效果。本系统主 要实现了对四类人员的管理:经理管理、销售人员管理、技术人员管理、销售经理管理;主 要运用了继承友元等编程方法来实现对这些人员的管理。关键词:系统设计人员管理信息公司目录摘要I目录II第一章问题分析-1 -1. 1 引言-1 -1. 2课程设计的目的 -1 -1 .3设计题目(问题)描述和要求 -1 -1 .4系统分析与分工 -2 -1 .5设备器材-3 -1 .6课程设计意义 -3 -第二章 设计原理与运行环境 -4 -2

13、. 1 C+语言概述-4 -2. 2基本操作-5 -第三章 系统分析与设计 -11 -3. 1系统设计-11 -3. 2系统关键算法流程图 -13 -第四章系统功能的实现 -17 -4.1菜单函数-17 -4.2添加功能 -18 -4.3删除功能 -20 -4.4 显示功能 -22 -4.5基础数据设置-24 -4.6查询功能 -26 -4.7保存功能-28 -4.8退出功能-30 -总结-31 -致谢-32 -参考文献-33 -第一章问题分析1.1引言公司人员管理系统是公司管理中的一个重要内容,随着时代的进步,公司人员数量也不 断增加、分工的不断细化、各个行业间联系的不断密切,对人事管理的要

14、求也不断提高。早 期的人工方式的管理系统已不适合现代企业的公司的发展,实现企业人事管理的系统化、规 范化、自动化,是现代公司管理的首选。此次课程设计的目的是以C+语言程序设计为基础,针对具有一定难度的综合性题目, 进行分析、编程、调试和运行,进一步掌握面向对象和面向过程程序设计的基本方法和编程 技巧,巩固所学理论知识,使理论与实践相结合,提高分析问题、解决问题的能力。通过设计一个简单的公司人员管理系统,进一步熟悉C+中类的概念、类的封装、继承和多态的实现方式。了解系统开发的需要分析,类层次设计,模块分析,编码测试,模块组装与 整体调试的全过程,逐步熟悉程序设计的方法,并养成良好的编程习惯。1

15、. 2课程设计的目的要求学生能够熟练掌握 C+语言的基本知识和技能。基本掌握面向对象程序设计的基本思路和方法。能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。1. 3设计题目(问题)描述和要求设计内容:某小型公司,主要有四类人员:经理,兼职技术人员,销售经理和兼职推销员.人员信息包括姓名,编号,级别,当月薪水,计算月薪总额等能够显示这些人员的全部信息.添加删除功能:能根据公司人事的变动情况,添加删除记录;查询功能:能根据编号和姓名进行查询;保存功能:启动程序时能读取人员信息,关闭程序时能将信息保存至硬盘文件。人员编号在生成人员信息时自动生成,每输入一个人员信息编号顺序加1。设计要

16、求:要求在设计的过程中建立清晰的类层次,并画出类图;设计功能满足要求、易于操作的友好界面;在系统的设计中,至少要用到面向对象的一种机制:继承、多态等;在完成该题目时,小组人员进行详细的任务分工,并要在报告中体现出来。1. 4系统分析与分工问题分析根据问题描述和要求,系统要求能够按姓名或者编号显示、查找、增加、删除和保存各 类人员的信息。确定程序至少应该具备如下功能:“查询人员”、“增加人员”、“删除人员”、“数据存盘”基本模块。系统既然具有“数据存盘”功能-人员数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出人员数据,所以系统增加了“人员数据装入”模块,以方便用户使用、 避免数据重

17、复录入。考虑到系统实现简捷,人员数据文件采用文本文件,人员数据文件名:Pers on. txt。考虑到根据编号查找人员信息功能在“删除人员”模块都使用,所以可以考虑设置为一 个模块。考虑到系统要求人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。这样就要求人员编号在增加人员时自动生成 (增加1)且不重复。根据这个要求,可以考虑 设置一个全局量:“当前最大编号”,每增加一个人员,当前最大编号自动增1,然后新增加人员使用这个编号。为了保证系统能记忆这个编号,可以使用一个数据文件保存当前这个编 号。系统每次开始运行前从文件读入这个编号,随着人员增加,编号自动增加,系统每次运 行结束时

18、将这个编号写入文件。本系统将初值(没有一个用户时)设置为00考虑到人员的许多固定信息如:经理、销售经理的固定月薪,销售经理、销售人员提成, 技术人员小时工资等都是一些不需要每个人员都要输入的信息,所以可以将这些信息都保存 在一个数据文件中,本系统为了方便起见,将这些信息与“最大编号”全部保存在一个文件 中,并使用“基础数据设置”模块进行设置和管理。基础数据文件也采用文本文件,基础数 据文件名:Base.txto本系统还提供“查询本月经营信息”帮助计算销售总额,工资总额,并按照公式计算本月盈亏。综合考虑系统具有下面8项功能模块:增加人员,删除人员,修改人员,查询本月经营 信息,基础数据设置,数据

19、存盘,数据装入。系统使用的数据文件格式如下:Base.txt :(格式:项目 数据)经理固定月薪3000销售经理固定月薪2000销售经理提成1销售人员提成2技术人员小时工资20ID 6Person.txt :(格式:编号,姓名,人员类别,其它数据,销售员销售额,技术人员工作小时)2shij inwan31000003heji nwei 14zengying 41005che nying26sunyiming 3150000注:人员类型编号1经理;2销售经理;3销售员;4 技术人员1. 5设备器材任务分工小组成员个人任务描述Xx我主要负责小组分工合作,编写添加函数、删除函数,以及撰写论文 的设计

20、原理及部分内容,完成最后的论文汇总。Xxx我主要负责编写程序的查找和修改模块及主函数等程序功能,负责链接调试程序,结合大家感受撰写论文的总结部分。Xx我主要负责编写程序的菜单,显示和删除模块,并负责撰写论文的摘要,引言,致谢部分。表1.1任务分工参考书目、计算机、编译软件 Microsoft Visual Studio 20101. 6课程设计意义通过设计此系统,熟练掌握 C+语言的基本知识和技能,基本掌握面向对象程序开发的 基本思路和方法,培养学生的动手操作能力,提高自主学艺能力,能够利用所学的基本知识 和技能,进行简单应用程序设计。加深理解利用程序设计思想开发一个系统的整个流程,提 高分析

21、问题、解决问题和实际动手的能力。第二章设计原理与运行环境2. 1 C+语言概述2.1.1 C+语言出现的历史背景伟大的C+语言之父,Bjarne Stroustrup博士曾经说过:“一种程序设计思想要为人所用, 不仅语言的特性必须是典雅的,而且它必须在真正的程序环境中能经得起考验。”面向对象程 序设计方法的提出,以及它在编写大规模程序方面显示出的优越性,使人们开始重视面向对 象程序设计语言的研究。在面向过程的 ALGOL、ADA和MoDuLA 2等语言的基础上,逐 步演变形成了面向对象的程序设计语言。20世纪60年代,美国国防部投入巨大的人力和物力,研制开发了 ADA语言。ADA语言并非面向对

22、象的程序设计语言,但它具有的模块化、 信息隐藏、数据抽和并发执行等特点对于面向对象程序设计方法和技术起到了积极的推动作 用。人们普遍认为,ADA语言是一种基于对象的程序设计语言。1967年出现了 simula67语 言,它是面向对象程序设计语言的鼻祖,提出了对象的概念,并且支持类和继承。随后出现 的Smalltalk语言继续丰富和发展了面向对象程序设计的概念,并且提供了更加严格的信息隐 藏机制。1980年问世的Smalltalk80语言是Smalltalk语言的改进版,开始向世人展现面向 对象程序设计的魅力。1982年,美国AT&T公司贝尔实验室的Bjarne Stroustrup博士在c语言

23、的基础上引入并 扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与c语言的渊源关系,它被名为C+。此后C+语言历经了不断地完善,例如 1990年C+语言引入模板和异常处理 的概念,1993年引入运行时类型识别(RTTI)和名字空间(Name Space的概念。1997年,C+ 语言成为美国国家标准(ANSI)。1998年,C+语言又成为了国际标准(ISO)。目前,C+语言 已成为使用最广泛的面向对象程序设计语言之一。C+语言是以c语言为基础的,支持c语言的所有语法和几乎所有的技术,因此也有人把C+语言看作是c语言的超集。同时C+语言支 持面向对象程序设计方法的所有概念,它是一种非常

24、实用的、功能极为强大的程序语言,相 对而言较难掌握。2.1.2 C+语言的主要特点【优点】C+设计成静态类型、和C同样高效且可移植的多用途程序设计语言。C+设计成直接的和广泛的支持多种程序设计风格(程序化程序设计、资料抽象化、 面向对象程序设计、泛型程序设计)。C+设计成给程序设计者更多的选择,即使可能导致程序设计者选择错误。C+设计成尽可能与C兼容,籍此提供一个从C到C+的平滑过渡。C+避免平台限定或没有普遍用途的特性。C+不使用会带来额外开销的特性。C+设计成无需复杂的程序设计环境。 出于保证语言的简洁和运行高效等方面的考虑,C+的很多特性都是以库(如 STL)或其他的形式提供的,而没有直

25、接添加到语言本身里。C+在一定程度上可以和C语言很好的结合,甚至大多数 C语言程序是在C+的集成 开发环境中完成的。C+相对众多的面向对象的语言,具有相当高的性能。C+引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷。很 多优秀的程序框架包括 MFC、QT、wxWidgets就是使用的C+。人们一般认为,使用Java或C#的开发成本比C+低。但是,如果充分分析 C+和这 些语言的差别,会发现这句话的成立是有条件的。这个条件就是:软件规模和复杂度都比较 小。如果不超过3万行有效代码(不包括生成器产生的代码),这句话基本上还能成立。否则, 随着代码量和复杂度的增加,C+的优势将会

26、越来越明显。造成这种差别的就是C+的软件工程性。【缺点】C+由于语言本身过度复杂,这甚至使人类难于理解其语义。更为糟糕的是C+的编译系统受到C+的复杂性的影响,非常难于编写,即使能够使用的编译器也存在了大量的问 题,这些问题大多难于被发现。由于本身的复杂性,复杂的 C+程序的正确性相当难于保证。也有人提出不支持多线 程的原语等缺陷。不过有如此多的知名人士提出了如此多的缺陷,正说明C+被广泛使用和成功。C+语言由于过度的复杂性,以及与 unix的文化相抵触,在unix/linux领域受到很多 著名人士(比如Linux之父linus torvalds与著名黑客Eric S. Raymond)的强烈

27、批评与抵制。2. 2基本操作1新建一个工程首先鼠标左键单击“文件”菜单,选择“新建”单击鼠标左键,系统将弹出一个窗口,单击“工程”选项,将得到图2.1所示窗口。请在“工程名称”栏填入工程名,然后鼠标左键单 击左边窗口倒数第三项“ Win32 Console Application ”,使该项变蓝,然后鼠标左键单击“确 定”按钮。得到图2.2所示窗口,选择“一个空工程”,单击“完成”得到图2.3。再单击“确 定”得到图2.4所示的窗口。图2.1新建工程窗口图22选择控制台程序Win Ji? Console Application will create a new skeleton projec

28、t with (he lollowing specilications:+ Empty concole application.t No (ilcii will be created ur ddiied to Uic prujecl.Project Dirtctory:D:Program FileisMicrocott Visual S-tucjioMyProject?1 23Caiiut t图2.3创建新工程.r 113 二 Bi er#klL il C+File Eli i Vie* IitEert Fr&j tet BuiLd Too三HtlpIY一 -M!fc图2.4 Visual C

29、+ 6.0的工作环境2 新建一个源文件要新建一个C程序源文件可以选择“文件”菜单的“新建”选项,在弹出的窗口中选择“文 件”选项单击,得到如图2.5所示的窗口,其“位置”栏中的内容是默认的,在“添加到工 程”前打勾,“工程名”也是默认的。图2.5新建源文件3 .编辑程序编辑环境如图2.6所示。把程序代码输入计算机,如图2.7所示图2.7编辑程序4.编译、连接、运行、调试一个程序当源文件编辑完成后,就可以编译、连接和运行程序了。方法如下: 单击“组建”菜单的“编译”选项,将完成编译工作得到 *cpp目标文件(文件名就是源 文件的名字),编译结果将在窗口最下面的输出窗口显示。 可根据窗口的提示修改

30、源文件以改 正错误。 单击“组建”菜单的“组建”选项,完成连接工作得到可执行文件(文件名是工程名),连接的结果也将在窗口最下面的输出窗口显示。 单击“组建”菜单的“全部重建”选项,将完成编译和连接两项工作,编译和连接的结果 将在输出窗口显示。 单击“组建”菜单的“执行”选项,可运行程序,程序运行的结果如图2.8所示。图2.8程序运行结果第三章系统分析与设计3.1系统设计系统总体框架使用面向对象的程序设计思想进行分析,整个系统涉及两大类信息和操作,公司,人员。 所以系统主要涉及两个大类:公司类 Company人员类Person。系统的总体框架就是公司类, 人员类的定义;主函数中定义一个公司对象,

31、循环显示主菜单并根据用户选择调用公司类的 相应方法(成员函数)。(1) 公司类Company考虑系统操作的人员信息的数量具有不确定性,所以考虑使用链表 保存、处理人员信息。公司类包含:所有人员信息的一个不带头结点的链表(作为数据成员) 及可以对人员信息进行增,删,改,查询经营信息,基础数据设置,数据存盘,数据装入等 操作的相关模块(Add,Delete,Modify,Query,Set,Save,Load)作为成员函数。 人员类Person :所有人员都具有的公共信息及操作可以使用人员类进行描述。由于 系统具有4类人员且4类人员数据,操作有所不同,如销售员包含销售额,而技术人员包含 工作小时数

32、且计算工资的方法不同,所以应当为4类人员创建相应的Person类的派生类。(3)为了使公司类可以方便处理人员信息,可以考虑将公司类确定为人员类的友元类或者 人员类提供公共的方法以便公司类进行操作。为了公司类可以用共同方法操作人员类,可以 将人员类的方法确定为虚函数。类的层次图类的层次图如图3.1所示。Person No,Name,Duty,Earni ng, next,Perso n( ),CalcSalary(),Output()SalesMa nager Ma nager(),Am ount,Am ount, t,CalcSalary(),Sales(),GetAmou nt(),Sale

33、sMa nager(),Tech nician(),Output()SetAmou nt(),SetAmou nt(),GetT(),SetT(),CalcSalary(),CalcSalary(),CalcSalary(),Tech nicianOutput。Output。Output()其中:Pers on类的No-人员编号,Name人员姓名,Duty-人员类别,Earni ng-工资,next- 指向下一个人员的指针;Person类的CalcSalary() ,Output()定义为纯虚函数分别表示要计 算人员工资和输出人员信息,由于定义纯虚函数,所以Person是抽象类,具体计算工资,

34、输 出人员信息由派生类完成。各个派生的类,包含本类对象特有的数据,Sales:Am oun t-销售员销售额, SalesManager:Amount-销售经理的总销售额(系统统计各个销售员销售额得到销售经理的总 销售额),Technician:t-技术人员工作小时数。Compa nyPerson *Worker,Clear(),Compa ny(),Compa ny(),Add(),Delete(),Modify(),Query(),Set(),Save(),Load()其中:Worker就是人员链表。Clear()用于清除人员链表所有结点。 Add(),Delete(),Modify(),

35、Query(),Set(),Save(),Load()分别表示系统各个功能模块:增加人员,删除人员,修改人员,查询本月经营信息,基础数据设置,数据存盘,数据装 入。系统流程图主函数首先调用菜单函数,显示菜单,菜单函数给出用户可选择的项目,用户可以通过 选择该项前的代码来实现想要实现的功能。菜单函数返回一个值给主函数,主函数根据返回 值,调用相应函数。主函数流程图如图3.2所示开始创建公司对象显示菜单 接受输入根据输入执行公司操作3. 2系统关键算法流程图(1)增加人员 Company:Add()开始IID号增1 输入岗位输入数据,创建员工对象结点员工结点加入链表图3.3增加人员函数流程图(2)

36、 删除人员 Company:Delete()开始.输入员工ID查找要删除结点结点存在?链表删除员工结点提示未找到结束显示本月经营信息 Company:Display()图3.5显示本月经营信息函数流程图(4)查询 Company:Query()修改结点提示未找到结束(4)保存 Company:Save()图3.7保存函数流程图(7)数据装入 Company:Load()图3.7数据装入函数流程图第四章系统功能的实现4.1菜单函数菜单函数首先标出欢迎使用公司人员管理系统,然后给出用户可选择的项目,用户可以 通过选择该项前的代码来实现想要实现的功能。程序源代码如下:void mai n() cha

37、r c;Compa ny a;dosystem(cls);coutntt*公司人员管理系统*n;coutttt1 增加人员 n;coutttt2 删除人员 n;coutttt3 显示本月经营信息 n;coutttt4 基础数据设置 n;coutttt5 查询 n;coutttt6 保存 n;cout c;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(); syst

38、em(pause);break;case 5: a.Query(); system(pause);break;case 6: a.Save(); system(pause);break;while(c!=7);程序运行时,主界面如图4.1所示图4.1菜单功能实现用户可以通过选择该项前的代码来实现想要实现的功能,例如,要添加记录,从键盘输 入1,按回车后,用户可按相应的提示进行添加操作。4.2添加功能添加功能要求:能根据公司人事的变动情况,添加记录。人员编号在生成人员信息时自动 生成,每输入一个人员信息编号顺序加1。程序源代码如下:void Compa ny:Add()Person *p;/新结

39、点指针int Duty;char Name20;double Amoun t,T;coutn* 新增员工 * n;输入员工信息ID+;coutDuty;coutName;if(Duty=3)coutAmount;else if(Duty=4)cout T;II创建新员工结点switch(Duty)break;break;break;case 1:p=new Man ager(ID,Name,Duty); break; case 2:p=new SalesMa nager(ID,Name,Duty);case 3:p=new Sales(ID,Name,Duty,Am oun t); case

40、4:p=new Tech ni cia n(ID,Name,Duty,T);p-n ext=0; if(Worker)II员工结点加入链表II若已经存在结点Pers on *p2; p2=Worker; while(p2-n ext) p2=p2-n ext; p2-n ext=p;/查找尾结点/连接 elseII若不存在结点(表空)Worker=p;连接在主界面中,选择1 (即输入1,回车),即可输入要添加的信息,如图4.2所示。系统会罗列需要添加的项目,用户只需根据对应项目输入信息蔚舉芸蟲皆销售纽里2韦售员4技术员也 输姓名=sli i j in wan 谱按任意犍处续-人员和基础数据己经

41、苦入c:C *D : *kPr*crfi Fil es Mi ciosoft i su&l SILudi aAlyPro j ectsVdff Diebu.gi dc_ exe添加功能实现1 2 3 4 b h 7rl息 】昔置 珈经设 菲鸟曹据 恥人人本数 報狐除ffi苗存岀 胪壻fJ显基宣保退图4.24.3删除功能删除功能要求:选中某个人的ID时,可对此人的相应数据进行删除。程序源代码如下:void Compa ny:Delete()/ 删除人员int No;coutn* 删除员工 * n; coutNo=No) break;elsep2=p1; p1=p1- n ext;/删除结点if(

42、p1!=NULL)若找到结点,则删除if(p1=Worker)若要删除的结点是第一个结点Worker=p1- n ext; delete p1;else 若要删除的结点是后续结点p2-n ext=p1- n ext; delete p1;cout找到并删除n;else /未找到结点cout未找到!n;在主界面中输入2,系统提示输入要删除的名字,用户从键盘输入名字,系统便自动删 除要删除的通讯录信息,并提示已经删除成功,如图4.3和4.4所示:-21 -图4.4显示找到并删除e ndl;和sum2必须分开计算4.4显示功能显示功能要求:能够显示这些人员的全部信息。程序源代码如下:void Com

43、pa ny:display()coutN*公司人员本月工资和销售信息coutDuty=3)sum+=(Sales *)p)-GetAmou nt();p=p-n ext;p=Worker;double sum2=0; II 工资总和while(p)if(p-Duty=2)(SalesMa nager *)p)-SetAmou nt(sum); I/sump-Output(); sum2+=p-Earni ng; p=p-n ext;cout本月盈利:sum*0.20-sum2(按照 20 %利润计算)endl;/*设置基础数*void Compa ny:Set()coutn* 设置基础数据*

44、n;cout经理固定月薪ManagerSalary元:;cinMan agerSalary;cout销售经理固定月薪SalesManagerSalary SalesMa nagerSalary;cout销售经理提成SalesManagerPercent SalesMa nagerPerce nt;cout销售人员提成SalesPercent SalesPerce nt;cout技术人员小时工资 WagePerHour WagePerHour;cout=ID ID;在主界面中输入3,显示通讯录中所有人信息。如图4.5所示:图4.5显示功能实现4.5基础数据设置基础设置要求:对各类人员的基本信息进

45、行初始设置。程序源代码如下:void Company:Load()II数据装入(包括基础数据,人员数据)基础数据装入ifstream fBase;建立文件输入流对象char buf80;buf用于保存数据文件中的注释字符串fBase.ope n(base.txt,ios:i n);fBasebufMa nagerSalary;/ 经理固定月薪fBasebufSalesMa nagerSalary;/ 销售经理固定月薪fBasebufSalesManagerPercent; / 销售经理提成 fBasebufSalesPerce nt;/ 销售人员提成fBasebufWagePerHour;/技

46、术人员小时工资fBasebufID;/ 员工标识fBase.close();人员数据数据装入ifstream fPers on;Pers on *p=Worker;int No; char Name20; int Duty;double Amoun t,T;fPers on. ope n(pers on. txt,ios:i n);/读一条记录fPers onN oNameDuty; if(Duty=3)fPers on Am ount; else if(Duty=4)fPers on T;while(fPers on .good() /创建员工结点switch(Duty)break;brea

47、k;break;case 1:p=new Man ager(No,Name,Duty); break; case 2:p=new SalesMa nager(No,Name,Duty); b case 3:p=new Sales(No,Name,Duty,Am oun t); b case 4:p=new Tech nicia n(N o,Name,Duty,T); brp-n ext=0;员工结点加入链表if(Worker) /若已经存在结点Pers on *p2; p2=Worker;while(p2- next)/ 查找尾结点p2=p2-n ext; p2- next=p; / 连接else 若不存在结点(表空)Worker=p; / 连接/读下一条记录fPers onN oNameDuty;if(Duty=3)fPers on Am ount; else if(Duty=4)fPer

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论