设计两个类
汽车类
属性:颜色、品牌、车轮个数
行为:行驶
修车厂类
属性:名称、地址
行为:修车
描述逻辑:
汽车可以行驶,一旦汽车损害(轮胎爆胎,某个轮子不可用),可以送至修理厂进行维修,修好后可以正常行驶
这个代码的这块错了怎么改啊
35行看不见,你这个brand是私有成员,主程序不能直接读取,只能是在成员函数里读取
代码分析:
1、根据题意,我们要设计一个类Account,要将mName、mSN、mBalance均作为其成员数据,将deposit、withdraw、getBalance均作为其成员函数。类图UML设计图如下:
2、代码中 strcpy()即字符串复制函数,其原型是char * strcpy(char * dest,const char * src),把含有‘ \0 ’结束符的字符串复制到罗一个地址空间,即把从 src 地址开始且含有 NULL 结束符的字符串复制到以 dest 开始的地址空间,其中 src 和 dest 所指内存区域不可以重叠且 dest 有足够空间容纳 src 的字符串。
strcpy(mName, name); //字符串复制函数
3、无参构造函数跟有参构造函数的区别,即在类里定义一个与类名相同的函数,但它的实参列表为空。
//类的有参构造函数
Account::Account(char name[], long num, float amount)
{
strcpy(mName, name); //字符串复制函数
mSN = num;
mBalance = amount;
}
//类的无参构造函数
Account::Account()
{
cout << "无参函数被调用!"<< endl;
}
4、取款操作中,我们要考虑账户透支,即账户余额为0的情况,这里我们定义一个 if - else if 语句,若取款金额大于卡内金额时,return 0此时函数正常终止,而当取款金额小于或等于卡内金额时,return 1此时函数异常退出,即异常退出此函数。
//从当前账户中取款
int Account::withdraw(float amount)
{
if (amount > mBalance)
{
return 0;
}
else if (amount <= mBalance)
{
mBalance = mBalance - amount;
return 1; //return 1代表函数非正常终止
}
}
5、查询账户余额操作中,return 关键字,其作用是返回程序流程的控制权,副作用是返回一个值,这里是返回卡内金额 mBalance 的值。
//查询当前账户的余额
float Account::getBalance()
{
return mBalance;
}
6、Account A(name, num, amount)这里我们建立了一个账户,即实例化一个对象。
int main()
{
int NO, m;
char name[20];
long num;
float amount;
cout << "请输入所开账户户名:";
cin >> name;
cout << "请输入所开账户帐号:";
cin >> num;
cout << "请输入所开账户初始存款金额:";
cin >> amount;
Account A(name, num, amount);
......................................
......................................
......................................
}