C++课程设计公司工资管理系统说明书
工资管理系统c语言课程设计
工资管理系统c语言课程设计工资管理系统是一种用于管理和计算员工工资的软件系统。
对于企业而言,工资管理是一个重要的管理环节,直接关系到员工福利和企业的正常运行。
因此,开发一个功能完善、稳定可靠的工资管理系统对企业来说至关重要。
工资管理系统应具备以下基本功能:员工信息管理、工资计算、工资发放、报表生成等。
员工信息管理包括员工个人信息、职位信息、工资信息等的录入、修改、查询、删除等操作。
工资计算是根据员工的工作情况和薪资政策进行工资计算,包括基本工资的计算、加班工资的计算、奖金的计算等。
工资发放则是按照企业规定的发放时间和方式进行工资发放。
报表生成是将工资统计数据进行汇总和统计,并以表格、图形等形式生成相应的报表,以便管理人员进行分析和决策。
工资管理系统的实现需要采用结构化程序设计的方法。
首先,需要设计员工信息的数据结构,包括员工编号、姓名、性别、年龄、部门、职位、基本工资等字段。
然后,需要设计工资计算的算法,按照薪资政策进行计算,并将计算结果保存在员工的工资信息中。
接下来,需要设计工资发放的算法,根据发放时间和方式进行工资发放,并更新员工的工资信息。
最后,需要设计报表生成的算法,将工资统计数据汇总并以表格、图形等形式生成相应的报表。
在具体的实现过程中,可以采用C语言作为编程语言,并结合相关的开发工具进行开发。
在编程实现时,需要合理使用各种数据结构和算法,提高程序的效率和稳定性。
此外,需要注意进行错误处理和异常处理,保证程序运行的稳定性和安全性。
另外,还可以加入一些附加功能,如权限管理、数据备份、数据导入导出等,增加系统的灵活性和实用性。
综上所述,工资管理系统是一个重要的软件系统,对于企业来说具有重要的意义。
通过规范的员工信息管理、工资计算、工资发放和报表生成等功能,可以提高企业的管理效率和质量,实现人力资源的合理配置和有效利用。
同时,在日常的使用和维护过程中,需要注意保证系统的稳定性和安全性,提高系统的可靠性和可用性。
工资管理系统课程设计C语言
工资管理系统 课程设计 C语言一、课程目标知识目标:1. 理解工资管理系统的基本概念和功能需求;2. 掌握C语言中的基本数据类型、运算符、控制结构等编程知识点;3. 学会使用C语言设计并实现一个简单的工资管理系统。
技能目标:1. 能够运用C语言编写出结构清晰、逻辑合理的程序代码;2. 能够运用数组、结构体等数据结构存储和管理工资数据;3. 能够运用文件操作实现工资数据的持久化存储。
情感态度价值观目标:1. 培养学生解决问题的能力和团队协作精神,激发学生对编程的兴趣;2. 增强学生对信息技术的认识,使其意识到信息技术在现实生活中的应用价值;3. 培养学生严谨、认真的学习态度,提高学生的编程素养。
课程性质:本课程为C语言编程实践课,旨在让学生通过动手实践,掌握C语言编程的基本技能,并能够运用所学知识解决实际问题。
学生特点:学生为高年级学生,已具备一定的C语言基础,有较强的逻辑思维能力,但对实际应用场景的编程经验不足。
教学要求:结合学生特点,注重实践操作,引导学生从实际问题出发,逐步培养编程思维,提高编程能力。
课程目标分解为具体学习成果,便于教学设计和评估。
二、教学内容1. 工资管理系统概述- 系统需求分析- 功能模块划分2. C语言基础知识回顾- 数据类型- 运算符与表达式- 控制结构(顺序、分支、循环)3. 数据结构设计- 数组- 结构体4. 函数与模块化编程- 函数定义与调用- 模块化设计5. 文件操作- 文件打开与关闭- 文件读写操作6. 工资管理系统功能实现- 员工信息管理- 工资计算- 工资查询- 数据存储与读取7. 测试与调试- 功能测试- 性能测试- 代码调试教学内容安排与进度:第1周:工资管理系统概述及需求分析第2周:C语言基础知识回顾第3周:数据结构设计第4周:函数与模块化编程第5周:文件操作第6周:工资管理系统功能实现(1)第7周:工资管理系统功能实现(2)第8周:测试与调试教材章节及内容:《C语言程序设计》第3章:数据类型、运算符与表达式第4章:控制结构第6章:函数与模块化编程第7章:数组和字符串第8章:结构体与共同体第9章:文件操作教学内容紧密结合课程目标,注重科学性和系统性,通过以上教学内容,使学生能够掌握C语言编程的核心知识,并能够将其应用于工资管理系统的设计与实现。
C企业工资管理系统课程设计
目录一、需求分析 (1)二、概要设计 (3)三、详细设计 (12)四、调试分析 (12)五、用户手册 (13)六、测试数据 (17)七、附录 (31)一、需求分析1.源文件采用多文件的工程结构。
2.数据存储采用文件形式。
3.标准C++输入输出4.程序完成企业人事工资管理,能够实现工资的录入、统计(整个单位的平均工资、最高工资、最低工资和工资均方差;各部门的平均工资、最高工资、最低工资和工资均方差)、查询(按工号或姓名查询)、修改、删除等功能。
5.程序执行的命令:(1)录入员工工资信息;(2)选择需要执行的操作(添加、统计、删除、修改、查询);(3)输出结果。
二、概要设计1.设计类的数据类型定义class message{private:char bornplace[10],duty[10];//籍贯职务int ID;//身份证号public:char name[10],bumen[10];//姓名部门int number; //工号int basesalary;//基本工资int jobsalary;//岗位工资int yljj;//医疗基金int sj;//税金int jiangjin;//奖金friend void modify(int x); //友员函数friend int del(int x); //友员函数}2.程序模块(1)录入操作:void writen(int x),该模版主要实现工资信息的录入;(2)添加操作:void add(int x),该模版主要实现工资信息的添加;(3)删除操作:void del(int x),该模版主要实现工资信息的删除;(4)修改操作:void modify(int x),该模版主要实现工资信息的修改;(5)查询操作:void find(int x) ,该模版主要实现工资信息的查询(按名字查询或按工号查询);(6)统计操作:void count(int x),该模版主要实现工资信息的统计(统计单位的平均工资、最高工资、最低工资、工资均方差;统计部门的平均工资、最高工资、最低工资、工资均方差)。
c语言课程设计职工工资管理系统
一、概述随着社会的发展和进步,工资管理系统在企业管理中扮演着重要的角色。
为了提高工资管理的效率和准确性,许多企业都倾向于引入计算机系统来进行工资管理。
C语言是一种广泛应用于系统程序设计和应用程序开发的高级语言,具有跨评台性和高效性的特点。
设计一个基于C语言的职工工资管理系统将会成为一个有价值的课程设计。
二、系统功能需求1. 职工信息管理:系统需要能够记录、查看和修改职工的基本信息,包括尊称、工号、部门、入职日期等。
2. 薪资核算:系统应能根据职工的实际出勤、加班情况、请假情况等自动生成薪资,并能够灵活处理各类津贴和抠款。
3. 考勤管理:系统需要提供考勤记录的输入和查询功能,以便及时了解职工的工作情况。
4. 报表输出:系统需要能够生成各类工资报表,方便管理人员进行核对和统计。
5. 数据备份和恢复:系统应具备数据备份和恢复功能,以保证数据的安全性和完整性。
三、系统设计与技术选择在设计该系统时,应采用模块化、分层的设计思路,以便系统具有良好的可维护性和扩展性。
1. 界面设计:可以采用文本界面或图形界面进行设计,具体选择取决于系统的实际应用环境和用户需求。
2. 数据存储:可以选择采用文件系统或数据库来存储系统数据,常见的选择包括文本文件、CSV文件、SQLite数据库等。
3. 算法选择:需要根据系统的具体需求选择合适的算法来实现薪资核算和报表生成等功能。
4. 开发工具:可以选择C语言的集成开发环境(IDE)来进行开发,例如Visual Studio、Dev-C++等。
四、系统实现在进行系统开发时,需要按照设计要求逐步实现各个功能模块,同时进行严格的测试和调试工作,以确保系统的稳定性和准确性。
1. 职工信息管理模块:包括新增、修改、删除职工信息等功能。
2. 薪资核算模块:根据考勤情况自动生成薪资并进行津贴和抠款处理。
3. 考勤管理模块:提供考勤记录的输入和查询功能,确保数据的及时更新和准确性。
4. 报表输出模块:能够生成各类工资报表,包括月度工资表、年度工资统计表等。
”小型公司工资管理系统设计“c课程设计.doc
”小型公司工资管理系统设计“c++课程设计1目录一、课程设计目的(1)二、课程设计内容(1)1、题目及简介(1)2、设计说明(1)3、程序设计(1)(1)程序流程图(1)(2)程序代码(2)三、课程设计总结(15)参考文献(15)一、课程设计目的(1)要求学生达到熟练掌握c++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基础思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
二、课程设计内容1、题目及简介(1)设计题目:小型公司工资管理系统设计(2)简介:公司主要有4类人员:经理,技术员,销售员,销售经理。
要求存储这些人的职工号,姓名,月工资,岗位,年龄,性别等信息。
工资的计算方法:经理:固定月薪为8000;技术员:工作时间*小是工资(100元每小时);销售员:销售额*4%提成;销售经理:底薪(5000)+所辖部门销售额总额*0.5%;要求;1)输入数据要求每类人员不能少于4人,并按一下格式输出:职员号姓名性别年龄岗位工资排名及某销售经理管理所辖部门各销售员的业绩及自己的工资表:职员号姓名销售额销售额合计。
2)总体设计,要有一个菜单,用于选择各项功能,其中(1)数据录入:输入各种数据;(2)数据统计:各销售经理的工资计算及最终按工资进行的冒泡排序;(3)数据打印:打印上述表格;(4)退出:退出本系统;2设计说明充分利用了类的继承与派生的知识,先定义了一个雇员类Employee,由雇员类公有派生出技术员类Tech,销售员类Seller,经理类Manager,由销售员类Seller,经理类Manager公有派生出销售经理类XManager。
把基类都定义为虚基类。
通过基类去写的派生类就可以调基类的公有成员。
利用for循环把经理数据,技术员数据,销售员数据,销售经理数据输入,利用冒泡排序法把各销售经理的资按升序排列。
利用switch进行选择系统进行的工作。
在主菜单中进行调用各函数,从而实现系统各功能的运行。
c语言课程设计工资管理系统
c语言课程设计工资管理系统一、教学目标本课程的教学目标是使学生掌握C语言编程基础,能够运用C语言设计并实现一个简单的工资管理系统。
具体目标如下:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,理解面向过程的编程思想。
2.技能目标:学生能够运用C语言编写程序,解决实际问题。
通过设计并实现工资管理系统,学生将学会如何代码、使用数据结构、编写主函数等。
3.情感态度价值观目标:培养学生对计算机编程的兴趣,提高学生解决问题的能力,培养学生的创新精神和团队合作意识。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,以及面向过程的编程思想。
具体安排如下:1.第一部分:C语言基础知识。
包括C语言的基本语法、数据类型、运算符、控制结构等。
这部分内容将帮助学生掌握C语言的基本编程能力。
2.第二部分:函数和面向过程编程。
包括函数的定义和调用、函数指针、数组和字符串等。
这部分内容将帮助学生掌握函数编程的方法,培养学生面向过程的编程思想。
3.第三部分:工资管理系统的设计与实现。
包括系统需求分析、系统设计、代码编写和调试等。
这部分内容将帮助学生将所学知识应用于实际问题,提高学生的编程能力和解决问题的能力。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:教师讲解C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,使学生掌握C语言的基本编程能力。
2.案例分析法:通过分析实际案例,让学生了解并掌握函数编程的方法,培养学生面向过程的编程思想。
3.实验法:学生在实验室进行编程实践,设计和实现工资管理系统,提高学生的编程能力和解决问题的能力。
4.小组讨论法:学生分组进行讨论,共同解决问题,培养学生的团队合作意识和创新精神。
四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备等。
具体如下:1.教材:选用《C程序设计语言》等权威教材,为学生提供系统、科学的学习材料。
c语言课程设计报告-工资管理系统 精品
课程设计报告商贸学院课程设计任务书5 设计题目:工资管理系统学生姓名课程名称C程序设计课程设计专业班级自普本20XX-1 自应本20XX-1地点I302/304 起止时间20XX.6.30-20XX.7.11设计内容及要求主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:工资录入,按人名、基本工资、实发工资、个人所得税进行查询和按部门进行分类统计。
操作界面要符合用户的一般习惯,图形或文本界面都可以。
要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。
设计参数文件记录的字段数量不少于6个,分类统计中统计的项不少于2个。
进度要求1. 布置设计题目,讲解要求和说明 20XX.6.302. 确定设计任务,确定具体的功能,熟悉相关知识 20XX.7.13. 按功能需求确定程序的主要模块 20XX.7.24. 编程实现程序的功能 20XX.7.3 - 20XX.7.45. 调试并完善程序 20XX.7.7 - 20XX.7.86. 撰写课程设计报告 20XX.7.97. 提交课程设计报告并答辩 20XX.7.10- 20XX.7.11参考资料《C程序设计经典教程》清华大学出版社 20XX.3 《C陷阱与缺陷》人民邮电出版社 20XX.2其它说明1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。
2.若填写内容较多可另纸附后。
3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。
目录摘要 (1)1设计内容、任务及具体要求 (2)1.1设计内容 (2)1.2设计任务及具体要求 (2)2概要设计 (3)2.1该系统的功能简介 (3)2.2 总体程序框图 (3)2.3各个模块之间的主要关系 (4)3系统功能模块的具体设计 (5)3.1各个模块的程序流程图及运行界面 (5)3.2对关键代码加以分析说明 (15)4程序调试分析 (23)5程序使用说明 (24)6总结 (25)致谢 (26)参考文献 (27)附:源程序 (28)1 设计内容、任务及具体要求1.1设计内容《工资管理查询系统》主要根据课程设计要求进行设计,并了解了公司的职工的工资工作流程,该系统功能主要包括六大模块:1)职工个人说得税的计算模块,根据工资多余5000,在1000—5000之间,少余1000三种情况进行计算。
C语言课程设计工资管理系统
界面布局:检查界面布局是否合理,是否符合用户习惯 功能测试:测试各个功能模块是否正常工作,是否有错误提示 性能测试:测试系统的响应速度和稳定性,是否有卡顿现象
兼容性测试:测试系统在不同操作系统和浏览器上的兼容性,是否有显示异常
员工信息录入:包括姓名、性别、年龄、 职位、薪资等信息
员工信息删除:删除不再需要的员工信 息
测试目的:验 证系统功能是 否符合设计要
求
测试内容:功 能测试、性能 测试、安全性
测试等
测试方法:黑 盒测试、白盒 测试、灰盒测
试等
测试结果:列 出测试过程中 发现的问题及
解决方案
测试结论:对 系统的整体性 能和稳定性进
行评估
测试建议:针 对测试中发现 的问题提出改
进建议
硬件要求:服务器、网络设备、存 储设备等
部署步骤:安装操作系统、安装数 据库管理系统、安装Web服务器、 部署工资管理系统等
添加标题
添加标题
添加标题
添加标题
软件要求:操作系统、数据库管理 系统、Web服务器等
维护方案:定期备份数据、定期检 查系统运行情况、定期更新系统软 件等
系统运行环境:Windows、Linux等操作系统 硬件要求:CPU、内存、硬盘等 软件安装:安装C语言编译器、数据库管理系统等 系统维护:定期备份数据、更新软件、修复漏洞等
升级方式:自动升级或手动升级 升级内容:功能升级、性能升级、安全升级等 扩展方式:插件扩展、模块扩展、功能扩展等 扩展内容:增加新功能、优化性能、提高安全性等
汇报人:
排序算法:快速排序、归并排序、 堆排序等
图算法:最短路径、最小生成树等
添加标题
添加标题
添加标题
添加标题
工资管理系统说明书
明达职业技术学院C语言课程设计2007-2008学年第二学期信息工程系计算机应用技术专业班级 07计算机学号 41073140设计名称工资管理系统学生姓名徐宗富指导教师孙干陈婷二O0八年六月三十日目录一、本组课题 (1)二、功能简介 (1)三、主要内容 (1)(一)设计分析 (1)(二)程序说明 (2)(三)设计体会 (3)四、总结 (3)五、参考书目 (3)工资管理系统徐宗富[摘要]《工资管理系统》的设计与实现,整个系统均用C语言实现,利用指针、链表来实现工资信息的数据结构设计;系统具有输入、显示、计算实发工资、查找、删除、追加、插入、保存、读取、复制基本功能;系统的各个功能模块都用函数的形式来实现;可以将工资信息保存在文件中。
可以将职工信息从文件中读取出来。
整个系统除了主函数外,另外还有16个函数,实现十大功能:输入功能、显示功能、计算功能、查找功能、插入功能、保存功能、删除功能、读取功能、复制功能。
界面简洁明了,容易操作。
主要包含十二大函数:主函数 main();菜单选择函数int menu_select()初始化函数 void init();输入函数void create();显示数据函数 void list();计算函数void calc();查找函数 void search();删除记录函数void delete();插入函数 void insert();保存函数 void save();从文件读数据函数 void load();复制函数 void copy()。
C语言是当今世界上主流的编程设计语言,它浅显易懂,容易实现。
[关键词]程序设计工资管理系统显示查找插入追加保存读取删除复制一、本组课题《工资管理系统》的设计与实现本人承担任务:复制模块二、功能简介本系统主要功能简介如下:1、每一条记录包括一个职工的编号、姓名、基本工资、扣款、应发工资、税金、实发工资。
2、输入功能:可以一次完成无数条记录的输入。
C课程设计公司工资管理系统说明书
C++ 课程设计公司工资管理系统说明书 1 数学与计算机学院课程设计说明书课程名称: 面向对象程序设计-课程设计课程代码: 8404101题目: 公司工资管理系统年级/专业/班:学生姓名:学号:开始时间:年月日完成时间:年月日课程设计成绩:指导教师签名:年月日目录1引言(1)1.1问题的提出(1)1.2国内外研究的现状(1)1.5 任务与分析(1)2程序的主要功能(1)2.1添加功能(1)2.2删除功能(1)2.3显示功能(2)2.4数据设置功能(2)2.5修改功能(2)3程序运行平台(2)4总体设计(2)5程序类的说明(3)6模块分析(7)6.1添加模块(7)6.2查询本月经营模块(8) 6.3修改模块(9)6.4数据存盘模块(11)6.5删除模块(12)6.6基础数据设置模块(12)6.7数据装入模块(12)7系统测试(16)8结论(21)致谢(22)参考文献(23)摘要随着计算机的普及……计算机科学越来越变得重要,程序设计作为计算机科学的基本,地位也变得越来越重要。
C++ 作为程序设计的基础,地位也是很重要的。
C++是开发性能高复杂度系统的最好语言。
此次进行C++课程设计,做一个公司工资管理系统,让我更为深层次地了解到了C++的魅力所在,让我懂得什么才叫编程的快乐。
社会在进步,计算机科学也在进步,C++的重要性也越来越重要,我们只有不断地学习,才能赶上时代的步伐……关键词:公司工资管理系统;计算机;C++ ;程序设计……1 引言1.1问题的提出在现代化的企业管理中,人事管理系统有着十分重要的作用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。
某小型企业出与这种目的制作了这个人事管理系统。
1.2国内外研究的现状C++发展至今已经有20年的时光了,在这20年里,C++逐步的发展壮大,为面向对象开发思维的推广提供了实现的基础。
可以说 C ++对于现在思想的成熟以及在企业开发中的大量应用时功不可没的。
C语言课程设计报告-工资管理系统
C语言课程设计报告-工资管理系统一.系统功能设计一个职工工资管理系统,其功能包括:(1)职工基本工资信息录入包括工号,姓名,应发工资,奖金,扣款,应发工资,扣税,实发工资。
(2)职工基本工资信息保存(3)职工基本工资信息查询按照工号查询按照姓名查询(4)职工基本工资信息显示在屏幕上显示所有的职工基本工资信息。
(5)职工基本工资信息更新能够实现修改,删除,插入,排序功能。
(6)职工基本工资信息统计统计公司员工工资在各等级的人数主界面系统主界面应有如下功能选项录入职工基本工资信息查询职工基本工资信息保存职工基本工资信息删除职工基本工资信息插入职工基本工资信息修改职工基本工资信息统计职工基本工资信息排序职工基本工资信息显示职工基本工资信息退出代码如下:#incl ude <stdio.h>typed ef st ructemplo yee{ char num[10]; //保存职工编号 char name[15]; //保存职工姓名 floa t jbg z; //保存职工基本工资f loatjj; //保存职工奖金f loatkk; //保存职工扣款float yfgz; //保存职工应发工资 fl oat s k; //保存职工税款f loatsfgz; //保存职工实发工资}ZG GZ;voidmenu(){ pr intf(" Empoy ee Sy stem\n"); pr intf("--<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@--<-<-<@\n"); pr intf(" *1 i nputr ecord *2 dele te recor d\n");print f(" *3 sear ch reco rd *4 mo dify rec ord\n"); pri ntf("*5 in sert re cord *6countr ecord\n");p rintf(" *7sortrecor d *8 sav e reco rd\n"); prin tf("*9 dis play rec ord *0 q uit re cord\n"); pr intf("--<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@--<-<-<@\n"); pr intf("Plea se en ter y ou ch oice(0-9)\n");}i nt in put(Z GGZ a[],in t k){ intj,x; ch ar st r[10];j=x=0;while(1) {p rintf("----------------------------\n"); prin tf("请输入职工的编号:(按0返回主菜单)"); sc anf("%s",s tr); str cpy(a[k].n um,st r);f or(j=0;j<k;j++) {if(st rcmp(a[j].num,s tr)==0){ prin tf("已经有工号为%s的员工信息!请重新输入员工号。
c语言课程设计报告 职工工资管理系统
一.设计需求说明一、职工工资管理系统功能设计要求1. 输入记录:将每一个职工的姓名、ID 号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。
•该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
5. 删除记录:可删除数据文件中的任一记录。
6.恢复记录:能恢复被删除的任一记录。
7. 统计: (A) 计算各项工资平均工资及总工资, (B)•统计符合指定条件(如职工工资前三项之和在2000 元以上、2000~1500 元、1500~1000 元) 以内的工资职工人数及占总职工人数的百分比。
(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。
8.保存数据文件功能。
9.打开数据文件功能。
经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。
程序运行结果如下表所示(记录个数至少8 个)。
二.模块设计分析系统功能模块图:工作程序分析①输入:输入职工工资资料通过结构体的数组来进行操作,先头定义数组em[],先输入需要输入的职工人数m,然后进入循环,每次循环将各项输入结构体数组对应项的对应成员中,当循环次数等于人数时,完成全部员工的资料输入,退出循环。
同时将数据储存在ckerk_list文件中并自动保存至磁盘。
注:如首次使用,尚未输入数据,请先输入数据。
输入的数据将自动保存。
再次选择输入功能时原数据将被覆盖。
②保存:将输入的资料存入磁盘读取文件clerk_list,若文件不存在,打印“打开失败并退出。
若存在,则通过循环语句将输入到结构体数组的数据逐个输入磁盘。
C语言课程设计教师工资管理系统说明书
添加标题
退出:点击退出按钮,系统将自 动退出
忘记密码:点击忘记密码按钮, 系统将发送重置密码邮件到用户 邮箱
界面操作指南
登录界面:输入用户名和密 码,点击登录按钮
添加标题
教师信息管理:添加、修改、 删除教师信息
工资信息管理:添加、修改、 删除工资信息
导出功能:将教师工资信息 导出为Excel文件
添加标题
系统安全与维护
06
用户权限管理
用户类型:管理员、教师、学生
权限设置:管理员拥有最高权限,可以添加、修改、删除用户和课程信息;教师可以查 看、修改自己的课程信息;学生只能查看自己的课程信息。
密码管理:用户需要设置密码,密码长度和复杂度有要求,密码错误次数过多将锁定账户。
安全策略:系统采用加密技术,确保数据传输和存储的安全性。
数据库: 存储教师 工资信息, 包括姓名、 职位、工 资等
接口:连 接前端和 后端,负 责数据传 输和转换
安全机制: 确保系统 安全,防 止数据泄 露和攻击
维护工具: 提供系统 维护和升 级功能, 保证系统 稳定运行
模块组成
用户界面 模块:负 责与用户 交互,接 收用户输 入,显示 系统运行 结果
报表格式:包括员工姓名、部门、职位、工资等级、基本工资、奖金、津贴、扣款、应发工资、 实发工资等
报表输出:支持Excel、PDF等多种格式输出,方便用户查看和打印
系统操作说明
05
登录与退出
登录:输入用户名和密码,点击 登录按钮
用户名和密码错误:系统将提示 错误信息,并重新输入
添加标题
添加标题
添加标题
YOUR LOGO
C语言课程设计教师工资管理系统说明 ,a click to unlimited possibilities 书
c工资管理系统课程设计
c工资管理系统课程设计一、课程目标知识目标:1. 让学生理解工资管理系统的基本概念、功能模块及其在实际企业中的应用。
2. 掌握工资管理系统中工资计算、税费扣除、工资发放等基本流程。
3. 学会运用数据库技术进行工资数据的存储、查询和更新。
技能目标:1. 培养学生运用所学知识设计并实现一个简单的工资管理系统的能力。
2. 提高学生分析实际问题时运用工资管理系统进行数据处理的技能。
3. 培养学生团队协作、沟通表达的能力。
情感态度价值观目标:1. 激发学生对信息技术在企业中的应用产生兴趣,提高其学习积极性。
2. 培养学生具备良好的信息素养,认识到信息安全、保护隐私的重要性。
3. 增强学生对于企业人力资源管理的认识,提高其职业素养。
课程性质分析:本课程为信息技术与学科整合的实践性课程,旨在让学生将所学知识应用于实际问题的解决,提高其信息技术素养。
学生特点分析:学生为高年级学生,具备一定的信息技术基础,具有较强的学习能力和实践操作能力。
教学要求:1. 结合实际案例,引导学生运用所学知识分析、解决工资管理系统相关问题。
2. 创设情境,鼓励学生进行自主学习、协作探究,培养学生的创新精神和实践能力。
3. 注重过程评价,关注学生的学习成果,提高教学质量。
二、教学内容1. 工资管理系统概述- 了解工资管理系统的定义、作用及其在企业中的应用。
- 分析工资管理系统的主要功能模块。
2. 工资管理系统的基本流程- 学习工资计算、税费扣除、工资发放等基本流程。
- 掌握工资管理系统中涉及的算法和业务规则。
3. 数据库技术在工资管理系统中的应用- 学习数据库的基本概念、设计方法及其在工资管理系统中的作用。
- 掌握工资管理系统中数据库的建立、查询、更新等操作。
4. 工资管理系统的设计与实现- 学习系统分析与设计的基本方法,明确工资管理系统的需求。
- 掌握运用编程语言和数据库技术实现工资管理系统功能。
5. 案例分析与实战演练- 分析典型工资管理系统案例,了解实际应用中的解决方案。
工资管理系统(详细设计说明书)
1引言 (3)1.1编写目的 (3)1.2背景 (3)1.3定义 (4)1.4参考资料 (4)2程序系统的结构 (4)3程序1(标识符)设计说明 (5)3.1程序描述 (5)3.2功能 (5)3.3性能 (6)3.4输人项 (6)3.5输出项 (7)3.6算法 (7)3.7流程逻辑 (7)3.8接口 (9)3.9存储分配 (9)3.10注释设计 (9)3.11限制条件 (9)3.12测试计划 (10)3.13尚未解决的问题 (10)4程序2(标识符)设计说明 (10)4.1程序描述 (10)4.2功能 (10)4.3性能 (11)4.4输人项 (11)4.5输出项 (11)4.6算法 (12)4.7流程逻辑 (12)4.7接口 (13)4.8存储分配 (13)4.9注释设计 (14)4.10限制条件 (14)4.11测试计划 (14)4.12尚未解决的问题 (14)详细设计说明书1引言1.1编写目的在使用程序语言编制程序之前,需要对所采用算法的逻辑关系进行进行分析,设计出全部必要的过程细节,并给予清晰的表达,使之成为编码的依据,也作为软件测试人员及软件维护人员进行测试及维护时的参照。
1.2背景项目的提出: 工资管理是企业管理的重要组成部分,它与企业的人事管理、财务管理有着密切的联系。
对于劳资关系相对复杂的大中型企事业单位,手工进行工资的发放工作往往需要耗费大量的人力与时间。
由于工资发放在时间和操作上存在着一定的重复性、规律性,这使得工资管理的计算机化成为可能,该项目的提出正是为了在此基础上进一步实现企业员工工资管理的规范化和自动化。
项目与其他软件或其他系统的关系:工资管理系统是全企业信息管理系统的一个有机组成部分,它需要和员工人事管理、员工工时考勤、员工医疗保险等系统连接,能够从这些系统中正确的取得员工基本工资、津贴、医疗保险等信息。
用户群:工资管理系统软件的用户主要为各种企事业单位的财务部门1.3定义工资项目:在计算月工资时需要涉及的各项信息,例如基本工资,津贴费,缺勤费,保险费等计算公式:即计算月工资的方法缺勤费用:即员工由于缺勤而需扣除的费用津贴:即员工因为加班而需增加的工资医疗保险:即员工参加医疗保险及社会保险等保险而需报销或交纳的一定费用基本工资:每个工种有不同的基本工资1.4参考资料【1】《工资管理系统》需求规格说明书;【2】《工资管理系统》概要设计说明书【3】张立,C#2.0宝典,电子工业出版社,2007【4】李兰友等编著,Visual C#.Net程序设计,清华大学出版社,2003【5】《软件工程与软件开发工具》ISBN7-302-09290-7、TP.6515 2004年9月。
C++课程设计公司工资管理系统说明书1.doc
C++课程设计公司工资管理系统说明书1 数学与计算机学院课程设计说明书课程名称: 面向对象程序设计-课程设计课程代码: 8404101题目: 公司工资管理系统年级/专业/班:学生姓名:学号:开始时间:年月日完成时间:年月日课程设计成绩:指导教师签名:年月日目录1 引言(1)1.1问题的提出(1)1.2国内外研究的现状(1)1.5任务与分析(1)2 程序的主要功能(1)2.1添加功能(1)2.2删除功能(1)2.3显示功能(2)2.4数据设置功能(2)2.5修改功能(2)3 程序运行平台(2)4 总体设计(2)5 程序类的说明(3)6 模块分析(7)6.1添加模块(7)6.2查询本月经营模块(8) 6.3修改模块(9)6.4数据存盘模块(11)6.5删除模块(12)6.6基础数据设置模块(12)6.7数据装入模块(12)7 系统测试(16)8 结论(21)致谢(22)参考文献(23)摘要随着计算机的普及……计算机科学越来越变得重要,程序设计作为计算机科学的基本,地位也变得越来越重要。
C++作为程序设计的基础,地位也是很重要的。
C++是开发性能高复杂度系统的最好语言。
此次进行C++课程设计,做一个公司工资管理系统,让我更为深层次地了解到了C++的魅力所在,让我懂得什么才叫编程的快乐。
社会在进步,计算机科学也在进步,C++的重要性也越来越重要,我们只有不断地学习,才能赶上时代的步伐……关键词:公司工资管理系统;计算机;C++;程序设计……1 引言1.1 问题的提出在现代化的企业管理中,人事管理系统有着十分重要的作用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。
某小型企业出与这种目的制作了这个人事管理系统。
1.2国内外研究的现状C++发展至今已经有20年的时光了,在这20年里,C++逐步的发展壮大,为面向对象开发思维的推广提供了实现的基础。
C课程设计(职工工资管理说明书)正文
1.引言1.1 如何解决职工工资的分发问题现如今我们进入了二十一世纪,信息技术越趋变为人们生活中不可缺少的抽象资源!大公司人员众多,工资分发问题艰难,而编程人员专为其设计的职工工资管理系统解决了这一难题!网络化就是通过网络将人们联系在一起,一起解决问题,一起分享资源!将复杂的问题分解开,然后组合在一起!1.2国内外研究的现状国外在发展网络的时间比我们早,也比我们快!而我们作为发展迅速的发展中国家,我们的人力资源丰富,而且出现不少的优秀人才,为我国的网络事业做出了巨大的贡献!因而我们有信心且有实力追上他们且赶过他们!1.3任务与分析本次课程的主要任务是编出一个程序来解决日常生活中一些问题!我们将要编的程序是一个关于如何解决一些大公司中职工工资分发系统!在大公司中人员多,资金数量大,需要一个简单,容易的方法来处理工资分发问题,现在是信息时代,不在像以前了体力劳动为主,现在要用脑解决问题!我们将用我大一学的知识来解决问题!如:链表,结构数组,以及函数!根据其不通的功能一起来解决问题!2. 程序的主要功能2.1职工工资信息录入功能添加职工的基本信息:如其编号,姓名,每月固定工资,其它浮动工资,应该扣除的杂费!2.2职工工资信息浏览进入职工工资管理系统中按照菜单上的提示可以浏览职工信息及输出。
2.3职工工资信息删除在职工工资管理系统可以对职工信息删除!2.4查询和排序功能通过查找输入编号可以查询任意职工的全部信息,还可以进行排序功能!3. 系统设计系统总体框架图如图4. 模块分析及说明4.1主程序模块这是主控制模块它调用,修改职工工资信息模块.其原代码如下:void main(){char ch;while(1){menu();// 显示菜单ch=getchar();//选择菜单if(ch=='0') break;switch(ch)//判断功能项{case '1': input();break;case '2':print();break;case '3':clean( );break;case '4':save();break;case '5':search( );break;case '6':order();break;case '0':break;}}printf("\n欢迎使用!!!\n");}4.2 菜单模块包括对职工工资及本人信息的编辑,并调用其它功能模块: 其原代码如下:void menu(){system("cls");printf("\n\n\n\n\n\n\n");printf("\t\t\t\t *主菜单选项*\n\n");printf("\t\t\t\t1:创建工资档案\n");printf("\t\t\t\t2:输出工资信息\n");printf("\t\t\t\t3:删除工资信息\n");printf("\t\t\t\t4:保存信息\n");printf("\t\t\t\t5:查找工资信息\n");printf("\t\t\t\t6:信息列表排序\n");printf("\t\t\t\t0:退出\n");printf("\n\n\n\n\n\n\n\n");}4.3输入模块输入职工的基本信息!包括工资,编号姓名等!!void input(){int i;FILE *fp;if((fp=fopen("sta_dat","wb"))==NULL) {printf("can't open file!\n");exit(0);}printf("NO name bu_m gu_d fu_d bu_t shui_f bao_x dai_j\n" );for(i=0;i<N;i++){scanf("%d",&staf[i].num);scanf("%s",staf[i].name);scanf("%s",staf[i].bu_m);scanf("%d%d%d",&staf[i].gu_d,&staf[i].fu_d,&staf[i].bu_t);scanf("%d%d%d",&staf[i].shui_f,&staf[i].bao_x,&staf[i].dai_j);fwrite(&staf[i],sizeof(struct staff ),1,fp); //将成绩信息写入文件}}4.4输出模块输出职工的基本信息!包括工资,编号姓名等!!//职工信息输出:void print(){int i;printf("职工信息输出:\n");FILE *fp;if((fp=fopen("sta_dat","rb"))==NULL){printf("cannot open file \n");return;}for(i=0;i<N;i++)fread(&staf[i],sizeof(struct staff),1,fp);fclose(fp);printf("NO name bu_m gu_d fu_d bu_t ying_f shui_f bao_x dai_j kou_k shi_f\n" );for(i=0;i<N;i++){printf("%d %s %s %d %d %d %d %d %d %d %d %d \n",staf[i].num ,staf[i].name,staf[i].bu_m,staf[i].gu_d,staf[i].fu_d,staf[i].bu_t,staf[i].gu_d+staf[i].fu_d+staf[i].bu_t,staf[i].shui_f,staf[i].bao_x,staf[i].dai_j,staf[i].shui_f+staf[i].bao_x+staf[i].dai_j,staf[i].gu_d+staf[i].fu_d+staf[i].bu_t-staf[i].shui_f-staf[i].bao_x-staf[i].dai_j);}getch();}4.5删除文件将信息删除其源码如下://职工信息删除:void clean(){ FILE *fp;int i,j,m,n=0;printf("职工信息删除:\n");printf("删除的数m=:\n");scanf("%d",&m);if((fp=fopen("sta_dat","rb"))==NULL){printf("cannot open file \n");return;}for(i=0;i<N;i++)fread(&staf[i],sizeof(struct staff),1,fp);fclose(fp);for(i=0;i<N;i++){if(m!=staf[i].num)n=1;else{ n=0;break;}}if(n==0){for(j=i;j<N;j++)staf[j]=staf[j+1];printf("NO name bu_m gu_d fu_d bu_t ying_f shui_f bao_x dai_jkou_k shi_f\n" );for(i=0;i<N-1;i++)printf("%d %s %s %d %d %d %d %d %d %d %d %d\n", staf[i].num ,staf[i].name,staf[i].bu_m,staf[i].gu_d,staf[i].fu_d,staf[i].bu_t,staf[i].gu_d+staf[i].fu_d+staf[i].bu_t,staf[i].shui_f,staf[i].bao_x,staf[i].dai_j,staf[i].shui_f+staf[i].bao_x+staf[i].dai_j,staf[i].gu_d+staf[i].fu_d+staf[i].bu_t-staf[i].shui_f-staf[i].bao_x-staf[i].dai_j);}elseprintf("connot found!");getch();}4.6保存文件将文件保存。
c语言职工工资管理系统课程设计说明书
课程设计说明书学院、系:专业:学生姓名:学号:设计题目:职工工资管理系统起迄日期:指导教师:日期: 2017年5月12日1 设计目的本课程设计是采用C语言,在VC平台下设计年历显示系统,该系统运行在MS-DOS命令行模式下。
本课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
1)进一步巩固和复习C程序设计的基础知识;2)培养学生结构化程序、模块化程序设计的方法和能力;3)了解软件的编制过程及各环节的具体内容;4)提高学生程序调试技巧、软件设计能力和代码规范化等素质;提高学生分析问题、解决问题以及实际运用能力。
2 任务概述功能设计要求:1. 输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录(系统应能建立一个新的数据文件或给已建立好的数据文件增加记录)。
2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
5. 删除记录:可删除数据文件中的任一记录。
6. 统计: (按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。
7.保存数据文件功能。
例如:职工工资信息表ID号姓名基本工资职务工资津贴医疗保险- 公积金- 总工资01 张望 1286 794 198 109 135 203402 李明1185 628 135 94 114 174003 王小民895 438 98 64 73 129404 张效章1350 868 210 116 150 216205 彭山745 398 84 61 68 1098????????各项平均工资 1092.2 625.2 145 88.8 1083 模块划分图3.14 主要函数说明及其N-S图主要函数说明:(1)输入记录:将每一个职工的姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个结构体。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学与计算机学院课程设计说明书课程名称: 面向对象程序设计-课程设计课程代码: 8404101题目: 公司工资管理系统年级/专业/班: 2007级软件工程1 学生姓名: 刘远强学号: 312007*********开始时间:2009 年06月10日完成时间:2009 年06月28 日课程设计成绩:指导教师签名:年月日目录1 引言 (1)1.1问题的提出 (1)1.2国内外研究的现状 (1)1.5任务与分析 (1)2 程序的主要功能 (1)2.1添加功能 (1)2.2删除功能 (1)2.3显示功能 (2)2.4数据设置功能 (2)2.5修改功能 (2)3 程序运行平台 (2)4 总体设计 (2)5 程序类的说明 (3)6 模块分析 (7)6.1添加模块 (7)6.2查询本月经营模块 (8)6.3修改模块 (9)6.4数据存盘模块 (11)6.5删除模块 (12)6.6基础数据设置模块 (12)6.7数据装入模块 (12)7 系统测试 (16)8 结论 (21)致谢 (22)参考文献 (23)摘要随着计算机的普及……计算机科学越来越变得重要,程序设计作为计算机科学的基本,地位也变得越来越重要。
C++作为程序设计的基础,地位也是很重要的。
C++是开发性能高复杂度系统的最好语言。
此次进行C++课程设计,做一个公司工资管理系统,让我更为深层次地了解到了C++的魅力所在,让我懂得什么才叫编程的快乐。
社会在进步,计算机科学也在进步,C++的重要性也越来越重要,我们只有不断地学习,才能赶上时代的步伐……关键词:公司工资管理系统;计算机;C++;程序设计……1 引言1.1 问题的提出在现代化的企业管理中,人事管理系统有着十分重要的作用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。
某小型企业出与这种目的制作了这个人事管理系统。
1.2国内外研究的现状C++发展至今已经有20年的时光了,在这20年里,C++逐步的发展壮大,为面向对象开发思维的推广提供了实现的基础。
可以说C++对于现在思想的成熟以及在企业开发中的大量应用时功不可没的。
蛋随着1995年网络时代的到来,以及JAVA语言的诞生使得C++逐步进入一个尴尬的境地。
由于没有跨平台以及网络应用的优势,在企业级应用开发中逐步被JAVA所替代。
这几年来笑道LOKI,大到STL等程序库已经为C++语言扩展了广泛的应用领域。
我相信通过大家的努力,C++的未来必将更加精彩!1.5任务与分析通过设计一个较为简单的《小型公司工资管理系统》,进一步熟悉C++中类的概念、类的封装、继承的实现方式。
了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。
2 程序的主要功能2.1添加功能添加一个职员的基本信息,包括职工类型,姓名等等,2.2删除功能能够对一个职员的信息进行删除按员工号进行删除。
2.3显示功能显示所有职员的主要信息包括员工类型,姓名,工资。
2.4数据设置功能设置不同员工类型的工资要求。
2.5修改功能对职员的信息进行修改。
3 程序运行平台VC++6.0。
4 总体设计图4.1 系统总体框架图图4.2类的层次结构图5 程序类的说明总职工类的声明class Person //员工类{protected:int No; //编号char Name[20]; //姓名int Duty; //岗位double Earning; //收入Person *next;public:Person(char ID,char *Name,int Duty){this->Duty=Duty;strcpy(this->Name,Name);this->No=ID;}virtual void CalcSalary()=0;virtual void Output()=0;friend class Company;};技术员类的声明class technician:virtual public Employee{public:technician() {}virtual void shanchu() {*name=*sex=0;number=age=hour=0;pay1=0;} void wage() { pay1=100*hour;}virtual void print(){wage();cout<<"技术员员工号:"<<number<<" "<<"姓名:"<<name<<" "<<"性别:"<<sex<<" "<<"年龄:"<<age<<" "<<"工资:"<<pay1<<endl;}void input(){Employee::input();cout<<"工作时间(以小时计算)"<<endl;cin>>hour;}protected:int hour,pay1;};经理类的声明class Manager:public Person //经理类{public:Manager(char ID,char *Name,int Duty):Person(ID,Name,Duty){}void CalcSalary(){Earning=ManagerSalary;}void Output(){CalcSalary();cout<<No<<"\t"<<Name<<"\t经理\t"<<Earning<<endl;}};销售员类的声明class Sales:public Person //销售员类{private:double Amount;public:Sales(char ID,char *Name,int Duty,double Amount):Person(ID,Name,Duty){this->Amount=Amount;}double GetAmount(){return Amount;}void SetAmount(double Amount){this->Amount=Amount;}void CalcSalary(){Earning=SalesPercent/100*Amount;}void Output(){CalcSalary();cout<<No<<"\t"<<Name<<"\t销售员\t"<<Amount<<"\t"<<Earning<<endl; }};销售经理类的声明class SalesManager:public Person //销售经理类{private:double Amount;public:SalesManager(char ID,char *Name,int Duty):Person(ID,Name,Duty){}void SetAmount(double s){Amount=s;}void CalcSalary(){Earning=SalesManagerSalary+Amount*SalesManagerPercent/100; }void Output(){CalcSalary();cout<<No<<"\t"<<Name<<"\t销售经理\t"<<Earning<<endl;}};公司类的声明class Company //公司类{private:Person *Worker; //员工表void Clear(); //清除内存中数据public:Company(){Worker=0;Load();}~Company(){Person *p;p=Worker;while(p){p=p->next;delete Worker;Worker=p;}Worker=0;}void Add(); //增加人员void Delete(); //删除人员void Modify(); //修改人员void Query(); //查询人员void Set(); //基础数据设置void Save(); //数据存盘(包括基础数据,人员数据)void Load(); //数据装入(包括基础数据,人员数据)};6 模块分析6.1 添加模块添加函数如下:void Company::Add(){Person *p; //新结点指针int Duty;char Name[20];double Amount,T;cout<<"\n** 新增员工 **\n";//输入员工信息ID++;cout<<"输入岗位(1-经理2-销售经理3-销售员4-技术员):"; cin>>Duty;cout<<"输入姓名:"; cin>>Name;if(Duty==3){cout<<"本月销售额:"; cin>>Amount;}else if(Duty==4){cout<<"本月工作小时数(0-168):";cin>>T;}6.2 查询本月经营模块显示函数如下:void Company::Query(){cout<<"\n** 查询人员本月销售信息 **\n";double sum=0; //销售额总和Person *p=Worker;while(p){if(p->Duty==3)sum+=((Sales *)p)->GetAmount();p=p->next;}p=Worker;double sum2=0; //工资总和while(p){if(p->Duty==2)((SalesManager *)p)->SetAmount(sum);p->Output();sum2+=p->Earning;p=p->next;}cout<<"本月盈利:"<<sum*0.20-sum2<<endl;cout<<"(按照20%利润计算)\n";}6.3 修改模块修改函数如下:void Company::Modify(){int No,Duty;char Name[20];double Amount,T;cout<<"\n** 修改员工 **\n";cout<<"ID:"; cin>>No;//查找要修改的结点Person *p1,*p2; p1=Worker;while(p1){if(p1->No==No)break;else{p2=p1;p1=p1->next;}}//修改结点if(p1!=NULL)//若找到结点{p1->Output();cout<<"调整岗位(1-经理2-销售经理3-销售员4-技术员):"; cin>>Duty;if(p1->Duty!=Duty) //若岗位发生变动{//修改其它数据cout<<"输入姓名:"; cin>>Name;if(Duty==3){cout<<"本月销售额:"; cin>>Amount;}else if(Duty==4){cout<<"本月工作小时数(0-168):";cin>>T;}//创建新员工结点Person *p3;switch(Duty){case 1:p3=new Manager(p1->No,Name,Duty); break;case 2:p3=new SalesManager(p1->No,Name,Duty); break; case 3:p3=new Sales(p1->No,Name,Duty,Amount); break; case 4:p3=new Technician(p1->No,Name,Duty,T); break; }//员工结点替换到链表p3->next=p1->next;if(p1==Worker) //若要替换的结点是第一个结点Worker=p3;else //若要删除的结点是后续结点p2->next=p3;//删除原来的员工结点delete p1;}else //若岗位没有变动{cout<<"输入姓名:"; cin>>p1->Name;if(Duty==3){cout<<"本月销售额:"; cin>>Amount; ((Sales *)p1)->SetAmount(Amount);}else if(Duty==4){cout<<"本月工作小时数(0-168):"; cin>>T; ((Technician *)p1)->SetT(T);}}cout<<"修改成功!\n";}else //未找到结点cout<<"未找到!\n";}6.4 数据装盘模块数据装盘函数如下:void Company::Save(){ofstream fPerson,fBase;char c;cout<<"\n保存人员和基础数据,是否继续?[Y/N]:"; cin>>c;if(toupper(c)!='Y')return;//保存人员编号、姓名、岗位fPerson.open("person.txt",ios::out);Person *p=Worker;while(p){fPerson<<p->No<<"\t"<<p->Name<<"\t"<<p->Duty<<"\t";if(p->Duty==3)fPerson<<((Sales*)p)->GetAmount()<<"\t";else if(p->Duty==4)fPerson<<((Technician *)p)->GetT()<<"\t";fPerson<<endl;p=p->next;}fPerson.close();//保存基础数据fBase.open("base.txt",ios::out);fBase<<"经理固定月薪\t"<<ManagerSalary<<endl;fBase<<"销售经理固定月薪\t"<<SalesManagerSalary<<endl;fBase<<"销售经理提成%\t"<<SalesManagerPercent<<endl;fBase<<"销售人员提成%\t"<<SalesPercent<<endl;fBase<<"技术人员小时工资\t"<<WagePerHour<<endl;fBase<<"ID\t"<<ID<<endl;fPerson.close();cout<<"\n保存人员和基础数据已经完成...\n";}6.5 删除模块删除函数如下:void Company::Delete() //删除人员{int No;cout<<"\n** 删除员工 **\n";cout<<"ID:"; cin>>No;//查找要删除的结点Person *p1,*p2; p1=Worker;while(p1){if(p1->No==No)break;else{p2=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";}6.6 基础数据设置模块基础数据设置函数如下:void Company::Set(){cout<<"\n** 设置基础数据 **\n";cout<<"经理固定月薪["<<ManagerSalary<<"元]:";cin>>ManagerSalary;cout<<"销售经理固定月薪["<<SalesManagerSalary<<"元]:";cin>>SalesManagerSalary;cout<<"销售经理提成["<<SalesManagerPercent<<"%]:";cin>>SalesManagerPercent;cout<<"销售人员提成["<<SalesPercent<<"%]:";cin>>SalesPercent;cout<<"技术人员小时工资["<<WagePerHour<<"(元/小时)]:";cin>>WagePerHour;cout<<"员工标识[>="<<ID<<"]:"; cin>>ID;}6.7 数据装入模块数据装入函数:void Company::Load() //数据装入(包括基础数据,人员数据){//基础数据装入ifstream fBase;char buf[80]; //buf用于保存数据文件中的注释字符串fBase.open("base.txt",ios::in);fBase>>buf>>ManagerSalary; //经理固定月薪fBase>>buf>>SalesManagerSalary; //销售经理固定月薪 fBase>>buf>>SalesManagerPercent; //销售经理提成%fBase>>buf>>SalesPercent; //销售人员提成%fBase>>buf>>WagePerHour; //技术人员小时工资 fBase>>buf>>ID; //员工标识fBase.close();//清除内存人员数据Clear();//人员数据数据装入ifstream fPerson;Person *p=Worker;int No; char Name[20]; int Duty;double Amount,T;fPerson.open("person.txt",ios::in);//读一条记录fPerson>>No>>Name>>Duty;if(Duty==3)fPerson>>Amount;else if(Duty==4)fPerson>>T;while(fPerson.good()){//创建员工结点switch(Duty){case 1:p=new Manager(No,Name,Duty); break;case 2:p=new SalesManager(No,Name,Duty); break; case 3:p=new Sales(No,Name,Duty,Amount); break; case 4:p=new Technician(No,Name,Duty,T); break; }p->next=0;//员工结点加入链表if(Worker) //若已经存在结点{Person *p2;p2=Worker;while(p2->next) //查找尾结点{p2=p2->next;}p2->next=p; //连接}else //若不存在结点(表空){Worker=p; //连接}//读下一条记录fPerson>>No>>Name>>Duty;if(Duty==3)fPerson>>Amount;else if(Duty==4)fPerson>>T;}fPerson.close();cout<<"\n人员和基础数据已经装入...\n";}7 系统测试进入VC++6.0,运行程序,如图7.1所示。