储蓄综合平台——(取款,查询,存款,销户,开户)
2012-12-27 10:06
274 查看
/* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * 作 者: 袁静 * 完成日期:2012 年 12 月26日 * 版 本 号:v1.0 * * 输入描述:无 * 问题描述: * 算法设计:略 * 问题分析: * 程序输出: */ #include <iostream> #include <string.h> #include <stdio.h> #include <iomanip> using namespace std; //银行中最大的账户数量 #define MAXACCOUNTNUMBER 20000 //银行卡的开号初始值 #define INITNUMBER 10001 struct Account { long accNumber; //卡号 char accName[20]; //户主 char accPwd[10]; //密码 double balance; //余额 char flag[6]; //卡的状态 }; //银行中所有卡 Account array[MAXACCOUNTNUMBER]; //银行中银行卡数量 int size=0; //欢迎界面 void welcome(); //主界面 void mainFrame(); //生成银行中自增卡号 long autoCreament(); //开户 void openAccount(); //存款 void deposit(); void drawmoney(); void closeAccount(); void showbalance(); void printAccount(Account acc); //根据卡号查找卡在数组中的下标 int searchAccount(long accNumber); void tuichu(); int main() { char loginName[20]; char loginPwd[20]; int i; //欢迎界面 welcome(); for(i=0;i<3;i++) { cout<<"请输入用户名:"; cin>>loginName; cout<<"请输入密码:"; cin>>loginPwd; if(strcmp(loginName,"yuanjing")==0&&strcmp(loginPwd,"sunhonglei")==0) { mainFrame(); break; }else{ cout<<"用户名或密码输入错误"<<endl; } } return 0; } void welcome() { cout<<"+------------------------------------+"<<endl; cout<<" "<<endl; cout<<"------欢迎登录袁氏银行综合储蓄平台---|"<<endl; cout<<" "<<endl; cout<<"+------------------------------------+"<<endl; } void mainFrame() { int order; cout<<"|----------------------------|"<<endl; cout<<"|-------1.开户---------------|"<<endl; cout<<"|-------2.存款---------------|"<<endl; cout<<"|-------3.取款---------------|"<<endl; cout<<"|-------4.销户---------------|"<<endl; cout<<"|-------5.查询---------------|"<<endl; cout<<"|-------6.退出---------------|"<<endl; cout<<"|----------------------------|"<<endl; cout<<"请输入操作指令"<<endl; cin>>order; switch(order){ case 1: openAccount(); break; case 2: deposit(); break; case 3: drawmoney(); break; case 4: closeAccount(); break; case 5: showbalance(); break; case 6: exit(0); break ; default: break; } } void openAccount() { int i; Account Pwd1; cout<<"请输入户主:"; cin>>array[size].accName; for(i=0;i<3;i++) { cout<<"请输入密码:"; cin>>array[size].accPwd; cout<<"请再次输入密码:"; cin>>Pwd1.accPwd; if(strcmp(Pwd1.accPwd,array[size].accPwd)==0) { cout<<"请输入金额:"; cin>>array[size].balance; strcpy(array[size].flag,"正常"); //确定卡的状态 array[size].accNumber=autoCreament(); //写卡号 printAccount(array[size]); size++; cout<<"开户成功,按任意键返回"<<endl; fflush(stdin); getchar(); mainFrame(); }else{ if(i==2){ cout<<"密码重复太多次不同!!请重新选择所需业务:\n"; mainFrame(); }else{ cout<<"两次输入的密码不同!请重新确定密码\n"; } } } } long autoCreament() { if(size==0){ return INITNUMBER; }else{ return array[size-1].accNumber+1; } } //输出指定卡的信息 void printAccount(Account acc) { cout<<"|----------------------------------------|"<<endl; cout<<setiosflags(ios::left)<<" |"<<setw(8)<<"卡号"<<setw(8)<<"户主"<<setw(8)<<"密码"<<setw(8)<<"金额"<<setw(8)<<"状态"<<"|"<<endl; cout<<setiosflags(ios::left)<<" +----------------------------------------+"<<endl; cout<<setiosflags(ios::left)<<" |"<<setw(8)<<acc.accNumber<<setw(8)<<acc.accName<<setw(8)<<acc.accPwd<<setw(8)<<acc.balance<<setw(8)<<acc.flag<<"|"<<endl; cout<<"|----------------------------------------|"<<endl; } /*根据卡号查找卡的下标 * 若返回值>=0,卡号是正确 * 若返回值=-1,卡号有误 */ int searchAccount(long accNumber) { int i,pos=-1; for(i=0;i<size;i++){ if(array[i].accNumber==accNumber){ //找到了这张卡 pos=i; break; } } return pos; } void deposit() { long accNum;//存款的账号 double money;//存款的金额 int pos; cout<<"请输入存款的账号:"<<endl; cin>>accNum; if(accNum<0) { cout<<"卡号不能为负!!请认真核实!!!\n"; deposit(); }else{ pos=searchAccount(accNum); if(pos==-1){ //卡号有误 cout<<"卡号不存在,请重新输入卡号"<<endl; //... deposit(); }else{ cout<<"请输入存款金额:"<<endl; cin>>money; //展示下存款前卡的信息 cout<<"存款前卡的信息:"<<endl; printAccount(array[pos]); //找到了该卡号所对应的卡 array[pos].balance+=money; //展示存款后卡的信息 cout<<"存款后卡的信息:"<<endl; printAccount(array[pos]); cout<<"存款成功,按任意键返回"<<endl; fflush(stdin); getchar(); mainFrame(); } } } void drawmoney() { long accNum; double money; int pos,i; Account Pwd; cout<<"请输入卡号:"; cin>>accNum ; if(accNum<0) { cout<<"卡号不能为负!!请认真核实!!!\n"; drawmoney(); }else{ pos=searchAccount(accNum); if(pos==-1){ cout<<"卡号不存在!请核!!!\n"; drawmoney(); }else{ for(i=0;i<3;i++) { cout<<"请输入密码:"; cin>>Pwd.accPwd; if(strcmp(array[pos].accPwd,Pwd.accPwd)==0) { cout<<"请输入取款金额:"; cin>>money; if(money<=array[pos].balance) { array[pos].balance-=money; cout<<"取款后的卡的信息:\n"; printAccount(array[pos]); }else{ cout<<"您的余额不足!请查询您的余额后再取款!!!\n"; mainFrame(); } fflush(stdin); getchar(); mainFrame(); }else{ if(i==2){ cout<<"您输入已超过三次!请退出系统......\n"; exit(0); }else{ cout<<"密码错误!请核!!!\n"; } } } } } } //销户 //销户 void closeAccount() { long accNum; double money; int pos,i; Account Pwd; cout<<"请输入卡号:"; cin>>accNum ; pos=searchAccount(accNum); if(pos==-1){ cout<<"卡号不存在!请核!!!\n"; closeAccount(); }else{ for(i=0;i<3;i++) { cout<<"请输入密码:"; cin>>Pwd.accPwd; if(strcmp(Pwd.accPwd,array[pos].accPwd)==0) { cout<<endl<<"销户前卡的信息:"<<endl; printAccount(array[pos]); cout<<"您将进行销户!!!!!!"<<endl; getchar(); array[pos].balance=0; array[pos].accNumber=-1; strcpy(array[pos].flag,"不存在"); strcpy(array[pos].accName,"不存在"); strcpy(array[pos].accPwd,"不存在"); cout<<endl<<"销户后卡的信息:"<<endl; printAccount(array[pos]); cout<<endl<<"销户成功,按任意键返回"<<endl; fflush(stdin); getchar(); mainFrame(); } else { cout<<endl<<"密码错误!!!不要妄想销别人的户!!!!!"<<endl; cout<<endl<<"按任意键返回"<<endl; fflush(stdin); getchar(); mainFrame(); } } } } void showbalance() { long accNum; int pos,i; Account Pwd; cout<<"请输入卡号:"; cin>>accNum ; if(accNum<0) { cout<<"卡号不能为负!!请认真核实!!!\n"; showbalance(); }else{ pos=searchAccount(accNum); if(pos==-1) { cout<<"卡号不存在!请核!!!\n"; showbalance(); } else { for(i=0;i<3;i++) { cout<<"请输入密码:"; cin>>Pwd.accPwd; if(strcmp(array[pos].accPwd,Pwd.accPwd)==0) { cout<<"您的卡的信息为:\n"; printAccount(array[pos]); cout<<"请按任意键返回!\n"; fflush(stdin); getchar(); mainFrame(); } else { if(i==2) { cout<<"您输入已超过三次!请退出系统......\n"; exit(0); } else { cout<<"密码错误!请核!!!\n"; } } } } } } void tuichu() { cout<<'\n'; cout<<"谢谢您对本银行的支持,再见!"; cout<<'\n'; exit(0); }
相关文章推荐
- ATM的功能的模拟: 开户 销户 查询余额 查询最后5笔明细 存款 取款 转帐 退出
- 技术支持课--项目实训--储蓄综合业务平台(第一期)--开户功能实现--c语言编写
- 通用权限管理平台--综合查询插件
- 储蓄综合业务平台(代码)
- 2.为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员输入系统,如果是存款,系统纪录存款人姓名、住址、存款类型、存款日期、利率等信息,并打印出存款单给储户;如果是取款,系统计算利息并打印利息清单给储户。
- 储蓄综合业务平台 (输出图)
- .NET-简单的银行系统,完成查询余额,转账,存款,取款
- 银行综合业务储蓄平台管理系统
- 2.为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。 请写出问题定义并分析此系统的可行性。
- 2011年下半年项目“银行储蓄综合业务平台”C语言版
- 2-2 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。请写出问题定义并分析此系统的可行性。
- 2012年上半年项目实训“银行储蓄综合业务平台”C++版
- 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。 写出问题定义并分析系统的可行性。
- 大一下学期项目设计—综合储蓄平台—Record类
- 技术支持课--项目实训--储蓄综合业务平台--完成--C语言编写
- 大一下学期项目设计—综合储蓄平台—Node类
- 编写代码:ATM的登陆界面(用户验证、主菜单的选择) 查询-- 存款-- 取款-- 退出
- 实现一个简单的银行储蓄系统,承担活期用户的存款和取款业务 (只是初步的写出)
- 打造综合娱乐性平台,TCL爱奇艺电视体验记
- javascript事件查询综合