定义一个银行账户

//定义一个银行账户类。银行账户包含两部分数据:账户余额和利率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;
}

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

时间: 2024-08-29 16:42:15

定义一个银行账户的相关文章

100个线程同时向一个银行账户中存入1元钱

下面的例子演示了100个线程同时向一个银行账户中存入1元钱,在没有使用同步机制和使用同步机制情况下的执行情况. 银行账户类: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 /**  * 银行账户  * @author 骆昊  *  */ public class Account {     private double balance;     // 账户余额     /**   

个人银行账户管理程序

这个程序是一个银行账户管理的程序,是用C++来实现程序功能的,该程序包含六个文件,其中有date.h头文件 是日期类的头文件,date.cpp是日期类的实现文件,accumulator.h是按日将数值累加的accumulator类的头文件, account.h是各个储蓄账户类定义的头文件,account.cpp是各个储蓄账户类的实现文件,还有就是主函数文件.该 程序包含了增加账户功能.存款功能.取款功能.查询账户信息功能.改变日期功能.进入下个月的处理功能,最 后是退出程序.下面是各个程序文件:

申请Payoneer美国万事达信用卡,可获得一个美国虚拟银行账户,立即注册可得25美元

申请Payoneer美国万事达信用卡,可获得一个美国虚拟银行账户,可以在国内任意一个支持万事达的ATM.POS机上取现和刷卡消费.Payoneer可以网上购物,购买国外的产品,对我们有一个好处就是利用Payoneer美国信用卡的身份,购买Godaddy一些只要求美国信用卡付款的域名,或者向外国公司收款.此卡无透支功能.立即注册可得25美元:http://share.payoneer-affiliates.com/v2/share/6114410446805048501

银行账户管理系统详细设计说明书

银行账户管理系统详细设计说明书 第一部分  引言 1.1  编写目的 本说明对会议室管理系统项目的各模块.页面.脚本分别进行了实现层面上的要求和说明. 软件开发小组的产品实现成员应该阅读和参考本说明进行代码的编写.测试. 1.2  背景 说明: A. 软件系统的名称:银行账户管理系统 B. 任务提出者:内蒙古大学计算机学院 开发者:魏晓蕾.宋健.付雨蛟.许杨.高宇.道如那.任海芬.赵家祥 本项目将实现基于服务器端Java Web网站的银行账户管理系统的原型部分,并且在该原型的基础上进行功能的扩展

Java实验-课程设计报告一:个人银行账户管理系统SavingAccountManageSystem-具体文档+源码

课程设计报告一:个人银行账户管理系统 此文档及源码仅供参考 不得直接复制使用 author: [xxxxxxxxx xx xxxx] date: "2019-04-12" 作 者:31415926535x 出 处:https://www.cnblogs.com/31415926535x/p/10697659.html 版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本. 不建议直接复制文档.源码,没意义,这东西还是自己手敲一下才能涨经验 项目所有的内容都已上

分析电梯控制系统和银行账户系统,分别画出状态图

第一部分:状态图语法 (1)简单状态:使用([*])开始和结束状态图.使用-->添加箭头. 1 @startuml 2 3 [*] --> State1 4 State1 --> [*] 5 State1 : this is a string 6 State1 : this is another string 7 8 State1 -> State2 9 State2 --> [*] 10 11 @enduml (2)合成状态:一个状态也可能是合成的,必须使用关键字state

个人银行账户小程序

#if 0 //1#ifndef _ACCOUNTH#define _ACCOUNTHclass SavingsAccount //储蓄账户{public:SavingsAccount(int date,int id,double rate);int getid()const{return id;}double getbalance()const{return balance;}double getrate(){return rate;}static double gettotal(){retu

FPM-OVP增强实例-银行账户

本文是基于NWBC银行账户信息进行增强,相关过程如下: 1.定位需要增强的界面 首先登陆SAP-GUI(尽量EN登陆,ZH可能乱码),输入TCODE:NWBC跳转到浏览器界面,新建银行账户: 注意上图中的三个红框区域,可点击Configuration对应链接进行查看. WD Application:FPM应用程序名 Start WD Component:Page页面配置 Current WD Component/View:View布局设计 本次主要是]增加一些辅助字段,则需要调整View界面布局

C# 定义一个学生的结构体,输入学生信息,学号,姓名,身高,按身高排序输出

class Program { //定义一个结构体 struct student//student就是我们自己造的新数据类型 { public int code;//public修饰符 public string name;//结构体的成员 public decimal height; } static void Main(string[] args) { ArrayList arr = new ArrayList(); for (int i = 0; i < 3; i++) { student