还剩31页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《面向对象程序设计》课程设计报告学生姓名:学号学院:班级:题目:银行账户管理系统指导教师职称:2015年12月13日目录TOC\o1-3\h\z\u目录I
一、选题背景
11.1社会背景
11.2功能需求1
二、算法设计
12.1总体设计
12.2详细设计2基本功能
2.1用户功能
2.2___功能
32.
2.2基本功能模块图5
三、程序及功能说明
63.1主要的程序及基本功能实现……6
四、结果分析
144.1实验结果与分析……14
五、总结19
六、课程设计心得体会20____21源程序22
一、选题背景
1.1社会背景随着计算机技术飞速发展及其应用领域的扩大特别是计算机网络和电子商务的发展极大地改变了商业银行传统的经营和管理模式能够为客户提供方便、快捷、安全的服务也能有效降低银行的运营成本这是银行管理系统追求的目标目前对于现代化银行运营的要求是客户可以实现随时随地的业务交易银行职员可以进行高效合理的工作管理实现银行业务电子化如今随着银行信誉的不断提高,人们对银行储蓄愈加依赖,因此银行需要一个更加完善的处理系统,来满足顾客以及银行管理人员的使用
1.2功能需求通过银行管理系统一方面加快了客户的服务,提高的服务质量,另一方面减轻了员工的工作复杂度,提高了工作效益,实现银行帐户管理的系统化、规范化、自动化和智能化系统具体实现的目标如下
(1)键盘操作,快速响应
(2)对用户输入的数据,系统会进行严格的数据检验,尽量避免了人为的错误
(3)实现银行开户、取款、存款、查询、转账、修改__等功能
(4)系统运行稳定,可靠
(5)系统应人性化,符合用户操作习惯
(6)使用控制台进行操作
二、算法设计
2.1总体分析由客户端程序和服务器端程序构成,客户端运行在面向个人业务的银行柜台的电脑上,通过网络通讯向服务器发送请求并接受服务器端程序的应达显示处理的结果服务器端处理客户端的各种业务请求主要实现银行开户、取款、存款、查询、修改__等功能本程序主要实现银行开户、取款、存款、查询、修改__等功能其中包括用户功能和___功能进入程序后首先选择身份,身份确定后再进行相关的操作
(1)用户功能用户功能包括登录模块、主菜单模块、存款模块、取款模块、查询模块以及退出功能
(2)___功能___功能包括添加用户功能、删除用户功能、查询、修改所有用户基本信息功能、打印用户清单功能以及退出功能
2.2详细设计基本功能用户功能
(1)用户登录功能输入用户名和__,验证正确后进入系统表1用户登录输入处理输出
1、用户名
2、__
1、__有三次输入机会
2、验证用户名及__
3、用户名及__正确后进入主菜单界面如果用户名或者__不正确,给用户一个友好提示并提示还有几次机会
(2)主菜单功能输出主菜单(存款、取款、查询、退出)供用户选择,然后根据用户的输入选择进入不同的系统功能表2主菜单功能输入处理输出
1、菜单项编号
1、验证用户输入的菜单项编号是否正确(0~3之间);
2、根据用户的选择进入不同的功能界面如果用户输入的菜单项编号不正确,给用户一个友好提示,并要求用户重新输入
(3)存款功能用户在输入账号和__正确后可选择存款功能,需输入存款金额,金额要大于0表3输入存款的基本信息输入处理输出
1、账户ID
2、存款金额
1、输入的所有信息必填
2、验证账户ID
3、存款金额大于
0.00元如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入
(4)取款功能用户在输入账号和__正确后可选择取款功能,需输入取款金额,金额要大于0小于账户余额表4输入取款的基本信息输入处理输出1账户ID、2__3取款金额
1、验证账户ID
2、验证用户__
3、取款金额大于
0.00元,小于用户账户余额如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入
(5)查询功能表5输入查询基本信息输入处理输出
1、账户ID
2、__
1、输入的所有信息必填
2、验证账户ID;
3、验证__;如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入
(6)退出功能给客户退出提示,客户确认后,退出程序
(1)___添加用户功输入用户的基本信息,添加账户表6添加用户功能输入处理输出
1、用户姓名
2、__
3、开户金额
1、开户的所有信息必填
2、用户姓名
3、__各项信息完整,提示添加用户成功
(2)___删除用户功能输入用户账号表7删除用户功能输入处理输出
1、用户姓名
1、开户的所有信息删除成功
(3)查询顾客功能___可以查询所有用户的基本信息表8查询用户功能输入处理输出
1、用户姓名
2、__
3、账号
1、开户的所有信息必填
2、用户姓名
3、__用户各项信息
(4)修改顾客功能___可以修改所有用户的基本信表9修改用户功能输入处理输出
1、用户姓名
2、__
3、账号
1、开户的所有信息必填
2、用户姓名
3、__修改成功,用户各项信息
(5)打印清单功能___可以查询用户基本信息,然后进行打印表10查询所有用户功能输入处理输出
1、用户姓名
2、__
1、用户姓名
2、__所有用户各项信息
(6)退出功能给___退出提示,___确认后,退出程序
2.
2.2基本功能模块图
三、程序及功能说明
3.1主要的程序及基本功能实现在程序中定义了四个类,分别为classbankzh{},classCust{},classAdmin{},classKB{}
(1)第一个菜单选项创建bankzh类中的方法只有__in()创建第一个菜单选项,即选择登录身份按1是选择___,按2是选择用户,按3是退出publicclassbankzh{publicstaticvoid__inString[]args{Admina=newAdmin;whiletrue{System.out.println*******************;System.out.println*****___\t1*****;System.out.println*****用户\t2*****;System.out.println*****退出\t3*****;System.out.println*******************;intc=KB.scanInt;switchc{case1:{a.run;}break;case2:{System.out.println请输入您的账号;intID=KB.scanInt;inti=0;fori=0;ia.v.size;i++{Custtemp=Custa.v.geti;iftemp.ID==ID{temp.runID;break;}}ifi==a.v.size{System.out.println用户不存在;}System.out.println欢迎下次光临;}break;case3:return;}}}}
(2)用户的菜单建立.Cust类中定义的方法有checkPWD,getMintn,s__eMintn,runCustc[],printMenu,1)定义的成员变量有:Stringname;intID;intpassword;doublemoney;一个Cust构造函数CustStringnameintIDintpassworddoublemoney{this.name=name;this.ID=ID;this.password=password;this.money=money;}2)第二个菜单选项,用户的菜单模块用户在进行账户和__输入后,正确则进入菜单功能项,用户的功能有如下,取款、存款、查询、退出功能staticvoidprintMenu{}3)用户可以取款,需输入顾客的账号、__,取款时,系统会给于相应提示System.out.println请输入取款金额;intn1=KB.scan.nextInt;this.getMn1;System.out.println取款成功;4)用户可以存款,需输入顾客的账号、__,存款时,系统会给于相应提示System.out.println请输入存款金额;intn=KB.scan.nextInt;this.s__eMn;System.out.println存款成功;5)用户可以查询,需输入顾客的账号、__,系统会有提示信息,告知用户voidprint{System.out.printlnname:\t+this.name;System.out.printlnID:\t+this.ID;System.out.printlnmoney:\t+this.money;}
(3)___的功能建立Admin类中有Admin,add,delete,printAll,update,run方法1)___的功能有添加顾客,删除顾客,查询顾客,修改顾客,打印清单以及退出功能,用switch语句来进行选择,按1选择添加顾客,2选择删除顾客,3选择查询顾客,4选择打印清单,5选择修改顾客,0选择退出退出是并不是退出系统,而是退出___功能,再次进行确认,如果没有人继续登录则进行选择退出程序voidrun{booleanflag=true;whileflag{System.out.println*****************;System.out.println**添加顾客\t1**;System.out.println**删除顾客\t2**;System.out.println**查询顾客\t3**;System.out.println**打印清单\t4**;System.out.println**修改顾客\t5**;System.out.println**退出\t0**;System.out.println*****************;intcmd=KB.scan.nextInt;switchcmd{case1:{this.add;}break;case2:{this.delete;}break;case3:{this.print;}break;case4:{this.printAll;}break;case5:{this.update;}break;case0:{flag=false;}break;}}2)___添加顾客所需填入的顾客基本信息有顾客姓名,账号,__以及开户金额voidadd{System.out.println请输入姓名;Stringname=KB.scanString;System.out.println请输入账号;intID=KB.scanInt;System.out.println请输入__;intpassword=KB.scanInt;System.out.println请输入开户金额;doublemoney=KB.scanDouble;Custtemp=newCustnameIDpasswordmoney;v.addtemp;}3)___可以查询顾客的基本信息,需输入顾客的账号,如果没有该顾客,系统会有提示信息,告诉___没有该顾客voidprint{System.out.println请输入要查询顾客的账号;intID=KB.scanInt;inti=0;fori=0;iv.size;i++{Custtemp=Custv.geti;iftemp.ID==ID{temp.print;break;}}ifi==v.size{System.out.println没有该顾客;}}4)___可以删除顾客的基本信息,需输入顾客的账号,如果没有该顾客,系统会有提示信息,告诉___没有该顾客若删除成功,系统会给于提示voiddelete{System.out.println请输入要删除顾客的账号;intID=KB.scanInt;inti=0;fori=0;iv.size;i++{Custtemp=Custv.geti;iftemp.ID==ID{temp.print;temp.name=0;temp.ID=0;temp.password=0;temp.money=0;System.out.println删除成功;break;}}ifi==v.size{System.out.println没有该顾客;}}5)___可以修改顾客的基本信息,需输入顾客的账号,如果没有该顾客,系统会有提示信息,告诉___没有该顾客voidupdate{System.out.println请输入要修改顾客的账号;intID=KB.scanInt;inti=0;fori=0;iv.size;i++{Custtemp=Custv.geti;iftemp.ID==ID{System.out.println请输入新姓名;temp.name=KB.scanString;System.out.println请输入新__;temp.password=KB.scanInt;System.out.println请输入新存款金额;temp.money=KB.scanDouble;System.out.println修改成功;break;}}ifi==v.size{System.out.println没有该顾客;}}6)___可以查询所有顾客的基本信息voidprintAll{forinti=0;iv.size;i++{Custtemp=Custv.geti;temp.print;}}
(3)KB类中有staticintscanInt,staticStringscanString,staticDoublescanDouble方法为了使程序更简洁,定义了KB类classKB{staticScannerscan=newScannerSystem.in;staticintscanInt{returnscan.nextInt;}staticStringscanString{returnscan.next;}staticDoublescanDouble{returnscan.nextDouble;}}
四、结果分析
4.1实验结果与分析
(1)运行程序,会出现选择界面,登陆者首先确认身份1)选择___后出现___菜单模块,___的功能有添加用户,删除用户,查询用户,打印清单,修改用户和退出功能___添加用户时要填写账户的基本信息如图所示实验测试添加用户,删除用户,查询用户,打印清单,修改用户和退出功能
(2)用户进入菜单选项选择用户选项时,用户要输入账号和__,全部正确后,进入主菜单模块,用户可进行选择,用户的功能有存款、取款、查询、退出功能用户在进行存取款时,存款金额要大于0,取款金额要大于0小于账户余额用户在操作完毕后退出,用户进行确认后,退出程序如图所示实验测试存款、取款、查询、退出功能
(3)用户查看基本资料由主菜单可以看出用户按1为取款、2为存款、3为查询用户基本资料、0为退出如图所示,为用户按3键后查询到账户资料的界面,可看出用户名为r,用户ID为111,用户的余额为
46333.0元
(4)程序界面友好在___、用户系统中,在相应程序功能模块中,在用户相应操作中都给于相应操作提示,方便用户使用例如在用户登录用户系统时,输入__,有三次输入机会,并给于相应提示,返回主菜单
五、总结本程序主要实现银行开户、取款、存款、查询、修改等功能其中包括用户功能和___功能两部分进入程序后首先选择身份,身份确定后再进行相关的操作
(1)用户功能用户功能包括登录模块、主菜单模块、存款模块、取款模块、查询模块以及退出功能
(2)___功能___功能包括添加用户功能、删除用户功能、修改用户功能、查询用户功能、查询所有用户基本信息功能以及退出功能为实现银行开户、取款、存款、查询、修改等基本功能,在程序中定义了四个类,分别为classbankzh{},classCust{},classAdmin{},classKB{},bankzh类中的__in()方法中创建第一个菜单选项,即选择登录身份Cust类中定义的方法有checkPWD,getMintn,s__eMintn,runCustc[],printMenu,定义的成员变量有:Stringname;intID;intpassword;doublemoney;一个Cust构造函数以此来实现在用户的菜单模块中,用户在进行账户和__输入后,正确后进入菜单功能项,用户的功能取款、存款、查询、退出基本功能Admin类中有Admin,add,delete,printAll,update,run方法来实现___的功能添加顾客,删除顾客,查询顾客,修改顾客,打印清单以及退出功能,___用switch语句来进行选择,按1选择添加顾客,2选择删除顾客,3选择查询顾客,4选择打印清单,5选择修改顾客,0选择退出退出是并不是退出系统,而是退出___功能,再次进行确认,如果没有人继续登录则进行选择退出程序KB类中有staticintscanInt,staticStringscanString,staticDoublescanDouble方法KB类定义,解决程序冗余问题,使程序变得更简洁,易懂
六、课程设计心得体会通过在本次课程设计中,让我们学会了如何去完成一个任务,去解决一个问题当遇到问题要冷静,想办法一点一点的排除障碍,到最后获取成功,这应该就是学习的乐趣有时候不懂的就需要问别人了,虚心请教,从别人的身上真的能学到自己没有的东西,每一次的挫折都会使我更接近成功还有学会了在工作中与别人的合作与交流这次课程设计在老师和同学那里学到了很多东西,使自己在处理问题方面有了很大的提高课程设计有不少不足之处,有些问题没得到理想解决课程设计中需要有扎实的理论基本知识,操作起来才顺心应手,我们这时才明白什么是“书到用时方恨少”在短暂的实训过程中,让我们深深__到自己在实际运用中专业知识的匮乏还需深入学习____
[1]曲朝阳郭晓利王晓慧孙鸿飞.C程序设计第三版.北京:清华大学出版社2005
[2]陈国君陈锡祯.J__a2程序设计基础[M].北京:清华大学出版社
[3]袁海燕.J__a实用程序设计100例[M].北京:人民邮电出版社
[4]朱站立、沈伟.J__a程序设计实用教程[M].电子工业出版社源程序packagebankzh;importimportpublicclassbankzh{publicstaticvoid__inString[]args{Admina=newAdmin;whiletrue{System.out.println*******************;System.out.println*****___\t1*****;System.out.println*****用户\t2*****;System.out.println*****退出\t3*****;System.out.println*******************;intc=KB.scanInt;switchc{case1:{a.run;}break;case2:{System.out.println请输入您的账号;intID=KB.scanInt;inti=0;fori=0;ia.v.size;i++{Custtemp=Custa.v.geti;iftemp.ID==ID{//temp.print;temp.runID;//Custb=Cust;break;}}ifi==a.v.size{System.out.println用户不存在;}System.out.println欢迎下次光临;}break;case3:return;}}}}classCust{Stringname;intID;intpassword;doublemoney;CustStringnameintIDintpassworddoublemoney{this.name=name;this.ID=ID;this.password=password;this.money=money;}publicbooleancheckPWD{System.out.println请输入您的__;forinti=0;i3;i++{intpassword=KB.scan.nextInt;ifpassword!=this.password{ifi!=2{System.out.println__错误,请重新输入;}}else{returntrue;}}returnfalse;}booleangetMintn{ifnmoney{System.out.println不能__;returnfalse;}money-=n;returntrue;}voids__eMintn{this.money+=n;}voidprint{System.out.printlnname:\t+this.name;System.out.printlnID:\t+this.ID;System.out.printlnmoney:\t+this.money;}voidrunintiD2{ifthis.checkPWD==false{System.out.println__错误超过3次;return;}booleanflag=true;whileflag{printMenu;intcmd=KB.scan.nextInt;switchcmd{case1:{System.out.println请输入取款金额;intn1=KB.scan.nextInt;this.getMn1;System.out.println取款成功;}break;case2:{System.out.println请输入存款金额;intn=KB.scan.nextInt;this.s__eMn;System.out.println存款成功;}break;case3:{this.print;}break;case0:{flag=false;}break;}}}staticvoidprintMenu{System.out.println*****************;System.out.println**取款\t1**;System.out.println**存款\t2**;System.out.println**查询\t3**;System.out.println**退出\t0**;System.out.println*****************;}}classKB{staticScannerscan=newScannerSystem.in;staticintscanInt{returnscan.nextInt;}staticStringscanString{returnscan.next;}staticDoublescanDouble{returnscan.nextDouble;}}classAdmin{VectorCustv;Admin{v=newVectorCust;v.addnewCust小王1111111000;v.addnewCust小红2222222000;v.addnewCust小张3333333000;v.addnewCust小强4444444000;}voidadd{System.out.println请输入姓名;Stringname=KB.scanString;System.out.println请输入账号;intID=KB.scanInt;System.out.println请输入__;intpassword=KB.scanInt;System.out.println请输入开户金额;doublemoney=KB.scanDouble;Custtemp=newCustnameIDpasswordmoney;v.addtemp;}voiddelete{System.out.println请输入要删除顾客的账号;intID=KB.scanInt;inti=0;fori=0;iv.size;i++{Custtemp=Custv.geti;iftemp.ID==ID{//temp=newCust0000;temp.print;temp.name=0;temp.ID=0;temp.password=0;temp.money=0;System.out.println删除成功;break;}}ifi==v.size{System.out.println没有该顾客;}}voidupdate{System.out.println请输入要修改顾客的账号;intID=KB.scanInt;inti=0;fori=0;iv.size;i++{Custtemp=Custv.geti;iftemp.ID==ID{System.out.println请输入新姓名;temp.name=KB.scanString;System.out.println请输入新__;temp.password=KB.scanInt;System.out.println请输入新存款金额;temp.money=KB.scanDouble;System.out.println修改成功;break;}}ifi==v.size{System.out.println没有该顾客;}}voidprint{System.out.println请输入要查询顾客的账号;intID=KB.scanInt;inti=0;fori=0;iv.size;i++{Custtemp=Custv.geti;iftemp.ID==ID{temp.print;break;}}ifi==v.size{System.out.println没有该顾客;}}voidprintAll{forinti=0;iv.size;i++{Custtemp=Custv.geti;temp.print;}}voidrun{booleanflag=true;whileflag{System.out.println*****************;System.out.println**添加顾客\t1**;System.out.println**删除顾客\t2**;System.out.println**查询顾客\t3**;System.out.println**打印清单\t4**;System.out.println**修改顾客\t5**;System.out.println**退出\t0**;System.out.println*****************;intcmd=KB.scan.nextInt;switchcmd{case1:{this.add;}break;case2:{this.delete;}break;case3:{this.print;}break;case4:{this.printAll;}break;case5:{this.update;}break;case0:{flag=false;}break;}}}}注设计报告撰写说明
一、正文内容要求正文内容层次序号为
1、
1.
1、正文内容一般为
1、选题背景说明本课题应解决的主要问题及应达到的技术要求;简述本设计的指导思想
2、方案论证设计理念说明设计原理(理念)并进行方案选择,阐明___要选择这个设计方案以及所采用方案的特点
3、过程论述对设计工作的详细表述要求层次分明、表达确切
4、结果分析对研究过程中所获得的主要的数据、现象进行定性或定量分析,得出结论和推论
5、结论或总结对整个研究工作进行归纳和综合
6、课程设计心得体会
二、图纸要求图面整洁,布局合理,线条粗细均匀,圆弧连接光滑,尺寸标注规范,文字注释必须使用工程字书写;必须按国家规定标准或工程要求绘制课程设计说明书(报告)中图表、公式一律采用___数字连续编号图序及图名置于图的__;表序及表名置于表的上方;说明书(报告)中的公式编号,用括号括起来写在右边行末,其间不加虚线
三、格式要求页边距上2cm,下2cm,左
2.5cm、右2cm;行距固定值20磅;页码底部居中;字体正文宋体小四号字;文中英文用新罗马体小四号字;源程序清单用英文新罗马五号字每个自然段开始空两格;报告的字数不少于3000(不包括程序清单和图);按规定的模板封面输出不准自定义封面格式副教授实验师存款查询银行管理系统用户___退出删除顾客修改顾客查询顾客全部顾客添加顾客退出取款。