首页 > 编程语言 >基于C++类与权限初识:银行系统

基于C++类与权限初识:银行系统

时间:2024-07-03 12:02:25浏览次数:27  
标签:case cout money void C++ break 初识 double 权限

功能:

银行的账户是一个模板,是一个类,有存款人信息和账户额度,而具体的存款人视为一个对象,
一个对象不能私自修改账户额度,需要通过一个操作流程,比如去ATM或者柜台进行操作才能修改
到账户额度,所以,存款人信息和账户额度设计成私有权限,通过公有的操作流程,也就是公有函数去操作私有
变量。

注意:

变量与字符串一同输出要将两种类型的数据进行转换

代码:

#include <iostream>
#include <string>
#include <unistd.h>

using namespace std;

char operate;//操作
double money;//存取money
char per;//人员
double yue;//余额

class BankOfShenZhen{
private:
    string name;
    string addr;
    int age;
    double balance;//余额
public:
    void inserUserInfo(string newName,string newAddr,int newAge,double balance);//输入用户信息
    void existMoney(double amout);//存款
    void takeMoney(double amout);//取款
    double getBalance();//获取余额
    void printUserInfo();//打印用户信息
    //void changez();//修改老周信息
    //void changec();//修改老臣信息
};

BankOfShenZhen user1;
BankOfShenZhen user2;

void BankOfShenZhen::takeMoney(double amout)//取款
{
    if(balance!=0 && amout<balance){
        balance = balance-amout;
        cout<<"本次取款:"<<std::to_string(amout)<<"元"<<endl;
    }else if(amout>balance){
        cout<<"余额不足,请查询后重新取款"<<endl;
    }else{
        cerr<<"系统错误,请联系工作人员"<<endl;
    }

    //cout<<"余额:"<<balance<<"元"<<endl;
}
void BankOfShenZhen::existMoney(double amout)//存款
{
    if(balance<1000000){
        balance = balance+amout;
        cout<<"本次存款:"<<std::to_string(amout)<<"元"<<endl;
    }else if(balance>=1000000){
        cout<<"该卡存储金额已达上限,请联系工作人员"<<endl;
    }else{
        cerr<<"系统错误,请联系工作人员"<<endl;
    }
    cout<<"====================================="<<endl;
}
void BankOfShenZhen::printUserInfo()
{
    string mesTem = "账户名:" + name + ",地址:" + addr +
    ",年龄:"+ std::to_string(age) + ",存款:" + std::to_string(balance);
    cout << mesTem << endl;
}
void BankOfShenZhen::inserUserInfo(string newName, string newAddr,int newAge,double newBalance)
{
    name = newName;
    addr = newAddr;
    age = newAge;
    balance = newBalance;
}
double BankOfShenZhen::getBalance()
{
    return balance;
}
int changez()//修改老周信息
{
    while(1){
         cout<<"请输入操作:q:退出,e:存款,t:取款,p:查询余额"<<endl;
         cin>>operate;
         switch(operate){
             case 'q':
                 return 0;
             break;
             case 'e':
                 cout<<"请输入你要存多少钱?"<<endl;
                 cin>>money;
                 user1.existMoney(money);
             break;
             case 't':
                 cout<<"请输入你要取多少钱?"<<endl;
                 cin>>money;
                 user1.takeMoney(money);
             break;
             case 'p':
                 yue=user1.getBalance();
                 cout<<"您的余额"<<std::to_string(yue)<<endl;
             break;
         }
       }
}
int changec()//修改老臣信息
{
    while(1){
        cout<<"请输入操作:q:退出,e:存款,t:取款,p:查询余额"<<endl;
        cin>>operate;
        switch(operate){
            case 'q':
                return 0;
            break;
            case 'e':
                cout<<"请输入你要存多少钱?"<<endl;
                cin>>money;
                user2.existMoney(money);
            break;
            case 't':
                cout<<"请输入你要取多少钱?"<<endl;
                cin>>money;
                user2.takeMoney(money);
            break;
            case 'p':
                yue=user2.getBalance();
                cout<<"您的余额"<<std::to_string(yue)<<endl;
            break;
        }

    }
}
int main()
{
    cout << "==============欢迎进入银行管理系统!==============" << endl;
    user1.inserUserInfo("老周","浙江工商银行",22,1000);//创建用户并建立用户信息
    user2.inserUserInfo("老臣","浙江建设银行",35,5000);
    //输出用户信息
    user1.printUserInfo();
    cout<<"老周用户创建成功!"<<endl;
    user2.printUserInfo();
    cout<<"老臣用户创建成功!"<<endl;
    while(1){
        cout<<"请输入你要查看谁的资料z:老周,c:老臣,q:退出系统"<<endl;
        cin>>per;
        switch(per){
            case 'z':
                changez();
            break;
            case 'c':
                changec();
            break;
            case 'q':
                exit(-1);
            break;
        }

    }
    return 0;
}

运行结果:

标签:case,cout,money,void,C++,break,初识,double,权限
From: https://blog.csdn.net/qq_57470260/article/details/140147637

相关文章

  • 聊聊C++20的三向比较运算符 `<=>`
    C++20标准引入了许多新特性,其中之一是三向比较运算符<=>,也被称为太空船运算符。这个新运算符为C++程序员提供了一种全新的比较对象的方式,它能有效简化比较逻辑,避免编写多个比较运算符重载的情况。为什么需要三向比较运算符?在C++20之前,如果要完整地定义一个类型的比较行为......
  • C++课程设计--学生宿舍管理系统
    需求分析        系统主要使用类链表,将链表的知识得到充分的使用;还是用到了函数重载。 类定义    主要包括学生类、宿舍类、报修类以及访客类。由于博主时间问题并没有写到访客类的代码,但是思路是一样的。学生类    数据成员:学生学号、姓名、性......
  • 丝滑解决ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_
    基础环境:MacOSm1、python=3.9前情提要:在Anaconda终端运行代码的时候,显示报错:importError:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:version`GLIBCXX_3.4.29'notfound1问题分析:根据提示是/usr/lib/x86_64-linux-gnu/路径下的libstdc++.so.6缺少版本GLIBCXX_3.4.29解......
  • C++学习1 “&”符号的用法
    “单纯来源于CHATGPT”一在C++中,&符号具有多重用途,主要包括以下几种情况:1.地址运算符当&用于变量前面时,它作为一种一元运算符,用来获取该变量在内存中的地址。例如:inta=5;int*p=&a;//p存储a的内存地址这里&a表示变量a的地址。2.引用声明在类型声明......
  • C++11——新特性超详细总结
    目录一、C++11介绍二·、为什么要用C++11三、新特性总结1、类型推导(auto/decltype)2、序列for循环语句3、lamdba表达式4、构造函数:委托构造和继承构造5、容器(array/forward_list)6、垃圾回收机制7、正则表达式基础7.1、符号7.2、速记理解技巧7.3、检验数字的表达式......
  • 【C++】多态(定义、虚函数、重写、隐藏)
      ......
  • C/C++ sizeof 运算符注意事项
    sizeof 运算符在C/C++中用于获取变量或类型所占的内存大小(以字节为单位)。尽管 sizeof 是一个相对简单直接的运算符,但在使用时还是需要注意一些细节和特殊情况,以避免误解或错误。以下是一些使用 sizeof 运算符时需要注意的事项:数据类型大小:sizeof 返回的是变量或类型在......
  • Qt/C++编写地图应用/离线地图下载/路径规划/轨迹回放/海量点/坐标转换
    一、前言说明这个地图组件写了很多年了,最初设计的比较粗糙,最开始只是为了满足项目需要,并没有考虑太多拓展性,比如最初都是按照百度地图写死在代码中,经过这几年大量的现场实际应用,以及大量的用户提出的改进意见,逐渐萌生了彻底重新编写对应地图相关的代码,比如基类子类的设计,各种功能......
  • C++ STL 优先队列 (priority_queue)
    std::priority_queue<queue>优先队列  1、第一个元素始终为最大元素。  2、有着类似于堆的特性,它可以在其中随时插入元素。  3、支持下标访问(随机访问迭代器)优先队列内部的实现需要依赖基础容器,该容器应可通过随机访问迭代器访问,并需要支持以下操作empty()si......
  • 【C++ | 继承】|概念、方式、特性、作用域、6类默认函数
    继承1.继承的概念与定义2.继承的方式2.1继承基本特性2.2继承的作用域2.2.1隐藏赋值兼容派生类的创建和销毁构造函数拷贝构造赋值重载1.继承的概念与定义继承是面向对象编程中的一个重要概念。它的由来可以追溯到软件开发中的模块化设计和代码复用的需求。在软件......