- 1、本文档共15页,可阅读全部内容。
- 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之职工工资管理系统
目 录
1 前言 1
2 需求分析 1
2.1 任务和要求 1
2.2 运行环境 1
2.3 开发工具 1
3 分析和设计 2
3.1 系统分析及设计思路 2
3.2 主要类图 2
3.3 函数流程图 3
4 具体代码实现 4
5 课程设计总结 10
5.1 程序运行结果或预期运行结果 10
5.2 设计结论 12
参考文献 13
致 谢 14
1 前言
某公司内有5种不同类型的职工: 技术人员(technician)、销售人员(salesman)、文秘(secretary)、技术经理(tech-manager)、销售经理(sales-manager)。
他们的工资计算方式各不相同:
1) 技术人员的工资根据他当月工作的小时数来定,时薪为35元;
2) 销售人员的工资则是根据本人当月销售额来确定,工资为销售额的5%;
3) 文秘有4000元的基本工资,奖金视当月工作情况而定;
4) 技术经理和销售经理都有6000元的固定工资,技术经理的工作业绩可分为3个等级,每级可以获得1000元奖金,
5) 销售经理除有6000元的固定工资外,销售经理的奖金由他所管理的销售员的销售业绩而定,为总销售额的0.2%。
为此设计一个工资管理系统管理职工的信息。
2 需求分析
2.1 任务和要求
使用C++面向对象程序设计一个简易的工资管理系统。,系统的主要功能是:根据不同的职工,计算职工当月工资。确定程序至少应该具备如下功能:.输入职工, 添加职工,删除职工,结算工资,等基本模块。
1) 输入职工: 用class person *creat(void) 函数创建链表。
2) 添加职工: 用class person *insert(class person *head,class person *pe) 函数添加。
3) 删除职工:用class person *del(class person *head,double num) 函数删除。
4) 结算工资:用void selary(class person *head) 函数计算。
2.2 运行环境
(1)WINDOWS2000/XP系统
(2)Visual C++ 6.0编译环境或DEV C++ 5.0编译环境
C++语言
3 分析和设计
3.1 系统分析及设计思路
首先公司有五类人,各类之间又有相同的部分例如:姓名、职工号等,所以定义一个基类Person,四类人相同部分为基类数据成员。由基类Person再派生出各类:技工类Technician类、售货员类Salesman、文秘类Secretary、技术经理类Tech-manager、销售经理类Sales-manager。
(1) Person类:包含: num,wage,year, name[10],post[10],sex等数据成员等。要完成结算工资操作,需要设计virtual void pay()作为成员函数。
(2) Technician类:继承Person类,增加hours数据。
(3) Salesman类:继承Person类,增加sales数据。
(4) Secretary类:继承Person类,增加bonus数据。
(5) Tech-manager类:继承Person类,增加bonus数据
(6) Sales-manager类:继承Person类,增加sumsales数据。
然后分析系统管理需要有几个功能,分别是输入职工,添加职工,删除职工以及结算工资。我们为这几个功能分别建立对应的函数来实现:class person *creat(void) 、 class person *insert(class person *head,class person *pe) 、class person *del(class person *head,double num) 、void selary(class person *head) print()以及保存信息函数save()
最后主函数的实现。由于是有选择的菜单,首先想到了switch选择语句。当输入不同值时,进入不同的case部分以实现不同的功能。
case1的功能是实现数据的输入。用creat()函数创建职工信息,按照提示分别输入职工的信息:编号、姓名、性别、出生年份,并用save()函数保存信息。
case2的功能是实现数据的添加。用malloc动态分配内存空间,然后输入要添加的职工信息。用insert()函数添加进去。用print()函数输出并保存。
case3的功能是实现数据的删除。根据提示输入你要删除的职工编号。按照你输入的编号,用del()函数输出该职工的所有信息。
case4的功能是计算职工的工资。根据不同的职工类别计算工资。
3.2 主要类图
文档评论(0)