1、完整word)银行帐户管理系统 Java课程设计 课 程 设 计 课程设计名称: java课程设计 专 业 班 级 : 计科09级05班 学 生 姓 名 : 刘品训 学 号 : 200948140507 指 导 教 师 : 王社伟 课程设计时间: 2011。12.12-2011。12.23 计算机科学与技术 专业课程设计任务书 学生姓名 刘品训 专业班级 计科09005
2、学号 200948140507 题 目 银行帐户管理系统 课题性质 工程设计 课题来源 自拟课题 指导教师 王社伟 同组姓名 无 主要内容 如今随着银行信誉的不断提高,人们对银行储蓄愈加依赖,因此银行需要一个更加完善的处理系统,来满足顾客以及银行管理人员的使用,因此我选择该题目,来尝试一下。银行帐户管理系统顾名思义就是对银行帐户的信息进行操作,在主界面提示用户进行选择操作,从而进行账户信息的添加,修改,删除,查询,存款,贷款以及还钱等功能,从而方便用户及管理人员的使用,提高银行的工作效率,为用户节省时间。 任务要求 综合运用所学的JAVA程序设计基本知识,并
3、能通过查阅相关文献材料,独立完成该课题的设计开发工作。要求根据本课题设计合理的数据结构,并实现①添加帐户信息②删除帐户信息③修改帐户信息④查询帐户信息⑤浏览帐户信息⑥存款⑦贷款⑧还钱等功能模块。 采用SQL Sever2005 ,Java开发工具进行开发实现. 根据系统功能,结合软件开发流程,完成设计报告的撰写. 参考文献 [1] (美)Cay S。 Horstmann、Gary Cornell. Java核心技术卷I:基础知识(第8版)(英文影印版)。人民邮电出版社, 2008.11 [2] 耿祥义、张跃平. JAVA2实用教程(修订)。 清华大学出版社,2001。10
4、[3] 尹志宇,郭晴。数据库原理与应用教程:SQLServer。 清华大学出版社,2010。5 [4] 袁然、郑自国、邹丰义著。java案例开发集锦。电子工业出版社,2005.9 审查意见 指导教师签字: 教研室主任签字: 银行帐户管理系统 一、需求分析 银行账户管理系统中,主要有以下功能: 1。添加账户:主要增加账户的账号,姓名,以及所存的金额. 2.删除账户:根据输入的账号,删除该账户的信息. 3.修改账户信息:根据输入的账号,修改账户的信息。 4.查询账户信息:根据输入的账号,查询并显示出该账户的相关信息. 5
5、浏览:浏览数据库中的各个账户的信息。 6。存款:输入账号,并向该账号存钱,同时并记录下来. 7。贷款:输入账号和贷款单号向该账户贷款,并记录下来。 8。还钱:输入账号和贷款单号付贷款钱,同时并显示还有多少贷款未付. 二、概要设计 课程设计模块图: 银行帐户管理系统 查 询 账 户 信 息 浏 览 存 款 还 钱 贷 款 修 改 账 户 信 息 选择操作 添 加 账 户 删
6、除 账 户 系统流程图: 程序开始 功能操作 退出 删除账户 修改账户信息 查询账户信息 浏览 存款 贷款 还钱 输入信息 修改成功 输入账号 添加账户信息 判断 Y 输入账号 输入账号 输入账号 输入账号 输入账号 判断 判断 判断 判断 判断 N N N Y Y Y Y Y 输出信息 修改信息 存款 贷款 返回功能操作界面 输入贷款单号 判断 Y N 还钱 删除成功 添加成功 存款成功 贷款成功 删除账户 还钱
7、 成功 三、运行环境、开发语言 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。1建立Bank公共类,并连接数据库 imp
8、ort java.sql.*; import java。util。*; import javax。swing。*; public class Bank { public static String driverName = ”com。microsoft.sqlserver.jdbc。SQLServerDriver”; //加载JDBC驱动 public static String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=银行管理系统"; //连接服务器和数据库 public static Strin
9、g userName = "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 Exception {
10、 while(m) { System。out。println(”--——--------—--银行账户管理系统----——----——-—-”); System.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.prin
11、tln(”--———--—---—-请输入您要进行的服务--—---———”); N=scanner。nextInt(); switch(N) { case 1: insert(); break; case 2: del(); break; case 3: update(); break; case 4: serch(); break; case 5: liulan();break; case 6: cunkuan();break; case 7:
12、daikuan();break; case 8: huanqian();break; case 9: m =false; break; default:System。out。println("请在1-—9之间选择”); } } } 2.3添加账户功能 public static void insert() throws Exception { try{ Class.forName(driverName);//载入驱动 dbconn = DriverManager。getConnection(dbURL,user
13、Name,userPwd);//连接数据库 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 账户信息
14、账号,姓名,金额) values('"+ num +”',’”+ name +”',’”+ jine +”’)";//向表中插入信息 System。out。println(”信息已插入!"); Statement stmt = dbconn。createStatement(); stmt。executeUpdate(sql); stmt.close(); } catch(Exception e) {} m = true; } 2。4删除账户 public static void del()throws Exception
15、{ try { String num=null,name=null ; int jine=0; String a = null; Class.forName(driverName);//载入驱动 dbconn = DriverManager.getConnection(dbURL,userName,userPwd);//连接数据库 System。out.println("—--删除账户—--"); String sql1 = ”select * from 账户信息”; System.out。print("请输入您要删的
16、账号"); 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)) { flag=1; break
17、 } } if(flag==1) { String sql2 = "delete 账户信息 where 账号= '”+ num + "'”; Statement stmt2 = dbconn。createStatement(); stmt2.executeUpdate(sql2); stmt2.close(); System。out.println("数据已删除!”); break; } else { System。out.println("您
18、输入的账号错误或者不存在,请重新输入:”); num = scanner.next(); rs = stmt1.executeQuery(sql1); } } rs。close(); stmt1.close(); } catch (Exception e) { } m= true; } 2。5修改账户信息 public static void update() throws Exception { try { String num=null,name=nu
19、ll ; int jine=0; String a = null; Class.forName(driverName);//载入驱动 dbconn = DriverManager。getConnection(dbURL,userName,userPwd);//连接数据库 System。out。print(”请输入您要修改账号:"); String sql1 = ”select * from 账户信息”; Statement stmt1 = dbconn。createStatement(); ResultSet rs = stmt1
20、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。print(”请输入您更改的金额
21、 jine = scanner。nextInt(); flag=1; break; } } if(flag==1) break; else { System.out。println("您输入的账号错误或者不存在,请重新输入:”); num = scanner.next(); rs = stmt1.executeQuery(sql1); } } rs。close(); stmt1。close(); String sql2 = ”upd
22、ate 账户信息 set 姓名 = '”+ name +”' where 账号 = '"+ num +"'update 账户信息 set 金额 = '"+ jine +”' where 账号 = ’"+ num +"'"; Statement stmt = dbconn.createStatement(); System.out.println(”数据已更改”); stmt.executeUpdate(sql2); stmt.close(); } catch (Exception e) { } m = true; } 2。6查
23、询账户信息 public static void serch()throws Exception { try { String num= null,name = null ; int jine=0; String a=null; Class.forName(driverName);//载入驱动 dbconn = DriverManager。getConnection(dbURL,userName,userPwd);//连接数据库 System。out.println("--—按账号查询—--”); System.ou
24、t。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 = rs1。getString(”
25、账号”); if(num.equals(a)) { flag = 1; break; } } if(flag == 1) { name = rs1.getString(”姓名”); jine = rs1.getInt(”金额”); break; } else { System.out。println(”您输入的账号错误或者不存在,请重新输入:"); num = scanner.next(); rs1
26、 stmt1.executeQuery(sql1); } } System.out。println("账号 姓名 金额"); System.out.printf("%s %s %s %n",num,name,jine); m = true; } catch (Exception e) { } } 2.7浏览全部账户信息 public static void liulan()throws Exception { try { Class。forName(driverName);//载入驱动
27、 dbconn = DriverManager。getConnection(dbURL,userName,userPwd);//连接数据库 String sql = ”select * from 账户信息 "; Statement stmt = dbconn.createStatement(); ResultSet rs = stmt。executeQuery(sql); System。out.println(”账号 姓名 金额”); while(rs.next()) { String num = rs。getString(”账
28、号”); String name = rs。getString(”姓名"); int jine = rs。getInt(”金额”); System.out.printf(”%s %s %s %n",num,name,jine); } rs。close(); stmt。close(); } catch (Exception e) { } m = true; } 2.8存款 public static void cunkuan()throws Exception { try{ C
29、lass。forName(driverName);//载入驱动 dbconn = 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 = st
30、mt.executeQuery(sql1); int flag=0; int jine=0,jine1=0,jine2=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
31、print(”请输入要存入的金额”); jine1 = scanner。nextInt(); System。out.print(”请输入存款的日期"); Cundate =scanner。next(); String sql2 = "insert into 存款 (账号,存钱金额,存钱日期) values('”+ num +"','"+ jine1 +”’,’”+ Cundate +”')"; jine2=rs.getInt("金额"); jine=jine1+jine2; String sql3 = "
32、update 账户信息 set 金额 = ’”+ jine +”’ where 账号 = ’"+ num +"'"; System.out.println(”存款成功"); stmt。executeUpdate(sql2); stmt。executeUpdate(sql3); break; } else { System.out。println("您输入的账号错误或者不存在,请重新输入:”); num = scanner.next(); rs = stmt。executeQuery(sq
33、l1); } } rs.close(); stmt.close(); } catch (Exception e) { } m = true; } 2.9贷款 public static void daikuan()throws Exception { try{ Class。forName(driverName);//载入驱动 dbconn = DriverManager。getConnection(dbURL,userName,userPwd);//连接数据库 String sql1 = ”se
34、lect * from 账户信息"; Statement stmt1 = dbconn.createStatement(); ResultSet rs = stmt1。executeQuery(sql1); String num=null,dainum=null,daidate=null; int daijine=0; System。out。println("请输入您的账号"); System。out.print("账号”); num = scanner.next(); int flag=0; while(!num.equals(”0”)
35、) { 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(); System。out。print(”请输入您要贷的金额”
36、); daijine= scanner.nextInt(); System。out。print("请输入您贷款的日期”); daidate=scanner。next(); String sql = ”insert into 贷款 (账号,贷款单号,贷款金额,贷款日期) values('”+ num +"’,'”+ dainum +”’,'”+ daijine +"','”+ daidate +"’)”; System。out.println(”贷款成功!"); Statement stmt = dbco
37、nn。createStatement(); stmt.executeUpdate(sql); stmt.close(); break; } else { System.out。println("您输入的账号错误或者不存在,请重新输入:"); num = scanner。next(); rs = stmt1.executeQuery(sql1); } } } catch(Exception e) {} m = true; } 2.10还钱 p
38、ublic static void huanqian()throws Exception { try{ Class。forName(driverName);//载入驱动 dbconn = DriverManager.getConnection(dbURL,userName,userPwd);//连接数据库 String sql1 = "select * from 账户信息"; String sql2 = ”select * from 贷款”; //String sql3 = "select * from 贷款"; Statement stmt1 =
39、dbconn.createStatement(); Statement stmt2 = dbconn.createStatement(); ResultSet rs1 = stmt1.executeQuery(sql1); ResultSet rs2 = stmt2.executeQuery(sql2); //ResultSet rs3 = stmt.executeQuery(sql3); String num=null,dainum=null,huandate=null; int huanjine=0; System。out.println("请输入
40、您的账号”); 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) {
41、 System。out。print(”请输入您的贷款单号"); 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()) {
42、 //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 == 1) { System。out.print("请输入您要还的金额”); huanjine= scanner
43、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("贷款金额”)
44、 int e=0; e=d-huanjine; String sql6 = ”update 贷款 set 贷款金额 = '”+ e +”’ where 账号 = '”+ num +"'”; stmt2。executeUpdate(sql6); if(e〉=0) { System。out。println(”您还有" + e+ "未付"); } else { int f=0; f=0—e; System.out。printl
45、n(”您多支付了”+f+”多支付的金额已存入您的账户”); int g=0; g=rs1。getInt("金额”); int h=0; h=f+g; String sql5 = "update 账户信息 set 金额 = ’"+ h +”’ where 账号 = ’"+ num +"’”; stmt1.executeUpdate(sql5); } stmt2。executeUpdate(sql4); break;
46、} else { System.out.println("您输入的贷款单号错误或者不存在,请重新输入:"); dainum = scanner。next(); rs2 = stmt2.executeQuery(sql2); } } break; } else { System。out。println("您输入的账号错误或者不存在,请重新输入:"); num = scanner。next(); rs1 = stmt1。executeQuery(
47、sql1); } } } catch(Exception e) {} m = true; } 五、调试与分析 问题1:遇到的第一个问题是如何用java连接数据库,根据查资料以及问同学才学会; 问题2:是在写还钱这一模块,用了4重循环,无法同步实现账号和贷款单号的同步判定,经过自己仔细的调试,才发现问题,用不同的表进行逐步循环才解决问题; 问题3:在贷款和还钱这一模块,在还钱的时候,忘记设置贷款表内的数据与还钱要同步. 六、功能测试 图1:银行账户管
48、理系统主界面 图2添加账户 图3:删除账户 图4:修改账户 图5:查询账户 图6:浏览 图7:存款 图8:贷款 图9:还钱 七、结论与心得 这次实验可以说是完美的也可以说是不完美的,完美的就是在这次实验中熟练掌握了用java连接数据库,以及调用数据库中的数据,比如说调用表,以及修改表等操作,同时也让自己更进一步的熟练的编写程序,可以说这次实验对自己的java学习是完美的.但是这次实验也是不完美的,感觉实验的时间太短,中间还有很多考试,以至于自己写实验的时间减少了许多,感觉自己还有好多功能可
49、以添加比如说交易历史的浏览,统计,还有就是是否可以输入时重置等等. 经过这次试验,让我深深的感受到了“一分耕耘,一分收获”,写程序的确是挺消耗时间的,不过自己也在熟练或掌握一些知识。可以说这实验有很大的收获 八、参考资料 [1] (美)Cay S。 Horstmann、Gary Cornell. Java核心技术卷I:基础知识(第8版)(英文影印版)。人民邮电出版社, 2008。11 [2] 耿祥义、张跃平. JAVA2实用教程(修订). 清华大学出版社,2001.10 [3] 尹志宇,郭晴.数据库原理与应用教程:SQLServer. 清华大学出版社,2010.5 [4] 袁然、郑自国、邹丰义著.java案例开发集锦。电子工业出版社,2005.9
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818