课程设计说明书NO.1沈阳大学银行账户管理系统1课程设计目的Java语言是面向对象的开发方法是当今世界最流行的开发方法,是当今流行的网络编程语言。它具有面向对象、跨平台、分布应用等特点。它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。这次课程设计我主要利用已学的Java知识编辑一个银行账户管理程序。通过此次课程设计,来巩固所学Java语言基本知识,加深对循环语句、选择语句的熟练程度,以及对面向对象、继承的理解等。掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。并通过自己动手,自主得学习,对Java这门课程有更深得了解与认识。2设计方案论证2.1背景随着计算机技术飞速发展及其应用领域的扩大,特别是计算机网络和电子商务的发展,极大地改变了商业银行传统的经营和管理模式。能够为客户提供方便、快捷、安全的服务,也能有效降低银行的运营成本,这是银行管理系统追求的目标。目前,对于现代化银行运营的要求是客户可以实现随时随地的业务交易,银行职员可以进行高效合理的工作管理,实现银行业务电子化。2.2需求分析2.2.1功能需求通过银行管理系统一方面加快了客户的服务,提高的服务质量,另一方面减轻了员工的工作复杂度,提高了工作效益,实现银行帐户管理的系统化、规范化、自动化和智能化。系统具体实现的目标如下:(1)键盘操作,快速响应。(2)对用户输入的数据,系统会进行严格的数据检验,尽量避免了人为的错误。(3)实现银行开户、取款、存款、查询、转账、修改密码等功能。(4)系统运行稳定,可靠。(5)系统应人性化,符合用户操作习惯。(6)使用控制台进行操作课程设计说明书NO.2沈阳大学2.2.2性能需求(1)软件环境:WindowXP(2)硬件环境:Pentium(R)Dual-CoreCPUT7500@2.2GHZ安装内存(RAM):1.00GB硬盘空间:160G2.3总体设计由客户端程序和服务器端程序构成,客户端运行在面向个人业务的银行柜台的电脑上,通过网络通讯向服务器发送请求并接受服务器端程序的应达显示处理的结果。服务器端处理客户端的各种业务请求。主要实现银行开户、取款、存款、查询、转账、修改密码等功能。本程序主要实现银行开户、取款、存款、查询、转账、修改密码等功能。其中包括用户功能和管理员功能。进入程序后首先选择身份,身份确定后再进行相关的操作。(1)用户功能用户功能包括:登录模块、主菜单模块、存款模块、取款模块、转账模块和查询模块以及退出功能。(2)管理员功能管理员功能包括:添加用户功能、删除用户功能、查询所有用户基本信息功能、打印用户清单功能以及退出功能。2.4详细设计2.4.1功能规划2.4.1.1用户功能(1)用户登录功能输入用户名和密码,验证正确后进入系统。用户名和密码在程序中固定写死。课程设计说明书NO.3沈阳大学表1用户登录输入处理输出1、用户名2、密码1、密码有三次输入机会2、验证用户名及密码3、用户名及密码正确后进入主菜单界面。如果用户名或者密码不正确,给用户一个友好提示并提示还有几次机会(2)主菜单功能输出主菜单(开户、存款、取款、查询、转账、修改密码、退出)供用户选择,然后根据用户的输入选择进入不同的系统功能。表2主菜单功能输入处理输出1、菜单项编号1、验证用户输入的菜单项编号是否正确(0~6之间);2、根据用户的选择进入不同的功能界面。如果用户输入的菜单项编号不正确,给用户一个友好提示,并要求用户重新输入。(3)存款功能用户在输入账号和密码正确后可选择存款功能,需输入存款金额,金额要大于0小于账户余额。表3输入存款的基本信息输入处理输出1、账户ID2、存款金额1、输入的所有信息必填。2、验证账户ID3、存款金额大于0.00元如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入。课程设计说明书NO.4沈阳大学(4)取款功能表4输入取款的基本信息输入处理输出1账户ID、2密码3取款金额1、输入的所有信息必填。2、验证账户ID。3、验证用户密码。4、取款金额大于0.00元,小于用户账户余额。如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入。(5)转账功能表5输入转账的基本信息输入处理输出1、账户ID2、密码3、金额4、对方账户ID1、输入的所有信息必填。2、验证账户ID;3、验证密码;4、转账金额大于0.00元,小于账户余额;如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入。(6)查询功能表6输入查询基本信息输入处理输出1、账户ID2、密码1、输入的所有信息必填。2、验证账户ID;3、验证密码;如果用户输入的各项数据不正确,给用户一个友好提示,并要求用户重新输入。(7)退出功能课程设计说明书NO.5沈阳大学给客户退出提示,客户确认后,退出程序。2.4.1.2管理员功能(1)管理员添加用户功能输入用户的基本信息,添加账户。表7添加用户功能输入处理输出1、用户姓名2、密码3、重复密码4、开户金额1、开户的所有信息必填2、录入的数据去除左右空格3、用户姓名4、密码5、密码和重复密码一致各项信息完全吻合,提示添加用户成功。(2)管理员删除用户功能输入用户账号和密码,一致后删除。表8删除用户功能输入处理输出1、用户姓名2、密码3、重复密码1、用户姓名2、密码3、密码和重复密码一致如果输入的各项数据不正确则不能删除,用户姓名,账号,密码一致后才可删除。(3)查询顾客功能管理员可以查询所有用户的基本信息。(4)打印清单功能管理员可以查询用户基本信息,然后进行打印。(5)退出功能给管理员退出提示,管理员确认后,退出程序。课程设计说明书NO.6沈阳大学2.4.2功能模块图图1银行账户管理系统2.4.3具体实现方法在程序中定义了四个类,分别为:classDemoCust{}classCust{}classAdmin{}classKB{}(1)DemoCust类中的方法只有main(),创建第一个菜单选项,即选择登录身份。按1是选择管理员,按2是选择用户,按3是退出。classDemoCust{publicstaticvoidmain(String[]args){Admina=newAdmin();while(true){System.out.println(*******************);System.out.println(**管理员\t1**);System.out.println(**用户\t\t2**);课程设计说明书NO.7沈阳大学System.out.println(**退出\t\t3**);System.out.println(*******************);intc=KB.scanInt();switch(c){case1:{a.run();}break;case2:{System.out.println(请输入您的账号);intID=KB.scanInt();inti=0;for(i=0;ia.v.size();i++){Custtemp=(Cust)a.v.get(i);if(ID==temp.ID){temp.run(ID);break;}}if(i==a.v.size()){System.out.println(用户不存在);}System.out.println(欢迎下次光临);}break;case3:return;}}}}(2)Cust类中定义的方法有checkPWD()课程设计说明书NO.8沈阳大学zhuanZhang(Custc[])getM(intn)saveM(intn)run(Custc[])printMenu(),定义的成员变量有:Stringname;intID;intpassword;doublemoney;staticStringbankName=建设银行;一个Cust()构造函数Cust(Stringname,intID,intpassword,doublemoney){this.name=name;this.ID=ID;this.password=password;this.money=money;}第二个菜单选项,用户的菜单模块。用户在进行账户和密码输入后,正确则进入菜单功能项,用户的功能有如下,取款、存款、查询、转账以及退出功能。staticvoidprintMenu(){System.out.println(*****************);System.out.println(**取款\t1**);System.out.println(**存款\t2**);System.out.println(**查询\t3**);System.out.println(**转账\t4**);System.out.println(**退出\t0**);System.out.println(*****************);}(3)Admin类中有Admin(),add(),delete(),printAll(),run()方法。管理员的功能有添加顾客,删除顾客,查询顾客,打印清单以及退出功能,用switch语句来进行选择,按1选择添加顾客,2选择删除顾客,3选择查询顾客,4选择打印清单,0选择退出。退出是并不是退出系统,而是退出管理员功能,再次进行确认,如课程设计说明书NO.9沈阳大学果没有人继续登录则进行选择退出程序。voidrun(){booleanflag=true;while(flag){System.out.println(*****************);System.out.println(**添加顾客\t1**);System.out.println(**删除顾客\t2**);System.out.println(**查询顾客\t3**);System.out.println(**打印清单\t4**);System.out.println(**退出\t0**);System.out.println(*****************);intcmd=KB.scan.nextInt();switch(cmd){case1:this.add();break;case2:this.delete();break;case3:this.print();break;case4:this.printAll();break;case0:flag=false;break;}}管理员添加顾客所需填入的顾客基本信息有:顾客姓名,账号,密码以及开户金额。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();课程设计说明书NO.10沈阳大学Custtemp=newCust(name,ID,password,money);v.add(temp);}管理员可以查询顾客的基本信息,需输入顾客的账号,如果没有该顾客,系统会有提示信息,告诉管理员没有该顾客。voidprint(){System.out.println(请输入要查询顾客的账号);intID=KB.scanInt();inti=0;for(i=0;iv.size();i++){Custtemp=(Cust)v.get(i);if(temp.ID==ID){temp.print();break;}}if(i==v.size()){System.out.println(没有该顾客);}}(4)KB类中有staticintscanInt(),staticStringscanString(),staticDoublescanDouble()方法。为了解决冗余问题,定义了KB类。