ATM自动取款机模拟程序
2.3,ATM自动取款机模拟程序2.
3.1总体设计:流程图
2.3.2详细设计:
登陆系统主界面
开户业务模板:void openAccount()。
主要功能在于新开账户(也可为下面转账系统服务等做铺。)且储存信息。经提升,密码已可以包含字符。用户可根据提示,一步步完成操作。
主要代码:
void openAccount()//开户函数
{
system("cls");
cout<<"\t************************************\n"< cout<<"\t* 开户业务*\n"< cout<<"\t************************************\n"< cout<<"\t欢迎使用开户业务,请按照提示操作!\n"< cout<<"\n"< cout<<"\t\t请输入你的用户名:"; cin>>user[st].n; cout<<"\t\t请输入你的卡号:"; int k1;//k1表示新用户输入的卡号 cin>>k1; int a=-1;//用来做标示 for(int i=0;i { if(user[i].k==k1) { a++; } } if(a==-1) { user[st].k=k1;//将k1的数值赋值给user[st].k保存起来 cout<<"\t\t请输入你的性别:"; char xb[5]; cin>>xb; strcpy(user[st].sex,xb); cout<<"\t\t请输入密码:"; char m2[20]; cin>>m2; strcpy(user[st].mm,m2);//保存用户输入可以包含字符的密码 cout<<"\t\t请输入你的开户金额:"; float km; cin>>km;//km表示用户的开户金额 user[st].je=km;//je将开户时的金额赋值给user[st].je保存 if(km<10) { cout<<"\t\t你输入的金额小于10元或输入有误!\n"; } else { cout<<"\t\t恭喜你,开户成功!\n"< cout<<"\t\t你的用户名为:"< cout<<"\t\t你的卡号为:"< cout<<"\t\t你的当前余额为:"< cout<<"\n"< st++;//用于统计新开用户后现有的用户数 } } else { cout<<"\t\t你输入的卡号已存在!请核实!\n"< } } 缴费业务模板: 主要提供给用户缴费服务 关键代码: cout<<"\t\t请输入你要缴费的金额:"; float j1;//j1表示用户存款时存取的金额 cin>>j1; user[a].je=user[a].je+j1; cout<<"\t\t恭喜你,缴费成功!当前余额为:"< 主要功能用于用户的提款 cout<<"\t\t请输入你要取出的金额:"; float j1;//j1表示用户粗款时存取的金额 cin>>j1; if(j1>user[a].je) { cout<<"\t\t\a\a\a你输入账户余额仅为:"< } else { user[a].je=user[a].je-j1; cout<<"\t\t取款成功!当前余额为:"< 查询余额业务模板: 主要提供用户余额的查询服务 cout<<"\t\t当前余额为:"< 查询个人信息业务模板: 主要提供用户个人信息的模板 cout<<"\t\t\t用户名:"< cout<<"\t\t\t性别:"< cout<<"\t\t\t卡号:"< cout<<"\t\t\t当前余额:"< 转账业务模板: 提供用户转取个人金额服务的模板 关键代码: cout<<"\t\t请输入你要转入的用户的账号:"; int m2,b=-1;//b用来标示 cin>>m2; for(int i=0;i { if(user[i].k==m2) { b=i; } } Array if(b!=-1) { cout<<"\t\t你要转入用户的信息:\n"< cout<<"\t\t姓名:"< cout<<"\t\t性别:"< cout<<"\t\t\a是否继续??继续请按任意键"< char n; n=getch(); cout<<"\n\t\t请输入你要转取的金额:"; float j1;//j1表示用户存款时存取的金额 cin>>j1; if(j1>user[a].je) { cout<<"\t\t你的账户余额不足,不能进行转账!"< } else { user[a].je=user[a].je-j1; cout<<"\t\t\a转账成功!当前你账户余额为:"< } 对卡服务模板: 主要提供用户操作完毕后退卡的服务 主要代码: cout<<"\t\t按Enter键返回主菜单!\n"< getchar(); system("cls"); 代码: 4.3 ATM自动取款机模拟程序(面向对象) #include #include #include class ATM { public: char name[10];//保存用户姓名 long cardID;//保存卡号 long psw;//密码 ATM() { cardID=123123; psw=123; money=100; } void openAccount()//开户函数 { system("cls"); cout<<"\t************************************\n"< cout<<"\t* 开户业务*\n"< cout<<"\t************************************\n"< cout<<"\t欢迎使用开户业务,请按照提示操作!\n"< cout<<"\n"< cout<<"\t\t请输入您的姓名:"< cin>>name; cout<<"\t\t请输入您的卡号:"< cin>>cardID; cout<<"\t\t请输入您的密码:"< cin>>psw; cout<<"\t\t请输入您的预存金额:"< cin>>money; cout<<"\t\t恭喜您,开户成功!\n"< } void saveMoney()//缴费 { system("cls"); cout<<"\t************************************\n"< cout<<"\t* 存款业务*\n"< cout<<"\t************************************\n"< cout<<"\t欢迎使用存款业务,请按照提示操作!\n"< cout<<"\n"< long cid; long psw1; int money1; cout<<"\t\t请输入您的卡号:"; cin>>cid; cout<<"\t\t请输入您的密码:"; cin>>psw1; if(cid==cardID &&psw1==psw) { cout<<"\t\t请输入您的存款金额:"; cin>>money1; money=money+money1; cout<<"\t\t取款成功,卡上余额为:"< } else { cout<<"\t\t您输入的卡号或密码有误!"< } } void takeMoney()//取款 { system("cls"); cout<<"\t************************************\n"< cout<<"\t* 取款业务*\n"< cout<<"\t************************************\n"< cout<<"\t欢迎使用取款业务,请按照提示操作!\n"< cout<<"\n"< long cid; long psw1; int money1; cout<<"\t\t请输入您的卡号:"; cin>>cid; cout<<"\t\t请输入您的密码:"; cin>>psw1; if(cid==cardID && psw1==psw) { cout<<"\t\t请输入您取款的金额:"; cin>>money1; money=money-money1; cout<<"\t\t取款成功,您卡上余额为:"< } else { cout<<"\t\t温馨提示:您的卡号或密码错误,注意密码尝试三次后将被吞卡!\n"< } } void query()//查询余额 { system("cls"); cout<<"\t************************************\n"< cout<<"\t* 查询余额业务*\n"< cout<<"\t************************************\n"< cout<<"\t欢迎使用查询余额业务,请按照提示操作!\n"< cout<<"\n"< long cid; long psw1; cout<<"\t\t请输入您的卡号:"; cin>>cid; cout<<"\t\t请输入您的密码:"; cin>>psw1; if(cid==cardID && psw1==psw) { cout<<"\t\t卡上余额为:"< } else { cout<<"\t\t您的卡号或密码错误!\n"; } } void transfer()//转账 { system("cls"); cout<<"\t************************************\n"< cout<<"\t* 转账业务*\n"< cout<<"\t************************************\n"< cout<<"\t欢迎使用转账业务,请按照提示操作!\n"< cout<<"\n"< long cid; long bcid; long psw1; int money1; cout<<"\t\t请输入您的卡号:"< cin>>cid; cout<<"\t\t请输入您的密码:"< cin>>psw1; if(cid==cardID && psw1==psw) { cout<<"\t\t请输入您要转账的卡号:"< cin>>bcid; cout<<"\t\t请输入您要转账的金额:"< cin>>money1; money=money-money1; cout<<"\t\t转账成功!您卡上余额为:"< } else { cout<<"\t\t您的卡号或者密码错误!"< } }int print1() { return cardID; } int print2() { return psw; } private: int number; int password; int money; }; void main() { ATM per; int i=0,n,psw; int cardID; cout<<"\t*************************************************\n"< cout<<"\t* ICBC *\n"< cout<<"\t* 欢迎进入中国工商银行*\n"< cout<<"\t* ATM自助服务系统*\n"< cout<<"\t*************************************************\n"< cout<<"\n"< cout<<"请输入您的卡号:"; cin>>cardID; cout<<"请输入您的密码:"; cin>>psw; for(;;) { if(cardID==per.print1 () &&psw==per.print2 ()) { cout<<"请选择您要办理的手续:\n"; cout<<"1.开户\n"; cout<<"2.缴费\n"; cout<<"3.取款\n"; cout<<"4.查询\n"; cout<<"5.转账\n"; cout<<"6.退出\n"; cout<<"请选择你要办理的业务:"; cin>>n; if(n==6) break; switch(n) { case 1: void openAccount();//开户 break; case 2: void saveMoney();//缴费 break; case 3: void takeMoney();//取款 break; case 4: void query();//查询余额 break; case 5: void transfer();//转账 default: cout<<"你的输入有误,请输入1--7之间的数:\n"; continue; } } else { for(i=1;i<3;i++) { cout<<"密码或账号错误,请重新输入"< cout<<"请输入您的卡号:"; cin>>cardID; cout<<"请输入您的密码:"; cin>>psw; if(cardID==per.print1 () &&psw==per.print2 ()) break; else continue; } if(i==3) { cout<<"您的密码尝试次数已达到上限,卡已被系统吞吃。"< break; } } } } 4.4 ATM自动取款机模拟程序(面向过程) #include #include #include #include #include const int N=100;//n=100表示最大用户容量为100 int st=5;//t表示起始用户 struct yh//yh表示用户 { char n[20];//n用户姓名 char sex[5];//sex用户性别 int k;//k卡号 char mm[20];//mm密码 float je;//je表示预存金额 }user[N]={ {"小明","男",1001,"110",10.0}, {"小强","男",1002,"110",10.0}, {"小辉","男",1003,"110",10.0}, {"小刘","女",1004,"110",10.0}, {"大山","男",1005,"110",10.0} }; void openAccount();//开户 void saveMoney();//缴费 void takeMoney();//取款 void query();//查询余额 void information();//查询个人信息 void transfer();//转账 void stop();//退出系统 void main() { int s;//用于接收用户输入的选项数据 do { cout<<"\t*************************************************\n"< cout<<"\t\t请根据提示办理业务。\n"< cout<<"\t\t\t1、开户;\n"< cout<<"\t\t\t2、缴费;\n"< cout<<"\t\t\t3、取款;\n"< cout<<"\t\t\t4、查询余额;\n"< cout<<"\t\t\t5、查询个人信息;\n"< cout<<"\t\t\t6、转账;\n"< cout<<"\t\t\t7、退出;\n"< cout<<"\t\t请输入你要操作的业务序号:"; cin>>s; if(s==7)break; switch(s) { case 1:openAccount();stop();break; case 2:saveMoney();stop();break; case 3:takeMoney();stop();break; case 4:query();stop();break; case 5:information();stop();break; case 6:transfer();stop();break; default : cout<<"\t\t你的输入有误,请输入1--6之间的数!\n"< }system("cls"); }while(1); } void openAccount()//开户函数 { system("cls"); cout<<"\t************************************\n"< cout<<"\t* 开户业务*\n"< cout<<"\t************************************\n"< cout<<"\t欢迎使用开户业务,请按照提示操作!\n"< cout<<"\n"< cout<<"\t\t请输入你的用户名:"; cin>>user[st].n; cout<<"\t\t请输入你的卡号:"; int k1;//k1表示新用户输入的卡号 cin>>k1; int a=-1;//用来做标示 for(int i=0;i { if(user[i].k==k1) { a++; } } if(a==-1) { user[st].k=k1;//将k1的数值赋值给user[st].k保存起来 cout<<"\t\t请输入你的性别:"; char xb[5]; cin>>xb; strcpy(user[st].sex,xb); cout<<"\t\t请输入密码:"; char m2[20]; cin>>m2; strcpy(user[st].mm,m2);//保存用户输入可以包含字符的密码 cout<<"\t\t请输入你的开户金额:"; float km; cin>>km;//km表示用户的开户金额 user[st].je=km;//je将开户时的金额赋值给user[st].je保存 if(km<10) { cout<<"\t\t你输入的金额小于10元或输入有误!\n"; } else { cout<<"\t\t恭喜你,开户成功!\n"< cout<<"\t\t你的用户名为:"< cout<<"\t\t你的卡号为:"< cout<<"\t\t你的当前余额为:"< cout<<"\n"< st++;//用于统计新开用户后现有的用户数 } } else { cout<<"\t\t你输入的卡号已存在!请核实!\n"< } } void saveMoney()//缴费 { system("cls"); cout<<"\t************************************\n"< cout<<"\t\t请输入你的卡号:"; int k1; cin>>k1; int a=-1;//a=1,用来标示 for(int i=0;i { if(user[i].k==k1) { a=i; } } if(a!=-1) { cout<<"\t\t请输入你的密码:"; char m1[20];//m1表示存款时用户输入的密码 cin>>m1; int b=strcmp(user[a].mm,m1); if(b==0)//strcmp()用于字符串的比较 { cout<<"\t\t请输入你要存取的金额:"; float j1;//j1表示用户粗款时存取的金额 cin>>j1; user[a].je=user[a].je+j1; cout<<"\t\t恭喜你,存款成功!当前余额为:"< { cout<<"\t\t你输入的密码有误!\n"< } }else { cout<<"\t\t你输入的卡号不存在!\n"< } } void takeMoney()//取款 { system("cls"); cout<<"\t************************************\n"< cout<<"\t************************************\n"< cout<<"\n"< cout<<"\t\t请输入你的卡号:"; int k1; cin>>k1; int a=-1;//a=1,用来标示 for(int i=0;i { if(user[i].k==k1) { a=i; } } if(a!=-1) { cout<<"\t\t请输入你的密码:"; char m1[20];//m1表示存款时用户输入的密码 cin>>m1; int b=strcmp(user[a].mm,m1); if(b==0)//strcmp()用于字符串的比较 { cout<<"\t\t请输入你要取出的金额:"; float j1;//j1表示用户粗款时存取的金额 cin>>j1; if(j1>user[a].je) { cout<<"\t\t\a\a\a你输入账户余额仅为:"< } else { user[a].je=user[a].je-j1; cout<<"\t\t取款成功!当前余额为:"< } } else { cout<<"\t你输入的密码有误!\n"< } } else { cout<<"\t你输入的卡号不存在!\n"< } } void query()//查询余额 { system("cls"); cout<<"\t************************************\n"< cout<<"\t\t请输入你的卡号:"; int k1; cin>>k1; int a=-1;//a=1,用来标示 for(int i=0;i { if(user[i].k==k1) { a=i; } } if(a!=-1) { cout<<"\t\t请输入你的密码:"; char m1[20];//m1表示存款时用户输入的密码 cin>>m1; int b=strcmp(user[a].mm,m1); if(b==0)//strcmp()用于字符串的比较 { cout<<"\t\t当前余额为:"< } else { cout<<"\t\t你输入的密码有误!\n"< } } else { cout<<"\t\t你输入的卡号不存在!\n"< } } void information()//表示查询个人信息 { system("cls"); cout<<"\t************************************\n"< cout<<"\t* 查询个人信息业务*\n"< cout<<"\t************************************\n"< cout<<"\t欢迎使用查询个人信息业务,请按照提示操作!\n"< cout<<"\t\t请输入你的卡号:"< int k1; cin>>k1; int a=-1;//a=1,用来标示 for(int i=0;i { if(user[i].k==k1) { a=i; } } if(a!=-1) { cout<<"\t\t请输入你的密码:"; char m1[20];//m1表示存款时用户输入的密码 cin>>m1; int b=strcmp(user[a].mm,m1); if(b==0)//strcmp()用于字符串的比较 { cout<<"\t\t你的个人信息为:\n"< cout<<"\t\t\t用户名:"< cout<<"\t\t\t性别:"<