资源描述
(完整word)银行帐户管理系统 Java课程设计
课 程 设 计
课程设计名称: java课程设计
专 业 班 级 : 计科09级05班
学 生 姓 名 : 刘品训
学 号 : 200948140507
指 导 教 师 : 王社伟
课程设计时间: 2011。12.12-2011。12.23
计算机科学与技术 专业课程设计任务书
学生姓名
刘品训
专业班级
计科09005
学号
200948140507
题 目
银行帐户管理系统
课题性质
工程设计
课题来源
自拟课题
指导教师
王社伟
同组姓名
无
主要内容
如今随着银行信誉的不断提高,人们对银行储蓄愈加依赖,因此银行需要一个更加完善的处理系统,来满足顾客以及银行管理人员的使用,因此我选择该题目,来尝试一下。银行帐户管理系统顾名思义就是对银行帐户的信息进行操作,在主界面提示用户进行选择操作,从而进行账户信息的添加,修改,删除,查询,存款,贷款以及还钱等功能,从而方便用户及管理人员的使用,提高银行的工作效率,为用户节省时间。
任务要求
综合运用所学的JAVA程序设计基本知识,并能通过查阅相关文献材料,独立完成该课题的设计开发工作。要求根据本课题设计合理的数据结构,并实现①添加帐户信息②删除帐户信息③修改帐户信息④查询帐户信息⑤浏览帐户信息⑥存款⑦贷款⑧还钱等功能模块。
采用SQL Sever2005 ,Java开发工具进行开发实现.
根据系统功能,结合软件开发流程,完成设计报告的撰写.
参考文献
[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。还钱:输入账号和贷款单号付贷款钱,同时并显示还有多少贷款未付.
二、概要设计
课程设计模块图:
银行帐户管理系统
查
询
账
户
信
息
浏
览
存
款
还
钱
贷
款
修
改
账
户
信
息
选择操作
添
加
账
户
删
除
账
户
系统流程图:
程序开始
功能操作
退出
删除账户
修改账户信息
查询账户信息
浏览
存款
贷款
还钱
输入信息
修改成功
输入账号
添加账户信息
判断
Y
输入账号
输入账号
输入账号
输入账号
输入账号
判断
判断
判断
判断
判断
N
N
N
Y
Y
Y
Y
Y
输出信息
修改信息
存款
贷款
返回功能操作界面
输入贷款单号
判断
Y
N
还钱
删除成功
添加成功
存款成功
贷款成功
删除账户
还钱
成功
三、运行环境、开发语言
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
展开阅读全文