题目1:
设计一个空调类airCondition,其中包括:
数据成员:品牌(要求char* 类型)、颜色、功率、开关状态、设定温度;
构造函数:对品牌、颜色、功率、设定温度赋初值;
要求1.写出复制构造函数(参数必须被const 修饰),赋值运算符重载函数
2.要求有一定有默认构造函数的生成(=default的使用)
析构函数:用户自定义(注意动态申请的资源的释放);
成员函数:切换开关状态、升温、降温
主函数中要求至少创建三个对象,其中之一用复制构造函数初始化,另外一个创建后用赋值运算符赋值;
具体信息如:格力、白色、2匹、25度等等。调用其“切换开关状态”函数打开空调,调用其“降温”函数调整温度为20度,并打印空调状态和目前设定的温度到屏幕。
代码:
#include<iostream>
#include<string.h>
#include<conio.h>
using namespace std;
static int t;
class airCondition
{
private:
char *brand;char *power;char *color;
public:
int length;char*button;int temp;
airCondition(char*br,char*po,char*co,char*bu,int te)
{
if(br)
{
brand=new char[strlen(br)+1];
strcpy(brand,br);
}
else brand=0;
if(po)
{
power=new char[strlen(po)+1];
strcpy(power,po);
}
else power=0;
if(co)
{
color=new char[strlen(co)+1];
strcpy(color,co);
}
else color=0;
button=new char[2];
strcpy(button,bu);
temp=te;
}//定义了空调类的构造函数,不变的属性如品牌、颜色等放私有,变的属性如开关、温度放公有。
~airCondition();
airCondition(const airCondition &);
//析构函数和复制构造函数声明
void change1()
{
if( strcmp(button,"关")==0)
{
strcpy(button,"开");}
else
{
strcpy(button,"关");
}
}//开空调函数,按回车实现开空调
void change2()
{
cout<<"按回车实现关空调"<<endl;
int r=_getch();
if(r==13)
if( strcmp(button,"关"))
{
strcpy(button,"关");}
else
{
strcpy(button,"开");
}
}//关空调函数,按回车实现关空调
void tempup()
{
cout<<"按空格增加温度,“ESC”退出升温"<<endl;
int c ;
while(1)
{
c=_getch();
if(c==32)
{t+=1;}
if(c==27)
break;
}
cout<<"当前空调设置温度为"<<t<<"℃"<<endl;
}//升温函数
void tempdown()
{
cout<<"按空格降低温度,“ESC”退出降温"<<endl;
int d;
while(1)
{
d=_getch();
if(d==32)
{t-=1;}
if(d==27)
break;
}
cout<<"当前空调设置温度为"<<t<<"℃"<<endl;
}//降温函数
void print()
{
cout<<"品牌:"<<brand<<'\t'<<"功率:"<<power<<endl<<"颜色:"<<color<<endl<<"状态:"<<button<<endl<<"设定温度:"<<t<<endl;
}//输出函数
};
airCondition::airCondition(const airCondition &a)
{
if(a.brand)
{
brand=new char[strlen(a.brand)+1];
strcpy(brand,a.brand);
}
else brand=0;
if(a.power)
{
power=new char[strlen(a.power)+1];
strcpy(power,a.power);
}
else power=0;
if(a.color)
{
color=new char[strlen(a.color)+1];
strcpy(color,a.color);
}
else color=0;
}//复制构造函数
airCondition::~airCondition()
{
if(brand)
delete []brand;
if(power)
delete []power;
if(color)
delete []color;
if(button)
delete []button;
}
//析构函数
void main()
{
int m;
airCondition a1("格力","3匹","黄","关",25);
airCondition a2("美的","2匹","绿","关",25);
airCondition a3("海尔","4匹","白","关",25);
airCondition a4(a1);
cout<<"请输入空调编号来打开相应空调"<<endl;
cin>>m;
if(m==1)
{
t=a1.temp;
a1.change1();
a1.print();
a1.tempup();
a1.tempdown();
a1.change2();
a1.print();
}
if(m==2)
{
t=a2.temp;
a2.change1();
a2.print();
a2.tempup();
a2.tempdown();
a2.change2();
a2.print();
}
if(m==3)
{
t=a3.temp;
a3.change1();
a3.print();
a3.tempup();
a3.tempdown();
a3.change2();
a3.print();
}
if(m==4)
{
t=a4.temp;
a4.change1();
a4.print();
a4.tempup();
a4.tempdown();
a4.change2();
a4.print();
}
getchar();
getchar();
}
题目2:
声明一个银行账户类Acoount,该类有账号(Account)、余额(Balance)两个数据成员,有获取账号、获取余额、存款(Deposit)、取款(Withdrawl)的函数,以及构造函数。请按上述要求声明该银行账户类并在main函数中定义该类的2个对象,然后对他们实现存取款和查询余额等操作。
#include<iostream>
#include<string.h>
#include<conio.h>
#define N 20
using namespace std;
class Account
{
private:
char ID[N];
public:
float Balance;//构造账号和余额两个数据成员
Account(char id[N],float Ba)
{
if(id)
{
strcpy(ID,id);
}
Balance=Ba;
}//构造函数
int get(char id[N])
{
if(id)
{
if(strcmp(ID,id)==0)
{
cout<<"您的当前余额为:"<<Balance<<endl<<"请按指示进行下一步操作"<<endl;
return 1;
}
else return 0;
}
}//获取账号函数
void Deposit()
{
float in;
cout<<"请输入要存入的金额"<<endl;
cin>>in;
if(in>0)
{
Balance+=in;
cout<<"存款成功!当前余额:"<<Balance<<endl;
}
else cout<<"请输入正确的存款金额"<<endl;
}//构造存款函数
void Withdrawl()
{
float out;
cout<<"请输入要取出的金额"<<endl;
cin>>out;
if(out<=Balance)
{
Balance-=out;
cout<<"取款成功!当前余额:"<<Balance<<endl;
}
else cout<<"余额不足,无法取出"<<endl;
}//构造取款函数
int change()
{
int c,d;
cout<<"请选择您要进行的操作"<<endl<<"存款按1,取款按2"<<endl;
c=_getch();
if(c==49)
{
cout<<"进入存款过程"<<endl;
d=1;
}
if(c==50)
{
cout<<"进入取款过程"<<endl;
d=0;
}
return d;
}//实现存取款功能选择的函数
};
int main()
{
char id[N];
Account a1("100001",5000);
Account a2("100002",3000);
Account a3("100003",4000);
Account a4("100004",10000);
Account a5("100005",1000000);
cout<<"请输入账号来进行操作"<<endl;
cin>>id;
if(a1.get(id))
{
if(a1.change())
{
a1.Deposit();
}
else a1.Withdrawl();
}
if(a2.get(id))
{
if(a2.change())
{
a2.Deposit();
}
else a2.Withdrawl();
}
if(a3.get(id))
{
if(a3.change())
{
a3.Deposit();
}
else a3.Withdrawl();
}
if(a4.get(id))
{
if(a4.change())
{
a4.Deposit();
}
else a4.Withdrawl();
}
if(a5.get(id))
{
if(a5.change())
{
a5.Deposit();
}
else a5.Withdrawl();
}
getchar();
getchar();
}