1、课 程 设 计课程设计名称: java 课程设计 专 业 班 级 : 计科 13 级 03 班 学 生 姓 名 : 余金梁 学 号 : 201316010319 指 导 教 师 : 王社伟 课程设计时间: 2015.6.22-2015.7.3 计算机科学技术 专业课程设计任务书学生姓名 余金梁 专业班级 计科 F1303 学号 201316010319题 目 银行帐户管理系统课题性质 工程设计 课题来源 自拟课题指导教师 王社伟 同组姓名 无主要内容设计一个银行账户管理的模拟系统。用户开户后,拥有一定的信用额度,除了传统的存款,取款,转账等业务外,在信用额度内用户还可以进行透支操作。功能要求:
2、银行帐户的增加、删除、修改、查询、浏览;存款、取款、转账、透支等各种操作;任务要求1. 综合运用所学的 JAVA 程序设计基本知识,并能通过查阅相关文献材料,独立完成该课题的设计开发工作。2. 要求根据本课题设计合理的数据结构,并实现添加帐户信息删除帐户信息修改帐户信息浏览帐户信息存款取款转账等功能模块。3. 按照课程设计上机安排,在规定时间上机,上机考勤情况计入总成绩。4. 结合设计和开发内容,完成课程设计报告。要求语言表达逻辑合理,图表清晰,准确表达课程设计内容和结果。参考文献1 耿祥义、张跃平. JAVA2 实用教程(修定),清华大学出版社,2001.102 袁然、郑自国等著.java
3、案例开发集锦,电子工业出版社,2005.93 刘继承,王社伟等.Java 程序设计及实验,清华大学出版社,2012.9.4 赵付青等.Java 面向对象程序设计,国防工业出版社,2010.2审查意见指导教师签字:王社伟教研室主任签字:史卫亚 银行帐户管理系统一、需求分析银行账户管理系统中,主要有以下功能:1.添加账户:主要增加账户的账号,姓名,类型以及所存的金额。2.登陆账户:根据输入的账号以及密码,验证判断其账户的类型以进行操作。3.存款:输入账号,并向该账号存钱。4.取款:输入账号和密码,根据不同类型的账户进行取款或者透支取款。5.转账:输入账号和密码,并向另外一个存在的账号转账。6.查询
4、账户余额:根据输入的账号和密码,查询并显示出该账户的剩余金额。二、概要设计2015 年 6 月 15 日 图 1 系统模块流程图三、运行环境、开发语言运行环境:Windows 8.1,DOS,Eclipse开发语言:Java四、详细设计1 程序清单表 1 ATM 类方法 功能void main() 系统主函数ATM() 用户界面操作表 2 Bank 类方法 功能openAccount() 添加新账户saveAccountDate()保存数据verifyAccount() 验证账户transferAccount()转账表 3 SavingAccount 类方法 功能SavingAccount()
5、设置储蓄卡账户void withdraw()储蓄卡账户取钱表 4 CresitAccount 类方法 功能CreditAccount()设置信用卡账户Ceiling() 信用额度void withdraw()信用卡账户取钱表 5 Account 类方法 功能void deposit()存款getxx() 获取及操作setxx()2 主要代码2.1 ATM 类进入银行账户管理系统,进行操作。图 2:银行账户管理系统主界面import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import ja
6、va.io.FileReader;import java.io.FileWriter;import java.util.Properties;import java.util.Scanner;public class ATM /属性private Bank bank;/构造函数public ATM() bank = new Bank();/main 方法public static void main(String args)ATM atm = new ATM();/实例化 ATMBank bank = atm.bank;/标号,判断是否退出一级菜单boolean firstFlag = tru
7、e;while(firstFlag) /一级菜单System.out.println(“*欢迎使用 XXX 银行模拟 ATM 系统,请按如下步骤操作*“);System.out.println(“ *1.用已有账户登录“);System.out.println(“ *2.没有账户,开户“);System.out.println(“ *3.退出“);Scanner scanner = new Scanner(System.in);System.out.print(“请选择:“);try int choice1 = scanner.nextInt();switch(choice1)case 1:s
8、canner = new Scanner(System.in);System.out.print(“请输入银行卡号:“);long id = scanner.nextInt();scanner = new Scanner(System.in);System.out.print(“请输入银行密码:“);String password = scanner.next();Account account = bank.verifyAccount(id, password);if(account != null) /标号,判断是否退出二级菜单boolean secondFlag = true;while
9、(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 = new Scanner(System.in);System.out.print(“请选择:“);try int choice2 = sca
10、nner.nextInt();switch(choice2)case 1:System.out.println(“您账户的当前余额为:“+account.getBalance();break;case 2:scanner = new Scanner(System.in);System.out.print(“请输入您的存款金额:“);double money1 = scanner.nextDouble();bank.deposit(account, money1);break;case 3:scanner = new Scanner(System.in);System.out.print(“请输
11、入您的取款金额:“);double money2 = scanner.nextDouble();bank.withdraw(account, money2);break;case 4:scanner = new Scanner(System.in);System.out.print(“请输入您要转入账户的卡号:“);long id2 = scanner.nextLong();Account account2 = bank.verifyAccount(id2);if(account2 != null)scanner = new Scanner(System.in);System.out.prin
12、t(“请输入您要转入账户的金额:“);double money = scanner.nextLong();if(money = account.balance)bank.transferAccount(account, account2, money);System.out.println(“转账成功! “);elseSystem.out.println(“抱歉,您账户没有足够的金额!请查看后重新选择输入!“);elseSystem.out.println(“抱歉,没有找到您要转入的账户信息!请核对后重新选择输入!“);break;case 5:secondFlag = false;break
13、;default:System.out.println(“没有该选项,请重新选择! “);break; catch (Exception e) System.out.println(“选择输入不合法,请重新选择! “);elseSystem.out.println(“没有此账户,请先开户! “);break;case 2:/账号 id 由银行自动提供(从 1001 递增)scanner = new Scanner(System.in);System.out.print(“请输入账户密码:“);String passwd1 = scanner.next();scanner = new Scann
14、er(System.in);System.out.print(“请再输入账户密码:“);String passwd2 = scanner.next();scanner = new Scanner(System.in);System.out.print(“请输入户主姓名:“);String name = scanner.next();scanner = new Scanner(System.in);System.out.print(“请输入户主身份证号码:“);String personId = scanner.next();scanner = new Scanner(System.in);Sy
15、stem.out.print(“请输入账户类型(0 储蓄,1 信用):“);int type = scanner.nextInt();bank.openAccount(passwd1, passwd2, name, personId, type);break;case 3:bank.saveAccountDate();firstFlag = false;break;default :System.out.println(“没有该选项,请重新选择! “);break; catch (Exception e) System.out.println(“选择输入不合法,请重新选择! “);System
16、.out.println(“谢谢使用!“);2.2 Bank 类对系统添加新账户,登陆已有账户,进行操作。图 3 添加或登陆账户页面import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.Properties;public cla
17、ss Bank private Account accounts = new Account20;private int number;/账户数目private int id = 1001;/确定银行账号从 1001 开始生成,即第一个账户的账号是1001/构造函数public Bank() accounts=new Account20;/以后不足时扩容。number = 0;BufferedReader bufReader = null;Properties props=System.getProperties();String path=props.getProperty(“user.dir“);try bufReader=new BufferedReader(new FileReader(new