1、(完整word)银行帐户管理系统 Java课程设计课 程 设 计课程设计名称: java课程设计 专 业 班 级 : 计科09级05班 学 生 姓 名 : 刘品训 学 号 : 200948140507 指 导 教 师 : 王社伟 课程设计时间: 2011。12.12-2011。12.23 计算机科学与技术 专业课程设计任务书学生姓名刘品训专业班级计科09005学号200948140507题 目银行帐户管理系统课题性质工程设计课题来源自拟课题指导教师王社伟同组姓名无主要内容如今随着银行信誉的不断提高,人们对银行储蓄愈加依赖,因此银行需要一个更加完善的处理系统,来满足顾客以及银行管理人员的使用,因
2、此我选择该题目,来尝试一下。银行帐户管理系统顾名思义就是对银行帐户的信息进行操作,在主界面提示用户进行选择操作,从而进行账户信息的添加,修改,删除,查询,存款,贷款以及还钱等功能,从而方便用户及管理人员的使用,提高银行的工作效率,为用户节省时间。任务要求综合运用所学的JAVA程序设计基本知识,并能通过查阅相关文献材料,独立完成该课题的设计开发工作。要求根据本课题设计合理的数据结构,并实现添加帐户信息删除帐户信息修改帐户信息查询帐户信息浏览帐户信息存款贷款还钱等功能模块。 采用SQL Sever2005 ,Java开发工具进行开发实现. 根据系统功能,结合软件开发流程,完成设计报告的撰写.参考文
3、献1 (美)Cay S。 Horstmann、Gary Cornell. Java核心技术卷I:基础知识(第8版)(英文影印版)。人民邮电出版社, 2008.112 耿祥义、张跃平. JAVA2实用教程(修订)。 清华大学出版社,2001。103 尹志宇,郭晴。数据库原理与应用教程:SQLServer。 清华大学出版社,2010。54 袁然、郑自国、邹丰义著。java案例开发集锦。电子工业出版社,2005.9审查意见指导教师签字:教研室主任签字: 银行帐户管理系统一、需求分析银行账户管理系统中,主要有以下功能:1。添加账户:主要增加账户的账号,姓名,以及所存的金额.2.删除账户:根据输入的账号
4、,删除该账户的信息.3.修改账户信息:根据输入的账号,修改账户的信息。4.查询账户信息:根据输入的账号,查询并显示出该账户的相关信息.5.浏览:浏览数据库中的各个账户的信息。6。存款:输入账号,并向该账号存钱,同时并记录下来.7。贷款:输入账号和贷款单号向该账户贷款,并记录下来。8。还钱:输入账号和贷款单号付贷款钱,同时并显示还有多少贷款未付.二、概要设计课程设计模块图:银行帐户管理系统查询账户信息浏览存款还钱贷款修改账户信息选择操作 添加账户删除账户系统流程图: 程序开始功能操作退出删除账户修改账户信息查询账户信息浏览存款贷款还钱输入信息修改成功输入账号添加账户信息判断Y输入账号输入账号输入
5、账号输入账号输入账号判断判断判断判断判断NNNYYYYY 输出信息 修改信息 存款 贷款返回功能操作界面输入贷款单号判断YN 还钱删除成功添加成功存款成功贷款成功 删除账户 还钱成功三、运行环境、开发语言1:Windows xp,DOS,Microsoft SQL Server 2005;2:Java,SQL Server.四、详细设计1 程序清单表1 程序清单函数名功能Main()函数操作系统insert()添加账户信息del()删除账户update()修改账户信息serch()查询账户信息liulan()浏览cunkuan()存款daikuan()贷款huanqian()还钱2 主要代码2
6、。1建立Bank公共类,并连接数据库import java.sql.*; import java。util。*;import javax。swing。;public class Bankpublic static String driverName = ”com。microsoft.sqlserver.jdbc。SQLServerDriver”; /加载JDBC驱动public static String dbURL = jdbc:sqlserver:/localhost:1433; DatabaseName=银行管理系统; /连接服务器和数据库public static String use
7、rName = liu; /默认用户名public static String userPwd = 518888k; /密码public static Connection dbconn;static boolean m = true;static int N;private static Scanner scanner = new Scanner(System。in);2。2主函数银行账户管理系统主界面public static void main(String srg) throws Exceptionwhile(m)System。out。println(”-银行账户管理系统-”);Sys
8、tem.out。println(”1:添加账户2:删除账户);System.out.println(”3:修改账户信息4:查询账户信息);System.out.println(”5:浏览6:存款);System。out.println(7:贷款8:还钱);System.out.println(9:退出”);System。out.println(”-请输入您要进行的服务-”);N=scanner。nextInt();switch(N)case 1:insert();break;case 2:del();break;case 3:update();break;case 4:serch();brea
9、k;case 5:liulan();break;case 6:cunkuan();break;case 7:daikuan();break;case 8:huanqian();break;case 9: m =false;break;default:System。out。println(请在1-9之间选择”);2.3添加账户功能public static void insert() throws ExceptiontryClass.forName(driverName);/载入驱动dbconn = DriverManager。getConnection(dbURL,userName,userP
10、wd);/连接数据库String num=null,name=null;int jine=0;System。out.println(”请输入您要添加的数据”);System.out。print(”账号);num = scanner.next();System.out。print(”姓名”);name = scanner。next();System.out。print(金额);jine= scanner。nextInt();String sql = ”insert into 账户信息 (账号,姓名,金额) values(+ num +”,”+ name +”,”+ jine +”);/向表中插入
11、信息System。out。println(”信息已插入!);Statement stmt = dbconn。createStatement();stmt。executeUpdate(sql);stmt.close();catch(Exception e)m = true;2。4删除账户public static void del()throws ExceptiontryString num=null,name=null ;int jine=0;String a = null;Class.forName(driverName);/载入驱动dbconn = DriverManager.getCon
12、nection(dbURL,userName,userPwd);/连接数据库System。out.println(-删除账户-);String sql1 = ”select from 账户信息”;System.out。print(请输入您要删的账号);Statement stmt1 = dbconn。createStatement();ResultSet rs = stmt1.executeQuery(sql1);num = scanner.next();int flag=0;while(!num.equals(0”))while(rs。next()a = null;a = rs。getStr
13、ing(账号);if(num。equals(a)flag=1;break;if(flag=1)String sql2 = delete 账户信息 where 账号= ”+ num + ”;Statement stmt2 = dbconn。createStatement();stmt2.executeUpdate(sql2);stmt2.close();System。out.println(数据已删除!”);break;elseSystem。out.println(您输入的账号错误或者不存在,请重新输入:”);num = scanner.next();rs = stmt1.executeQuer
14、y(sql1);rs。close();stmt1.close();catch (Exception e)m= true;2。5修改账户信息public static void update() throws ExceptiontryString num=null,name=null ;int jine=0;String a = null;Class.forName(driverName);/载入驱动dbconn = DriverManager。getConnection(dbURL,userName,userPwd);/连接数据库System。out。print(”请输入您要修改账号:);St
15、ring sql1 = ”select * from 账户信息”;Statement stmt1 = dbconn。createStatement();ResultSet rs = stmt1.executeQuery(sql1);num = scanner。next();int flag=0;while(!num.equals(0))while(rs。next())a = null;a = rs。getString(”账号”);if( num。equals(a)System.out.print(”请输入您更改的姓名:);name = scanner。next();System.out。pri
16、nt(”请输入您更改的金额”);jine = scanner。nextInt();flag=1;break;if(flag=1)break;elseSystem.out。println(您输入的账号错误或者不存在,请重新输入:”);num = scanner.next();rs = stmt1.executeQuery(sql1);rs。close();stmt1。close();String sql2 = ”update 账户信息 set 姓名 = ”+ name +” where 账号 = + num +update 账户信息 set 金额 = + jine +” where 账号 = +
17、 num +;Statement stmt = dbconn.createStatement();System.out.println(”数据已更改”);stmt.executeUpdate(sql2);stmt.close();catch (Exception e)m = true;2。6查询账户信息public static void serch()throws ExceptiontryString num= null,name = null ;int jine=0;String a=null;Class.forName(driverName);/载入驱动dbconn = DriverMa
18、nager。getConnection(dbURL,userName,userPwd);/连接数据库System。out.println(-按账号查询-”);System.out。print(请输入账号”);String sql1 = select from 账户信息”;Statement stmt1 = dbconn。createStatement();ResultSet rs1 = stmt1。executeQuery(sql1);num = scanner.next();int flag=0;while(!num。equals(0)while(rs1.next())a = null;a
19、= rs1。getString(”账号”);if(num.equals(a))flag = 1;break;if(flag = 1)name = rs1.getString(”姓名”);jine = rs1.getInt(”金额”);break;elseSystem.out。println(”您输入的账号错误或者不存在,请重新输入:);num = scanner.next();rs1 = stmt1.executeQuery(sql1);System.out。println(账号姓名金额);System.out.printf(%sssn,num,name,jine);m = true;catc
20、h (Exception e)2.7浏览全部账户信息public static void liulan()throws ExceptiontryClass。forName(driverName);/载入驱动dbconn = DriverManager。getConnection(dbURL,userName,userPwd);/连接数据库String sql = ”select from 账户信息 ;Statement stmt = dbconn.createStatement();ResultSet rs = stmt。executeQuery(sql);System。out.println
21、(”账号姓名金额”);while(rs.next())String num = rs。getString(”账号”);String name = rs。getString(”姓名);int jine = rs。getInt(”金额”);System.out.printf(”%ss%sn,num,name,jine);rs。close();stmt。close();catch (Exception e)m = true;2.8存款public static void cunkuan()throws ExceptiontryClass。forName(driverName);/载入驱动dbconn
22、 = DriverManager.getConnection(dbURL,userName,userPwd);/连接数据库System.out。print(”请输入账号”);String num=scanner.next();String Cundate=null;String sql1 = select from 账户信息;Statement stmt = dbconn。createStatement();ResultSet rs = stmt.executeQuery(sql1);int flag=0;int jine=0,jine1=0,jine2=0;while(!num。equals
23、(0”))while(rs.next()String a = null;a = rs.getString(账号”);if( num.equals(a)flag=1;break;if(flag=1)System。out.print(”请输入要存入的金额”); jine1 = scanner。nextInt();System。out.print(”请输入存款的日期);Cundate =scanner。next();String sql2 = insert into 存款 (账号,存钱金额,存钱日期) values(”+ num +,+ jine1 +”,”+ Cundate +”);jine2=r
24、s.getInt(金额);jine=jine1+jine2;String sql3 = update 账户信息 set 金额 = ”+ jine +” where 账号 = + num +;System.out.println(”存款成功);stmt。executeUpdate(sql2);stmt。executeUpdate(sql3);break;elseSystem.out。println(您输入的账号错误或者不存在,请重新输入:”);num = scanner.next();rs = stmt。executeQuery(sql1);rs.close();stmt.close();cat
25、ch (Exception e)m = true;2.9贷款public static void daikuan()throws ExceptiontryClass。forName(driverName);/载入驱动dbconn = DriverManager。getConnection(dbURL,userName,userPwd);/连接数据库String sql1 = ”select * from 账户信息;Statement stmt1 = dbconn.createStatement();ResultSet rs = stmt1。executeQuery(sql1);String n
26、um=null,dainum=null,daidate=null;int daijine=0;System。out。println(请输入您的账号);System。out.print(账号”);num = scanner.next();int flag=0;while(!num.equals(”0”))while(rs.next()String a = null;a = rs。getString(”账号”);if(num。equals(a))flag = 1;break;if(flag = 1)System.out。print(请输入您的贷款单号);dainum = scanner。next(
27、);System。out。print(”请输入您要贷的金额”);daijine= scanner.nextInt();System。out。print(请输入您贷款的日期”);daidate=scanner。next();String sql = ”insert into 贷款 (账号,贷款单号,贷款金额,贷款日期) values(”+ num +,”+ dainum +”,”+ daijine +,”+ daidate +)”;System。out.println(”贷款成功!);Statement stmt = dbconn。createStatement();stmt.executeUp
28、date(sql);stmt.close();break;elseSystem.out。println(您输入的账号错误或者不存在,请重新输入:);num = scanner。next();rs = stmt1.executeQuery(sql1);catch(Exception e)m = true;2.10还钱public static void huanqian()throws ExceptiontryClass。forName(driverName);/载入驱动dbconn = DriverManager.getConnection(dbURL,userName,userPwd);/连
29、接数据库String sql1 = select from 账户信息;String sql2 = ”select * from 贷款”;/String sql3 = select from 贷款;Statement stmt1 = dbconn.createStatement();Statement stmt2 = dbconn.createStatement();ResultSet rs1 = stmt1.executeQuery(sql1);ResultSet rs2 = stmt2.executeQuery(sql2);/ResultSet rs3 = stmt.executeQuery
30、(sql3);String num=null,dainum=null,huandate=null;int huanjine=0;System。out.println(请输入您的账号”);System。out。print(账号);num = scanner。next();int flag=0;int b=0;while(!num.equals(0)while(rs1.next()String a = null;a = rs1。getString(”账号”);if(num。equals(a)flag = 1;break;if(flag = 1)System。out。print(”请输入您的贷款单号
31、);dainum = scanner.next();while(!dainum.equals(”0)/String c= null;/c = rs2。getString(”贷款单号”);/int d=0;/d=rs2.getInt(”贷款金额”);/int g=0;/g=rs1.getInt(金额);while(rs2。next())/System。out.print(”aaa”);String c= null;c = rs2。getString(”贷款单号”);/System。out.printf(”s %n”,c);if(dainum。equals(c)b = 1;break;if(b =
32、 1)System。out.print(请输入您要还的金额”);huanjine= scanner。nextInt();System。out.print(”请输入您还钱的日期”);huandate= scanner。next();String sql4 = insert into 还钱 (账号,贷款单号,还钱金额,还钱日期) values(+ num +”,+ dainum +”,+ huanjine +”,+ huandate +);System.out。println(”还钱成功!);int d=0;d=rs2。getInt(贷款金额”);int e=0;e=d-huanjine;Stri
33、ng sql6 = ”update 贷款 set 贷款金额 = ”+ e +” where 账号 = ”+ num +”;stmt2。executeUpdate(sql6);if(e=0)System。out。println(”您还有 + e+ 未付);elseint f=0;f=0e;System.out。println(”您多支付了”+f+”多支付的金额已存入您的账户”);int g=0;g=rs1。getInt(金额”);int h=0;h=f+g;String sql5 = update 账户信息 set 金额 = + h +” where 账号 = + num +”;stmt1.ex
34、ecuteUpdate(sql5);stmt2。executeUpdate(sql4);break;elseSystem.out.println(您输入的贷款单号错误或者不存在,请重新输入:);dainum = scanner。next();rs2 = stmt2.executeQuery(sql2);break;elseSystem。out。println(您输入的账号错误或者不存在,请重新输入:);num = scanner。next();rs1 = stmt1。executeQuery(sql1);catch(Exception e)m = true;五、调试与分析 问题1:遇到的第一个
35、问题是如何用java连接数据库,根据查资料以及问同学才学会; 问题2:是在写还钱这一模块,用了4重循环,无法同步实现账号和贷款单号的同步判定,经过自己仔细的调试,才发现问题,用不同的表进行逐步循环才解决问题; 问题3:在贷款和还钱这一模块,在还钱的时候,忘记设置贷款表内的数据与还钱要同步.六、功能测试图1:银行账户管理系统主界面图2添加账户图3:删除账户图4:修改账户图5:查询账户图6:浏览图7:存款图8:贷款图9:还钱七、结论与心得 这次实验可以说是完美的也可以说是不完美的,完美的就是在这次实验中熟练掌握了用java连接数据库,以及调用数据库中的数据,比如说调用表,以及修改表等操作,同时也让
36、自己更进一步的熟练的编写程序,可以说这次实验对自己的java学习是完美的.但是这次实验也是不完美的,感觉实验的时间太短,中间还有很多考试,以至于自己写实验的时间减少了许多,感觉自己还有好多功能可以添加比如说交易历史的浏览,统计,还有就是是否可以输入时重置等等.经过这次试验,让我深深的感受到了“一分耕耘,一分收获”,写程序的确是挺消耗时间的,不过自己也在熟练或掌握一些知识。可以说这实验有很大的收获八、参考资料1 (美)Cay S。 Horstmann、Gary Cornell. Java核心技术卷I:基础知识(第8版)(英文影印版)。人民邮电出版社, 2008。112 耿祥义、张跃平. JAVA2实用教程(修订). 清华大学出版社,2001.103 尹志宇,郭晴.数据库原理与应用教程:SQLServer. 清华大学出版社,2010.54 袁然、郑自国、邹丰义著.java案例开发集锦。电子工业出版社,2005.9