码迷,mamicode.com
首页 > 其他好文 > 详细

定义一个银行账户

时间:2020-04-11 18:49:42      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:提示   system   重载   ann   定义   int   percent   fabs   取绝对值   

//定义一个银行账户类。银行账户包含两部分数据:账户余额和利率rate。其中余额用两个整型值来表示:一个代表美元accountDollars,一个代表美分accountCents。即该类的数据成员有3个(accountDollars,accountCents,rate)。注意:负的账户余额用负的dollars和负的cents表示,例如-$4.50将accountDollars设置为-4,将accountCents设置为-50.
//1)        用户可以认为账户的余额是一个double类型表示的,也可以认为是用两个int类型表示的(分别为美元和美分)。例如主函数中account1和account3两个对象的定义方式。为满足主函数中的对象定义,请为类重载构造函数。如果用户的余额是一个double类型数据,需要将其整数部分存入accountDollars,小数部分存入accountCents。
//2)        为数据成员建立相应的set系列函数。注意,余额有两种形式的设置方式,分别是一个double,或者两个int,设置函数中应检查参数是否同时为正,或者同时为负。一正一负需给出错误提示(Inconsistent account data.)。如果利率为负数,需给出错误提示(Cannot have a negative interest rate.),并调用exit函数结束程序。
//3)        为数据成员建立相应的get系列函数。
//4)        类还有4个私有成员函数,如下所示。这些函数只在类内部使用,因此可定义为私有。

 

#include<iostream>
#include<stdlib.h>
#include<iomanip>
#include<cmath>

using namespace std;
class BankAccount{
private:
 int accountDollars;
 int accountCents;
 double rate;
 double amount;
 int dollarsPart(double);//用于返回amount的整数部分
 int centsPart(double);//用于返回amount的小数部分
 int round(double);//用于返回number四舍五入的结果
 double fraction(double);//用于把一个数换成百分数形式
public:
 BankAccount(double sum,double rate1):amount(sum),rate(rate1){}
 BankAccount();
 void input(){
 cin>>amount>>rate;
 cout<<"\n";}

 void setAmount(double );
 void setRate(double )  ;
 int getAmountDollars(BankAccount &){return accountDollars;}
 int getAmountCents() {return accountCents;}
 double getRate(){return rate;}
 double getAmount1(BankAccount &) {return amount;}


};
 BankAccount::BankAccount(){
 
}


void BankAccount::setAmount(double amount){
 accountDollars=dollarsPart(amount);
 accountCents=centsPart(amount);
 if((accountDollars>0&&accountCents<0)||(accountDollars>0&&accountCents<0))
  cout<<"Inconsistent account data.\n";
 exit(0);
 
}
void BankAccount::setRate(double rate1){
 rate=fraction(rate1);
 if(rate<0)
  cout<<"Cannot have a negative interest rate.\n";
 exit(0);
}

void welcome(BankAccount &account1){

 cout<<"Welcome to our bank.\n"<<"The status of your account is:\n";
 cout<<"Account balance:$"<<account1.getAmount1(account1)<<endl;
 cout<<"Rate:"<<account1.getRate()<<"%"<<endl;//老师,我这里没有用那个百分数那个函数,直接输出的。
}
int  isLarger(BankAccount &account1,BankAccount &account2){
 if(account1.getAmount1(account1)>account2.getAmount1(account2))
  return true;
 else
  return false;
}
  

int BankAccount::dollarsPart(double amount)
{
 return static_cast<int>(amount);
}
int BankAccount::centsPart(double amount)
{
    double doubleCents = amount*100;
    int intCents = (round(fabs(doubleCents)))%100;//负数取余数,可能出现问题,因此先对doubleCents取绝对值。
    if(amount < 0)
    intCents= -intCents;
    return intCents;
}
int BankAccount::round(double number)
{
    return static_cast<int>(floor(number + 0.5));
}
double BankAccount::fraction(double percent)
{
    return (percent/100.0);
}


int main(){
 BankAccount account1(6543.21,4.5),account2;
 //cout<<"Enter data for account 2:\n‘;
 account2.input();
 cout<<"Account 2:\n";
 welcome(account2);
 cout<<"\nAccount 1:\n";
 welcome(account1);
 if(isLarger(account1,account2))
  cout<<"\naccount1 is larger.\n";
 else
  cout<<"\naccount2 is at least as large as account1\n";
 system("pause");
 return 0;
}

定义一个银行账户

标签:提示   system   重载   ann   定义   int   percent   fabs   取绝对值   

原文地址:https://www.cnblogs.com/zhaoyiyao/p/12681259.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!