《面向对象程序设计》课程设计报告题目:银行ATM自动取款机系统专业:计算机科学与技术班级:1103学号:1030070115姓名:黄永泉指导教师:甘秋云完成日期:2012年6月13日《面向对象程序设计》课程设计一、系统中所使用的数据对象及说明1、自动取款机bank类属性属性名称类型描述idcardstring银行卡号namestring储户mmistring密码moneyint金额numint序号C[5]Consumer(组合)储户类方法方法名称功能set设置银行储户信息menu自动取款机界面菜单2、储户类consumer属性属性名称类型描述chuhustring储户icstring卡号mimastring密码jineint金额yueint余额方法方法名称功能Set2设置储户信息xiugai修改密码chaxun查询余额qukuan取款zhuanzhang转账getch取储户名getmm取密码3、各个类之间的关系二、系统功能结构及相关算法描述1、系统功能结构银行自动取款机bank(接受储户信息,以便传给储户)储户信息consumer(接受bank传来的信息,进行操作)2、相关算法流程图(1)设子储户信息流程(2)修改密码流程储户信息类设置储户信息修改密码查询余额取款取密码取储户名转账银行自动取款机菜单界面设置储户信息修改密码查询余额取款转账取储户名从bank银行类中输入储户信息添加到consumer储户类中(3)查询余额流程输入原密码输入新密码与原先存储密码比对YN退出系统(一次机会)取代原密码储户密码比对输出储户余额信息退出系统(一次机会)YN输入储户信息(4)取款流程YN退出系统(一次机会)余额是否比取款金额大YN取出款储密码比对是否重新输入金额Y退出系统N输入储户信息(5)转账流程三、程序源码#includeiostream#includecstring#includeiomanip#includestringusingnamespacestd;classconsumer{public:voidset2(stringc,stringch,stringmm,inty){ic=c;chuhu=ch;mima=mm;yue=y;储户密码比对退出系统(一次机会)NY余额是否比取款金额大是否重新输入金额NYN输入储户信息转账成功退出系统}intxiugai();//修改密码voidchaxun();//查询余额intqukuan();//取款intzhuanzhang();//转账stringgetch();//取用户stringgetmm();//取密码private:stringchuhu;//储户stringic;//卡号stringmima;//密码intjine;//金额intyue;//账户余额};classbank{public:consumerc[5];voidset(inti,stringid,stringn,stringma,intm){num=i;idcard=id;name=n;mmi=ma;money=m;c[i].set2(id,n,ma,m);};voidmenu();private:stringidcard,name,mmi;intmoney,num;};voidbank::menu()//菜单界面{cout````````````````````````````````````endlendl;cout^(oo)^^(oo)^^(oo)^endlendl;cout***^.^欢迎进入国脉15自动取款机^.^***endlendl;cout^(oo)^^(oo)^^(oo)^endlendl;cout`````````````````````````````````````endlendl;cout-*-*-*-*-*-*请输入登陆账号-*-*-*-*-*-*endl;stringch;cinch;inti=0;while((ch!=c[i].getch())&&(i5))//判断该储户是否存在i++;if(i=5){coutendlendl;cout!.!o.O!.!endl;cout~~~该账户不存在~~~endl;cout-_-#?_?-_-#endl;exit(0);//结束程序}coutendl请输入登陆密码:;stringmi;cinmi;coutendlendl;if(mi!=c[i].getmm()){coutendlendl;cout#############################endl;cout你输入的密码有误,禁止继续使用endl;cout#############################endl;exit(0);//结束程序}do{coutendl;cout请选择操作功能:endl;cout1.修改密码功能;2.余额查询功能;3.取款功能;4.转账功能endlendl;intf;cinf;switch(f){case1:c[i].xiugai();break;case2:c[i].chaxun();break;case3:c[i].qukuan();break;case4:c[i].zhuanzhang();break;}coutendlendl*******************endl;cout是否继续使用~~^_^~~endl1.继续;0.结束endl;cout*******************endlendl;cout请选择endl;inti;cini;}while(1);cout*******谢谢^^^^^^^使用********endl;cout***^.^请取卡,欢迎下次使用^.^***endl;}stringconsumer::getch(){returnchuhu;}stringconsumer::getmm(){returnmima;}intconsumer::xiugai(){cout**你当前进入的是修改密码功能**endl;coutendlendl;cout**请输入原口令:;stringmi;//密码cinmi;if(mi!=getmm()){coutendlendl!!!!!!!!!!!!!!!!!!!!!endl;cout**你输入的密码有误**endl;cout**欢迎下次使用**endl;cout!!!!!!!!!!!!!!!!!!!!!endlendl;exit(0);//退出程序}cout^(oo)^^(oo)^^(oo)^endlendl;cout**请输入修改后密码:;cinmima;cout**修改密码成功**endl;cout**你先口令是:mimaendl;cout^(oo)^^(oo)^^(oo)^endlendl;return1;}voidconsumer::chaxun(){coutendlendl*************************endlendl;cout**你当前进入的是查询余额功能**endl;cout**你的余额为:yueendlendl;}intconsumer::qukuan(){coutendlendl***************************endlendl;cout**你当前进入的是取款功能**endlendl;cout**请输入取款金额:;cinjine;if(jineyue){coutendl取款成功endl;yue=yue-jine;return1;}else{coutendlendl!.!!.!!.!endlendl;cout**余额不足,请重新输入**endlendl;cout!.!!.!!.!endlendl;return0;}}intconsumer::zhuanzhang(){coutendlendl^(oo)^^(oo)^^(oo)^endlendl;cout**你当前进入的是转账功能界面**endlendl;cout请输入要转账到的储户:;stringch;cinch;//转账到的储户inti=0;consumerc[5];while((ch!=c[i].getch())&&(i5))//判断该储户是否存在i++;if(i5){coutendl请输入转账金额:;cinjine;c[i].yue=c[i].yue+jine;cout^(oo)^^(oo)^^(oo)^endlendl;cout转账成功endlendl;cout^(oo)^^(oo)^^(oo)^endlendl;return1;}else{coutendlendl!.!!.!!.!endlendl;cout该储户不存在endlendl;cout!.!!.!!.!endlendl;cout1:进行重新输入;2:进行退出该界面endl;ints;cins;if(s==1){cout^(oo)^^(oo)^^(oo)^endlendl;zhuanzhang();cout^(oo)^^(oo)^^(oo)^endlendl;}elseif(s==2)return1;//退出}}intmain(){bankbk;bk.set(0,1000,fhp,123456,100000);bk.set(1,1001,lzh,111111,200000);bk.set(2,1002,ljj,222222,300000);bk.set(3,1003,zhu,333333,40000);bk.set(4,1004,hih,444444,50000);bk.menu();return0;}四、系统运行结果(截图)1、主菜单界面2、登陆操作3、修改密码4、余额查询功能5、取款6.转账五、课程设计总结