银行帐户管理系统基于JAVA的信息管理系统
基于JAVA的银行账户管理系统的设计与实现本科毕业设计论文

本科毕业设计论文基于JAVA的银行账户管理系统的设计与实现摘要随着我国信息产业的迅速发展以及中国加入世界贸易组织,国内外银行之间的竞争也越来越激烈,如何发展业务以吸引更多顾客是各银行面对的当务之急。
于此同时,账户管理是银行业务流程过程中十分重要且必备的环节之一,并且现在银行的业务越来越多,吸引的客户也越来越多,银行账户的高效管理就越显重要。
银行账户管理系统是针对银行账户的日常管理而设计,操作方便而且界面简洁,使用Java作为编程语言,Eclipse作为开发工具,Mysql作为后台数据存储,采用软件工程的开发原理,按照需求分析、概要设计、详细设计、程序编码、软件测试等过程进行规范设计。
本银行账户管理系统具有良好的容错性,在出现误操作时能及时的给出相关错误提示,以便于用户及时地更正。
设计过程思路清晰,模块划分简洁,设计各阶段分工明确,极大的提高了本系统的实现。
关键词:账户管理;业务流程;Java;Eclipse;软件工程AbstractWith the rapid development of the information industry and China's accession to the world trade organization, the competition between domestic and foreign bank is also more and more fierce. How to develop business to attract more customers at the moment is the problem many banks confront. At the same time, account management is one of the important and necessary links in the process of bank business. Besides, the bank businesses nowadays are becoming larger and larger, and more and more customers are attracted, so efficient management of bank account seems extremely important.Bank account management system is designed for the daily administration of bank account. It is easy to operate and has a concise interface. It uses Java as a programming language, apply Eclipse as development tools, choose Mysql as the background data storage and adopt the software engineering evelopment principle. It is designed according to the requirement analysis, general design, detailed design, program code, software test and so on.This bank account management system is good at fault tolerance. When dealing with the wrong operation, it can point out the related errors in time , so that users can correct the errors timely. The thinking of the design process is clear , the module partition is concise and the division of each stage is explicit, which contribute a lot to the achivement of this system.Keywords: account management;software engineering; Java;Eclipse; business process目录第1章绪论 (1)1.1概述 (1)1.2可行性分析 (1)1.2.1技术可行性 (1)1.2.2经济可行性 (1)1.2.3管理可行性 (2)1.3设计意义 (2)1.4设计目标 (2)第2章开发工具及运行环境 (3)2.1开发工具 (3)2.1.1 Java语言特性 (3)2.1.2 Eclipse (3)2.1.3 Mysql与Navicat for Mysql (4)2.2运行环境 (4)第3章系统需求分析 (5)3.1功能模块分析 (5)3.1.1用户注册 (5)3.1.2用户登录 (5)3.1.3用户主菜单 (5)3.1.4存款功能 (6)3.1.5取款功能 (6)3.1.6转账功能 (6)3.1.7查询功能 (7)3.1.8修改密码 (7)3.1.9返回功能 (8)3.2业务流程分析 (8)3.3数据流程分析 (8)3.3.1系统关联图 (8)3.3.2顶层图 (9)3.3.3数据流图 (9)第4章数据库分析 (10)4.1数据库需求分析 (10)4.2数据库概念结构设计 (11)4.3数据库逻辑结构设计 (11)4.4数据库结构的实现 (12)第5章系统设计 (14)5.1用户实体 (14)5.2界面代码设计 (15)5.3数据库的连接 (17)5.4功能模块的实现 (18)第6章系统测试 (19)第7章总结与展望 (25)7.1总结 (25)7.2展望 (25)参考文献 (26)致谢 (27)附录 (28)第1章绪论1.1 概述进入21世纪之后,随着科技的飞速发展和社会进步,尤其是计算机在大范围的普及,人工智能化的计算机应用也逐步的由大规模科学计算的海量数据处理转向大规模的事务处理和对工作流的管理,这就产生了以计算机为核心,以数据库管理系统为开发环境的管理信息系统在大规模的事务处理和对工作流的管理等方面的应用,特别是在银行账户管理之中的应用日益受到人们的关注。
中国工商银行账户管理系统(完成篇含页码)

中国工商银行账户管理系统本程序共有4个包:(这4个包均在com.bank.ui) 一.账户信息数据封装,名为Account.javapackage com.bank.ui;/*** 账户信息数据封装** @author liang.tang**/public class Account {private String code;private String name;private String pass;private double money;/*** 获得账号** @return*/public String getCode() {return code;}/*** 修改账号** @param code*/public void setCode(String code) {this.code = code;}/*** 获得名称** @return*/public String getName() {return name;}/*** 修改名称** @param name*/public void setName(String name) { = name;}/*** 获得密码** @return*/public String getPass() {return pass;}/*** 修改密码** @param pass*/public void setPass(String pass) {this.pass = pass;}/*** 获得金额** @return*/public double getMoney() {return money;}/*** 修改金额** @param money*/public void setMoney(double money) {this.money = money;}/*** 默认构造*/public Account() {super();}/*** 全参数构造** @param code* @param name* @param pass* @param money*/public Account(String code, String name, String pass, double money) { super();this.code = code; = name;this.pass = pass;this.money = money;}}二.帮助输入的工具类,名为InputHelper.javapackage com.bank.ui;import java.util.Scanner;/*** 帮助输入的工具类** @author liang.tang**/public class InputHelper {public static Scanner scanner = new Scanner(System.in);// 测试方法public static void main(String[] args) {// InputHelper.getCode();// InputHelper.getInt();// InputHelper.getMoney();// InputHelper.getPassword();System.out.println("bye");}/*** 获得一行数据** @return一行数据*/public static String getLine() {return scanner.nextLine();}/*** 获得一个有效的银行账号 6225开始,总长度8,全是数字** @return银行账号*/public static String getCode() {String line;do {// 获得一行数据并截断空格line = getLine().trim();// 判断长度是否为8位if (line.length() != 8) {System.out.print("长度不符合要求,请输入8位数字:");continue;}// 判断是否以6225开始if (!line.startsWith("6225")) {System.out.print("请输入以6225开始的8位数字:");continue;}// 判断是否为数字try {Integer.parseInt(line);} catch (Exception e) {System.out.print("请输入以6225开始的8位数字:");continue;}// 跳出循环break;} while (true);return line;}/*** 有效的密码 6位的数字** @return密码*/public static String getPassword() {String line;do {// 获得一行数据并截断空格line = getLine().trim();// 判断长度是否为6位if (line.length() != 6) {System.out.print("长度不符合要求,请输入6位数字:");continue;}// 判断是否为数字try {Integer.parseInt(line);} catch (Exception e) {System.out.print("类型不符合要求,请输入6位数字:");continue;}// 跳出循环break;} while (true);// 返回数据return line;}/*** 获得有效的金额大于0的数字** @return*/public static double getMoney() {String line;double money = 0;do {// 获得一行数据并截断空格line = getLine().trim();// 判断是否为数字try {money = Double.parseDouble(line);} catch (Exception e) {System.out.print("请输入金额数字:");continue;}// 该数字是否大于0if (money > 0)// 跳出循环break;else {System.out.print("请输入金额大于0的数字:");continue;}} while (true);return money;}/*** 获得整数** @return*/public static int getInt() {String line;int number = 0;do {// 输入一行数据并截断空格line = getLine().trim();// 判断是否为数字try {number = Integer.parseInt(line);} catch (Exception e) {System.out.print("请输入整数数字:");continue;}// 跳出循环break;} while (true);// 返回数据return number;}}三.银行业务类,名为BankBiz.javapackage com.bank.ui;/*** 银行业务类** @author liang.tang**/public class BankBiz {Account[] accounts = new Account[100];/*** 开户** @param account* 账户信息* @return是否成功,成功返回true,失败返回false*/public boolean add(Account account) {// 检查账号是否已经存在for (int i = 0; i < accounts.length; i++) {if (accounts[i] != null&& accounts[i].getCode().equals(account.getCode())) { System.out.println("账户已经存在!");return false;}}for (int i = 0; i < accounts.length; i++) {// 查找一个空位置,进行插入if (accounts[i] == null) {accounts[i] = account;return true;}}// 循环完都没有插入,则返回失败System.out.println("账户已满,无法加入任何账户!");return false;}/*** 存钱** @param code* 账号* @param money* 金额* @return是否成功,成功返回true,失败返回false*/public boolean saveMoney(String code, double money) {// 根据账号查找账户信息Account account = null;for (int i = 0; i < accounts.length; i++) {if (accounts[i] != null && accounts[i].getCode().equals(code)){account = accounts[i];}}// 判断是否找到if (account == null) {System.out.println("账号不存在!");return false;} else {// 将原来的金额加上要存的金额money += account.getMoney();// 修改账户的金额信息account.setMoney(money);return true;}}/*** 取钱** @param code* 账号* @param password* 密码* @param money* 金额* @return 0正常;1账号不对;2密码不对;3钱不够*/public int takeMoney(String code, String password, double money) { // 根据账号查找账户信息Account account = null;for (int i = 0; i < accounts.length; i++) {if (accounts[i] != null && accounts[i].getCode().equals(code)){account = accounts[i];}}// 判断是否找到if (account == null) {// 账号不对return 1;} else if (!account.getPass().equals(password)) {// 密码不对return 2;} else if (account.getMoney() < money) {// 钱不够return 3;} else {// 将原来的金额减去要取的金额money = account.getMoney() - money;// 修改账户的金额信息account.setMoney(money);return 0;}}/*** 转账** @param codeOut* 转出账号* @param codeIn* 转入的账号* @param password* 转出账号的密码* @param money* 转出的金额* @return 0正常;1账号不对;2密码不对;3钱不够*/public int transfer(String codeOut, String codeIn, String password, double money) {// 根据转出账号查找账户信息Account accountOut = null;for (int i = 0; i < accounts.length; i++) {if(accounts[i] != null&& accounts[i].getCode().equals(codeOut)) {accountOut = accounts[i];}}// 根据转入账号查找账户信息Account accountIn = null;for (int i = 0; i < accounts.length; i++) {if(accounts[i] != null&& accounts[i].getCode().equals(codeIn)){accountIn = accounts[i];}}// 判断是否找到if (accountOut == null || accountIn == null) {// 账号不对return 1;} else if (!accountOut.getPass().equals(password)) {// 密码不对return 2;} else if (accountOut.getMoney() < money) {// 钱不够return 3;} else {// 修改转出账户的金额信息double temp = accountOut.getMoney() - money;accountOut.setMoney(temp);// 修改转入账户的金额信息temp = accountIn.getMoney() + money;accountIn.setMoney(temp);return 0;}}/*** 查询** @param code* 账号* @param password* 密码* @return true查询成功;false查询失败*/public void checkMoney(String code, String password) {// 根据账号查找账户Account account = null;for (int i = 0; i < accounts.length; i++) {if (accounts[i] != null && accounts[i].getCode().equals(code)){account = accounts[i];}}// 判断是否找到if (account == null) {System.out.println("不存在这个账户!");} else {// 判断密码是否正确if (account.getPass().equals(password)) {// 若正确,则显示账户信息code = account.getCode();String name = account.getName();double money = account.getMoney();System.out.println("**********************************");System.out.println("账号:" + code);System.out.println("姓名:" + name);System.out.println("余额:" + money);} elseSystem.out.println("密码错误!");}}}四.银行管理系统界面,该包的文件名为BankUI.javapackage com.bank.ui;/*** 银行管理系统界面** @author liang.tang**/public class BankUI {BankBiz biz = new BankBiz();// 启动入口public static void main(String[] args) {BankUI bankUI = new BankUI();bankUI.mainMenuUI();}/*** 主菜单*/public void mainMenuUI() {do {// 1.打印系统信息System.out.println("**********************************");System.out.println("* 中国工商银行 *");System.out.println("* 账户管理系统 *");System.out.println("* V1.0 *");System.out.println("**********************************");// 2.打印主菜单System.out.println("*1.开户 *");System.out.println("*2.存钱 *");System.out.println("*3.取钱 *");System.out.println("*4.转账 *");System.out.println("*5.查询 *");System.out.println("*6.Bye! *");System.out.println("*************************************");// 3.选择菜单System.out.print("*请选择:");int menu = InputHelper.getInt();// 4.业务判断操作work(menu);} while (true);}/*** 业务判断操作** @param menu* 选择的菜单号码*/public void work(int menu) {switch (menu) {case 1:openAccountUI();break;case 2:saveMoneyUI();break;case 3:takeMoneyUI();break;case 4:transferUI();break;case 5:checkMoneyUI();break;case 6:System.out.println("感谢你的使用,再见!");System.exit(0);default:System.out.println("请输入正确的号码【1-6】");break;}}/*** 开户界面*/public void openAccountUI() {System.out.println("**********************************");System.out.println("当前业务:开户");// 1.收集数据System.out.print("请输入账号:");String code = InputHelper.getCode();System.out.print("请输入名称:");String name = InputHelper.getLine();System.out.print("请输入密码:");String password = InputHelper.getPassword();System.out.print("请输入金额:");double money = InputHelper.getMoney();// 2.封装数据Account account = new Account(code, name, password, money);// 3.业务处理boolean result = biz.add(account);// 4.显示结果if (result == true) {System.out.println("开户成功!");} else {System.out.println("开户失败!");}}/*** 存钱界面*/public void saveMoneyUI() {System.out.println("**********************************");System.out.println("当前业务:存钱");// 1.收集数据System.out.print("请输入账号:");String code = InputHelper.getCode();System.out.print("请输入金额:");double money = InputHelper.getMoney();// 2.业务处理boolean result = biz.saveMoney(code, money);// 3.显示结果if (result == true) {System.out.println("存钱成功!");} else {System.out.println("存钱失败!");}}/*** 取钱界面*/public void takeMoneyUI() {System.out.println("**********************************");System.out.println("当前业务:取钱");// 1.收集数据System.out.print("请输入账号:");String code = InputHelper.getCode();System.out.print("请输入密码:");String password = InputHelper.getPassword();System.out.print("请输入金额:");double money = InputHelper.getMoney();// 2.业务处理int result = biz.takeMoney(code, password, money);// 3.显示结果(0正常;1账号不对;2密码不对;3钱不够)switch (result) {case 0:System.out.println("取钱成功!");break;case 1:System.out.println("取钱失败,账号不对!");break;case 2:System.out.println("取钱失败,密码不对!");break;case 3:System.out.println("取钱失败,金额不足!");break;default:break;}}/*** 转账界面*/public void transferUI() {System.out.println("**********************************");System.out.println("当前业务:转账");// 1.收集数据System.out.print("请输入转出账号:");String codeOut = InputHelper.getCode();System.out.print("请输入转入账号:");String codeIn = InputHelper.getCode();System.out.print("请输入转出密码:");String password = InputHelper.getPassword();System.out.print("请输入金额:");double money = InputHelper.getMoney();// 2.业务处理int result = biz.transfer(codeOut, codeIn, password, money);// 3.显示结果(0正常;1账号不对;2密码不对;3钱不够)switch (result) {case 0:System.out.println("转账成功!");break;case 1:System.out.println("转账失败,账号不对!");break;case 2:System.out.println("转账失败,密码不对!");break;case 3:System.out.println("转账失败,金额不足!");break;default:break;}}/*** 查询界面*/public void checkMoneyUI() {System.out.println("**********************************");System.out.println("当前业务:查询");// 1.收集数据System.out.print("请输入账号:");String code = InputHelper.getCode();System.out.print("请输入密码:");String password = InputHelper.getPassword();// 2.业务处理biz.checkMoney(code, password);}}。
银行管理系统java课程设计

银行管理系统java课程设计一、教学目标本课程的目标是让学生掌握Java语言在银行管理系统中的应用。
通过本课程的学习,学生将能够理解银行管理系统的业务流程,运用Java语言实现银行管理系统的功能,并熟练使用相关开发工具。
1.掌握Java语言的基本语法和数据结构。
2.了解银行管理系统的业务流程和常用模块。
3.熟悉银行管理系统的设计原则和开发方法。
4.能够使用Java语言编写简单的银行管理系统程序。
5.能够分析银行管理系统的需求,设计合适的系统架构。
6.能够使用相关开发工具进行银行管理系统的开发和调试。
情感态度价值观目标:1.培养学生的团队协作能力和沟通能力。
2.培养学生对编程的兴趣和热情。
3.培养学生遵守编程规范和职业道德的意识。
二、教学内容本课程的教学内容主要包括三个部分:Java语言基础、银行管理系统业务流程、银行管理系统设计与实现。
1.Java语言基础:介绍Java语言的基本语法、数据结构、面向对象编程等知识。
通过讲解和示例,使学生掌握Java语言的基本编程能力。
2.银行管理系统业务流程:讲解银行管理系统的业务流程,包括客户管理、账户管理、贷款管理、结算管理等模块。
使学生了解银行管理系统的实际运作过程。
3.银行管理系统设计与实现:结合实际案例,引导学生运用Java语言设计和实现银行管理系统。
内容包括系统架构设计、模块划分、编程规范、测试与调试等。
三、教学方法本课程采用多种教学方法,包括讲授法、案例分析法、实验法等。
1.讲授法:通过讲解Java语言基础知识和银行管理系统的业务流程,使学生掌握相关理论知识。
2.案例分析法:分析实际案例,让学生了解银行管理系统的实际应用,提高学生的实际操作能力。
3.实验法:安排实验课程,让学生动手编写代码,培养学生的实际编程能力和解决问题的能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料、实验设备等。
1.教材:选用权威、实用的Java语言教材,为学生提供系统的理论知识学习。
原创Java银行管理系统取款

原创Java银行管理系统取款简介银行管理系统是一种提供银行服务的软件系统,其中之一的功能是允许用户进行取款操作。
本文将介绍一个基于Java编写的银行管理系统,并详细讲解如何实现取款功能。
系统概述银行管理系统是一个面向客户的软件系统,其主要功能包括账户管理、存款、取款、转账、查询等。
本系统使用Java语言进行开发,采用面向对象的编程思想,使用MVC(模型-视图-控制器)架构设计实现。
取款功能设计1. 页面设计取款功能将在用户的个人账户页面中展示。
用户可以输入取款金额,点击取款按钮进行操作。
在金额输入框中,将进行必要的格式验证,确保用户输入的金额合法。
系统将在用户点击取款按钮后,根据用户输入的金额进行取款操作,并给出相应的提示。
2. 后端处理2.1 验证金额合法性在后端处理取款操作之前,应该对用户输入的金额进行合法性验证。
首先检查金额是否大于0,然后检查账户余额是否足够进行取款。
如果金额合法,可以继续后续的取款操作。
2.2 更新账户余额在进行取款操作之后,需要更新用户的账户余额。
这可以通过减去取款金额来实现。
确保在更新账户余额之前,再次验证账户余额是否足够支付取款金额。
如果余额不足,应给出相应的提示并终止取款流程。
2.3 记录取款信息为了记录用户取款操作,可以在数据库中创建一个取款记录表。
每次用户进行取款操作时,将取款金额、取款时间以及用户账户信息存入该记录表中。
这可以用于后续的查询和统计。
3. 数据库设计银行管理系统是一个涉及到数据存储的系统,因此需要一个数据库来存储用户的账户信息、取款记录等。
在本文中,我们使用MySQL作为数据库。
3.1 账户表账户表用于存储用户的账户信息,包括账户ID、账户余额等字段。
账户表的结构如下:CREATE TABLE account (id INT PRIMARY KEY AUTO_INCREMENT,balance DECIMAL(10, 2));3.2 取款记录表取款记录表用于存储用户的取款记录信息,包括取款ID、取款金额、取款时间、账户ID等字段。
银行帐户管理系统-Java课程设计

银行帐户管理系统 - Java课程设计一、需求分析1.1 项目背景随着现代经济的发展,银行业作为金融体系的重要组成部分,其业务也日渐多元化,保障着人们的生活和经济发展。
在这样的大背景下,为了提高银行业务的效率和用户体验,需要开发一个基于Java的银行帐户管理系统。
1.2 功能要求银行帐户管理系统需要实现的功能包括:用户注册、登录、修改密码、查看帐户信息、存款、取款、转账等。
此外,还需要实现管理员的相关操作,如:添加、删除、修改用户信息,查询用户信息等。
1.3 技术选型本系统采用Java作为主要开发语言,后端采用Spring Boot框架,前端采用Bootstrap框架进行开发。
数据库采用MySQL存储。
二、设计方案2.1 数据库设计本系统的数据库包括两张表:用户表和账户表。
其中,用户表主要存储用户的基本信息,包括用户名、密码、手机号等;账户表主要存储账户的信息,包括账户号、账户名、余额等。
2.2 功能实现本系统的主要功能实现如下:2.2.1 用户注册用户可以通过填写基本信息、手机号码等注册银行帐户。
2.2.2 用户登录已注册用户可以通过输入用户名和密码进行登录。
2.2.2 修改密码已登录用户可以通过输入旧密码和新密码来修改密码。
2.2.3 查看帐户信息已登录用户可以查看自己的帐户信息,包括账户号、账户名、余额等。
2.2.4 存款操作已登录用户可以进行存款操作,输入存款金额后更新账户余额。
2.2.5 取款操作已登录用户可以进行取款操作,输入取款金额后更新账户余额。
2.2.6 转账操作已登录用户可以进行转账操作,输入对方账户号和转账金额后更新双方账户余额。
2.2.7 管理员操作管理员可以进行添加、删除、修改用户信息等操作。
三、系统架构银行帐户管理系统的系统架构如下图所示:Figure 1. 银行帐户管理系统架构图主要包括:客户端、服务器端、数据库。
客户端:提供基本的用户操作界面,用户可以通过客户端进行登录、注册等操作。
bam银行账户管理系统(java类)

BAM银行账户管理系统(ATM管理系统)本系统采用JAVA语言并在eclipse环境下编写测试完成,涉及类的概念,以及面向对象的几大特性(继承,封装,多态,抽象),也有异常处理机制,基本可以满足大多数BAM 系统的相关实现,且代码标注大量注释,读者可以很轻松地理解相关逻辑,大家可以开心参考。
系统简介:1、JAVA类的面相对象的应用,拥有异常处理机制,不会因为输入错误而导致程序崩溃2、主要有5个类,即①Account(账户类)②SaveAccount(储蓄账户类):不能透支③CreditAccount(信用账户类):可以透支④Bank(银行类)⑤ATM(ATM类)类的具体属性级行为见代码3、各个类之间的相互关系,涉及继承、封装、多态、抽象,在多态中又涉及重载和重写,请读者注意相关联系(关注注释)4、可以实现数据保存功能,数据将保存在文件中(即当你注册了一个账户,下次再登陆系统时,可以实现与上次最后的操作相衔接)5、账户号自动生成,比较符合现实6、主要功能有:1.开户2.查询账户余额3.存款4.取款5.转账(一个账户到另一个账户)等……7、运行时界面简示1.初始界面(账户登录)2.账户登录后界面注意事项:1、本系统采用的编程环境是,jer7。
所以,运行代码需要保持电脑上所装的JDK为以上版本,如有报错,只需换个高一点的版本即可。
注意:第一次装JDK,要配置环境变量(请查阅相关资料,比较简单)2、本系统代码涉及到包,所以如果报名不一致就会报错,解决方法:修改一下包名即可3、建议把各个类写在同一个包下面,且每一个类单独写一个java文件,如下图:4、在运行程序前,需要在项目下面新建一个(用来保存数据)文件(如上图),并在其中写入至少一个账户信息,(如下图,其中每项代表的意思,请读者参照代码的注释),否则在初始化的时候会因为找不到账户信息,从而产生异常。
系统源码:Account类package .qx;蓄账户 2.信用账户*/public abstract class Account {x;/*** 储蓄账户类*/public class SavingAccount extends Account {x;/*** 信用账户类,增加一个信用额度ceiling属性*/public class CreditAccount extends Account{private int ceiling;x;import * Bank类* 编写Bank类,属性:1.当前所有的账户对象的集合,存放在数组中2.当前账户数量方法:1.用户开户,需要的参数:id,密码,密码确认,姓名,身份证,账户类型,返回新创建的Account对象的账号,提示:用(s2) 可以比较s1,s2两个字符串的值是否相等.账户类型是一个整数,为0的时候表示储蓄账户,为1的时候表示信用账户2.用户登录,参数:id,密码返回登录账户的账号3.用户存款,参数:id,存款数额,返回void4.用户取款,参数:id,取款数额,返回void5.查询余额,参数:id,返回该账户的余额 double用户会通过调用Bank对象以上的方法来操作自己的账户,请分析各个方法需要的参数 */public class Bank {private Account[] accounts = new Account[20];private int number;quals("0")){Account savingAcc = new SavingAccount(str[0]),str[1].toString(), str[2].toString(),str[3].toString(),(str[4]),(str[5]));accounts[number] = savingAcc;}else{Account creditAcc = new CreditAccount(str[0]),str[1].toString(), str[2].toString(),str[3].toString(),(str[4]),(str[5]),5000);accounts[number] = creditAcc;}number ++;id++;s = ();}} catch (NumberFormatException e) {d+",");(accounts[i].getPassword()+",");(accounts[i].getName()+",");(accounts[i].getPersonId()+",");(accounts[i].getAccountType()+",");(accounts[i].getBalance()));();}else{break;}}();etId() && (accounts[i].getPassword())){account = accounts[i];break;}}else{break;}}return account;}/*** 转账验证(方法的重载)*/public Account verifyAccount(long id){Account account = null;for(int i = 0;i < ;i++){ etId()){account = accounts[i];break;}}else{break;}}return account;}/*** 转账*/public void transferAccount(Account account1, Account account2, double money){ (money);(money);}/*** 存款*/public void deposit(Account account, double money){(money);}/*** 取款*/public void withdraw(Account account, double money){ (money);}}ATM类package .qx;import * ATM类,提供用户界面操作*/public class ATM {已有账户登录");" *2.没有账户,开户");" *3.退出");Scanner scanner = new Scanner;"请选择:");try {int choice1 = ();switch(choice1){case 1:scanner = new Scanner;"请输入银行卡号:");long id = ();scanner = new Scanner;"请输入银行密码:");String password = ();Account account = (id, password);if(account != null){ 询账户余额");" *2.存款");" *3.取款");" *4.转账");" *5.退卡");scanner = new Scanner;"请选择:");try {int choice2 = ();switch(choice2){case 1:"您账户的当前余额为:"+());break;case 2:scanner = new Scanner;"请输入您的存款金额:");double money1 = ();(account, money1);break;case 3:scanner = new Scanner;"请输入您的取款金额:");double money2 = ();(account, money2);break;case 4:scanner = new Scanner;"请输入您要转入账户的卡号:");long id2 = ();Account account2 = (id2);if(account2 != null){scanner = new Scanner;"请输入您要转入账户的金额:");double money = ();if(money <={(account, account2, money);"转账成功!!!");}else{"抱歉,您账户没有足够的金额!请查看后重新选择输入!");}}else{"抱歉,没有找到您要转入的账户信息!请核对后重新选择输入!");}break;case 5:secondFlag = false;break;default:"没有该选项,请重新选择!");break;}} catch (Exception e) {"选择输入不合法,请重新选择!");}}}else{"没有此账户,请先开户!");}break;case 2://账号id由银行自动提供(从1001递增)scanner = new Scanner;"请输入账户密码:");String passwd1 = ();scanner = new Scanner;"请再输入账户密码:");String passwd2 = ();scanner = new Scanner;"请输入户主姓名:");String name = ();scanner = new Scanner;"请输入户主身份证:");String personId = ();scanner = new Scanner;"请输入账户类型(0储蓄,1信用):");int type = ();(passwd1, passwd2, name, personId, type);break;case 3:();firstFlag = false;break;default :"没有该选项,请重新选择!");break;}} catch (Exception e) {"选择输入不合法,请重新选择!");}}"谢谢使用!");}}。
基于java_ATM机_银行存取款系统的设计与实现(含源文件)

本科毕业论文(设计)银行存取款系统的设计与实现姓名:__ ________ 系别: 计算机与信息技术学院_专业:_ 计算机科学与技术_ 学号:__ _____指导教师:__ _ _________年月日目录引论 (1)1银行存取款系统概述 (1)1.1背景 (1)1.2意义 (1)2 银行存取款系统需求分析 (1)2.1系统需求 (1)2.2功能需求 (1)2.2.1用户注册和登陆功能 (1)2.2.2用户存取款转账和查询历史功能 (1)2.3软件属性需求 (2)2.4业务流程描述 (2)3.银行存取款系统总体设计 (2)3.1系统设计概述 (2)3.2注册帐户 (2)3.3登录 (2)3.4存款 (2)3.5取款 (2)3.6转账 (2)3.7查询历史 (2)3.8退出 (3)4 Oracle数据库的设计 (3)4.1 Oracle数据库设计概论 (3)4.2 表的结构设计 (3)4.2.1用户表 (3)4.2.2历史表 (3)4.3 PL/SQL存储过程的设计 (3)4.3.1用户表存储过程的设计 (4)4.3.2历史表存储过程的设计 (4)5 银行存取款系统的实现 (5)5.1用户登陆模块的实现 (5)5.1.1界面样式 (5)5.1.2功能实现 (5)5.2新用户注册模块的实现 (6)5.2.1界面样式 (6)5.2.2功能实现 (6)5.3用户操作模块的实现 (7)5.3.1界面样式 (8)5.3.2功能实现 (8)5.4存款模块的实现 (9)5.4.1界面样式 (9)5.4.2功能实现 (9)5.5取款模块的实现 (10)5.5.1界面样式 (11)5.5.2功能实现 (11)5.6转账模块的实现 (12)5.6.1界面样式 (12)5.6.2功能实现 (12)5.7查询历史记录模块的实现 (15)5.7.1界面样式 (15)5.7.2功能实现 (15)6发布程序及分包规范 (16)结论 (16)参考文献 (17)致谢 (17)银行存取款系统的设计与实现摘要计算机科学技术的发展不仅极大地促进了整个科学的发展,而且明显加快了经济信息化和社会信息化的进程。
银行帐户管理系统 Java课程设计

课程设计For personal use only in study and research; not for commercial useFor personal use only in study and research; not for commercial use课程设计名称:java课程设计专业班级:计科09级05班学生姓名:刘品训学号:0507指导教师:王社伟课程设计时间:计算机科学与技术专业课程设计任务书银行帐户管理系统一、需求分析银行账户管理系统中,主要有以下功能:1.添加账户:主要增加账户的账号,姓名,以及所存的金额。
2.删除账户:根据输入的账号,删除该账户的信息。
3.修改账户信息:根据输入的账号,修改账户的信息。
4.查询账户信息:根据输入的账号,查询并显示出该账户的相关信息。
5.浏览:浏览数据库中的各个账户的信息。
6.存款:输入账号,并向该账号存钱,同时并记录下来。
7.贷款:输入账号和贷款单号向该账户贷款,并记录下来。
8.还钱:输入账号和贷款单号付贷款钱,同时并显示还有多少贷款未付。
二、概要设计课程设计模块图:系统流程图:三、运行环境、开发语言1:Windows xp,DOS,Microsoft SQL Server 2005;2:Java,SQL Server。
四、详细设计1 程序清单表1 程序清单2 主要代码2.1建立Bank公共类,并连接数据库import java.sql.*;import java.util.*;import javax.swing.*;public class Bank{public static String driverName = ""; //加载JDBC驱动public static String dbURL = "jdbc:; 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){"---------------银行账户管理系统---------------");" 1:添加账户2:删除账户");" 3:修改账户信息4:查询账户信息");" 5:浏览6:存款");" 7:贷款8:还钱");" 9:退出");"-------------请输入您要进行的服务---------");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:"请在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;"请输入您要添加的数据");"账号");num = scanner.next();"姓名");name = scanner.next();"金额");jine= scanner.nextInt();String sql = "insert into 账户信息(账号,姓名,金额) values('"+ num +"','"+ name +"','"+ jine +"')";//向表中插入信息"信息已插入!");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);//连接数据库"---删除账户---");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)){flag=1;break;}}if(flag==1){String sql2 = "delete 账户信息where 账号= '"+ num + "'";Statement stmt2 = dbconn.createStatement();stmt2.executeUpdate(sql2);stmt2.close();"数据已删除!");break;}else{"您输入的账号错误或者不存在,请重新输入:");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);//连接数据库"请输入您要修改账号:");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)){"请输入您更改的姓名:");name = scanner.next();"请输入您更改的金额");jine = scanner.nextInt();flag=1;break;}}if(flag==1)break;else{"您输入的账号错误或者不存在,请重新输入:");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();"数据已更改");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);//连接数据库"---按账号查询---");"请输入账号");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{"您输入的账号错误或者不存在,请重新输入:");num = scanner.next();rs1 = stmt1.executeQuery(sql1);}}"账号姓名金额");"%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);"账号姓名金额");while(rs.next()){String num = rs.getString("账号");String name = rs.getString("姓名");int jine = rs.getInt("金额");"%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);//连接数据库"请输入账号");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){"请输入要存入的金额");jine1 = scanner.nextInt();"请输入存款的日期");Cundate =scanner.next();String sql2 = "insert into 存款(账号,存钱金额,存钱日期) values('"+ num +"','"+ jine1 +"','"+ Cundate +"')";jine2=rs.getInt("金额");jine=jine1+jine2;String sql3 = "update 账户信息set 金额= '"+ jine +"' where 账号= '"+ num +"'";"存款成功");stmt.executeUpdate(sql2);stmt.executeUpdate(sql3);break;else{"您输入的账号错误或者不存在,请重新输入:");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;"请输入您的账号");"账号");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)"请输入您的贷款单号");dainum = scanner.next();"请输入您要贷的金额");daijine= scanner.nextInt();"请输入您贷款的日期");daidate=scanner.next();String sql = "insert into 贷款(账号,贷款单号,贷款金额,贷款日期) values('"+ num +"','"+ dainum +"','"+ daijine +"','"+ daidate +"')";"贷款成功!");Statement stmt = dbconn.createStatement();stmt.executeUpdate(sql);stmt.close();break;}else{"您输入的账号错误或者不存在,请重新输入:");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;"请输入您的账号");"账号");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){"请输入您的贷款单号");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()){//"aaa");String c= null;c = rs2.getString("贷款单号");//"%s %n",c);if(dainum.equals(c)){b = 1;break;}}if(b == 1){"请输入您要还的金额");huanjine= scanner.nextInt();"请输入您还钱的日期");huandate= scanner.next();String sql4 = "insert into 还钱(账号,贷款单号,还钱金额,还钱日期) values('"+ num +"','"+ dainum +"','"+ huanjine +"','"+ huandate +"')";"还钱成功!");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){"您还有" + e+ "未付");}else{ int f=0;f=0-e;"您多支付了"+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{"您输入的贷款单号错误或者不存在,请重新输入:");dainum = scanner.next();rs2 = stmt2.executeQuery(sql2);}}}else{"您输入的账号错误或者不存在,请重新输入:");num = scanner.next();rs1 = stmt1.executeQuery(sql1);}}}catch(Exception e){}m = true;}五、调试与分析问题1:遇到的第一个问题是如何用java连接数据库,根据查资料以及问同学才学会;问题2:是在写还钱这一模块,用了4重循环,无法同步实现账号和贷款单号的同步判定,经过自己仔细的调试,才发现问题,用不同的表进行逐步循环才解决问题;问题3:在贷款和还钱这一模块,在还钱的时候,忘记设置贷款表内的数据与还钱要同步。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.1 银行系统界面设计................................................................................................................................ 7 4.1.1 主界面设计..................................................................................................................................... 7 4.1.2 业务类界面设计............................................................................................................................. 7
第五章 银行账户管理系统测试及运行......................................................................................10
5.1 系统测试.............................................................................................................................................. 10 5.2 系统运行.............................................................................................................................................. 10
第六章:结论与展望................................................................................................................... 11
6.1 小结 .......................................................................................................................................................11 6.2 展望 .......................................................................................................................................................11
第三章 银行账户管理系统分析....................................................................................................3
3.1 银行工作过程描述................................................................................................................................ 3 3.2 银行账户管理系统需求分析 ................................................................................................................ 3
3.2.1 编写目的 ........................................................................................................................................ 3 3.2.2 功能结构 ........................................................................................................................................ 4 3.2.3 功能实现 ........................................................................................................................................ 4 3.3 银行账户管理系统数据设计 ................................................................................................................ 6
关键词:
JAVA,控件,面向对象,银行账户管理,数据规范化。
I
基于 JAVA 的信息管理系统
目录
摘要 ..................................................................................................................................................I 目录................................................................................................................................................ II 第一章 引言...................................................................................................................................1
经过分析,本文使用了 SUN 公司的 JAVA 开发工具,利用其提供的各 种面向对象的开发工具,实现了开户、存款、取款、查询、转账、改密码、 销户等七项功能模块,并对各初始原型模块进行需求迭代,不断修正和改进, 直到使系统符合银行账户管理的规定,满足银行相关人员日常使用的需要, 达到操作过程中的直观、方便、实用、安全等要求。同时,该银行账户管理 系统是典型的信息管理系统(MIS),本软件采用纯 JAVA 技术,充分发挥 了 JAVA 跨平台、多线程、安全、动态等特点。总之,本系统设计开发的过 程,是对 JAVA 应用基础与面向对象程序设计的实践和检验,是对我们所学 专业知识的综合性应用和全面提高。
第二章 JAVA 技术简介...............................................................................................................2
2.1 JAVA 的产生和发展 ............................................................................................................................ 2 2.2 JAVA 的特点 ........................................................................................................................................ 2
1.1 设计思想................................................................................................................................................ 1 1.2 课题的研究意义.................................................................................................................................... 1 1.3 系统设计目的........................................................................................................................................ 1 1.4 开发和运行环境选择 ............................................................................................................................ 1
4.2 银行系统代码设计................................................................................................................................ 8 4.2.1 主类................................................................................................................................................. 8 4.2.2 业务类 ............................................................................................................................................ 8 4.2.3 输入输出类..................................................................................................................................... 9 4.2.4 值类 ................................................................................................................................................ 9