第二次上机作业
一、面向对象编程
【题目】小型公司技术人员信息管理程序
【要求】1.先定义日期类:
class Date
{
int year,month,day;
public:
Date(int y=2020,int m=1,int d=1);
void print();
friend bool isretire(Technician & x, Date & today);//判断技术人员是否该退休,60周岁退休
};
再按以下描述和要求建立一个类Technician;
在类外定义实现所有成员函数和友元函数。执行主函数对其测试。
Technician//技术人员类 | |
私有成员 | int num;//临时技术人员编号 char *name;//姓名 Date birthday;//生日 float hourrate;//每小时酬金 float workhours;//本月工作时数 float money;//月薪 |
公有成员 | static int emploNo;//技术人员人数,基数200 Technician(int nu =0, char *b=“**”,int y=2020,int m=1,int d=1, float hr=160); Technician(Technician &);//拷贝构造函数,技术人员人数加一(此同构造函数) void alter(int nu , char *b,int y,int m,int d, float hr);//修改员工信息 ~ Technician();//析构函数,释放分配的内存,技术人员人数减一 float pay();//计算月薪函数。月薪按小时计算,月薪为每小时数酬金乘以本月工作时数 friend bool isretire(Technician & x, Date & today);//判断技术人员是否该退休,60周岁退休 void display();//显示人员信息函数.显示信息包括编号、姓名、生日、月薪。 static void company_num();//显示公司技术人员人数 |
2.头文件包含语句为:
#include
#include
3.需在类定义外面对静态成员做定义性说明并赋初值:
int Technician:: emploNo =200;
要求:每增加一人,技术人员人数要加1,每减少一人,技术人员人数要减1。
二、商店商品管理模拟程序
【要求】按以下描述和要求建立两个类goods和store :
class goods{ //商品类
friend class store;
private:
int id;//商品代号
float price;//价格
int num;//库存数量
void AddNum(int x){num+=x;} //增加库存数量x个
};
class store{ //商店类
private:
goods s[10];//存放商品信息,最多可有10种商品
int n;//数组中已写入数据的元素个数(商品种类数)
public:
store(){n=0;} //商品表构造函数
void newgd(int a,float b,int c);//在数组s中添加一种新商品
//(为goods类对象的数据成员赋值)
void list();//屏幕打印库存商品清单和商品种类数
int MaxPrice();//找出价格最高的商品,输出其代号、价格和数量,//返回该商品在数组s中的位置
};
请完成以上未定义函数体的成员函数。
(1)在主程序中定义一个store对象G。
(2)调用成员函数newgd()输入不少于5种的商品数据,存入数组s中作为测试数据。
(3)调用成员函数list()打印商品清单.(4)调用成员函数MaxPrice()出价格最高的商品。
每个成员函数至少被使用一次。通过多次的函数调用来测试你的程序功能是否达到要求。