银行帐户
管理系统
工资管理系统慧云智能化管理系统免费考勤管理系统员工工资计算excel病人信息管理系统
Java课程设计
课程设计名称: java课程设计 专 业 班 级 : 计科09级05班 学 生 姓 名 : 刘品训 学 号 : 200948140507 指 导 教 师 : 王社伟 课程设计时间: 2011.12.12-2011.12.23
计算机科学与技术 专业课程设计任务书
计科学生姓名 刘品训 专业班级 学号 200948140507 09005
题 目 银行帐户管理系统
课题性质 工程设计 课题来源 自拟课题 指导教师 王社伟 同组姓名 无
如今随着银行信誉的不断提高,人们对银行储蓄愈加依赖,因此
银行需要一个更加完善的处理系统,来满足顾客以及银行管理人员的
使用,因此我选择该题目,来尝试一下。银行帐户管理系统顾名思义主要
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
就是对银行帐户的信息进行操作,在主界面提示用户进行选择操作,
从而进行账户信息的添加,修改,删除,查询,存款,贷款以及还钱
等功能,从而方便用户及管理人员的使用,提高银行的工作效率,为
用户节省时间。
综合运用所学的JAVA程序设计基本知识,并能通过查阅相关文献
材料,独立完成该课题的设计开发工作。要求根据本课题设计合理的任务要求 数据结构,并实现?添加帐户信息?删除帐户信息?修改帐户信息?
查询帐户信息?浏览帐户信息?存款?贷款?还钱等功能模块。
采用SQL Sever2005 ,Java开发工具进行开发实现。
根据系统功能,结合软件开发流程,完成设计
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
的撰写。
[1](美)Cay S. Horstmann、Gary Cornell. Java核心技术卷I:基础
知识(第8版)(英文影印版).人民邮电出版社, 2008.11
[2]耿祥义、张跃平. JAVA2实用教程(修订). 清华大学出版社,
2001.10 参考文献 [3]尹志宇,郭晴.数据库原理与应用教程:SQLServer. 清华大学出版
社,2010.5
[4]袁然、郑自国、邹丰义著.java
案例
全员育人导师制案例信息技术应用案例心得信息技术教学案例综合实践活动案例我余额宝案例
开发集锦.电子工业出版社,
2005.9
指导教师签字:
审查意见 教研室主任签字:
银行帐户管理系统
一、需求分析
银行账户管理系统中,主要有以下功能:
1.添加账户:主要增加账户的账号,姓名,以及所存的金额。
2.删除账户:根据输入的账号,删除该账户的信息。
3.修改账户信息:根据输入的账号,修改账户的信息。
4.查询账户信息:根据输入的账号,查询并显示出该账户的相关信息。
5.浏览:浏览数据库中的各个账户的信息。
6.存款:输入账号,并向该账号存钱,同时并
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
下来。
7.贷款:输入账号和贷款单号向该账户贷款,并记录下来。
8.还钱:输入账号和贷款单号付贷款钱,同时并显示还有多少贷款未付。
二、概要设计
课程设计模块图:
银行帐户管理系统
选择操作
添 浏 删 查 贷 存 还 修
加 览 除 询 款 款 钱 改
账 账 账 账
户 户 户 户
信 信
息 息
系统流程图:
程序开始
功能操作
添 修查 加删改询 账除账账浏存贷还退户账户户览 款 款 钱 出 信信信户
息 息 息
输输输输输输输入入入入入入入信账账账账账账息 号 号 号 号 号 号
N N N
判判判判判判
断 断 断 断 断 断
Y Y Y Y Y Y
输 存 贷 删 修 输入款 款 除改出贷
账信信款
户 息 息 单
号
N
修添删存贷判改加除款款断 成成成成成
功 功 功 功 功
Y
还 还钱 返回功能操作界面 钱 成功
三、运行环境、开发语言
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公共类,并连接数据库
import 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 String 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
{
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.println("-------------请输入您要进行的服务---------");
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:
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,userName,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 账户信息 (账号,姓名,金额) 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
{
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("请输入您要删的账号");
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;
}
}
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("您输入的账号错误或者不存在,请重新输入:");
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=null ;
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.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("请输入您更改的金额");
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 = "update 账户信息 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查询账户信息
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.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 = rs1.getString("账号");
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 = 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);//载入驱动
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("账号");
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{
Class.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 = stmt.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.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 = "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(sql1);
}
}
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 = "select * 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"))
{
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("请输入您要贷的金额");
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.executeUpdate(sql);
stmt.close();
break;
}
else
{
System.out.println("您输入的账号错误或者不存在,请重新输入:");
num = scanner.next();
rs = stmt1.executeQuery(sql1);
}
}
}
catch(Exception e)
{}
m = true;
}
2.10还钱
public 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 = 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("请输入您的账号");
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("请输入您的贷款单号");
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 == 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;
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.println("您多支付了"+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;
}
else
{
System.out.println("您输入的贷款单号错误或者不存在,请重新输入:");
dainum = scanner.next();
rs2 = stmt2.executeQuery(sql2);
}
}
break;
}
else
{
System.out.println("您输入的账号错误或者不存在,请重新输入:");
num = scanner.next();
rs1 = stmt1.executeQuery(sql1);
}
}
}
catch(Exception e)
{}
m = true;
}
五、调试与分析
问题1:遇到的第一个问题是如何用java连接数据库,根据查资料以及问同学才学会;
问题2:是在写还钱这一模块,用了4重循环,无法同步实现账号和贷款单号的同步判定,经过自己仔细的调试,才发现问题,用不同的表进行逐步循环才解决问题;
问题3:在贷款和还钱这一模块,在还钱的时候,忘记设置贷款表内的数据与还钱要同步。
六、功能测试
图1:银行账户管理系统主界面
图2添加账户
图3:删除账户
图4:修改账户
图5:查询账户
图6:浏览
图7:存款
图8:贷款
图9:还钱
七、结论与心得
这次实验可以说是完美的也可以说是不完美的,完美的就是在这次实验中熟练掌握了用java连接数据库,以及调用数据库中的数据,比如说调用表,以及修改表等操作,同时也让自己更进一步的熟练的编写程序,可以说这次实验对自己的java学习是完美的。但是这次实验也是不完美的,感觉实验的时间太短,中间还有很多考试,以至于自己写实验的时间减少了许多,感觉自己还有好多功能可以添加比如说交易历史的浏览,统计,还有就是是否可以输入时重置等等。 经过这次试验,让我深深的感受到了“一分耕耘,一分收获”,写程序的确是挺消耗时间的,不过自己也在熟练或掌握一些知识。可以说这实验有很大的收获 八、参考资料
[1](美)Cay S. Horstmann、Gary Cornell. Java核心技术卷I:基础知识(第8
版)(英文影印版).人民邮电出版社, 2008.11
[2]耿祥义、张跃平. JAVA2实用教程(修订). 清华大学出版社,2001.10 [3]尹志宇,郭晴.数据库原理与应用教程:SQLServer. 清华大学出版社,2010.5 [4]袁然、郑自国、邹丰义著.java案例开发集锦.电子工业出版社,2005.9