银行管理系统源代码文档
- 格式:doc
- 大小:38.00 KB
- 文档页数:9
#include<iostream>#include<fstream>#include<string>using namespace std;class user; //声明用户类class yinhang{ //银行类public:void set_account();//开户函数void del_account();//销户函数void transfer_accounts(int a);//转账函数void enter();//登录函数void menu();//菜单函数void exit_yinhang();//退出函数void save();void load();protected:static int amount;//静态成员,用于统计银行账户数user *account[100];//账户数};int yinhang::amount=0;//静态成员赋值,初始为0class user:public yinhang{ //用户类private:string id;//账号string mm;//密码string name;//姓名double balance;//余额string identity_card;//身份证string unit;//单位string phone;//电话号码string address;//地址public:user()//不带参数的构造函数{id='0';mm='0';name='0';balance=0;identity_card='0';unit='0';phone='0';address='0';}user(string id1,string mm1,string name1,double balance1,string identity_card1,string unit1,string phone1,string address1) //带参数的构造函数id=id1;mm=mm1;name=name1;balance=balance1;identity_card=identity_card1;unit=unit1;phone=phone1;address=address1;}friend class yinhang;//声明yinhang类是user的友元类void save_money();//存钱函数void fetch_money();//取钱函数void show()//显示函数{system("cls");cout<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl<<endl<<en dl;cout<<" 姓名:"<<name<<endl;cout<<" 账号:"<<id<<endl;cout<<" 余额:"<<balance<<endl;cout<<" 身份证:"<<identity_card<<endl;cout<<" 单位:"<<unit<<endl;cout<<" 电话号码:"<<phone<<endl;cout<<" 地址:"<<address<<endl<<endl<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;}string get_id()//取得账号{return id;}string get_mm()// 取得密码{return mm;}int get_balance()//取得余额{return balance;}void add_money(double x)//通过公有成员函数访问私有成员{balance=x+balance;void dec_money(double x){balance=balance-x;}};void yinhang::save(){ofstream o("g:\\C++\\祁鹏涛\\银行账户信息.txt",ios::out);int n=0;for(n=0;n<amount;n++){o<<account[n]->id<<endl;//写入账号o<<account[n]->mm<<endl;o<<account[n]->name<<endl;o<<account[n]->balance<<endl;o<<account[n]->identity_card<<endl;o<<account[n]->unit<<endl;o<<account[n]->phone<<endl;o<<account[n]->address<<endl;}o.close();}void yinhang::load(){ifstream i("g:\\c++\\祁鹏涛\\银行账户信息.txt",ios::in);int n;for(n=0;n<amount;n++){i>>account[n]->id;//读取账号i>>account[n]->mm;i>>account[n]->name;i>>account[n]->balance;i>>account[n]->identity_card;i>>account[n]->unit;i>>account[n]->phone;i>>account[n]->address;}i.close();}void yinhang::set_account() //开户函数的定义{string id1;string mm1;string name1;double balance1;string identity_card1;string unit1;string phone1;string address1;cout<<"请输入开户人账号:";cin>>id1;int m=0;for(int i=0;i<amount;i++){if(id1==account[i]->get_id()){m=1;}}if(m){cout<<"本账号已经存在!"<<endl;return;}cout<<"请输入密码:";cin>>mm1;cout<<"请输入姓名:";cin>>name1;cout<<"请输入存入金额:";cin>>balance1;while(balance1<0){cout<<"请输入正确的数字!"<<endl;cout<<"请重新输入:";cin>>balance1;}cout<<"请输入开户人身份证:";cin>>identity_card1;cout<<"请输入工作单位:";cin>>unit1;cout<<"请输入电话号码:";cin>>phone1;cout<<"请输入地址:";cin>>address1;cout<<"开户成功!"<<endl;user *u=new user(id1,mm1,name1,balance1,identity_card1,unit1,phone1,address1); account[amount]=u;amount++;save();}void yinhang::del_account() //销户函数的定义{string id1;int i=0;int m=1;cout<<"请输入需要注销的银行卡号:";cin>>id1;while((i<amount)&&(m)) //从0开始进行依次检索,判断id1与其中的一个账号是否相等{if(id1==account[i]->get_id())m=0;elsei++;}if(m){cout<<" 该帐号不存在!"<<endl;return;}for(int j=i;j<amount;j++){account[j]=account[j+1];}account[amount-1]=NULL;amount=amount-1;cout<<"你的银行账户已经注销成功!"<<endl;save();}void yinhang::transfer_accounts(int x) //转账函数的定义{string id1;cout<<"请输入帐号:";cin>>id1;int m=1;int i=0;while((i<amount)&&(m)){if(id1==account[i]->get_id())m=0;elsei++;}if(m){cout<<"帐号不存在!"<<endl;return;}double b;cout<<"请输入你要转帐的金额:";cin>>b;while(b<=0){cout<<"请输入正确的数字!"<<endl;cout<<"请输入:";cin>>b;}if(account[x]->get_balance()<b)cout<<"对不起,金额不够!!"<<endl;else{account[x]->dec_money(b);account[i]->add_money(b);cout<<"转账成功!"<<endl;}return;}void yinhang::enter() //登录函数{string id1;cout<<"请输入银行账号:";cin>>id1;int m=1;int i=0;while((i<amount)&&(m)){if(id1==account[i]->get_id())m=0;elsei++;}if(m){cout<<"帐号不存在!"<<endl;return;cout<<"请输入密码:";string mm1;cin>>mm1;if(mm1!=account[i]->get_mm()) return;do{cout<<"登录成功,请选择下列操作:"<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl<<endl<<endl;cout<<" 1.查看账户信息"<<endl<<endl;cout<<" 2.取款"<<endl<<endl;cout<<" 3.存款"<<endl<<endl;cout<<" 4.转账"<<endl<<endl;cout<<" 5.退出本次登录"<<endl<<endl<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;int n;cout<<"请选择:";cin>>n;system("cls");switch(n){case 1: account[i]->show();system("pause");break;case 2: account[i]->fetch_money();save();system("pause");break;case 3:account[i]->save_money();save();system("pause");break;case 4:transfer_accounts(i);save();system("pause");break;case 5:return;}}while(1);}void yinhang::exit_yinhang() //退出系统{cout<<"欢迎下次光临!"<<endl;exit(0);}void user::save_money() //存款函数{double m;cout<<"请输入存款金额:";cin>>m;while(m<=0){cout<<"请输入正确的数字!"<<endl;cin>>m;balance=balance+m;cout<<"存款成功!"<<endl;}void user::fetch_money() //取款函数{double m;cout<<"请输入取款金额:"<<endl ;cin>>m;while(m<=0){cout<<"请输入正确的数字!"<<endl;cin>>m;}if(balance<m)cout<<"对不起,你的余额已不足!"<<endl;else{balance=balance-m;cout<<"取款成功!"<<endl;}}void yinhang::menu(){do{load();cout<<endl;cout<<" 欢迎光临"<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl<<endl;cout<<" 1.开户"<<endl;cout<<" 2.登录"<<endl;cout<<" 3.注销"<<endl;cout<<" 4.退出"<<endl<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;int n;cout<<"请选择:";cin>>n;system("cls");switch(n){case 1:set_account();system("pause");//开户break;case 2:enter();system("pause");//登录break;case 3:del_account();system("pause");//注销break;case 4:exit_yinhang();system("pause");//退出break;}}while(1);}void main(){yinhang yh;yh.menu();}。
银行管理系统c语言程序设计代码以下是一个简单的银行管理系统的C语言程序设计代码示例:```c#include <stdio.h>#include <stdlib.h>struct BankAccount {int accountNumber;char accountHolder[50];float balance;};void createAccount(struct BankAccount *account) {printf("请输入账户号码: ");scanf("%d", &(account->accountNumber));printf("请输入账户持有人姓名: ");scanf("%s", account->accountHolder);printf("请输入账户余额: ");scanf("%f", &(account->balance));printf("账户创建成功!\n");}void deposit(struct BankAccount *account) {float amount;printf("请输入存款金额: ");scanf("%f", &amount);account->balance += amount;printf("存款成功!\n");}void withdraw(struct BankAccount *account) {float amount;printf("请输入取款金额: ");scanf("%f", &amount);if (amount > account->balance) {printf("余额不足,取款失败!\n");} else {account->balance -= amount;printf("取款成功!\n");}}void displayAccount(struct BankAccount *account) {printf("账户号码: %d\n", account->accountNumber);printf("账户持有人姓名: %s\n", account->accountHolder); printf("账户余额: %.2f\n", account->balance);}int main() {struct BankAccount account;int choice;while (1) {printf("\n银行管理系统\n");printf("1. 创建账户\n");printf("2. 存款\n");printf("3. 取款\n");printf("4. 显示账户信息\n");printf("5. 退出\n");printf("请选择操作: ");scanf("%d", &choice);switch (choice) {case 1:createAccount(&account); break;case 2:deposit(&account);break;case 3:withdraw(&account);break;case 4:displayAccount(&account);break;case 5:printf("感谢使用银行管理系统,再见!\n");exit(0);default:printf("无效的选择,请重新输入。
#include<iostream>#include<windows.h>#include<string>#include<time.h>#include<stdlib.h>using namespace std;/******************窗口结构体********************/struct Windows{int deposit; /****************存款*****************/int withdrawals; /****************取款*****************/int reportloss; /****************挂失*****************/int borrowed; /****************还贷*****************/int anum[1000]; /**************保存客户***************/};/******************时间结构体********************/struct Time{int hour;int minute;int second;};/******************票号结构体********************/struct Ticket{Time arrivaltime; /****************到达时间*****************/ int number; /****************编号*****************/ int business; /****************办理业务*****************/ };const int QueueSize=1000;class BankBusinses{public:BankBusinses();void EnQueue();int GetQueue();void Personnel_Func(Ticket t2[],int n,int s); /***************手动业务生成函数***************/int Ticket_Produce_Function(Ticket t[],int n); /***************打号函数***************/int Personnel_Distribution_Func(int n,int flag); /***************业务办理函数***************/int Business_statistic_Func(Windows win[],int m); /***************业务统计函数***************/void Display_Business_Func(Windows win[],int m,int n,int coordinate); /***************业务显示函数***************/void Make_waittime_Func(int n); /***************等待时间函数***************/int Menu(); /***************菜单函数***************/Windows win[4]; /***************窗口***************/Ticket t[QueueSize]; /***************票***************/Ticket t2[QueueSize];private:string name; /***************业务名称***************/int businesstime; /***************办理业务所需时间***************/int alltime; /***************办理所有业务的总时间***************/int waittime; /***************等待时间***************/double averagetime; /***************平均等待时间***************/long *a,*b,*v;int data[QueueSize];Ticket data2[QueueSize];int front,rear;};#include "BankBusinses.h"BankBusinses::BankBusinses(){front=rear=QueueSize-1;}/*******************打号函数********************/int BankBusinses::Ticket_Produce_Function(Ticket t[],int n){int temp,sign,i,j=0;a=new long[n];b=new long[n];v=new long[n];/*******************对时间排序********************/for(i = 0;i < n;i++)for(j = i+1;j < n;j++){if(t[i].arrivaltime.hour>t[j].arrivaltime.hour){temp=t[i].arrivaltime.hour;t[i].arrivaltime.hour=t[j].arrivaltime.hour;t[j].arrivaltime.hour=temp;temp=t[i].arrivaltime.minute;t[i].arrivaltime.minute=t[j].arrivaltime.minute;t[j].arrivaltime.minute=temp;temp=t[i].arrivaltime.second;t[i].arrivaltime.second=t[j].arrivaltime.second;t[j].arrivaltime.second=temp;}}for(i = 0;i < n;i++)for(j = i+1;j < n;j++){if(t[i].arrivaltime.hour==t[j].arrivaltime.hour && t[i].arrivaltime.minute>t[j].arrivaltime.minute){temp=t[i].arrivaltime.minute;t[i].arrivaltime.minute=t[j].arrivaltime.minute;t[j].arrivaltime.minute=temp;temp=t[i].arrivaltime.second;t[i].arrivaltime.second=t[j].arrivaltime.second;t[j].arrivaltime.second=temp;}else continue;}for(i = 0;i < n;i++)for(j = i+1;j < n;j++){if(t[i].arrivaltime.hour==t[j].arrivaltime.hour && t[i].arrivaltime.minute==t[j].arrivaltime.minute && t[i].arrivaltime.second>t[j].arrivaltime.second){temp=t[i].arrivaltime.second;t[i].arrivaltime.second=t[j].arrivaltime.second;t[j].arrivaltime.second=temp;}else continue;}for(i = 0;i < n;i++){a[i]=v[i]=t[i].arrivaltime.hour*3600+t[i].arrivaltime.minute*60+t[i].arrivaltime.second;}srand(time(0));for(i = 0;i < n;i++){t[i].number = i; /************编号产生***********/rear=(rear+1)%QueueSize;data[rear]=t[i].number;sign = (rand()%(5-1))+1;t[i].business = sign; /************业务产生***********/switch(t[i].business){case 1:name = "取款";businesstime = 1;break;case 2:name = "存款";businesstime = 2;break;case 3:name = "挂失";businesstime = 3;break;case 4:name = "还贷";businesstime = 4;break;}b[i]=t[i].business*60;}return n;}/*******************手动业务生成客户编号函数********************/void BankBusinses::EnQueue(){int n,m;srand(time(0));while(front!=rear){n=(rand()%(200-1)+1);rear=(rear+1)%QueueSize;data2[rear].number=n;m=(rand()%(5-1))+1;data2[rear].business = m; /************业务产生***********/ }}int BankBusinses::GetQueue(){int i=0;while(front!=rear){front=(front+1)%QueueSize;switch(t[front].business){case 1:name = "取款";businesstime = 1;break;case 2:name = "存款";businesstime = 2;break;case 3:name = "挂失";businesstime = 3;break;case 4:name = "还贷";businesstime = 4;break;}}return data[front];}/*******************处理客户业务函数********************/int BankBusinses::Personnel_Distribution_Func(int n,int flag){int i,k=-1,j=0,m=0,g=0;int transh,transm,transs,transb;long first=0,end=0,next=0,nend=0;long c[4]={-4,-3,-2,-1},temp; //c[4]作用是对应储存四个窗口业务办理结束的时间,在循环过程中后一个业务办理结束时间将修改当前结束时间Ticket_Produce_Function(t,n); //调用时间生成函数for(i=0;i<4;i++){win[i].withdrawals=0;win[i].deposit=0;win[i].reportloss=0;win[i].borrowed=0;}c[0]=a[0]+b[0]; //第一个窗口结束时间初值为队列中第一个客户办理业务的结束时间waittime=b[0]; //第一个客户的逗留时间transh=a[0]/3600;transm=(a[0]%3600)/60;transs=(a[0]%3600)%60;transb=b[0]/60;switch(transb) //窗口各种业务累计{case 1:win[0].withdrawals++;businesstime = 1;break;case 2:win[0].deposit++;businesstime = 2;break;case 3:win[0].reportloss++;businesstime = 3;break;case 4:win[0].borrowed++;businesstime = 4;break;}v[0]=0;for(i=0;i<n;i++){int *d;d=new int[4]; //动态申请长度为四的一维数组,用于存放被修改结束时间的窗口的序号flag=i;first=a[i]; //开始时间end=a[i]+b[i]; //结束时间nend=a[i+1]+b[i+1]; //下一个结束时间next=a[i+1]; //下一个开始时间for(j=0;j<4;j++) //判断四个窗口中的结束时间是否大于下一个客户办理业务的开始时间{if(c[j]<=next){d[j]=j; //如果小于则数组的d[j]中保存该窗口的序号}else{d[j]=-1; //否则该地址存为-1}}for(j=0;j<4;j++) //判断窗口序号保存数组d[j]中是否有被保存的窗口序号{if(d[j] >= 0){k=j; //若有则结束,55且记住该窗口序号break;}else{k=-1;}}if(k>=0){c[k]=nend; //如果有窗口序号被修改,则继续修改当前结束时间为下一个客户的业务办理结束时间transh=next/3600;transm=(next%3600)/60;transs=(next%3600)%60;transb=b[i+1]/60;waittime +=b[i+1];v[i+1]=k;switch(transb) //窗口各种业务累计{case 1:win[k].withdrawals++;businesstime = 1;break;case 2:win[k].deposit++;businesstime = 2;break;case 3:win[k].reportloss++;businesstime = 3;break;case 4:win[k].borrowed++;businesstime = 4;break;}}else{ //如果当前窗口序号全未被修改,即当前所有窗口均处于忙碌状态,下一个客户需等待temp=c[0];k=0;for(j=1;j<4;j++) //找出当前所有正在办理业务的窗口中,结束时间最早的窗口{if(c[j]<temp){temp=c[j];k=j;}}if(temp<3600*17){c[k]=c[k]+b[i+1]; //修改该窗口的结束时间,即下一个在等待的客户到该窗口办理业务transh=next/3600;transm=(next%3600)/60;transs=(next%3600)%60;transb=b[i+1]/60;waittime +=temp-next+b[i+1];v[i+1]=k;switch(transb) //窗口各种业务累计{case 1:win[k].withdrawals++;businesstime = 1;break;case 2:win[k].deposit++;businesstime = 2;break;case 3:win[k].reportloss++;businesstime = 3;break;case 4:win[k].borrowed++;businesstime = 4;break;}}else break;}delete []d; //每次循环结束时撤销窗口序号保存数组d[j];}cout<<endl;return flag;}/*******************窗口业务统计函数********************/int BankBusinses::Business_statistic_Func(Windows win[],int m){int i,n=0,allnum=0;for(i=0;i<4;i++){allnum=win[i].withdrawals+win[i].deposit+win[i].reportloss+win[i].borrowed;cout <<"\t\t\t\t 窗口"<<i+1;cout <<endl;cout <<"取款人数"<<"\t存款人数"<<"\t挂失人数"<<"\t还贷人数"<<"\t办理业务总数";cout <<endl;cout<<win[i].withdrawals<<"\t\t"<<win[i].deposit<<"\t\t"<<win[i].reportloss<<"\t\t"<<win[i].borrowe d<<"\t\t"<<allnum;cout <<endl;}cout<<endl;return allnum;}/*******************窗口业务显示函数********************/void BankBusinses::Display_Business_Func(Windows win[],int m,int n,int coordinate){int j,flag=1;cout<<"\t\t\t\t窗口"<<coordinate+1<<"办理: ";cout<<endl;for(j=0;j<n;j++){if(v[j]==coordinate){cout<<j+1<<"号客户"<<"\t";flag=0;}}if(flag==1){cout<<"\t\t该窗口当天没有办理业务!\n";}cout<<endl;}/*******************等待时间函数********************/void BankBusinses::Make_waittime_Func(int n){int i,flag=0;long waittime2=0;double aver=0;flag=Personnel_Distribution_Func(n,flag);cout<<"\t\t总人数: "<<n;cout<<endl;cout<<"\t\t办理业务人数: "<<flag+1;cout<<endl;cout<<"\t\t未办理完业务人数: "<<n-flag-1;cout<<endl;if((n-flag-1)!=0){cout<<"\t\t未办理完业务的编号: "<<flag+2<<" →"<<n;}cout<<endl;aver=(waittime/(flag+1))/60.0;cout<<"\t\t已经办理业务客户平均逗留时间: "<<aver<<" 分钟";cout<<endl;for(i=flag+2;i<n;i++){waittime2 +=3600*17-a[i];}averagetime=((waittime+waittime2)/n)/60.0;cout<<"\t\t当日所有客户平均逗留时间: "<<averagetime<<" 分钟";cout<<endl;}/***************手动业务生成函数***************/void BankBusinses::Personnel_Func(Ticket t2[],int n,int s){int i=0,m=0;if(s){srand(time(0));t2[i].arrivaltime.hour = (rand()%(17-9)+9);t2[i].arrivaltime.minute = rand()%60;t2[i].arrivaltime.second = rand()%60;n=(rand()%(200-1)+1);t2[i].number=n;m=(rand()%(5-1))+1;t2[i].business = m; /************业务产生***********/switch(m){case 1:name = "取款";businesstime = 1;break;case 2:name = "存款";businesstime = 2;break;case 3:name = "挂失";businesstime = 3;break;case 4:name = "还贷";businesstime = 4;break;}system("cls"); //************清屏**********cout << "\t\t┌───────────────┐\n";cout << "\t\t│"<<"\t 中国银行"<<"\t\t│\n";cout << "\t\t││\n";cout << "\t\t│"<<"编号"<<"\t\t"<<t2[i].number<<"\t\t│\n";cout << "\t\t│"<<"业务"<<"\t\t"<<name<<"\t\t│\n";cout << "\t\t│"<<"到达时间: 2012/3/16"<<" "<<t2[i].arrivaltime.hour <<":" <<t2[i].arrivaltime.minute <<":" <<t2[i].arrivaltime.second<<"\t│\n";cout << "\t\t││\n";cout << "\t\t└───────────────┘\n";}}int BankBusinses:: Menu(){int m;while(m < 0 || m > 8){system("cls");//************清屏**********cout << "\t\t┌───────────────┐\n";cout << "\t\t│────银行业务系统─────│\n";cout << "\t\t└───────────────┘\n";cout << "\t\t┌───────────────┐\n";cout << "\t\t│1. 自动生成业务信息│\n";cout << "\t\t│2. 显示客户逗留时间│\n";cout << "\t\t│3. 显示各窗口业务统计信息│\n";cout << "\t\t│4. 显示窗口①业务办理信息│\n";cout << "\t\t│5. 显示窗口②业务办理信息│\n";cout << "\t\t│6. 显示窗口③业务办理信息│\n";cout << "\t\t│7. 显示窗口④业务办理信息│\n";cout << "\t\t│8. 手动生成业务│\n";cout << "\t\t│0. 退出程序│\n";cout << "\t\t└───────────────┘\n";cout << "\t\t请您选择(0-8): ";while(cin >>m,!cin.eof()) //流控制语句,判断变量输入是否是整型{if(!cin.good()) //如果不是整型则重新输入{cin.clear();cin.ignore();cout<<"\t\t输入错误!\n\t\t请重新输入!";Sleep(5000); //暂停1秒返回菜单重新输入return m;}else if(m<0 || m>8){cout<<"\t\t输入错误!\n\t\t请重新输入!";Sleep(5000); //暂停1秒返回菜单重新输入return m;}else if(cin.good() && (m>=0 && m<=8) ){break;}}}return m;}#include "BankBusinses.h"int main(){int i,n,m,flag=0;BankBusinses C;while(1){switch(C.Menu()){case 1:srand(time(0));n=(rand()%(500-1)+1);for(i = 0;i < n;i++){C.t[i].arrivaltime.hour = (rand()%(17-9)+9);C.t[i].arrivaltime.minute = rand()%60;C.t[i].arrivaltime.second = rand()%60;}C.Ticket_Produce_Function(C.t,n);C.EnQueue();C.GetQueue();C.Personnel_Distribution_Func(n,0);flag=1;cout<<"\t\t业务信息生成成功!\n";break;case 2:if(flag==0){cout<<"\t\t无可查询信息!\n";}else{C.Make_waittime_Func(n);}system("pause");break;case 3:if(flag==0){cout<<"\t\t无可查询信息!\n";}else{C.Business_statistic_Func(C.win,4);}system("pause");break;case 4:if(flag==0){cout<<"\t\t无可查询信息!\n";}else{C.Display_Business_Func(C.win,4,n,0);}system("pause");break;case 5:if(flag==0){cout<<"\t\t无可查询信息!\n";}else{C.Display_Business_Func(C.win,4,n,1);}break;case 6:if(flag==0){cout<<"\t\t无可查询信息!\n";}else{C.Display_Business_Func(C.win,4,n,2);}system("pause");break;case 7:if(flag==0){cout<<"\t\t无可查询信息!\n";}else{C.Display_Business_Func(C.win,4,n,3);}system("pause");break;case 8:system("cls"); //************清屏**********for(i=0;i<QueueSize;i++){cout << "\t\t┌────────────────┐\n";cout << "\t\t│────是否打号?(1/0)─────│\n";cout << "\t\t└────────────────┘\n";cout<<"\t\t是请输入1/否请输入0: ";int tag=0;while(cin >>m,!cin.eof()) //流控制语句,判断变量输入是否是整型{if(!cin.good()) //如果不是整型则重新输入{cin.clear();cin.ignore();cout<<"\t\t输入错误!\n\t\t请重新输入!";Sleep(5000); //暂停1秒返回菜单重新输入system("cls"); //************清屏**********cout << "\t\t┌────────────────┐\n";cout << "\t\t│────是否打号?(1/0)─────│\n";cout << "\t\t└────────────────┘\n";cout<<"\t\t是请输入1/否请输入0: ";}else if(m!=0 && m!=1){cout<<"\t\t输入错误!\n\t\t请重新输入!";Sleep(5000); //暂停1秒返回菜单重新输入system("cls"); //************清屏**********cout << "\t\t┌────────────────┐\n";cout << "\t\t│────是否打号?(1/0)─────│\n";cout << "\t\t└────────────────┘\n";cout<<"\t\t是请输入1/否请输入0: ";}else if(cin.good() && (m==0 || m==1) ){if(m==0){tag=1;}break;}}if(tag==1)break;C.Personnel_Func(C.t2,0,m);}system("pause");break;case 0: //如返回值为0则程序结束cout << "\t\tOVER !\n";exit(0);}}return 0;}。
银行管理系统C语言程序设计代码简介银行管理系统是一个用于模拟银行业务的计算机程序。
它可以实现用户账户的创建、存取款、转账等功能,同时还可以进行利息计算、账单管理等操作。
本文将详细介绍银行管理系统的设计和实现,包括系统的功能模块、数据结构和算法等内容。
功能模块银行管理系统主要包括以下功能模块:1.用户管理:包括用户账户的创建、修改、删除等操作。
2.账户管理:包括存款、取款、查询余额、转账等操作。
3.利息计算:根据存款金额和存款期限计算利息。
4.账单管理:记录用户的交易明细和账户余额变动。
数据结构银行管理系统使用了以下数据结构:1.用户账户结构体:包括账户ID、账户名称、账户类型等信息。
2.用户交易结构体:包括交易类型、交易金额、交易时间等信息。
3.用户账户链表:用于保存所有用户账户的信息。
4.用户交易链表:用于保存用户的交易明细。
算法设计银行管理系统使用了以下算法:1.用户账户创建算法:通过用户输入的信息创建新的账户,并将其添加到账户链表中。
2.存款算法:根据用户输入的存款金额,将其添加到账户余额中。
3.取款算法:根据用户输入的取款金额,从账户余额中扣除相应金额。
4.转账算法:根据用户输入的转账金额和目标账户ID,将相应金额从当前账户中转到目标账户中。
5.利息计算算法:根据存款金额和存款期限,计算相应的利息。
6.账单记录算法:将用户的交易明细和账户余额变动记录到交易链表中。
代码实现以下是银行管理系统的C语言代码示例:#include <stdio.h>// 用户账户结构体typedef struct {int accountId;char accountName[100];char accountType[100];float balance;} Account;// 用户交易结构体typedef struct {int accountId;char transactionType[100];float amount;char transactionTime[100];} Transaction;// 用户账户链表typedef struct {Account account;struct AccountNode* next;} AccountNode;// 用户交易链表typedef struct {Transaction transaction;struct TransactionNode* next;} TransactionNode;// 创建用户账户void createAccount(AccountNode** head, Account account) { // 创建新的账户节点AccountNode* newNode = (AccountNode*)malloc(sizeof(AccountNode)); newNode->account = account;newNode->next = NULL;// 将新的账户节点添加到链表中if (*head == NULL) {*head = newNode;} else {AccountNode* current = *head;while (current->next != NULL) {current = current->next;current->next = newNode;}}// 存款void deposit(AccountNode* head, int accountId, float amount) {AccountNode* current = head;while (current != NULL) {if (current->account.accountId == accountId) {current->account.balance += amount;break;}current = current->next;}}// 取款void withdraw(AccountNode* head, int accountId, float amount) {AccountNode* current = head;while (current != NULL) {if (current->account.accountId == accountId) {if (current->account.balance >= amount) {current->account.balance -= amount;} else {printf("Insufficient balance.\n");}break;}current = current->next;}}// 转账void transfer(AccountNode* head, int sourceAccountId, int targetAccountId, flo at amount) {AccountNode* current = head;while (current != NULL) {if (current->account.accountId == sourceAccountId) {if (current->account.balance >= amount) {current->account.balance -= amount;break;} else {printf("Insufficient balance.\n");}current = current->next;}current = head;while (current != NULL) {if (current->account.accountId == targetAccountId) {current->account.balance += amount;break;}current = current->next;}}// 利息计算float calculateInterest(float principal, int years) {float rate = 0.05; // 假设利率为5%return principal * rate * years;}// 账单记录void recordTransaction(TransactionNode** head, Transaction transaction) { // 创建新的交易节点TransactionNode* newNode = (TransactionNode*)malloc(sizeof(TransactionNod e));newNode->transaction = transaction;newNode->next = NULL;// 将新的交易节点添加到链表中if (*head == NULL) {*head = newNode;} else {TransactionNode* current = *head;while (current->next != NULL) {current = current->next;}current->next = newNode;}}int main() {AccountNode* accountList = NULL;TransactionNode* transactionList = NULL;// 创建账户Account account1 = {1, "John Doe", "Savings", 1000.0};createAccount(&accountList, account1);Account account2 = {2, "Jane Smith", "Checking", 2000.0};createAccount(&accountList, account2);// 存款deposit(accountList, 1, 500.0);// 取款withdraw(accountList, 1, 200.0);// 转账transfer(accountList, 1, 2, 300.0);// 利息计算float interest = calculateInterest(1000.0, 1);printf("Interest: %.2f\n", interest);// 账单记录Transaction transaction1 = {1, "Deposit", 500.0, "2022-01-01 10:00:00"};recordTransaction(&transactionList, transaction1);Transaction transaction2 = {1, "Withdraw", 200.0, "2022-01-02 11:00:00"};recordTransaction(&transactionList, transaction2);return 0;}总结银行管理系统是一个功能丰富的计算机程序,通过使用C语言进行设计和实现,可以实现用户账户的创建、存取款、转账等功能,同时还可以进行利息计算、账单管理等操作。
银行系统源代码#include#includeusing namespace std;class consumer;class ATM{public:ATM (consumer& cn):cnsm(cn){}void welcome();bool check_passwd(string n,string pwd);void change_passwd();void fetchmoney();void information();void exitATM();void functionshow();void lock();private:int times;consumer& cnsm;};class consumer{public:friend class ATM;consumer (string Name,string Num,float Money,string PassWord);protected:string get_name();string get_num();string get_passwd();float get_money();void set_passwd(string pwd);void set_money(float m);private:string passwd;string name;string num;float money;};consumer::consumer(string Name,string Num,float Money,string Password){name=Name;num=Num;money=Money;passwd=Password;}float consumer::get_money(){return money;}string consumer::get_name(){return name;}string consumer::get_num(){return num;}string consumer::get_passwd(){return passwd;}void consumer::set_money(float m){money-=m;}void consumer::set_passwd(string pwd){passwd=pwd;}void main(){consumer c1("test","1111",8888.88f,"000000");ATM atm(c1);atm.welcome();}void ATM::welcome(){times=0;cout<<"$欢迎测试虚拟银行ATM自动取款机!~!"<<endl; cout<<"测试帐号为:1111密码为:000000"<<endl; string pwd,num,ch;do{cout<<endl<<"请输入卡号:";cin>>num;cout<<"请输入密码:";cin>>pwd;if(!check_passwd(num,pwd)){cout<<"你输入的卡号或密码有误,请重新输入"<<endl; times++;}else{functionshow();}}while(times<3);lock();}bool ATM::check_passwd(string num,string pwd){if(num==cnsm.get_num()&&pwd==cnsm.get_passwd()) return true;elsereturn false;}void ATM::functionshow(){int n;do{cout<<endl<<"请你输入相应的操作序号进行操作:"<<endl; cout<<"1) 修改密码 "<<endl<<"2) "<<endl;cout<<"$>";cin>>n;while(n<1||n>4){cout<<"请输入正确的操作序号!"<<endl;cout<<"$ >";cin>>n;}switch(n){case 1:change_passwd();break;case 2: fetchmoney();break;case 3:information();break;case 4:exitATM();break;}}while(true);}void ATM::change_passwd(){char pwd[8],repwd[8];times=0;do{cout<<endl<<"请输入旧密码:"; cin>>pwd;if(!check_passwd(cnsm.get_num(),pwd)) times++;elsebreak;}while(times<3);if(times==3)lock();int t=0;do{cout<<"请输入新密码:";cin>>pwd;cout<<"请再输入一次新密码:";cin>>repwd;if((t=strcmp(pwd,repwd))!=0)cout<<"你输入的两次密码不一样,请重新输入!"<<endl;}while(t!=0);cnsm.set_passwd(pwd);cout<<"密码修改成功,请牢记!"<<endl;}void ATM::fetchmoney(){float m;char ch;do{cout<<endl<<"你要取多少钱:"<<"$>"<cin>>m;while(m</endl<<"你要取多少钱:"<<"$></endl;</endl;</endl<<"请输入旧密码:";</endl;</endl<<"2)></endl<<"请你输入相应的操作序号进行操作:"<<endl;</endl;</endl<<"请输入卡号:";</endl;</endl;<=0){cout<<"请输入正确的数字!"<<endl;cout<<"$>";cin>>m;}if(cnsm.get_money()-m<0){cout<<"对不起,你的余额不足!"<<endl;}else{cout<<endl<<"操作成功,请收好钱!"<<endl;cnsm.set_money(m);}cout<<"是否要继续该项操作:(Y/N) "<<endl;cout<<"$ >";cin>>ch;while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y') {cout<<"$ >";cin>>ch;}}while(ch=='y'||ch=='Y');}void ATM::information(){cout<<"**********************************"<<endl;cout<<"*"<<endl;cout<<"* 用户姓名:"<<cnsm.get_name()<<endl;cout<<"* 卡号: "<<cnsm.get_num()<<endl;cout<<"* 余额: "<<cnsm.get_money()<<endl;cout<<"**********************************"<<endl;}void ATM::lock(){cout<<endl<<"对不起,由于你的操作有误,你的卡已经被没收! "<<endl;exit(1);}void ATM::exitATM(){cout<<endl<<"感谢你对本atm程序的测试!"<<endl;exit(0);}</endl<<"感谢你对本atm程序的测试!"<<endl;</endl<<"对不起,由于你的操作有误,你的卡已经被没收!></endl;</cnsm.get_money()<<endl;</cnsm.get_num()<<endl;</cnsm.get_name()<<endl;</endl;</endl;</endl;</endl;</endl<<"操作成功,请收好钱!"</endl;</endl;。
简单的银行管理系统的C语言代码#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define N 10000struct chuhu //储户结构信息{char idnum[9]; //帐号char password[7]; //密码char name[11]; //储户姓名char idnumber[19]; //储户身份证号码double cunkuan; //存款金额int lei; //储种char address[51]; //储户地址char Tel[15]; //储户的联系电话double lilv; //利率}hu[N]; //储户结构数组void xitong();int rrekey();void kaifa(); //开发人员void cekong();int yanzheng(); //验证帐号和密码void date(); //显示当前日期和时间void insert(); //开户函数void display(); //显示查询帐户信息的函数void in(int); //存款函数void out(int); //取款函数void lilvbiao(); //查看利率表void menu();int A=0,key; //A为开户数double jin;char ch='y'; //控制是否继续的变量char id[11],password[7];void xitong(){FILE *fkey = fopen("key.txt","w+");int k;printf("请创建原始密码:");scanf("%d",&k);fprintf(fkey,"%d\n",k);fclose(fkey);}int main() //输出主菜单{FILE *fkey = fopen("key.txt","r");int t=0;int mima; //输入的密码system("cls");system("color f0"); //设置系统背景为白色date();kaifa();printf("\n\n\n\n\n");printf("\t\t 银行定期储蓄管理系统\n"); //界面1 printf("\n\n\n\n\n\n\n\n");printf("按ENTER键进入下一界面→");fflush(stdin); //功能:清空输入缓冲区scanf("%c",&ch);if(!fkey){printf("密码文件不存在,系统已自创\n");xitong();menu();return 0;}system("cls");fscanf(fkey,"%d",&key);printf("请输入管理员登录密码:\n");scanf("%d",&mima);if(mima==key)t=1;system("cls");for(;t!=1;){printf("管理员密码错误,请重新输入:\n");scanf("%d",&mima);if(mima==key)t=1;system("cls");}//认证成功fclose(fkey);menu();return 0;}void menu(){int a,b;//选择功能的变量do{printf("\n\n按ENTER键进入/返回主菜单→:");fflush(stdin);scanf("%c",&ch);system("cls"); //清屏system("color f0");date();printf("\n\t\t\t\t主菜单\n\n");printf("\t\t 1、开户\n");//主菜单界面(界面3)printf("\t\t 2、查询\n");printf("\t\t 3、用户密码验证\n");printf("\t\t 4、存款\n");printf("\t\t 5、取款\n");printf("\t\t 6、查看利率表\n");printf("\t\t 7、管理员修改密码\n");printf("\t\t 0、退出程序\n");printf("请选择功能(0-7):→");fflush(stdin);scanf("%d",&a);switch(a) //选择功能{case 1: //选择功能后调用相应的函数insert();break;case 2:display();break;case 3:b=yanzheng();break;case 4:b=yanzheng();in(b);break;case 5:b=yanzheng();out(b);break;case 6:lilvbiao();break;case 7:rrekey();break;case 0:system("cls");system("color f0");date();printf("\n\n\n\t==========================================================\n"); printf("\t‖‖\n"); printf("\t‖‖\n"); printf("\t‖‖\n");printf("\t‖‖\n"); printf("\t‖谢谢使用‖\n"); printf("\t‖‖\n");printf("\t‖‖\n"); printf("\t‖‖\n"); printf("\t‖‖\n"); printf("\t‖‖\n"); printf("\t==========================================================");cekong();printf("您真的要退出吗(y/n)? ");fflush(stdin);scanf("%c",&ch);system("cls");break;default:system("cls");printf("\n\n\t您的输入有误,请正确选择功能!!!……");break;}if(a==0&&(ch=='y'||ch=='Y')){system("color f0");date();kaifa();printf("\n\n\n\n\t 欢迎下次再使用! ");cekong();break;}}while(1);}void insert() //开户{FILE *nchuhu = fopen("chuhu.txt","r");FILE *fchuhu = fopen("chuhu.txt","a");int i;if((nchuhu=fopen("chuhu.txt","r"))==NULL){printf("文件不存在,系统将创建.\n");}do{system("cls"); //清屏system("color f0"); //设置系统背景为白色date();printf("\n\n\t\t请输入新储户的信息:");fscanf(nchuhu,"%s\t%s\t%s\t%s\t%lf\t%s\t%s\t%d\t%lf\n",&hu[A].idnum,&hu[A].password,&hu[A].name,&hu[A].idnumber,&hu[A].cunkuan,&hu[A].Tel,&hu[A].address,&hu[A].lei,&hu[A].lil v);printf("\n\n\t\t储户存单: ");fflush(stdin);gets(hu[A].idnum);printf("\n\t\t储户密码(6位): ");for(i=0;i<6;i++){fflush(stdin);hu[A].password[i]=getch();printf("*");}hu[A].password[6]='\0';fflush(stdin);scanf("%c",&ch);printf("\n\t\t姓名:");fflush(stdin);gets(hu[A].name);do{printf("\n\t\t储户身份证号码(18位): ");fflush(stdin);gets(hu[A].idnumber);if(strlen(hu[A].idnumber)!=18)printf("\n\t\t输入错误!\n\t\t身份证请输入18位数字或字母\n");for(i=0;i<A;i++)if(strcmp(hu[A].idnumber,hu[i].idnumber)==0&&strcmp(hu[A].name,hu[i].name)!=0)break;if(i<A)printf("\n\n\t\t前面已有一个不同姓名的储户的身份证号为此号码,\n\t\t同一个身份证号不可以有不同的姓名,\n\n\t\t请重新输入身份证号:\n");}while(strlen(hu[A].idnumber)!=18||(strcmp(hu[A].idnumber,hu[i].idnumber)==0&&str cmp(hu[A].name,hu[i].name)!=0));printf("\n\t\t存单金额: ");fflush(stdin);scanf("%lf",&hu[A].cunkuan);printf("\n\t\t储户电话: ");fflush(stdin);gets(hu[A].Tel);printf("\n\t\t储户地址: ");fflush(stdin);gets(hu[A].address);printf("\n\t\t储种: ");printf("\n\t\t\t1、一年定期");printf("\n\t\t\t2、两年定期");printf("\n\t\t\t3、三年定期");printf("\n\t\t\t4、四年定期");printf("\n\t\t\t5、五年定期");do{printf("\n\t\t请选择(1-5):");fflush(stdin);scanf("%d",&hu[A].lei);if(hu[A].lei<1||hu[A].lei>5)printf("\n\n\t\t您选择错误,请正确选择!!");}while(hu[A].lei<1||hu[A].lei>5);if(hu[A].lei==5) hu[A].lilv=0.0279 ;if(hu[A].lei==4) hu[A].lilv=0.0252 ;if(hu[A].lei==3) hu[A].lilv=0.0225 ;if(hu[A].lei==2) hu[A].lilv=0.0198 ;if(hu[A].lei==1) hu[A].lilv=0.0125 ;printf("\n\t\t利率为:%f",hu[A].lilv);fprintf(fchuhu,"%s\t%s\t%s\t%s\t%lf\t%s\t%s\t%d\t%f\n",hu[A].idnum,hu[A].password,hu[ A].name,hu[A].idnumber,hu[A].cunkuan,hu[A].Tel,hu[A].address,hu[A].lei,hu[A].lilv);A++;printf("\n是否继续(y/n)? ");fflush(stdin);scanf("%c",&ch);}while(ch=='y'||ch=='Y');printf("存入成功\n");system("pause");system("cls");fclose(nchuhu);fclose(fchuhu);}void display() //按存单号查询{FILE *fchuhu = fopen("chuhu.txt","r");int i,n=0;char fnumb[9];system("cls");for(i=0;i<=100;i++){fscanf(fchuhu,"%s\t%s\t%s\t%s\t%lf\t%s\t%s\t%d\t%lf\n",&hu[i].idnum,&hu[i].password,& hu[i].name,&hu[i].idnumber,&hu[i].cunkuan,&hu[i].Tel,&hu[i].address,&hu[i].lei,&hu[i].lilv);}printf("请输入您需要查找的存单号:");scanf("%s",&fnumb);printf("\t\t\t存单信息:\n");for(i=0;i<=99;i++)if(strcmp(fnumb,hu[i].idnum)==0){printf("存单编号:%s\n密码:******(已隐藏)\n用户姓名:%s\n身份证号:%s\n存入金额:%f\n手机号码:%s\n用户住址:%s\n储种:%d\n利率:%f\n\n\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].cunkuan,hu[i].Tel,hu[i].address,hu[i].le i,hu[i].lilv);n=1;break;}if(n==0)printf("此存单不存在\n");printf("\n\n\t注: 储种中数字的含义为:\n\n\t0: 活期1: 一年定期2: 两年定期3: 三年定期4: 五年定期");fclose(fchuhu);}void in(int count) //存款{FILE *fchuhu = fopen("chuhu.txt","r");FILE *achuhu = fopen("back.txt","w");char id[9];int i;if(!fchuhu){printf("不能打开文件");}if(!achuhu){printf("不能创建新文件");}for(i=0;i<=100;i++){fscanf(fchuhu,"%s\t%s\t%s\t%s\t%lf\t%s\t%s\t%d\t%lf\n",&hu[i].idnum,&hu[i].password,& hu[i].name,&hu[i].idnumber,&hu[i].cunkuan,&hu[i].Tel,&hu[i].address,&hu[i].lei,&hu[i].lilv);}if(count<1){date();printf("请再次输入并确认存单:");scanf("%s",&id);for(i=0;i<=100;i++){if(strcmp(id,hu[i].idnum)==0 ){do{printf("\n\n\t\t请输入存款金额: ");fflush(stdin);scanf("%lf",&jin);if(jin<0)printf("\n\n\n\t\t存款不能为负数");}while(jin<0);if(jin>=0){hu[i].cunkuan+=jin;printf("\n\n\t\t\t您存款成功!\n\n\t\t本次存入金额为:%.2f\n",jin);printf("存单上共有:%f",hu[i].cunkuan);}}fprintf(achuhu,"%s\t%s\t%s\t%s\t%f\t%s\t%s\t%d\t%f\n",hu[i].idnum,hu[i].password,hu[i].name,hu[i].idnumber,hu[i].cunkuan,hu[i].Tel,hu[i].address,hu[i].lei,hu[i].lilv);}}fclose(fchuhu);fclose(achuhu);system("del chuhu.txt");rename("back.txt","chuhu.txt");}void out(int count) //取款{FILE *fchuhu = fopen("chuhu.txt","r");FILE *achuhu = fopen("back.txt","w");int i;char id[9];if(!fchuhu){printf("不能打开文件");}if(!achuhu){printf("不能创建新文件");}for(i=0;i<=100;i++){fscanf(fchuhu,"%s\t%s\t%s\t%s\t%lf\t%s\t%s\t%d\t%lf\n",&hu[i].idnum,&hu[i].password,& hu[i].name,&hu[i].idnumber,&hu[i].cunkuan,&hu[i].Tel,&hu[i].address,&hu[i].lei,&hu[i].lilv);}if(count<1){date();printf("请再次输入并确认存单:");scanf("%s",&id);for(i=0;i<=99;i++){if(strcmp(id,hu[i].idnum)==0 ){hu[i].cunkuan+=hu[i].lilv*hu[i].lei*hu[i].cunkuan;printf("取出%f元",hu[i].cunkuan);hu[i].cunkuan=0;printf("\n\n\n\t 取款成功");}fprintf(achuhu,"%s\t%s\t%s\t%s\t%f\t%s\t%s\t%d\t%f\n",hu[i].idnum,hu[i].password,hu[i]. name,hu[i].idnumber,hu[i].cunkuan,hu[i].Tel,hu[i].address,hu[i].lei,hu[i].lilv);}}fclose(fchuhu);fclose(achuhu);system("del chuhu.txt");rename("back.txt","chuhu.txt");}void lilvbiao() //利率表{system("cls");system("color f0");date();printf("\n\n\n\t\t\t利率对照表:\n");printf("\t≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");printf("\t‖‖定期‖\n");printf("\t‖储种‖ˉˉ‖ˉˉˉˉ‖ˉˉˉˉ‖ˉˉˉˉ‖ˉˉˉˉ‖\n");printf("\t‖‖一年‖二年‖三年‖四年‖五年‖\n");printf("\t‖ˉˉˉˉ‖ˉˉˉ‖ˉˉˉˉ‖ˉˉˉˉ‖ˉˉˉˉ‖ˉˉˉ‖\n");printf("\t‖利率(%%%)‖1.25 ‖ 1.98 ‖ 2.25 ‖ 2.52 ‖ 2.79‖\n");printf("\t≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");printf("\n\t说明:定期只能在储年到期时取出\n");}int yanzheng() //验证存单号或密码{FILE *fchuhu = fopen("chuhu.txt","r");int count=0,i;char id[9];for(i=0;i<=100;i++){fscanf(fchuhu,"%s\t%s\t%s\t%s\t%lf\t%s\t%s\t%d\t%lf\n",&hu[i].idnum,&hu[i].password,&hu[i].name,&hu[i].idnumber,&hu[i].cunkuan,&hu[i].Tel,&hu[i].address,&hu[i].lei,&hu[i].lilv);}do{system("cls");system("color f0");printf("存单号或密码错误将自动返回\n");printf("\n\n\t\t 请输入您的存单号:");scanf("%s",&id);printf("\n\n\t\t 请输入您的密码:");for(i=0;i<6;i++){fflush(stdin);password[i]=getch();printf("*");}password[6]='\0';fflush(stdin);scanf("%c",&ch);printf("\n\n\t\t");for(i=0;i<=99;i++){if(strcmp(id,hu[i].idnum)==0 &&strcmp(password,hu[i].password)==0){fclose(fchuhu);return 0;}}} while(count==0);fclose(fchuhu);return count;}int rrekey(){FILE *rekey=fopen("key.txt", "r" );FILE *rkey=fopen("keynew.txt", "w" );int mima,mima1,mima2,t;system("cls");printf("请输入原密码\n密码:");scanf("%d",&mima);fscanf(rekey,"%d",&key);if(mima==key)t=1;system("cls");for(;t!=1;){printf("密码错误,请重新输入\n密码:");scanf("%d",&mima);if(mima==key)t=1;system("cls");}/*认证成功*/printf("请输入新密码:\n");scanf("%d",&mima1);system("cls");printf("请再次输入新密码:\n");scanf("%d",&mima2);system("cls");if(mima1==mima2){fprintf(rkey,"%d",mima1);printf("修改成功\n");system("pause");}else{printf("输入错误密码,终止修改密码操作");system("pause");}system("cls");fclose(rekey);fclose(rkey);system("del key.txt");rename("keynew.txt","key.txt");return 0;}void date() //显示当前日期和时间{printf("当前日期:");system("date/t");printf("当前时间:");system("time/t");}void kaifa(){printf("开发者\n");}void cekong() //相当于页脚{printf("\n\n\n\t\t==========※感谢使用※==========\n\n");}。
小型银行管理系统的功能代码小型银行管理系统的部分代码登陆package dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import java.sql.*;public class login{private String sName;private String sPass;private String sState;//数据库连接设置protected static String dbClassName = "com.mysql.jdbc.Driver";protected static String dbUrl = "jdbc:mysql://localhost:3306/bank";protected static String dbUser = "root";protected static String dbPwd = "root"; private static Connection conn = null;public String getsName() {return sName;}public void setsName(String sName) { this.sName = sName;}public String getsPass() {return sPass;}public void setsSPass(String sPass) { this.sPass = sPass;}public String getsState() {return sState;}public void setsState(String sState) { this.sState = sState;}/*** 创立数据库连接**/private void NewConnect(){try {if (conn == null) {Class.forName(dbClassName).newInstance();conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);}elsereturn;} catch (Exception ee) {ee.printStackTrace();}}public List stuSearch(){String sql="select * from person where name='"+sName+"' and pass='"+sPass+"' and state='"+sState+"'";// System.out.println(sql);List list=new ArrayList();ResultSet rs = null;try {if(conn==null) NewConnect();//如果数据库连接为空, 则创立rs = conn.createStatement().executeQuery(sql);} catch (SQLException e) {e.printStackTrace();}try {//经过循环, 将数据结果集中的内容取出while(rs.next()){login ep = new login();ep.setsName(ep.getsName());ep.setsSPass(ep.getsPass());ep.setsState(ep.getsState());//System.out.println(ep.getsName()+ep.getsPass()+ep.getsState());list.add(ep);}} catch (SQLException e) {// TODO 自动生成 catch 块e.printStackTrace();}return list;//查询结果, 数组返回}}数据库package dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class shujuku {public shujuku(String sql){//接受一个SQL语句并执行try{Class.forName("com.mysql.jdbc.Driver");Stringurl="jdbc:mysql://localhost/Bank?useUnicode=true&characterEncodin g=GBK";Connectioncon=DriverManager.getConnection(url,"root","root");Statement stmt=con.createStatement();stmt.executeUpdate(sql);stmt.close();}catch(Exception e){e.printStackTrace();}}。
python实现简单银⾏管理系统本⽂为⼤家分享了python银⾏管理系统的具体代码,供⼤家参考,具体内容如下⾃⼰写的练⼿⼩程序,练习⾯向对象的概念,代码中都有注释,刚学的同学也可以很容易看懂(需要⾃⼰⽤pickle模块新建⼀个database.txt⽂件,⽤来存储⽤户数据信息)。
# atm.py# 各种操作类import randomfrom card import Cardfrom user import Userimport timeclass ATM(object):# 初始化def __init__(self, allUsersInfo):# 将所有⽤户信息传递过来,以便后续操作self.allUsersInfo = allUsersInfo # 卡号:⽤户# 确认密码def checkPwd(self, realPwd):myList = [3, 2, 1, 0]for i in myList:# 如果密码输⼊错误超过三次if i == 0:return FalserePass = input('请再次输⼊密码:')if realPwd == rePass:return Trueelif (i - 1) != 0:print('输⼊错误,你还有%d次输⼊的机会!' % (i - 1))# 随机⽣成开户卡号def randomId(self):while True:# 存储卡号str = ''# 随机⽣成6位卡号for i in range(6):ch = chr(random.randrange(ord('0'), ord('9') + 1))str += ch# 判断卡号是否重复if not self.allUsersInfo.get(str):return str# 开卡操作def createUser(self):try:name = input('请输⼊姓名:') # ⽤户姓名idCard = input('请输⼊⾝份证号码:') # ⽤户⾝份证号phone = input('请输⼊电话号码:') # ⽤户的电话号码preMoney = int(input('请输⼊预存⾦额:')) # ⽤户的预存⾦额# 预存⾦额少于0则开户失败if preMoney < 0:print('预存⾦额有误,开户失败!')return -1# 设置密码onePwd = input('请输⼊密码:') # 第⼀次密码twoPwd = self.checkPwd(onePwd)if not twoPwd:print('确认密码错误,开户失败!')return -1# 以上全部完成,则开户所需的信息准备齐全,开户成功# 系统⽣成开户卡号# ⽣成卡号cardStr = self.randomId()# 创建⼀个卡的实例,⽤于存储卡的信息card = Card(cardStr, onePwd, preMoney)# 创建⼀个⽤户实例,⽤于存储⽤户的信息user = User(name, idCard, phone, card)# 按卡号:⽤户信息键值对的形式存⼊字典中self.allUsersInfo[cardStr] = user# 提⽰⽤户,已经开户成功time.sleep(1)print('开户成功,请牢记卡号({})...'.format(cardStr))except Exception as e:print('抱歉,系统出现故障,暂时⽆法操作!')return# 判断卡号是否存在def isExistence(self, cardStrInp):# 卡号不存在,直接退回到选项界⾯if self.allUsersInfo.get(cardStrInp):return True# 卡号不存在的情况下else:print('卡号不存在!')return False# 做查询等操作时,输⼊密码def secretOption(self, cardStrInp):myList = [3, 2, 1, 0]for i in myList:# 如果密码输⼊错误超过三次if i == 0:return FalsepassInp = input('请输⼊密码:')if passInp == self.allUsersInfo[cardStrInp].cardInfo.cardPwd:return Trueelif (i - 1) != 0:print('输⼊错误,你还有%d次输⼊的机会!' % (i - 1))# 查询⽤户信息def searchUserInfo(self):cardStrInp = input('请输⼊卡号:') # ⽤户想要查询的卡号# 判断卡号的状态isExist = self.isExistence(cardStrInp)# 卡号存在if isExist:# 是否被锁定if not self.allUsersInfo[cardStrInp].cardInfo.isLock:# 输⼊密码并判断# 密码正确则输出余额if self.secretOption(cardStrInp):print('账号:%s 余额:%d' % (cardStrInp, self.allUsersInfo[cardStrInp].cardInfo.cardMoney)) return 0# 密码错误则锁定卡号else:print('密码输⼊错误超过3次,卡号已被锁定,请先解锁!')self.allUsersInfo[cardStrInp].cardInfo.isLock = Truereturn -1else:print('该卡号已被锁定,请先解锁!')return -1# 取钱def getMoney(self):cardStrInp = input('请输⼊卡号:')isExist = self.isExistence(cardStrInp)# print(isExist)# 如果卡号存在if isExist:# 如果没被锁定if not self.allUsersInfo[cardStrInp].cardInfo.isLock:# 如果密码正确if self.secretOption(cardStrInp):getMoney = int(input('请输⼊取款⾦额:'))# 如果取款⾦额超出余额if getMoney > self.allUsersInfo[cardStrInp].cardInfo.cardMoney:print('余额不⾜,取款失败!')return -1# 余额⾜够的情况,取款成功else:self.allUsersInfo[cardStrInp].cardInfo.cardMoney -= getMoneyprint('取款成功,卡上余额:%d' % self.allUsersInfo[cardStrInp].cardInfo.cardMoney) return 0else:print('密码输⼊错误超过3次,卡号已被锁定,请先解锁!')self.allUsersInfo[cardStrInp].cardInfo.isLock = Truereturn -1else:print('该卡号已被锁定,请先解锁!')return -1# 存钱def saveMoney(self):cardStrInp = input('请输⼊卡号:')isExist = self.isExistence(cardStrInp)if isExist:# 如果没被锁定if not self.allUsersInfo[cardStrInp].cardInfo.isLock:# 如果密码正确if self.secretOption(cardStrInp):saveMoney = int(input('请输⼊存款⾦额:'))if saveMoney <= 0:print('⽆效的存款⾦额!')return -1else:# 存款成功self.allUsersInfo[cardStrInp].cardInfo.cardMoney += saveMoneyprint('存款成功,卡内余额为%d!' % self.allUsersInfo[cardStrInp].cardInfo.cardMoney) else:print('密码输⼊错误超过3次,卡号已被锁定,请先解锁!')self.allUsersInfo[cardStrInp].cardInfo.isLock = Truereturn -1else:print('该卡号已被锁定,请先解锁!')return -1# 转账def transMoney(self):cardInp = input('请输⼊卡号:')isExist = self.isExistence(cardInp)# 卡号存在if isExist:# 没被锁定if not self.allUsersInfo[cardInp].cardInfo.isLock:# 密码正确if self.secretOption(cardInp):transCardInp = input('请输⼊要转账的卡号:')isExistTrans = self.isExistence(transCardInp)# 要转账的卡号存在if isExistTrans:# 要转账的卡号没被锁定if not self.allUsersInfo[transCardInp].cardInfo.isLock:# 要转账的卡号不是⾃⼰的卡号if transCardInp != cardInp:transMoneyInp = int(input('请输⼊要转账的⾦额:'))# 判断转账⾦额是否⼤于卡内余额if transMoneyInp > self.allUsersInfo[cardInp].cardInfo.cardMoney:print('余额不⾜,转账失败!')return -1else:self.allUsersInfo[cardInp].cardInfo.cardMoney -= transMoneyInpself.allUsersInfo[transCardInp].cardInfo.cardMoney += transMoneyInpprint('转账成功,卡内余额为%d!' % self.allUsersInfo[cardInp].cardInfo.cardMoney) else:print('⽆法转⼊⾃⼰的账户!')return -1else:print('对⽅卡号已被锁定,⽆法转账,请先解锁!')return -1else:print('密码输⼊错误超过3次,卡号已被锁定,请先解锁!')self.allUsersInfo[cardInp].cardInfo.isLock = Truereturn -1else:print('该卡号已被锁定,请先解锁!')return -1# 改密def changePwd(self):cardStrInp = input('请输⼊卡号:')isExist = self.isExistence(cardStrInp)if isExist:# 如果没被锁定if not self.allUsersInfo[cardStrInp].cardInfo.isLock:# 如果密码正确if self.secretOption(cardStrInp):# 输⼊修改后的密码changePwd = input('请输⼊新密码:')# 不允许新密码和旧密码相同if changePwd != self.allUsersInfo[cardStrInp].cardInfo.cardPwd:myList = [3, 2, 1, 0]for i in myList:# 如果密码输⼊错误超过三次if i == 0:print('确认密码错误次数超过3次,修改密码失败!')return -1passInp = input('请确认新密码:')# 如果新密码确认成功,则修改密码if passInp == changePwd:print('密码修改成功!')self.allUsersInfo[cardStrInp].cardInfo.cardPwd = changePwdreturn 0elif (i - 1) != 0:print('输⼊错误,你还有%d次输⼊的机会!' % (i - 1))# 新密码和旧密码相同,不允许修改,提⽰并退出else:print('新密码不允许和旧密码相同!')return -1# 密码不正确else:print('密码输⼊错误超过3次,卡号已被锁定,请先解锁!')self.allUsersInfo[cardStrInp].cardInfo.isLock = Truereturn -1else:print('该卡号已被锁定,请先解锁!')return -1# 解锁def unlockUser(self):cardStrInp = input('请输⼊卡号:')isExist = self.isExistence(cardStrInp)# 存在if isExist:# 被锁定if self.allUsersInfo[cardStrInp].cardInfo.isLock:# 如果密码正确if self.secretOption(cardStrInp):# 输⼊⾝份证号信息做确认idCardInp = input('请输⼊⾝份证号:')# ⾝份证号信息匹配if idCardInp == self.allUsersInfo[cardStrInp].idCard:# 解锁成功print('解锁成功!')self.allUsersInfo[cardStrInp].cardInfo.isLock = Falsereturn 0else:print('⾝份证号信息不匹配,解锁失败!')return -1# 密码不正确else:print('密码输出错误,解锁失败!')return -1else:print('该卡号未被锁定,⽆需解锁!')return -1# card.py# 卡类class Card(object):def __init__(self, cardStr, cardPwd, cardMoney):self.cardStr = cardStr # 卡号self.cardPwd = cardPwd # 卡密self.cardMoney = cardMoney # 卡中余额self.isLock = False # 卡号是否被锁# main.py# 主函数from view import Viewimport picklefrom atm import ATMimport timedef main():# 定义管理员对象admin = View()# 管理员登录界⾯admin.printAdminView()# 如果管理员账号、密码输⼊错误则退出if admin.adminOption():return -1# 读取存储在⽂件中的所有⽤户的信息file = open('database.txt', 'rb')allUsersInfo = pickle.load(file) # 将所有⽤户信息存储到 allUsersInfo中去 file.close() # 关闭⽂件# 打印所有⽤户信息,以便验证print('*' * 10)print('usersInfo:', allUsersInfo)# 创建atm实例,并将所有⽤户信息传递过去,进⾏初始化atm = ATM(allUsersInfo)# 循环进⾏操作选项while True:# 调⽤功能显⽰⽅法,显⽰功能选项admin.printSysFunctionView()# 提⽰⽤户输⼊功能选项进⾏操作option= input('请输⼊操作选项(数字):')# 对⽤户的操作选项进⾏判断if option == "1": # 开户操作atm.createUser()elif option == "2": # 查询余额操作atm.searchUserInfo()elif option == "3": # 取钱操作atm.getMoney()elif option == "4": # 存钱操作atm.saveMoney()elif option == "5": # 转账操作atm.transMoney()elif option == "6": # 改密码操作atm.changePwd()elif option == "7": # 解锁操作atm.unlockUser()# 以下操作暂时未写# elif option == "q": # 退出操作# # atm.quitSys()# print('退出')# elif option == "9": # 补卡操作# print("补卡")## elif option == "0": # 销户操作# print("销户")elif option == "8": # 退出系统return 0# 如果⽤户输⼊的不是上述操作else:print('⽆效的操作选项!')return -1# 将新信息写⼊⽂件# 将当前系统中的⽤户信息保存到⽂件中f = open('database.txt', "wb")pickle.dump(allUsersInfo, f)f.close()if __name__ == '__main__':main()# user.py# ⽤户信息类class User(object):def __init__(self, name, idCard, phone, cardInfo): = name # ⽤户姓名self.idCard = idCard # ⽤户⾝份证号self.phone = phone # ⽤户的⼿机号码self.cardInfo = cardInfo # ⽤户的卡的信息(卡号、密码、余额)# view.py# 视图类import timeclass View(object):admin = '1'pwd = '1'# 管理员登录界⾯def printAdminView(self):print("*****************************************************************") print("* *")print("* *")print("* 欢迎登陆丹丹的银⾏ *")print("* *")print("* *")print("*****************************************************************")def printSysFunctionView(self):print("*****************************************************************")print("* 开户(1) 查询(2) *")print("* 取款(3) 存款(4) *")print("* 转账(5) 改密(6) *")print("* 解锁(7) 退出(8) *")# print("* 补卡(9) 销户(0) *")# print("* 退出(t) *")print("*****************************************************************")def adminOption(self):inputAdmin = input('请输⼊管理员账号:')if inputAdmin != self.admin:print('账号错误!')return -1inputPwd = input('请输⼊管理员密码:')if inputPwd != self.pwd:print('密码错误!')return -1# 管理员账号和密码全部正确print('操作成功,请稍后...')time.sleep(2)return 0# view = View()# view.printAdminView()# view.adminOption()# view.printSysFunctionView()更多学习资料请关注专题《》。
原创Java银行账户管理系统代码
简介
本文档将介绍一个原创的Java银行账户管理系统代码。
该代码用于模拟一个简单的银行账户管理系统,包括账户的创建、存款、取款、查询余额等功能。
功能列表
•创建账户:根据用户输入的账户信息,创建新的银行账户。
•存款:将用户输入的金额存入指定账户。
•取款:从指定账户中取出用户指定的金额。
•查询余额:根据用户输入的账户信息,查询指定账户的余额。
开发工具和环境
•开发语言:Java
•开发环境:Eclipse IDE
•JDK版本:Java SE 8
代码实现
下面是代码的具体实现。
```java import java.util.HashMap; import java.util.Map; import java.util.Scanner;
public class BankAccountManagementSystem {
private static Map<String, Double> accountMap = new HashMap<>();
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean running = true;
while (running) {
System.out.println(\。
#include<iostream>#include<fstream>#include<string>using namespace std;class user; //声明用户类class yinhang{ //银行类public:void set_account();//开户函数void del_account();//销户函数void transfer_accounts(int a);//转账函数void enter();//登录函数void menu();//菜单函数void exit_yinhang();//退出函数void save();void load();protected:static int amount;//静态成员,用于统计银行账户数user *account[100];//账户数};int yinhang::amount=0;//静态成员赋值,初始为0class user:public yinhang{ //用户类private:string id;//账号string mm;//密码string name;//姓名double balance;//余额string identity_card;//身份证string unit;//单位string phone;//电话号码string address;//地址public:user()//不带参数的构造函数{id='0';mm='0';name='0';balance=0;identity_card='0';unit='0';phone='0';address='0';}user(string id1,string mm1,string name1,double balance1,string identity_card1,string unit1,string phone1,string address1) //带参数的构造函数id=id1;mm=mm1;name=name1;balance=balance1;identity_card=identity_card1;unit=unit1;phone=phone1;address=address1;}friend class yinhang;//声明yinhang类是user的友元类void save_money();//存钱函数void fetch_money();//取钱函数void show()//显示函数{system("cls");cout<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl<<endl<<en dl;cout<<" 姓名:"<<name<<endl;cout<<" 账号:"<<id<<endl;cout<<" 余额:"<<balance<<endl;cout<<" 身份证:"<<identity_card<<endl;cout<<" 单位:"<<unit<<endl;cout<<" 电话号码:"<<phone<<endl;cout<<" 地址:"<<address<<endl<<endl<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;}string get_id()//取得账号{return id;}string get_mm()// 取得密码{return mm;}int get_balance()//取得余额{return balance;}void add_money(double x)//通过公有成员函数访问私有成员{balance=x+balance;void dec_money(double x){balance=balance-x;}};void yinhang::save(){ofstream o("g:\\C++\\祁鹏涛\\银行账户信息.txt",ios::out);int n=0;for(n=0;n<amount;n++){o<<account[n]->id<<endl;//写入账号o<<account[n]->mm<<endl;o<<account[n]->name<<endl;o<<account[n]->balance<<endl;o<<account[n]->identity_card<<endl;o<<account[n]->unit<<endl;o<<account[n]->phone<<endl;o<<account[n]->address<<endl;}o.close();}void yinhang::load(){ifstream i("g:\\c++\\祁鹏涛\\银行账户信息.txt",ios::in);int n;for(n=0;n<amount;n++){i>>account[n]->id;//读取账号i>>account[n]->mm;i>>account[n]->name;i>>account[n]->balance;i>>account[n]->identity_card;i>>account[n]->unit;i>>account[n]->phone;i>>account[n]->address;}i.close();}void yinhang::set_account() //开户函数的定义{string id1;string mm1;string name1;double balance1;string identity_card1;string unit1;string phone1;string address1;cout<<"请输入开户人账号:";cin>>id1;int m=0;for(int i=0;i<amount;i++){if(id1==account[i]->get_id()){m=1;}}if(m){cout<<"本账号已经存在!"<<endl;return;}cout<<"请输入密码:";cin>>mm1;cout<<"请输入姓名:";cin>>name1;cout<<"请输入存入金额:";cin>>balance1;while(balance1<0){cout<<"请输入正确的数字!"<<endl;cout<<"请重新输入:";cin>>balance1;}cout<<"请输入开户人身份证:";cin>>identity_card1;cout<<"请输入工作单位:";cin>>unit1;cout<<"请输入电话号码:";cin>>phone1;cout<<"请输入地址:";cin>>address1;cout<<"开户成功!"<<endl;user *u=new user(id1,mm1,name1,balance1,identity_card1,unit1,phone1,address1); account[amount]=u;amount++;save();}void yinhang::del_account() //销户函数的定义{string id1;int i=0;int m=1;cout<<"请输入需要注销的银行卡号:";cin>>id1;while((i<amount)&&(m)) //从0开始进行依次检索,判断id1与其中的一个账号是否相等{if(id1==account[i]->get_id())m=0;elsei++;}if(m){cout<<" 该帐号不存在!"<<endl;return;}for(int j=i;j<amount;j++){account[j]=account[j+1];}account[amount-1]=NULL;amount=amount-1;cout<<"你的银行账户已经注销成功!"<<endl;save();}void yinhang::transfer_accounts(int x) //转账函数的定义{string id1;cout<<"请输入帐号:";cin>>id1;int m=1;int i=0;while((i<amount)&&(m)){if(id1==account[i]->get_id())m=0;elsei++;}if(m){cout<<"帐号不存在!"<<endl;return;}double b;cout<<"请输入你要转帐的金额:";cin>>b;while(b<=0){cout<<"请输入正确的数字!"<<endl;cout<<"请输入:";cin>>b;}if(account[x]->get_balance()<b)cout<<"对不起,金额不够!!"<<endl;else{account[x]->dec_money(b);account[i]->add_money(b);cout<<"转账成功!"<<endl;}return;}void yinhang::enter() //登录函数{string id1;cout<<"请输入银行账号:";cin>>id1;int m=1;int i=0;while((i<amount)&&(m)){if(id1==account[i]->get_id())m=0;elsei++;}if(m){cout<<"帐号不存在!"<<endl;return;cout<<"请输入密码:";string mm1;cin>>mm1;if(mm1!=account[i]->get_mm()) return;do{cout<<"登录成功,请选择下列操作:"<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl<<endl<<endl;cout<<" 1.查看账户信息"<<endl<<endl;cout<<" 2.取款"<<endl<<endl;cout<<" 3.存款"<<endl<<endl;cout<<" 4.转账"<<endl<<endl;cout<<" 5.退出本次登录"<<endl<<endl<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;int n;cout<<"请选择:";cin>>n;system("cls");switch(n){case 1: account[i]->show();system("pause");break;case 2: account[i]->fetch_money();save();system("pause");break;case 3:account[i]->save_money();save();system("pause");break;case 4:transfer_accounts(i);save();system("pause");break;case 5:return;}}while(1);}void yinhang::exit_yinhang() //退出系统{cout<<"欢迎下次光临!"<<endl;exit(0);}void user::save_money() //存款函数{double m;cout<<"请输入存款金额:";cin>>m;while(m<=0){cout<<"请输入正确的数字!"<<endl;cin>>m;balance=balance+m;cout<<"存款成功!"<<endl;}void user::fetch_money() //取款函数{double m;cout<<"请输入取款金额:"<<endl ;cin>>m;while(m<=0){cout<<"请输入正确的数字!"<<endl;cin>>m;}if(balance<m)cout<<"对不起,你的余额已不足!"<<endl;else{balance=balance-m;cout<<"取款成功!"<<endl;}}void yinhang::menu(){do{load();cout<<endl;cout<<" 欢迎光临"<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl<<endl;cout<<" 1.开户"<<endl;cout<<" 2.登录"<<endl;cout<<" 3.注销"<<endl;cout<<" 4.退出"<<endl<<endl;cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"<<endl;int n;cout<<"请选择:";cin>>n;system("cls");switch(n){case 1:set_account();system("pause");//开户break;case 2:enter();system("pause");//登录break;case 3:del_account();system("pause");//注销break;case 4:exit_yinhang();system("pause");//退出break;}}while(1);}void main(){yinhang yh;yh.menu();}。