python(工资发放)

工资发放系统设计与实现
1、问题描述某公司按月给其雇员发放工资,该公司有4种雇员:
(1) 固定薪金的雇员:不管工作多长时间,总拿固定周薪;(但如果请假,要扣除相应的薪金,请假次数×每次扣除金额30)
(2) 小时工:以小时计算,加上加班费;(每月基本工作时间为160小时,其余为加班时间)(3) 销售员:按销售收入提成计算;(每月基本销售额度为30000元,低于此额度,在月薪里扣除少于30000部分的千分之二)
(4)带薪销售员:底薪加上销售收入提成(要求同上,若有请假,也要扣除相应的薪金) 如果雇员生日所在的月份在本月,那么公司会无条件奖励200元。固定薪金职员包含编号、姓名、出生年月、工种、奖励薪金、固定月薪、请假天数、应扣、实发工资、是否领取等信息;计时职员包含编号、姓名、出生年月、工种、奖励薪金、工作时长、时薪、加班时长、实发工资、是否领取等信息;普通销售员包含编号、姓名、出生年月、工种、奖励薪金、销售额、提成比例、应扣、实发工资、是否领取等信息;带薪销售员包含编号、姓名、出生年月、工种、奖励薪金、固定月薪、销售额、提成比例、请假天数、应扣、实发工资、是否领取等信息。根据以上信息合理设计类层次,设计一程序能够对雇员工资信息进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。
2.功能要求:
(1)添加功能:程序能够任意添加上述各类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。
(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。
(6)工资发放功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,若“是否领取”为“是”,给出相应的提示信息;若“是否领取”为“否”,则将“是否领取”改为“是”。”
(7)统计功能:能根据多种参数进行人员的统计。例如,统计各类人员数量以及总数,或者统计男、女员工的数量,或者统计平均工资、最高工资、最低工资等信息。
(8)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。
(9)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。
3.问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述;
(5)完成类中各个成员方法的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告。