题目描述:

设计一个银行储蓄管理系统,以菜单方式工作。

功能需求:

(1)设计一个账户类Account,包括户名、密码、电话、余额等信息。

(2)为新用户开户。

(3)为老用户销户、挂失。

(4)可以办理存取款操作。

(5)可以查询每笔历史交易记录。

程序设计:

#include<iostream>>
#include <string>
using namespace std;
class Bank;
void menu(Bank &);class Account {private:string name; //户名string ID;  //账号string mima;  //密码double yue;  //余额bool isLost=false;//挂失功能public:string record="";Account(string i,string n,double y,string m) {ID =i;name =n;yue =y;mima =m;}string getID() {return ID;}string getMi() {return mima;} //挂失void setLost(bool state) {isLost=state;}bool getLost() {return isLost;}void showInfo() {cout << "储户账号:" << ID << endl;cout << "储户姓名:" << name << endl;cout << "储户余额" << yue << endl;cout<<"历史交易记录:"<<endl;cout<<record;}void saving(double a) {yue =yue +a;record=record+"save:\n";}bool qukuan(double a) {if(yue <a) {cout<<"余额不足"<<endl;return 0;} else {yue -= a;cout << "取款成功" << endl;record=record+"get:\n";return 1;}}};
class Bank {private:int accountNumber;Account *account[100];  //用户个数上限public:Bank() {accountNumber =0;}void createaccount() {    //实现开户功能string ID,name,mima;double yue;char choice;
here:cout<<"请输入您的账号"<<endl;cin>>ID;cout<<endl;//检查账户是否已存在for(int i = 0; i<accountNumber; i++) {if(account[i]->getID()==ID) {cout<<"该账户已存在,请重新输入!"<<endl;goto here;}}cout<<"请输入您的用户名"<<endl;cin>>name;cout<<"请输入您的密码"<<endl;cin>>mima;cout<<"您是否要预存款?(Y/N)"<<endl;cin>>choice;if(choice=='Y'||choice=='y') {cout<<"- 存入金额 : ";cin>>yue;} elseyue=0;Account *a=new Account(ID,name,yue,mima);  //传送用户数据account[accountNumber++]=a;cout <<"当前已有储户"<<accountNumber<< endl;cout<<"创建成功"<<endl;}void deleteaccount() { //实现销户功能int i;string id,m;cout<<"请输入您的账号\n";cin>>id;cout<<"请输入您的密码\n";cin>>m;cout<<"请问您是否确认销户?(Y/N)";char thisChoice;cin>> thisChoice;if(thisChoice!='Y' && thisChoice!='y')return;cout <<"您要注销的账户为:"<<id<< endl;for(i = 0; i<accountNumber; i++) {//删除用户if(account[i]->getID()==id&&account[i]->getMi()==m) {Account * temp= account[i];account[i]=account[accountNumber-1];account[accountNumber-1]=temp;delete account[--accountNumber];cout<<"删除成功"<<endl;return;}}cout<<"不存在该用户或密码错误!"<<endl;}void guashi() {//实现挂失功能int i;string id,m;cout<<"请输入您的账号\n";cin>>id;cout<<"请输入您的密码\n";cin>>m;cout<<"请问您是否确认挂失?(Y/N)";char thisChoice;cin>> thisChoice;if(thisChoice!='Y' && thisChoice!='y')return;cout <<"您要挂失的账户为:"<<id<< endl;for(i = 0; i<accountNumber; i++) {//删除用户if(account[i]->getID()==id&&account[i]->getMi()==m) {account[i]->setLost(true);cout<<"挂失成功"<<endl;return;}}cout<<"不存在该用户或密码错误!"<<endl;}void cunkuan() { //实现存款功能double money;double yue;string id,m;int i;cout<<"请输入您要存入的账户";cin>>id;cout<<"请输入您的密码\n";cin>>m;cout<<"请输入您要存入的金额";cin>>money;for(i =0; i<accountNumber; i++) {if(account[i]->getID()==id&&account[i]->getMi()==m) {//调用存款函数存款account[i]->saving(money);cout<<"存款成功";cout<<endl;account[i]->showInfo();return;}}cout << "存款失败" << endl;}void quqian() { //实现取款功能int i;string id,m;double money;cout<<"请输入您的账户"<<endl;cin>>id;cout<<"请输入您的密码"<<endl;cin>>m;cout<<"请输入取款金额"<<endl;cin>>money;for(i =0; i<accountNumber; i++) {//如果挂失了,是无法取款的if(account[i]->getID() ==id&&account[i]->getMi()==m&&!account[i]->getLost()) {bool rs=account[i]->qukuan(money);//如果取款成功if(rs) {account[i]->showInfo();return;} else {cout<<"账户余额不足"<<endl;return;}}}cout<<"失败"<<endl;}void check() { //查询 int i;string id,m;double money;cout<<"请输入您的账户"<<endl;cin>>id;cout<<"请输入您的密码"<<endl;cin>>m;for(i=0; i<accountNumber; i++) {if(account[i]->getID()==id&&account[i]->getMi()==m) {account[i]->showInfo();return;}}if(i ==accountNumber) {cout<<"没找到"<<endl;}}};
void menu() {int m;Bank b;while(1) {system("cls");cout<<"----------欢迎来到此银行-----------"<<endl;cout<<"----------请选择您的业务-------------"<<endl;cout<<"-----------1、开户-------------------"<<endl;cout<<"-----------2、销户-------------------"<<endl;cout<<"-----------3、存款-------------------"<<endl;cout<<"-----------4、取钱-------------------"<<endl;cout<<"-----------5、查询-------------------"<<endl;cout<<"-----------6、挂失-------------------"<<endl;cout<<"-----------7、退出-------------------"<<endl;cin>>m;switch(m) {case 1:b.createaccount();system("pause");break;case 2:b.deleteaccount();system("pause");break;case 3:b.cunkuan();system("pause");break;case 4:b.quqian();system("pause");break;case 5:b.check();system("pause");break;case 6:b.guashi(); return;case 7:return;   default:cout << "输入有误,请重新输入" << endl;break;}}
}int main() {menu();return 0;
}

程序运行演示:

C++面向对象程序设计:银行储蓄管理系统相关推荐

  1. 银行储蓄管理系统 课程设计

    一.问题描述 随着经济的加速发展,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行账户信息管理,提高银行的工作效率和业务竟争能 ...

  2. C#——Windows银行储蓄管理系统

    在银行储蓄管理系统中,普通帐户(Account)和VIP账号(VipAccount)都包含账户(CreditNo),余额(Balance)等基本数据信息,都提供创建帐户,存款(Withdtaw),取款 ...

  3. QT银行储蓄管理系统

    QT银行储蓄管理系统 银行储蓄管理系统 该系统需创建和管理以下信息: 1.储户信息:帐号.姓名.密码.地址.储种(定 期 1 年.3 年.5 年).利息(1 年到期利率 1.98%:3 年到期利率 2 ...

  4. 银行账户管理系统c语言链表,课程设计银行储蓄管理系统Word版

    <课程设计银行储蓄管理系统Word版>由会员分享,可在线阅读,更多相关<课程设计银行储蓄管理系统Word版(22页珍藏版)>请在人人文库网上搜索. 1.传播优秀Word版文档 ...

  5. 银行储蓄管理系统的设计与实现

    摘要 随着金融业的发展,手工操作和旧的管理模式已经严重制约了质量和效率的问题,用计算机管理来代替手工管理是非常必要的.本文主要介绍了银行管理系统的方案论证.结构特性设计及行为特性设计的实现过程,详细论 ...

  6. 面向对象程序设计——银行ATM机系统

    文章目录 针对于面向对象设计--做一个简单的银行ATM机系统 ATM机需求分析 用户类 ATM机类 银行类 注册操作的大概流程 登录操作的大概流程 用户类代码 ATM机类代码 bank类代码(主类) ...

  7. 基于java+springmvc+mysql的银行储蓄管理系统

    系统介绍: 系统包括用户登录注册,存款,取款,查询,交易记录,个人信息,修改信息,注销,挂失,退出登录等功能 功能演示:

  8. 《数据结构课程设计》 活期储蓄管理系统 实验报告

    <数据结构课程设计> 题目1:活期储蓄管理系统   学生姓名 胡泳行 所在专业 信息管理与信息系统专业 所在班级 信管1134班 任课老师 易学明 实习时间 2015年 1月 4 日 指导 ...

  9. 《面向对象程序设计》

    <面向对象程序设计> 课程大作业 目  录 ( 2021 / 2022学年 第二学期). 1 第一章  绪论. 1 1.1面向对象程序特点与目标. 1 1.2面向对象程序知识架构. 1 第 ...

  10. 44 面向对象程序设计原则

    问题: 面向对象程序设计原则有哪些? 答案: (1)单一职责原则(Single Responsibility Principle):如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责.而 ...

最新文章

  1. XMLHttpRequest Object
  2. 网站无法响应HTTP/1.1
  3. Windows内核实验004 API调用
  4. java时间戳动态,是否可以根据窗口元素的时间戳动态生成BigQuery表名?
  5. leetcode-581-Shortest Unsorted Continuous Subarray
  6. 大学计算机科学不会编码,华中科技大学人员编号编码管理办法
  7. HappyLeetcode64:Sqrt(x)
  8. (案例篇)日志易:IT运维分析及海量日志搜索的实践之路(下)
  9. 图(深度优先遍历、广度优先遍历)
  10. Excel表格怎么随机打乱顺序
  11. java 阴阳历,java阳历转换成阴历
  12. 负载均衡器之F5和Nginx
  13. DBCO-PALA-g-PEG DBCO-聚硫辛酸-聚乙二醇
  14. C#版 - Leetcode 306. 累加数 - 题解
  15. 【夜读】让自己更幸福的8件小事
  16. 源码学习 - 【FreeRTOS】PRIVILEGED_FUNCTION 含义理解
  17. Python核心编程(一)
  18. Windows更新网站被黑还是被ARP病毒捉弄了?Virus.Win32.AutoRun.am
  19. 技术评审中常见的一些问题
  20. RNN实践之唐诗创作

热门文章

  1. 厦门大学和福州大学计算机专业哪个好,福建最好的5所大学,除了厦门大学,你还知道哪所大学?...
  2. 深恶痛绝的No mapping found for HTTP request with URI
  3. Rivaple 江枫 MC服务器文档(创新生存部分)
  4. Python OS模块操作文件目录
  5. 月下夜想曲200.6(攻略3)
  6. PDF文件怎么加密?这两种加密方法很靠谱
  7. 09 conventional exercise
  8. LQ0264 鲁卡斯队列【精度计算】
  9. 21天刷题计划之2.1—禁忌雷炎(Java语言描述)
  10. DiyTomcat系列一、序言及项目架构