第二次上機作業
一、面向對象編程
【題目】小型公司技術人員信息管理程序
【要求】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()出價格最高的商品。
每個成員函數至少被使用一次。通過多次的函數調用來測試你的程序功能是否達到要求。