C++小型公司的工资管理系统

C++小型公司的工资管理系统

1.2.1设计目的与任务
目的:熟悉面向对象程序设计思想,掌握类、类的派生、静态成员、多态性的实际应用。
任务:编写一个小型公司的工资管理程序。该公司主要有4类人员:经理、雇员、销售员和销售经理。其中月新计算方法为:经理固定月薪8000元,雇员100元/小时,销售员为当月销售额的4%,销售经理保底工资5000元另加其所管部门销售额的5%。

1.2.2 设计要求
1)定义四个类:雇员类、经理类、销售员类、销售经理类。
2)定义雇员类为基类,其中包含员工编号、姓名、月工资三个数据成员,以及计算月工资、显示月工资的成员函数,构造函数、析构函数也应显式定义。
3)销售员、销售经理、经理的月收入按下述规定计算:

  • 经理:月工资固定8000元。
  • 销售员:按当月销售额的4%提成。
  • 销售经理:月固定工资5000元,并按部门月销售总额的0.5%提成。
    4)这四个类的继承关系如下图所示:

(1)职工编号自动产生(从10000起编号)。
(2)将公司人员的编号、姓名和月薪等信息保存到文件中,然后从文件中读入这些信息并显示。如果访问文件失败,采用异常处理机制解决。
1.2.3程序的总体结构
根据任务要求,程序主要包含两大功能模块:计算当月工资并保存和查看当月工资。设计一个菜单去选择相应的功能。该项目文件为kcsj2,这个项目的文件和函数组成情况见表1.3.2。
表1.3.2文件和函数的组成

源文件                        函数名及其他成员                    功 能
                                 main()                      总控主函数
Kscj2.cpp                       selectmenu()                菜单选择
                                handlemenu()                菜单处理
                                write()                   计算当月工资并保存
                                read()                      查看当月工资
                               Employee()                  Employee构造函数
                               getno()                     获取工号 
                  getname()                   获取姓名
                               getpost()                   获取职务
                               getsalary()                 获取月薪总额
                               virtual void pay()         计算月薪函数
                               ~Employee()                 析构函数
 employee.cpp                  Technician()                Technician构造函数
                               Technician::pay()       计算兼职技术人员月薪函数
                               Saleman()                   构造函数 
                               Saleman::pay()           计算销售员月薪函数
                               Manager()                   构造函数 
                               Manager::pay()            计算经理月薪函数
                               Salesmanager()               构造函数
                              Salesmanager::pay()         计算销售经理月薪函数
                              Employee                         Employee类声明
                              Technician                      Technician类声明
                              Saleman                          Saleman类声明
                              Manager                          Manager类声明 
employee.h                    Salesmanager                  Salesmanager类声明
                              FileException                FileException 类声明                             
                              函数原型说明                       引用函数

1.2.4 详细设计
设计类层次。
根据设计任务,设计一个基类Employee,然后派生出Technician(兼职技术人Manager(经理)类和Saleman(兼职销售员)类。由于销售经理既是经理又是销售人员拥有两类人员的属性,因此Salemanage(销售经理)类同时继承Manager类和Saleman类
在基类中,除了定义构造函数和析构函数外,还应定义对各类人员信息应有的操作这样可以规范类族中各派生类的基本行为。由于各类人员月薪的计算方法不同,在基类中源pay()定义为纯虚函数,然后在派生类中进行重新定义其具体实现,以便实现运行时的多态性。由于Salesmanager类的2个基类又有公共基类Employeoee,为了避免二义性,这里将Employee设计为虚基类。
1.2.5 程序清单(含详细注释)
1.2.6 实例输出
实例输出结果如下:
小型公司工资管理程序
1.计算当月工资并保存
2.查看当月工资
2.退出程序.
选择1-3: 1

请输入兼职技术人员王杰本月工作时间(小时):40
请输入销售员李铜本月销售额(元):40000
请输入销售经理董力民所管部门本月销售量(元):40000
本月工资信息已存入文件

小型公司工资管理程序
1.计算当月工资并保存
2.查看当月工资
3.退出程序
选择1-3: 2
张锋(经理,工号为10000)本月工资:8000,
王杰(兼职技术人员,工号为10001)本月工资:4000
李铜(销售员,工号为10002)本月工资:1600
董力民(销售经理,工号为10003)本月工资:7000

小型公司工资管理程序

1.计算当月工资并保存
2.查看当月工资
3.退出程序
选择1-3:3
再见!

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111

C++小型公司人员信息管理系统
6、小型公司人员信息管理系统

某公司有三类人员,经理、兼职技术人员、兼职销售员。这些人员分别具有以下属性:
(1)经理:姓名、编号、固定工资、当月薪水、计算月薪、显示信息。
(2)兼职技术员:姓名、编号、工作小时、每小时工资额、当月薪水、计算月薪、显示信息。
(3)兼职销售员:姓名、编号、销售额、销售提成、当月薪水、计算月薪、显示信息。
具体要求:
(1)人员编号基数为1000。每输入一个人员信息,编号顺序加1。
(2)月薪计算方法是:经理固定工资8000元,兼职技术员按100元/小时领取月薪,兼职销售员按当月销售额的4%提成。
(3工作人员可以通过此程序来管理人员信息,包括查询,添加,修改,删除等功能。
(4)在进行添加时,系统会自动监测所添加的人员信息是否已经存在,如果存在,会提示用户该人员已经存在。
(5)在删除时,要首先弹出对话框,让用户确认是否删除,只有经过确认才能够被删除。

C++小型公司工资管理系统[2023-04-19]
小型公司工资管理系统
要求:
1.公司主有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、岗位、年龄、性别等信息。
2.工资的计算方法:a、经理:固定月薪为8000;b、技术员:工作时间*小时工资(100元每小时);c、销售员:销售额*4%提成;d、销售经理:底薪(5000)+所辖部门销售额总额*0.5%;
3.完成以下的操作:
a、数据录入:输入各种数据;
b、分页显示数据;
c、查询功能;
d、数据统计:各销售经理的工资计算及最终按工资举行的排序;

C++小型公司工资管理系统[2023-01-02]
题目14 “小型公司工资管理系统设计”

1、问题描述
某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。四类人员的月薪计算方法如下:经理拿固定月薪:技术人员按小时领取月薪:销售人员按其当月销售额的提成领取工资:销售经理既拿固定月薪也领取销售提成。
设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。

2、功能要求

(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;
(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。
(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。
(6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量,或者统计平均工资、最高工资、最低工资等信息。
(7)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。
(8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。

3、问题的解决方案

根据系统功能要求,可以将问题解决分为以下步骤;
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述;
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
工资管理系统是一个用于管理公司员工工资信息的系统,它可以对员工工资进行计算、记录、查询和调整。下面是一个简单的用C语言设计的工资管理系统代码设计。 ```c #include <stdio.h> typedef struct { char name[20]; int id; float salary; } Employee; float calculateSalary(float basicSalary, float overtime) { // 根据基本工资和加班时间计算工资 return basicSalary + 100 * overtime; } void displayEmployee(Employee employee) { // 显示员工信息 printf("员工名称:%s\n", employee.name); printf("员工编号:%d\n", employee.id); printf("员工工资:%.2f\n", employee.salary); printf("\n"); } int main() { int choice; Employee employees[100]; int employeeCount = 0; while (1) { printf("欢迎使用工资管理系统\n"); printf("1. 添加员工\n"); printf("2. 计算工资\n"); printf("3. 查询工资\n"); printf("4. 退出\n"); printf("请选择操作:"); scanf("%d", &choice); if (choice == 1) { // 添加员工 printf("请输入员工名称:"); scanf("%s", employees[employeeCount].name); printf("请输入员工编号:"); scanf("%d", &employees[employeeCount].id); employeeCount++; } else if (choice == 2) { // 计算工资 int id; float basicSalary, overtime; printf("请输入员工编号:"); scanf("%d", &id); printf("请输入基本工资:"); scanf("%f", &basicSalary); printf("请输入加班时间:"); scanf("%f", &overtime); // 查找员工 int i; for (i = 0; i < employeeCount; i++) { if (employees[i].id == id) { employees[i].salary = calculateSalary(basicSalary, overtime); break; } } if (i == employeeCount) { printf("没有找到该员工\n"); } } else if (choice == 3) { // 查询工资 int id; printf("请输入员工编号:"); scanf("%d", &id); // 查找员工 int i; for (i = 0; i < employeeCount; i++) { if (employees[i].id == id) { displayEmployee(employees[i]); break; } } if (i == employeeCount) { printf("没有找到该员工\n"); } } else if (choice == 4) { // 退出程序 break; } else { printf("无效选择,请重新选择\n"); } } return 0; } ``` 上述代码实现了一个简单的工资管理系统,可以添加员工、计算工资、查询工资等功能。以菜单形式展示给用户,根据用户的选择来执行相应的操作。输入员工的信息后,可以根据基本工资和加班时间计算员工的工资,也可以根据员工编号查询员工的信息。如有其他需求,可以根据具体情况进行扩展和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值