




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计课程设计名称: java课程设计 专 业 班 级 : 计科13级03班 学 生 姓 名 : 余金梁 学 号 : 201316010319 指 导 教 师 : 王社伟 课程设计时间: 2015.6.22-2015.7.3 计算机科学技术 专业课程设计任务书学生姓名余金梁专业班级计科F1303学号201316010319题 目银行帐户管理系统课题性质工程设计课题来源自拟课题指导教师王社伟同组姓名无主要内容 设计一个银行账户管理的模拟系统。用户开户后,拥有一定的信用额度,除了传统的存款,取款,转账等业务外,在信用额度内用户还可以进行透支操作。 功能要求: 银行帐户的增加、删除、修改、查询、浏览;存款、取款、转账、透支等各种操作;任务要求1. 综合运用所学的JAVA程序设计基本知识,并能通过查阅相关文献材料,独立完成该课题的设计开发工作。2. 要求根据本课题设计合理的数据结构,并实现添加帐户信息删除帐户信息修改帐户信息浏览帐户信息存款取款转账等功能模块。3. 按照课程设计上机安排,在规定时间上机,上机考勤情况计入总成绩。4. 结合设计和开发内容,完成课程设计报告。要求语言表达逻辑合理,图表清晰,准确表达课程设计内容和结果。参考文献1 耿祥义、张跃平. JAVA2实用教程(修定),清华大学出版社,2001.102 袁然、郑自国等著.java案例开发集锦,电子工业出版社,2005.93 刘继承,王社伟等.Java程序设计及实验,清华大学出版社,2012.9.4 赵付青等.Java面向对象程序设计,国防工业出版社,2010.2审查意见指导教师签字:王社伟教研室主任签字:史卫亚 2015年 6 月 15 日 银行帐户管理系统 一、需求分析银行账户管理系统中,主要有以下功能:1.添加账户:主要增加账户的账号,姓名,类型以及所存的金额。2.登陆账户:根据输入的账号以及密码,验证判断其账户的类型以进行操作。3.存款:输入账号,并向该账号存钱。4.取款:输入账号和密码,根据不同类型的账户进行取款或者透支取款。5.转账:输入账号和密码,并向另外一个存在的账号转账。6.查询账户余额:根据输入的账号和密码,查询并显示出该账户的剩余金额。二、概要设计图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 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 java.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 = true;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:scanner = 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(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 = scanner.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(请输入您的取款金额:);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.print(请输入您要转入账户的金额:);double money = scanner.nextLong();if(money = accounts.length)/扩容Account newAccounts = new Accountaccounts.length*2;/copy原来的相关数据System.arraycopy(accounts, 0, newAccounts, 0, accounts.length);/将newAccounts赋给accountsaccounts = newAccounts;accountsnumber = account;elseaccountsnumber = account;System.out.println(开户成功!账户信息见下);System.out.println(您的卡号为:+id+n+您的密码为:+passwd1+n+您的户名为:+name+n+您的身份证号为:+personId+n+您的账户类型为:+type+n);account.accountType = type;number+;id+;return account;/此时开户成功elseSystem.out.println(对不起!您两次密码输入不匹配,开户失败!);return null;/此时开户失败/* * 保存数据 */public void saveAccountDate()BufferedWriter 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.txtbufWriter.write(accountsi.id+,);bufWriter.write(accountsi.getPassword()+,);bufWriter.write(accountsi.getName()+,);bufWriter.write(accountsi.getPersonId()+,);bufWriter.write(accountsi.getAccountType()+,);bufWriter.write(Double.toString(accountsi.getBalance();bufWriter.newLine();elsebreak;bufWriter.flush();/清空缓存中的内容 catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();finallytry if(bufWriter!=null)bufWriter.close(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();/* * 登录验证 */public Account verifyAccount(long id, String password)Account account = null;for(int i = 0;i accounts.length;i+)/若存在账户if(accountsi != null)/验证id号和passwordif(id = accountsi.getId() & password.equals(accountsi.getPassword()account = accountsi;break;elsebreak;return account;/* * 转账验证(方法的重载) */public Account verifyAccount(long id)Account account = null;for(int i = 0;i accounts.length;i+)/若存在账户if(accountsi != null)/验证id号和passwordif(id = accountsi.getId()account = accountsi;break;elsebreak;return account;/* * 转账 */public void transferAccount(Account account1, Account account2, double money)account1.withdraw(money);account2.deposit(money);/* * 存款 */public void deposit(Account account, double money)account.deposit(money);/* * 取款 */public void withdraw(Account account, double money)account.withdraw(money);2.3 SavingAccount类对储蓄卡用户进行取款,转账,查看余额等操作。图4 储蓄卡用户操作页面public class SavingAccount extends Account/构造函数public SavingAccount() super();public SavingAccount(long id, String password, String name, String personId,int accountType, double balance) super(id, password, name, personId, accountType, balance);/对父类的withdraw()实现public void withdraw(double money)if(balance money)System.out.println(对不起,账户余额不足!);elsebalance -= money;2.4 CresitAccount类对信用卡账户进行透支取款,转账,查看余额等操作。图5 信用卡用户操作页面public class CreditAccount extends Accountprivate int ceiling;/构造函数public CreditAccount()super();public CreditAccount(long id, String password, String name,String personId,int accountType, double balance, int ceiling)super(id, password, name, personId, accountType, balance);this.ceiling = ceiling;/getXxx,setXxx方法public int getCeiling() return ceiling;public void setCeiling(int ceiling) this.ceiling = ceiling;/实现父类的withdraw()public void withdraw(double money)if(balance + ceiling) money)System.out.println(对不起,已超出您的信用额度!);elsebalance -= money;2.5 Account类对账户进行存款等操作。图6 账户存款页面public abstract class Account /属性protected long id;protected String password;protected String name;protected String personId;protected int accountType;protected double balance;/构造方法public Account()/super();public Account(long id, String password, String name, String personId,int accoutType,double balance) super();this.id = id;this.password = password; = name;this.personId = personId;this.accountType = accountType;this.balance = balance;/getXxx,setXxx方法public long getId() return id;public void setId(long id) this.id = id;public String getPassword() return password;public void setPassword(String password) this.password = password;public String getName() return name;public void setName(String name) = name;public String getPersonId() return personId;public void setPersonId(String personId) this.personId = personId;public int getAccountType() return accountType;public void setAccountType(int accountType) this.accountType = accountType;public double getBalance() return balance;public void setBa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高血压病人的饮食与护理
- 公司电工安全培训课件
- 了不起的0课件
- 《童年的发现》课件
- 颅脑损伤早期康复护理
- 公司水电安全培训课件
- 2025年标准安置房买卖合同范本
- 2025综合设备租赁合同书
- 透平式空压机启动讲解
- 月经期的个人护理
- 巡游出租车考试题及答案
- 交管12123驾驶证学法减分考试题库和答案
- 2025至2030中国方竹笋市场经营方向与竞争格局分析报告
- 2025年人教版三年级数学上册《混合运算》教案
- 2025医用眼科器械消毒处理标准流程
- 胸部穿刺教学课件
- 2025-2026学年苏教版(2024)小学科学三年级上册(全册)课时练习及答案(附目录P102)
- 2025年本科院校团委笔试备考资料
- 食材配送培训计划
- 2025-2026学年人教版小学数学六年级上册教学计划及进度表
- 环保废气基础知识培训课件
评论
0/150
提交评论