云大C++期末大作业_公司雇员管理信息系统

C++ Programming

Final Exam

Instructor : Li Jin (Software School of Yun Nan University)

Due date: ( 2009 – 1– 10)

公司雇员管理信息系统

公司内部有4种雇员(Employee) :经理(Manager),时薪雇员(Wage),推销员(Sales)。

对公司内部雇员进行概念建模,可得如下类层次关系:

CEmp l oyee

CManager

CWage

CSa l es

上面类层次关系表明:CSa l es CWage CManager are kinds of CEmp l oyee, CSa l es is a kind

of CWage.

上述各类的基本属性和操作如下描述:

classCEmployee {

private:

stringname;

stringsex;/ /男或女

BDay birthday;//显示格式:1980- 1- 1,请自己设计并实现类BDay.

public:

CEmployee(string, string, const BDay&bd);/ /构造函数

stringEmpolyeeName();/ /返回雇员名字

float com putePay(){return 0;};//计算雇员薪水

};

classCManager : publicCEmployee{

private:

float salary;/ /固定月薪

public:

CManager(); //初始化父类属性值,并初始化月薪为0.0

voidsetSalary(float salary); //修改CManager月薪值

float computePay();

};


classCW age : publicCEmployee {

private:

float wage;/ /时薪

float hours;/ /小时

public:

CW age();//自己编写CWage的恰当的构造函数。注意在生成一个CWage对象时构造函数必须

初始化该对象的wage, hours属性值为0.0,0.0。

voidsetWage(float wg);/ / 修改对象的时薪值

voidsetHours(float hrs);// 修改对象的工作时间

float computePay();// 计算薪水,Cwage的薪水 = 工作时间*时薪

};

classCSales : publicCW age{

private:

float comm; //每件提成

float sale; //销售数量

public:

CSales();/ /初始化其父类的所有属性值,并初始化comm, sale为0.0,0.0

voidsetCommission; //修改对象的提成

voidsetSales; //修改对象的销售数量

float computePay();// 计算薪水,CSales薪水 = 工作时间*时薪 + 每件提成*销售数量

};


作业要求及评分细则:(其中作业报告撰写质量占 25%,以下部分占 75%)

  1. 按上述声明用C ++实现该类体系。
    c 类体系声明明部分放在CEmpolyee.h文件中,类体系实现代码放在CEmpol yee.cpp中(5%)
    d 类型体系设计应具有可扩展性,例如,在类型体系中增加新的雇员类型,客户代码(即实
    现雇员信息输入、查询、修改、输出部分的代码)不应出现大量改变。(5%)
  2. 按下面要求实现应用程序(程序只要求在控制台方式运行):

c 编写一个菜单,允许用户先选择输入雇员的类型(Manager,Wage,Sales),然后请用户

输入姓名,性别,出生日期,将雇员信息从控制台逐一输入。(5%)

d 编写从雇员信息文件(文件名为employee.data,此文件中预先存入80条雇员信息,雇员

信息见后面雇员列表)中读入已存放的雇员信息,并能将其追加到已有雇员信息中。(10%)

e 从控制台及雇员信息文件中读入的雇员信息存放在一个雇员链表中(链表自己设计,建议

用C ++标准库中的模版类li st<>)。(5%)

f 编写一个雇员信息查询模块,支持按姓名查询(给定雇员姓名,查询指定雇员)(10%)、

按雇员类别(Manager, Wage, Sale )查询(按雇员薪水查询,查询高于某一给定值的所有雇员)

(10%);修改模块,查找到指定用户后,能够修改雇员的相应信息(诸如,雇员的提成,雇员

的销售数量,雇员月薪等等)。(5%)

g 将链表中的内容输出到控制台或文件(employee.data),输出位置由用户指定。(10%)

h 打印薪水报表至文件(salary.data)、或控制台,输出前请用户选择是按“姓名”排序输出,

还是按“薪水”排序输出,或按“雇员类别”排序输出。(10%)

注意:在此没有规定上述功能的实现方式,

可按照自己的设计去实现,但老师会根据你采

用的实现技术的情况给予评分,尽量通过此小

系统展现你对C ++编程方式的理解和掌握。


测试用数据 —— 雇员信息列表

红色为Manager、蓝色为Wager、其余为Sal er

何冲浪

王婷

魏芙蓉

毛羽丰

刘娇琼

陈静

陈振

张发兴

崔光滔

尹吉星

金雪蓉

何云

向明海

唐浩

戚雪娟

杨晓龙

和博涛

陈琴

熊继梅

金子立

蒋院东

杨永寿

李建源

和永珍

马文迪

文慧

杨彦祥

董辰

徐红波

肖宸宇

赵锦磊

高宝福

李柏洁

董霞

董云云

薛卉

汤超

殷磊

黄建波

刘筱茜

魏晶晶

王守正

丁盛

李宗平

晋欣宇

张秀龙

柯贤良

刘杰

吴国明

邓颖

申彪

杨龙

胡庆祥

王春雷

刘秀

余旭根

李芳

陈星宇

曹雷

黄朝魁

上述数据在dat a. t xt 文件中。


大作业报告要求:(请各位同学严格按照此要求撰写大作业报告,否则酌情扣分)

报告书格式

封面

见统一的封面文件 — C ++程序设计-大作业报告封面.doc

评分标准

见评分标准文件 — C ++程序设计-评分标准.doc

第一部分 功能概述

以无歧义的陈述说明程序设计的任务,概要地说明程序要做什么?

第二部分 设计

(1) 类设计

此部分对程序中所涉及到的类进行设计说明,每一个类的设计说明包括:

①类成员函数说明(函数功能,函数参数及参数含义,函数返回值及返回值含

义)。

②类的存储结构的定义及说明。

(2)主程序的功能说明

分别对数据输入模块、数据查询模块、数据维护模块、数据输出模块进行说明。

在说明时请用文字描述结合关键代码进行阐述。

第三部分 完整的代码

带注释的完整源程序,请认真对代码加以注释,注释的质量是一个很重要的

评分标准。


第四部分 总结

不要写一些空话、套话、废话,具体谈谈你对 C++程序设计的一些心得、感受。

这部分是个性化的总结,教师通过总结性文字看看各位对C++程序设计的理解和领

悟。(此部分无标准模式,教师将根据总结内容的质量酌情加、减分)

重要说明:

  1. 几份报告如果出现大部分雷同内容,则得分均以0分计!!!
  2. 每一位同学单独提交报告,不得以小组形式提交。
  3. 排版要求(注意:若不按此要求进行排版,将酌情扣分!)A4纸
    张,行距固定值18磅。字体要求:标题用宋体小四加粗,内容用
    宋体5号字,英文用Times New Roman 5号. 代码用G eorgia 小
    5号(行距固定值14)。
  4. 大作业应提供测试截图,以说明大作业完成的实际情况!
  • 13
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值