2011年C++课程设计题(电信系教师 陈小常)
第1题 使用类的继承和派生设计公司职员的管理信息
设计要求:公司职员的管理信息程序主要实现以下功能:输入员工的姓名,输出该员工的基本信息、级别以及当月工资信息。需求如下
1. 某个小型公司,主要由总经理、技术经理和技术人员、销售经理和销售人员。要求存储所有人员的以下信息:姓名、编号、级别、当月新手、计算月薪总额并显示全部信息。
2. 人员编号从1开始,依次递增。
3. 程序对所有人员有提升级别的功能。我们假设所有人员初始级别为1级,然后进行升级,总经理升为4级,技术经理和销售经理升为3级,技术人员升为2级,销售人员为1级。
4. 月薪计算办法如下:总经理拿固定月薪10000元;技术经理那固定月薪6000元加奖金;技术人员拿固定月薪3000元加奖金;销售经理既拿固定月薪也领取销售提成,固定月薪为4000元,销售提成为所辖部门当月销售总额的5‰;销售人员的月薪按月销售额的1%提成。
第2题 用虚函数设计异质链表实现学校人员的信息管理
设计要求:学校人的信息管理程序主要实现对不同类型的人员进行统一管理,实现人员的添加、删除,浏览所有人员信息及查看某个人的信息功能。
第3题 用运算符重载实现特殊计算器
设计要求:本程序的功能是实现一个特殊的计算器,可以进行复数、有理数、矩阵和集合的特殊运算。要求程序可实现复数、有理数的加、减、乘、除,可以实现矩阵的加法、减法、和乘法运算,也可以实现集合的求交集、并集、子集的运算。用户可以通过主菜单选择不同数据类型的运算。
#include
public:
void print(); complex();
complex(float r,float i) {
real= r; image= i; }
virtual ~complex();
friend complex operator + (complex a,complex b); friend complex operator - (complex a,complex b);
friend complex operator * (complex a,complex b); friend complex operator / (complex a,complex b); private:
float image; float real; };
class rational {
public:
void print(); rational(int x=0,int y=0); virtual ~rational();
friend rational operator + (rational num1,rational num2); friend rational operator - (rational num1,rational num2); friend rational operator * (rational num1,rational num2); friend rational operator / (rational num1,rational num2);
friend bool operator ==(rational num1,rational num2);
friend double real(rational x);
private:
void optimization();
int denominator;
int numerator; };
class matrix {
public:
void Disp();
int matrix::operator ()(short row, short col);
void SetElem(short row,short col,int val);
matrix();
matrix(short r,short c)
{
rows= r;
cols= c;
elems= new int[rows*cols];
}
virtual ~matrix();
friend matrix operator +(matrix p,matrix q);
friend matrix operator -(matrix p,matrix q);
friend matrix operator *(matrix p,matrix q);
private:
int * elems;
short cols; short rows; };
#include
enum errcode {noerr,overflow};
class set {
public:
void print();
set(){card=0;}
virtual ~set();