1、银行账户管理系统课程设计报告课 程 设 计课程设计名称: java课程设计 专 业 班 级 : 计科13级03班 * * * * *学 号 : * * * * * * * 课程设计时间: 2015.6.22-2015.7.3 计算机科学技术 专业课程设计任务书学生姓名余金梁专业班级计科F1303学号201316010319题 目银行帐户管理系统课题性质工程设计课题来源自拟课题指导教师王社伟同组姓名无主要内容 设计一个银行账户管理的模拟系统。用户开户后,拥有一定的信用额度,除了传统的存款,取款,转账等业务外,在信用额度内用户还可以进行透支操作。 功能要求: 银行帐户的增加、删除、修改、查询、浏览
2、;存款、取款、转账、透支等各种操作;任务要求1. 综合运用所学的JAVA程序设计基本知识,并能通过查阅相关文献材料,独立完成该课题的设计开发工作。2. 要求根据本课题设计合理的数据结构,并实现添加帐户信息删除帐户信息修改帐户信息浏览帐户信息存款取款转账等功能模块。3. 按照课程设计上机安排,在规定时间上机,上机考勤情况计入总成绩。4. 结合设计和开发内容,完成课程设计报告。要求语言表达逻辑合理,图表清晰,准确表达课程设计内容和结果。参考文献1耿祥义、张跃平. JAVA2实用教程(修定),清华大学出版社,2001.102袁然、郑自国等著.java案例开发集锦,电子工业出版社,2005.93刘继承
3、,王社伟等.Java程序设计及实验,清华大学出版社,2012.9.4赵付青等.Java面向对象程序设计,国防工业出版社,2010.2审查意见指导教师签字:王社伟教研室主任签字:史卫亚 2015年 6 月 15 日 银行帐户管理系统 一、需求分析银行账户管理系统中,主要有以下功能:1.添加账户:主要增加账户的账号,姓名,类型以及所存的金额。2.登陆账户:根据输入的账号以及密码,验证判断其账户的类型以进行操作。3.存款:输入账号,并向该账号存钱。4.取款:输入账号和密码,根据不同类型的账户进行取款或者透支取款。5.转账:输入账号和密码,并向另外一个存在的账号转账。6.查询账户余额:根据输入的账号和
4、密码,查询并显示出该账户的剩余金额。二、概要设计图1 系统模块流程图三、运行环境、开发语言运行环境:Windows 8.1,DOS,Eclipse开发语言:Java四、详细设计1 程序清单表1 ATM类方法功能void main()系统主函数ATM()用户界面操作表2 Bank类方法功能openAccount()添加新账户saveAccountDate()保存数据verifyAccount()验证账户transferAccount()转账表3 SavingAccount类方法功能SavingAccount()设置储蓄卡账户void withdraw()储蓄卡账户取钱表4 CresitAccou
5、nt类方法功能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 java.io.FileReader;import java.io.FileWriter;import jav
6、a.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();/实例化ATM Bank bank = atm.bank; /标号,判断是否退出一级菜单 boolean firstFlag = true; while(firstFlag) /一级菜单 System.out.println(*
7、欢迎使用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: scanner = new Scanner(System.in); System.out.print
8、(请输入银行卡号:); 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(secondFlag) /二级菜单 System.out.println(*欢迎使用X
9、XX银行模拟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 = scanner.nextInt(); switch(choice2) case 1: System.out.pr
10、intln(您账户的当前余额为:+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(请输入您的取款金额:); double money2 = scanner.nextDouble
11、(); 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.print(请输入您要转入账户的金额:); double money = scan
12、ner.nextLong(); if(money = accounts.length) /扩容 Account newAccounts = new Accountaccounts.length*2; /copy原来的相关数据 System.arraycopy(accounts, 0, newAccounts, 0, accounts.length); /将newAccounts赋给accounts accounts = newAccounts; accountsnumber = account; else accountsnumber = account; System.out.println
13、(开户成功账户信息见下); System.out.println(您的卡号为:+id+n+您的密码为:+passwd1+n+您的户名为:+name+n+您的身份证号为:+personId+n+您的账户类型为:+type+n); account.accountType = type; number+; id+; return account;/此时开户成功 else System.out.println(对不起!您两次密码输入不匹配,开户失败); return null;/此时开户失败 /* * 保存数据 */ public void saveAccountDate() BufferedWrit
14、er bufWriter=null; try Properties props=System.getProperties(); String path=props.getProperty(user.dir); bufWriter=new BufferedWriter(new FileWriter(new File(path,account.txt); for(int i = 0;i accounts.length;i+) /若存在账户 if(accountsi != null) /写入账户信息到account.txt bufWriter.write(accountsi.id+,); bufWriter.write(accountsi.getPassword()+,); bufWriter.write(accountsi.getName()+,); bufWriter.write(accountsi.getPersonId()+,); bufWriter.write(accountsi.getAccountType()+,); bufWriter.write(Double.toString(accountsi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1