zoukankan      html  css  js  c++  java
  • 类,构造函数,成员函数,数据成员

     1 #include <iostream>
     2 using namespace std;
     3 /*
     4 创建一个Account类,银行可以使用它表示客户的银行账户。这个类应该包含一个类型为float的数据成员,表示账户余额
     5 这个类必须提供一个构造函数,它接受初始余额,并且用它初始化数据成员。这个构造函数应当确认初始余额的有效性,保证
     6 它大于或等于0.否则余额应当设置为0.并且构造函数必须显示一条错误信息,指出初始余额是无效的。该类还要提供三个成员
     7 函数。成员函数credit将一笔金额加到当前余额中。debit将从这个Account中取钱,并且保证金额不会超过Account的余额。
     8 如果不是这样,将打印一条消息:余额不足。成员函数getbalance将返回当前余额。编写一个测试程序,它创建2个Account对象
     9 ,并测试Account类的函数。
    10 */
    11 class Account
    12 {
    13 public:
    14     /*explicit*/ Account(float init)
    15     {
    16         if(init >= 0)
    17             balance = init;
    18         else
    19         {
    20             balance = 0;
    21             cout <<"error ,账户初始金额不能为负,现已自动将初始金额调整为0
    ";
    22         }
    23     }
    24     void credit(float saveMoney)
    25     {
    26         balance += saveMoney;
    27     }
    28     void debit(float withMoney)
    29     {
    30         if(withMoney > balance)
    31             cout<<"余额不足
    ";
    32         else
    33             balance -= withMoney;
    34     }
    35     float getbalance()
    36     {
    37         return balance;
    38     }
    39 private:
    40     float balance;
    41 };
    42 void menu()
    43 {
    44     Account a(-1),b(2);
    45     cout<<"a的余额 = "<<a.getbalance()<<endl;
    46     cout<<"b的余额 = "<<b.getbalance()<<endl;
    47     int i;
    48     float j;
    49     char ch;
    50     //为了简化程序就不做输入错误判断了
    51     cout<<"请选择您的操作:1.存钱,2取钱
    ";
    52     cin>>i;
    53     if(1 == i)
    54     {
    55         cout<<"请输入存款人姓名:";
    56         cin>>ch;    
    57         cout<<"请输入存入金额:";
    58         cin>>j;
    59         if('a' == ch)
    60             a.credit(j);
    61         if('b' == ch)
    62             b.credit(j);
    63     }
    64     if(2 == i)
    65     {
    66         cout<<"请输入取款人姓名:";
    67         cin>>ch;    
    68         cout<<"请输入取出金额:";
    69         cin>>j;
    70         if('a' == ch)
    71             a.debit(j);
    72         if('b' == ch)
    73             b.debit(j);
    74     }
    75     cout<<"a的余额 = "<<a.getbalance()<<endl;
    76     cout<<"b的余额 = "<<b.getbalance()<<endl;
    77 }
    78 int main(void)
    79 {
    80     menu();    
    81     return 0;
    82 }
  • 相关阅读:
    .NET 用 Unity 依赖注入——概述注册和解析类型(1)
    .NET 服务器定位模式(Service Locator Pattern)——Common Service Locator
    用什么样的语言就有什么样的公司【转载】
    编程语言和工具比较【翻译】
    .NET 基于任务的异步模式(Task-based Asynchronous Pattern,TAP) async await
    RocketMQ【未完成】
    Dapper
    Java 控制反转和依赖注入模式【翻译】【整理】
    Java 面向切面编程(Aspect Oriented Programming,AOP)
    Groovy 与 Python 的差异【翻译】
  • 原文地址:https://www.cnblogs.com/wangchaomahan/p/9838204.html
Copyright © 2011-2022 走看看