学院专业年级。
班级: 学号: 姓名。
课程设计题目: 程序设计方法与c 语言课程设计
课程设计主要内容:
一、 课程设计题目:小型公司工资管理系统。
二、 课程设计工作:自 2009 年 06 月 20 日起至 2009 年 07 月 10 日。
三、 课程设计的内容要求:
1、公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、岗位、年龄、性别等信息。
2、工资的计算方法:
a、经理:固定月薪为8000;
b、技术员:工作时间*小时工资(100元每小时);
c、销售员:销售额*4%提成;
d、销售经理:底薪(5000)+所辖部门销售额总额*0.5%;
3、注册新职工,添加新职工的详细信息,如:职工号,姓名,出生年份,性别,职称,部门工资等;
4、按姓名,部门等条件进行查询;
5、修改和删除职工信息;
6、按工资高低进行排序;
7、把各项纪录存储在文本文件中。
摘要。小型公司工资管理系统主要完成管理员对员工信息的管理(对员工信息的添加、删除、修改、查询及员工的权限设定,并对登陆帐号的管理)和员工自助查寻(查看员工登录日志、档案信息,及根据权限修改档案)。这套滚理系统,包含经理、技术员、销售员、销售经理四大模块,每个模块包含该类别的相关操作。
首先定义一个经理类,再定义三个派生类分别为技术员,销售员,销售经理。在经理类中的基本信息有:职工号,姓名,性别,年龄,职位,工资,这些信息。
在用户注册了某个类别的对象时,将其信息存放在txt文档中,方便对数据的操作,在对对象进行操作的同时,即程序运行过程中,也会即时更新系统记录。主程序设计为多级菜单,将操作层次化,规范化,使得程序简单化,便于其他人员操作。
1. 从要求上来看是要对各个员工的各种情况(名字、年龄、性别、职位、工资状况、出生年份、职工号等)进行输入。然后可以输出。
2. 可以对于员工数据(名字、年龄、性别、职位、工资状况、出生年份、职工号等)进行修改,可以查询。
3. 对于员工的各种情况(名字、年龄、性别、职位、工资状况、出生年份、职工号等)系统还可以进行统计排名。
4. 员工的各种信息(名字、年龄、性别、职位、工资状况、出生年份、职工号等)还要求录入文本文存档。
5. 员工的各种信息(名字、年龄、性别、职位、工资状况、出生年份、职工号等)如要改动,可以在本程序里实现修改。
6. 对于职工工资的计算,不同的职工在不同的岗位上,要实现不同的计算方式(如:底薪+销售额*提成、底薪、每小时薪水*工作时间等不同的计算工资的方式)。
(一)、类及类层次结构设计:
首先,创建了一个虚基类 person 类。然后派生出一个公用派生类 staff 类,在有由公用派生类派生出四个类: manager、technician、sales、ssales_manager.
在派生类中定义了一个构造函数和多个成员函数。
1. person 类: 一开始就定义的虚基类,含有工资的建立和返回两个虚函数,其中 v_get_wage() 是纯虚函数。
2. staff 类: 从虚基类派生出来的公用派生类,详细定义了各个岗位的职员所具有的共同特性,如:姓名、性别、职工号、出生年份等。
3. manager 类、technician 类、sales 类、sales_manager 类: 从公用派生类继承过来的子类,具体定义了各种雇员所特有的属性,特别是月薪的计算,其中:
经理月薪计算的方式是底薪,即月薪=底薪=8000元/月;
技术员月薪计算的方式是月薪=每小时薪水*工作时间,而每小时薪水=100元;销售员月薪计算的方式是月薪=销售额*提成,提成=4%;
销售经理月薪计算的方式是月薪=底薪+所辖部门销售额总额*提成,底薪=5000,提成=0.5%
由此,为了实现各种雇员的工资计算,经理就多出了一下种特有的属性:底薪,销售员的特有属性是销售额,销售经理的特有属性是所辖部门销售额,技术员的特有属性是工作时间。
二)、模块分析:
在所有的子类中都重载了流插入运算符“<<并定义了实现对象输出的函数 display() 且重定义了建立和返回工资的虚函数 v_set_wage() 和 v_get_wage() 还定义了按部门工资排序的成员函数 taxis() 在sales 类中新加入了建立和返回销售额的成员函数 set_income() 和 get_income() 在technician 类中加入了建立和返回开始工作时间的函数 set_b_working_hours() 和 get_b_working_hours() 建立和返回结束工作时间的成员函数 set_e_working_hours() 和get_e_working_hours() 建立和返回总工作时间的成员函数 set_working_hours() 和 get-_working_hours() 在sales_manager 类中也是新加入了建立和返回所辖部门销售额的成员函数 setz_income() 和 get_income()
三)、主要菜单设计:
在总体结构上,建立以各根菜单,用于选择各种功能。
1. check(查询职工信息):用于对职工信息的查询。
2. add (添加新职工):用于添加新的职员,并录入新职员的各种信息。.
3. sort (排序):用于对各部门的职工按部门工资的高低进行排序。
4. modified (修改数据):用于修改公司职员的各种信息。
5. choose (选择菜单):在其它函数中调用,供用户选择各种操作。
6. count (统计职员数):用于统计各个岗位上的在职员工数。
7. mo_choose (二级选择菜单):在更加细化的操作中共用户选择的菜单。
8. rework (修改职员信息):模板函数,供 modified 函数调用。
程序清单:题目:小型公司工资管理系统设计。
设计说明与要求:
1、公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这。
些人的职工号、姓名、月工资、岗位、年龄、性别等信息。
2、工资的计算方法:
a、经理:固定月薪为8000;
b、技术员:工作时间*小时工资(100元每小时);
c、销售员:销售额*4%提成;
d、销售经理:底薪(5000)+所辖部门销售额总额*0.5%;
3、注册新职工,添加新职工的详细信息,如:职工号,姓名,出生年份, 性别,职称,部门工资等;
4、按姓名,部门等条件进行查询;
5、修改和删除职工信息;
6、按工资高低进行排序;
7、把各项纪录存储在文本文件中。
设计思路: 建立抽象基类 person ->从抽象类继承基类 staff ->从基类继承子类
manager(经理)、technician(技术员)、sales(销售员)、sales manager(销售经理)
->建立对象,完成主函数。
细节: 其中抽象类包含纯虚函数
get_monthly_wage() 和 set_monthly_wage() 设计者:
版权声明。文件:
#if !defined(afx_stdafx_h__952c126a_d524_4d63_ab65_ebe6a3f4026b__included_)
#define afx_stdafx_h__952c126a_d524_4d63_ab65_ebe6a3f4026b__included_
#if _msc_ver > 1000
#pragma once
#endif //msc_ver > 1000
#include "iostream"
#include "fstream"
#include ""
#include ""
#include ""
#endif
文件:#ifndef person_h_
#define person_h_
/声明抽象基类 person
class person
public:
virtual void v_set_wage() 0纯虚函数建立职工月薪。
virtual double v_get_wage() const /虚函数得到职工月薪。
#endif
文件:#ifndef staff_h
#define staff_h
#include
#include""
#define in_all 250
using namespace std;
class staff; /声明 staff 类。
template void initialization(string a, t b, t c); 声明模板函数作为 staff 类的友元函数。
ostream& operator < /声明 staff 类 class staff:public person //staff 是 person 的公用派生类。 面向对象程序设计作为一门软件设计的课程,具有极强的实践性,必须使学生具备灵活应用理论知识的能力及面向对象程序设计技能。所以在 c 面向对象程序设计 课程学习完成后,安排课程设计教学环节。通过课程设计,使学生实际掌握面向对象的程序设计方法,了解c 面向对象的设计方法与技巧,有效地 深刻地理解课程内容,... c 面向对象课程设计 任务书。一 课程设计目的与要求。1 课程设计目的。面向对象程序设计作为一门软件设计的课程,具有极强的实践性,必须使学生具备灵活应用理论知识的能力及面向对象程序设计技能。所以在 c 面向对象程序设计 课程学习完成后,安排课程设计教学环节。通过课程设计,使学生实际掌握面向对象的程序... 面向对象程序设计作为一门软件设计的课程,具有极强的实践性,必须使学生具备灵活应用理论知识的能力及面向对象程序设计技能。所以在 c 面向对象程序设计 课程学习完成后,安排课程设计教学环节。通过课程设计,使学生实际掌握面向对象的程序设计方法,了解c 面向对象的设计方法与技巧,有效地 深刻地理解课程内容,...C课程设计任务书
C 课程设计任务书
C 课程设计任务书