【15分】A. 音像制品(类与对象)
题目描述
某商店出租音像制品,制品信息包括:类型、名称、租金单价、状态。
其中类型用单个数字表示,对应关系为:1-黑胶片,2-CD,3-VCD,4-DVD
名称是字符串,存储制品的名称信息
租金单价表示每天租金价格
状态用单个数字表示,0是未出租,1是已出租
商店提供业务操作包括
-
初始化(可使用构造函数或set方法),从键盘输入音像制品的信息,并设置到对象中
-
查询Print,输出音像制品的信息
-
计算租金Fee,参数是租借的天数,输出租金总价,如果未出租则提示,具体输出信息看示范
请定义音像制品类,并创建相应的对象来完成操作
题目涉及的数值均用整数处理
输入
第一行输入n表示有n个音像制品
每个音像制品对应两行输入
一行输入一个音像制品的多个参数,具体为:类型、名称、租金单价、状态
一行输入操作命令,如果输入为0表示查询操作,非0则表示查询并且计算租金费用,租用天数就是这个非0值
依次输入2n行
输出
根据每个音像制品的操作命令,调用相应的操作,然后输出相关结果
输出样式看示范。
输入样例1
4
1 AAA 43 1
0
2 BBB 19 0
3
3 CCC 27 1
5
4 DDD 32 1
7
输出样例1
黑胶片[AAA]已出租
CD[BBB]未出租
未产生租金
VCD[CCC]已出租
当前租金为135
DVD[DDD]已出租
当前租金为224
代码
#include <iostream>
#include <cstring>
using namespace std;
class CVedio
{
private:
int type;
char* name;
int fee;
int state;
public:
void set(int V_type,char* V_name,int V_fee,int V_state)
{
type = V_type;
name = new char[strlen(V_name) + 1];
strcpy(name,V_name);
fee = V_fee;
state = V_state;
}
void measure(int n) {fee *= n;}
void print1()
{
string arr1[5] = {"0","黑胶片","CD","VCD","DVD"};
string arr2[2] = {"未出租","已出租"};
cout << arr1[type] << "[" << name << "]" << arr2[state] << endl;
}
void print2()
{
if(!state) cout << "未产生租金" << endl;
else cout << "当前租金为" << fee << endl;
}
~CVedio()
{
delete []name;
}
};
int main()
{
int t;
cin >> t;
while(t --)
{
CVedio vedio;
int V_type, V_fee, V_state;
char V_name[5];
cin >> V_type >> V_name >> V_fee >> V_state;
vedio.set(V_type, V_name, V_fee, V_state);
int num;
cin >> num;
vedio.print1();
if(num)
{
vedio.measure(num);
vedio.print2();
}
}
return 0;
}