银行账户管理系统课程设计报告.docx

上传人:b****4 文档编号:3511400 上传时间:2022-11-23 格式:DOCX 页数:26 大小:361.98KB
下载 相关 举报
银行账户管理系统课程设计报告.docx_第1页
第1页 / 共26页
银行账户管理系统课程设计报告.docx_第2页
第2页 / 共26页
银行账户管理系统课程设计报告.docx_第3页
第3页 / 共26页
银行账户管理系统课程设计报告.docx_第4页
第4页 / 共26页
银行账户管理系统课程设计报告.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

银行账户管理系统课程设计报告.docx

《银行账户管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《银行账户管理系统课程设计报告.docx(26页珍藏版)》请在冰豆网上搜索。

银行账户管理系统课程设计报告.docx

银行账户管理系统课程设计报告

 

课程设计

 

课程设计名称:

java课程设计

专业班级:

计科13级03班

************************

学号:

************

********

课程设计时间:

2015.6.22-2015.7.3

 

计算机科学技术专业课程设计任务书

学生姓名

余金梁

专业班级

计科F1303

学号

201316010319

题目

银行帐户管理系统

课题性质

工程设计

课题来源

自拟课题

指导教师

王社伟

同组姓名

主要内容

设计一个银行账户管理的模拟系统。

用户开户后,拥有一定的信用额度,除了传统的存款,取款,转账等业务外,在信用额度内用户还可以进行透支操作。

功能要求:

银行帐户的增加、删除、修改、查询、浏览;存款、取款、转账、透支等各种操作;

任务要求

1.综合运用所学的JAVA程序设计基本知识,并能通过查阅相关文献材料,独立完成该课题的设计开发工作。

2.要求根据本课题设计合理的数据结构,并实现

添加帐户信息

删除帐户信息

修改帐户信息

浏览帐户信息

存款⑥取款⑦转账等功能模块。

3.按照课程设计上机安排,在规定时间上机,上机考勤情况计入总成绩。

4.结合设计和开发内容,完成课程设计报告。

要求语言表达逻辑合理,图表清晰,准确表达课程设计内容和结果。

参考文献

[1]耿祥义、张跃平.JAVA2实用教程(修定),清华大学出版社,2001.10

[2]袁然、郑自国等著.java案例开发集锦,电子工业出版社,2005.9

[3]刘继承,王社伟等.Java程序设计及实验,清华大学出版社,2012.9.

[4]赵付青等.Java面向对象程序设计,国防工业出版社,2010.2

审查意见

 

指导教师签字:

王社伟

 

教研室主任签字:

史卫亚

2015年6月15日

 

银行帐户管理系统

一、需求分析

银行账户管理系统中,主要有以下功能:

1.添加账户:

主要增加账户的账号,姓名,类型以及所存的金额。

2.登陆账户:

根据输入的账号以及密码,验证判断其账户的类型以进行操作。

3.存款:

输入账号,并向该账号存钱。

4.取款:

输入账号和密码,根据不同类型的账户进行取款或者透支取款。

5.转账:

输入账号和密码,并向另外一个存在的账号转账。

6.查询账户余额:

根据输入的账号和密码,查询并显示出该账户的剩余金额。

二、概要设计

图1系统模块流程图

三、运行环境、开发语言

运行环境:

Windows8.1,DOS,Eclipse

开发语言:

Java

四、详细设计

1程序清单

表1ATM类

方法

功能

voidmain()

系统主函数

ATM()

用户界面操作

表2Bank类

方法

功能

openAccount()

添加新账户

saveAccountDate()

保存数据

verifyAccount()

验证账户

transferAccount()

转账

表3SavingAccount类

方法

功能

SavingAccount()

设置储蓄卡账户

voidwithdraw()

储蓄卡账户取钱

表4CresitAccount类

方法

功能

CreditAccount()

设置信用卡账户

Ceiling()

信用额度

voidwithdraw()

信用卡账户取钱

表5Account类

方法

功能

voiddeposit()

存款

getxx()setxx()

获取及操作

2主要代码

2.1ATM类

进入银行账户管理系统,进行操作。

图2:

银行账户管理系统主界面

 

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.File;

importjava.io.FileReader;

importjava.io.FileWriter;

importjava.util.Properties;

importjava.util.Scanner;

publicclassATM{

//属性

privateBankbank;

//构造函数

publicATM(){

bank=newBank();

}

//main方法

publicstaticvoidmain(String[]args){

ATMatm=newATM();//实例化ATM

Bankbank=atm.bank;

//标号,判断是否退出一级菜单

booleanfirstFlag=true;

while(firstFlag)

{//一级菜单

System.out.println("******欢迎使用XXX银行模拟ATM系统,请按如下步骤操作******");

System.out.println("*1.用已有账户登录");

System.out.println("*2.没有账户,开户");

System.out.println("*3.退出");

Scannerscanner=newScanner(System.in);

System.out.print("请选择:

");

try{

intchoice1=scanner.nextInt();

switch(choice1)

{

case1:

scanner=newScanner(System.in);

System.out.print("请输入银行卡号:

");

longid=scanner.nextInt();

scanner=newScanner(System.in);

System.out.print("请输入银行密码:

");

Stringpassword=scanner.next();

Accountaccount=bank.verifyAccount(id,password);

if(account!

=null)

{//标号,判断是否退出二级菜单

booleansecondFlag=true;

while(secondFlag)

{//二级菜单

System.out.println("******欢迎使用XXX银行模拟ATM系统,请按如下步骤操作******");

System.out.println("*1.查询账户余额");

System.out.println("*2.存款");

System.out.println("*3.取款");

System.out.println("*4.转账");

System.out.println("*5.退卡");

scanner=newScanner(System.in);

System.out.print("请选择:

");

try{

intchoice2=scanner.nextInt();

switch(choice2)

{

case1:

System.out.println("您账户的当前余额为:

"+account.getBalance());

break;

case2:

scanner=newScanner(System.in);

System.out.print("请输入您的存款金额:

");

doublemoney1=scanner.nextDouble();

bank.deposit(account,money1);

break;

case3:

scanner=newScanner(System.in);

System.out.print("请输入您的取款金额:

");

doublemoney2=scanner.nextDouble();

bank.withdraw(account,money2);

break;

case4:

scanner=newScanner(System.in);

System.out.print("请输入您要转入账户的卡号:

");

longid2=scanner.nextLong();

Accountaccount2=bank.verifyAccount(id2);

if(account2!

=null)

{

scanner=newScanner(System.in);

System.out.print("请输入您要转入账户的金额:

");

doublemoney=scanner.nextLong();

if(money<=account.balance)

{

bank.transferAccount(account,account2,money);

System.out.println("转账成功");

}

else

{

System.out.println("抱歉,您账户没有足够的金额!

请查看后重新选择输入!

");

}

}

else

{

System.out.println("抱歉,没有找到您要转入的账户信息!

请核对后重新选择输入!

");

}

break;

case5:

secondFlag=false;

break;

default:

System.out.println("没有该选项,请重新选择!

");

break;

}

}catch(Exceptione){

System.out.println("选择输入不合法,请重新选择!

");

}

}

}

else

{

System.out.println("没有此账户,请先开户!

");

}

break;

case2:

//账号id由银行自动提供(从1001递增)

scanner=newScanner(System.in);

System.out.print("请输入账户密码:

");

Stringpasswd1=scanner.next();

scanner=newScanner(System.in);

System.out.print("请再输入账户密码:

");

Stringpasswd2=scanner.next();

scanner=newScanner(System.in);

System.out.print("请输入户主姓名:

");

Stringname=scanner.next();

scanner=newScanner(System.in);

System.out.print("请输入户主身份证号码:

");

StringpersonId=scanner.next();

scanner=newScanner(System.in);

System.out.print("请输入账户类型(0储蓄,1信用):

");

inttype=scanner.nextInt();

bank.openAccount(passwd1,passwd2,name,personId,type);

break;

case3:

bank.saveAccountDate();

firstFlag=false;

break;

default:

System.out.println("没有该选项,请重新选择!

");

break;

}

}catch(Exceptione){

System.out.println("选择输入不合法,请重新选择!

");

}

}

System.out.println("谢谢使用!

");

}

}

2.2Bank类

对系统添加新账户,登陆已有账户,进行操作。

图3添加或登陆账户页面

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.File;

importjava.io.FileNotFoundException;

importjava.io.FileReader;

importjava.io.FileWriter;

importjava.io.IOException;

importjava.util.Properties;

publicclassBank{

privateAccount[]accounts=newAccount[20];

privateintnumber;//账户数目

privateintid=1001;//确定银行账号从1001开始生成,即第一个账户的账号是1001

//构造函数

publicBank(){

accounts=newAccount[20];//以后不足时扩容。

number=0;

BufferedReaderbufReader=null;

Propertiesprops=System.getProperties();

Stringpath=props.getProperty("user.dir");

try{

bufReader=newBufferedReader(newFileReader(newFile(path,"account.txt")));

Strings=bufReader.readLine();

while(s!

=null){

String[]str=s.split(",");

if(str[4].equals("0"))

{

AccountsavingAcc=newSavingAccount(Long.parseLong(str[0]),

str[1].toString(),str[2].toString(),

str[3].toString(),Integer.parseInt(str[4]),

Double.parseDouble(str[5]));

accounts[number]=savingAcc;

}

else

{

AccountcreditAcc=newCreditAccount(Long.parseLong(str[0]),

str[1].toString(),str[2].toString(),

str[3].toString(),Integer.parseInt(str[4]),

Double.parseDouble(str[5]),5000);

accounts[number]=creditAcc;

}

number++;

id++;

s=bufReader.readLine();

}

}catch(NumberFormatExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}catch(FileNotFoundExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}finally{

try{

if(bufReader!

=null)

{

bufReader.close();

}

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

}

//getXxx,setXxx

publicAccount[]getAccounts(){

returnaccounts;

}

publicvoidsetAccounts(Account[]accounts){

this.accounts=accounts;

}

publicintgetNumber(){

returnnumber;

}

publicvoidsetNumber(intnumber){

this.number=number;

}

publicintgetId(){

returnid;

}

publicvoidsetId(intid){

this.id=id;

}

/**

*开户

*/

publicAccountopenAccount(Stringpasswd1,Stringpasswd2,Stringname,

StringpersonId,inttype){

//创建一个新账户

Accountaccount=null;

//判断两次密码是否一致

if(passwd1.equals(passwd2)){

//若一致,再判断账户类型(根据type的值)

if(type==1){

//可令开始余额为10,信用额度为5000

account=newCreditAccount(id,passwd1,name,personId,type,10,5000);

}

else

{

account=newSavingAccount(id,passwd1,name,personId,type,10);

}

//将账户存入账户数组accounts[]中

//判断是否超出存储空间

if(number>=accounts.length)

{//扩容

Account[]newAccounts=newAccount[accounts.length*2];

//copy原来的相关数据

System.arraycopy(accounts,0,newAccounts,0,accounts.length);

//将newAccounts[]赋给accounts[]

accounts=newAccounts;

accounts[number]=account;

}

else

{

accounts[number]=account;

}

System.out.println("开户成功账户信息见下");

System.out.println("您的卡号为:

"+id+"\n"+"您的密码为:

"+passwd1+"\n"+"您的户名为:

"+name+"\n"+"您的身份证号为:

"+personId+"\n"+"您的账户类型为:

"+type+"\n");

account.accountType=type;

number++;

id++;

returnaccount;//此时开户成功

}

else

{

System.out.println("对不起!

您两次密码输入不匹配,开户失败");

returnnull;//此时开户失败

}

}

/**

*保存数据

*/

publicvoidsaveAccountDate(){

BufferedWriterbufWriter=null;

try{

Propertiesprops=System.getProperties();

Stringpath=props.getProperty("user.dir");

bufWriter=newBufferedWriter(newFileWriter(newFile(path,"account.txt")));

for(inti=0;i

{//若存在账户

if(accounts[i]!

=null)

{

//写入账户信息到account.txt

bufWriter.write(accounts[i].id+",");

bufWriter.write(accounts[i].getPassword()+",");

bufWriter.write(accounts[i].getName()+",");

bufWriter.write(accounts[i].getPersonId()+",");

bufWriter.write(accounts[i].getAccountType()+",");

bufWriter.write(Double.toString(accounts[i]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1