课程设计-ATM柜员机模拟程序
java课程设计ATM柜员机模拟程序

数据库连接:使用JDBC连接 数据库,进行数据查询
查询语句:编写SQL查询语句, 根据用户输入进行查询
结果展示:将查询结果以列表 或表格形式展示给用户
05
AT M 柜 员 机 的 数 据 库 设计
数据库表结构设计
用户表:存储用户信息,包括用户名、密码、余额等 交易表:记录用户的交易信息,包括交易时间、交易金额、交易类型等 账户表:存储账户信息,包括账户编号、账户类型、账户余额等 银行信息表:存储银行信息,包括银行名称、银行地址、银行电话等 系统日志表:记录系统操作日志,包括操作时间、操作人、操作内容等
网络中断等
性能测试与优化
测试方法:压力测 试、负载测试、稳 定性测试等
测试工具: JMeter、 LoadRunner等
优化目标:提高系 统响应速度、减少 资源消耗、提高系 统稳定性等
优化方法:代码优 化、数据库优化、 缓存优化等
调试过程与问题解决
测试环境搭建:安装Java开发环境,配置 数据库,安装模拟器等
06
AT M 柜 员 机 的 测试与调试
01 添加章节标题
02
AT M 柜 员 机 模 拟 程 序 概述
AT M 柜 员 机 的 基 本 功 能
存 款 : 用 户 可 以 将 现 金 存 入 AT M 柜 员 机 , 系统会自动识别并记录存款金额
转 账 : 用 户 可 以 通 过 AT M 柜 员 机 进 行 转 账操作,系统会自动记录转账信息
异地备份:将 备份数据存储 在异地,防止 自然灾害等意 外情况导致的
数据丢失
访问控制:设 置严格的访问 控制策略,防 止未授权访问
安全审计:定 期进行安全审 计,及时发现 并修复安全漏
c模拟取款机课程设计

c 模拟取款机课程设计一、课程目标知识目标:1. 学生能够理解ATM机的基本工作原理和功能操作流程;2. 学生能够掌握运用编程语言进行ATM机模拟程序的设计;3. 学生能够运用基本的数学运算实现账户余额的查询、取款和存款功能。
技能目标:1. 学生能够运用所学知识,独立设计并编写一个简单的ATM取款机模拟程序;2. 学生能够通过编程解决实际问题,提高逻辑思维和问题解决能力;3. 学生能够通过团队协作,共同完成项目任务,提高沟通与协作能力。
情感态度价值观目标:1. 学生能够认识到编程在生活中的实际应用,增强学习信息技术的兴趣;2. 学生能够在项目实践中体会团队合作的重要性,培养合作精神;3. 学生能够通过解决实际问题,认识到学习知识可以改善生活,提高社会责任感。
分析课程性质、学生特点和教学要求,本课程旨在帮助学生在掌握ATM机基本知识的基础上,运用编程技能实现模拟程序的设计,培养学生解决实际问题的能力。
课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果,为后续的教学设计和评估提供依据。
二、教学内容1. 理论知识:- 了解ATM机的基本功能及其工作原理;- 学习编程语言的基本语法和结构;- 掌握条件语句、循环语句和函数的定义与使用。
2. 实践操作:- 设计并编写ATM机模拟程序;- 实现账户余额查询、取款、存款和退出功能;- 学习调试程序,解决编程过程中遇到的问题。
3. 教学大纲:- 第一周:ATM机基本功能介绍,学习编程语言基础;- 第二周:编写ATM机模拟程序,实现查询余额和取款功能;- 第三周:实现存款和退出功能,学习调试程序;- 第四周:项目展示与评价,总结反馈。
4. 教材章节:- 《信息技术》第三章:程序设计基础;- 《信息技术》第四章:算法与程序设计。
教学内容根据课程目标进行选择和组织,保证科学性和系统性。
教学大纲明确了教学内容的安排和进度,确保学生在学习过程中逐步掌握所需知识,为实践操作打下坚实基础。
java模拟atm课程设计

java模拟atm 课程设计一、课程目标知识目标:1. 学生能理解ATM机的基本功能和工作原理,掌握运用Java语言实现ATM 功能的相关知识。
2. 学生能掌握面向对象编程思想,运用类和对象的概念实现ATM功能模块。
3. 学生了解异常处理在程序设计中的重要性,并能运用try-catch语句处理可能出现的异常。
技能目标:1. 学生能运用所学知识,设计并实现一个具备基本功能的ATM模拟系统。
2. 学生能运用控制台输入输出,实现用户与ATM机之间的交互。
3. 学生能运用所学调试技巧,对ATM模拟系统进行测试和优化。
情感态度价值观目标:1. 学生通过实际操作,培养解决问题的能力和团队合作精神。
2. 学生在编程实践中,增强对计算机科学的兴趣和热爱,树立正确的价值观。
3. 学生通过学习,认识到编程在实际生活中的应用,提高学习的积极性。
本课程针对高年级学生,课程性质为实践性较强的学科。
在教学过程中,要求关注学生的个体差异,充分调动学生的主观能动性,引导他们通过自主探究、合作学习等方式,实现课程目标。
课程目标分解为具体学习成果,以便教师在教学设计和评估中,关注学生在知识、技能和情感态度价值观方面的全面发展。
二、教学内容1. 理论知识:- Java面向对象编程基础:类与对象、继承与多态、封装与抽象;- 异常处理:异常的概念、try-catch-finally结构、自定义异常;- 控制台输入输出:Scanner类、System.out.print/println方法。
2. 实践操作:- ATM功能模块设计:账户类、ATM类、用户界面类;- 功能实现:登录、查询余额、取款、存款、退出;- 异常处理:输入非法数据、余额不足等异常处理。
3. 教学大纲:- 第一阶段:Java面向对象编程基础学习(1课时);- 第二阶段:异常处理知识学习(1课时);- 第三阶段:控制台输入输出操作学习(1课时);- 第四阶段:ATM功能模块设计及功能实现(2课时);- 第五阶段:项目测试与优化(1课时)。
java课程设计ATM柜员机模拟程序

课程设计(大作业)报告课程名称:面向对象程序设计课程设计设计题目:ATM柜员机模拟程序院系:信息技术学院班级:设计者:学号:指导教师:设计时间:2016-1-4-2016-1-8信息技术学院昆明学院课程设计(大作业)任务书课程设计(大作业)报告一、题目分析1.系统需求分析(1)设计目标:随着市场经济的繁荣发展,人们的物质生活得到极大的提高,手中的剩余资金也日益增多。
受传统观念影响,绝大多数人喜欢把资金投进银行,而在需要使用现金的时候再到银行提取现金。
这就导致银行业务的急剧增加。
虽然银行网点越来越多,银行的工作效率也随着信息化有较明显的增长,但是依旧不能满足广大用户的需要。
而一味的增加营业网点,从理论上虽然能稍微的缓解银行的压力,但是治标不治本,而且每增加一个网点,不仅要付出昂贵的资金成本,还需要长期投入人力资本,成本非常之昂贵。
这时候就迫切的需要一种自动的,易于普及的,低成本的设备来解决这一问题。
于是ATM机系统应运而生了。
自动柜员机,即ATM,是指银行在不同地点设置一种小型机器,利用一张信用卡大小的胶卡上的磁带记录客户的基本户口资料(通常就是银行卡),让客户可以透过机器进行提款、存款、转账等银行柜台服务,大多数客户都把这种自助机器称为自动提款机。
本文正是通过设计一个ATM模拟模拟程序来实现ATM机系统的基本功能,充分运用自己所学的Java知识进行设计编程。
(2)题目设计要求:本ATM柜员机的主要功能如下所述:要求使用图形用户界面。
当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:●查询余额:初始余额为10000元。
●ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
●ATM存款:不能出现负存款。
●修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
自动取款机(ATM)模拟程序(C#控制台应用程序)

自动取款机(ATM)模拟程序一、需求我们需要设计一个具备如下功能的ATM模拟程序。
●开户:用户能够通过ATM来开设帐号,开户需要设置密码。
●登录:用户能够登录到已经开设的帐号上,登录需要验证密码。
●管理帐号:用户登录到帐号上后,能够进行如下的操作。
■存款:将指定的款项存到帐号中。
■取款:从帐号中取出指定的款项。
■查询余额:查询帐号的余额。
■修改密码:修改帐号的密码。
二、分析面向对象编程的第一步是进行面向对象分析。
面向对象分析的目标是建立问题领域的模型,包括如下模型。
●功能模型:即画出每一个功能要求的用例图。
●对象模型:对用例模型进行分析,把系统分解成互相协作的类,通过类图/对象图描述对象、对象的属性、对象间的关系。
●动态模型:描述系统的动态行为,通过序列图来描述对象的交互,以揭示对象间如何写作来完成每个具体的用例,单个对象的状态变化和动态行为可以通过状态图来表达。
1.功能模型根据我们的需求,可以很容易地画出A TM模拟程序的用例图:可以看出,用户可以开户和登录帐号,开户或者登录帐号之后就能管理帐号。
要管理账号,就必须首先登录帐号或者开户。
管理帐号的功能包括存款、取款、查询余额和修改密码。
2.对象模型ATM是银行相连的设备,因此银行是A TM模拟程序的相关对象,所有的操作都是针对帐号的,因此帐号是其中的核心对象。
此外,需要一个程序来启动ATM。
因此,在ATM模拟程序中,我们需要处理四个类,或者说四类对象:启动程序、A TM、银行及帐号。
1)帐号类Account帐号类Account包含所有的帐号信息负责所有的帐号操作。
基本的帐号信息包括:●帐号名name●帐号密码password●帐号余额balance主要的帐号操作包括:●登录Login●存款Deposit●取款Withdraw●查询余额Get_Balance●修改密码ChangePassword2)银行类Bank银行类Bank的本质就是一组帐号的组合,并负责管理帐号。
ATM柜员机模拟程序-课程设计报告

《Java程序设计》课程设计报告题目ATM柜员机模拟程序姓名学号性别所在班级指导教师二〇一二年十二月二十九日目录一前言 (1)1.1 课程设计题目 (1)1.2 课程设计完成地点 (1)1.3 系统概述 (1)1.3.1课程设计介绍 (1)1.3.2 课程设计目的 (1)1.3.3 课程设计内容 (2)1.4 相关技术 (2)二需求分析 (3)2.1 功能需求 (3)2.2 界面需求 (3)2.2.1窗体的设计 (4)2.2.2窗体的主要结构的设计 (4)三功能设计 (5)3.1 系统总体结构 (5)3.2 系统模块 (5)3.3 主要相关类 (6)四详细设计 (8)4.1登陆页面模块设计 (8)4.2选择服务模块设计 (9)4.3取款模块设计 (10)4.4修改密码模块设计 (11)4.5退卡模块设计 (12)4.6异常处理情况说明 (12)4.7系统实现与测试 (12)五总结 (14)5.1遇到的问题及解决办法 (14)5.2心得体会 (14)六感谢 (15)一前言1.1 课程设计题目ATM柜员机模拟程序1.2 课程设计完成地点文理楼A5041.3 系统概述1.3.1课程设计介绍本次JAVA游戏开发课程设计在文理楼机房进行,为期一周。
这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象软件开发的思维,初步了解软件开发的一般流程,提高用JAVA编程的实际动手能力并增强大家对面向对象的了解。
这次课程设计的主要内容是独立用JAVA语言开发一个简单的应用程序。
我所设计的是ATM柜员机。
随着市场经济的繁荣发展,人们物质生活得到了极大的提高,手中剩余资金日益增多,受传统观念的影响,绝大多数人喜欢把暂时不用的资金存入银行,而在需要现金时去银行提现,这就导致了银行业务的急剧增加。
最然银行网点越来越多,银行工作人员效率也随着信息化有明显增长,但依旧不能及时满足广大储户的需求。
而一味的增加营业网点,从理论上讲虽有缓解此问题的功效,但是建立一个网点需要付出昂贵的资金,还要不断注入人力资源。
c++课程设计(论文)模拟atm柜员机程序

北京理工大学珠海学院课程设计任务书一、课程设计题目《模拟ATM柜员机程序》二、课程设计内容(含技术指标)1.使用文本命令行界面。
当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:查询余额:初始余额为10000元ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
ATM存款:不能出现负存款。
修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
2.建立银行账户类、文件读写类、界面显示类等以及各相关接口类。
三、进度安排1.1-4学时,分析需求、理解需求;2.5-8学时,程序设计,定义类、数据处理方式;3.9-12学时,编写程序、调试、测试;4.12-16学时,编写设计报告学时,答辩;四、基本要求1.只能使用C++语言,源程序要有适当的注释,程序容易阅读2.至少采用文本菜单界面(如果能采用图形菜单界面更好)3.学生可自动增加新功能模块(视情况可另外加分)4.用文件保存信息5.写出课程设计报告,具体要求见相关说明文档课程负责人签名:年月日课程设计分工安排摘要演示程序时,初始卡号和密码为123456,系统能登录ATM柜员机系统,进入功能界面,根据功能界面的提示,然后由用户进行相应的功能操作。
本程序使用C++语言,操作时,使用文本命令行界面。
该程序还需要一些改进,就是没有采用图形菜单界面。
关键词:登陆界面修改密码取款查询信息功能界面目录摘要 (I)目录 .............................................................................................................. I I 第一章需求分析 .. (1)1.1功能: (1)1.2操作: (1)第二章总体设计 (2)2.1 模拟ATM柜员机程序功能图 (2)2.2 整个程序的流程图 (3)第三章详细设计与实现 (4)3.1 类的设计 (4)3.2 ATM柜员机的登陆 (5)3.3 ATM柜员机修改密码功能 (5)3.4 ATM柜员机取款存款功能 (6)3.5 ATM柜员机查询余额功能 (7)第四章测试 (8)4.1程序开始运行的界面 (8)4.2 正确输入帐号密码后的界面 (9)4.3 取钱成功后的界面 (9)4.4 程序结束时的界面 (10)参考文献 (11)心得体会 (12)第一章需求分析1.1功能:(1)模拟ATM柜员机程序;(2)修改密码。
ATM自动取款机程序设计

ATM自动取款机程序设计1. 简介本文将讨论如何设计一个简单的ATM自动取款机程序,该程序可以实现用户账户余额查询、取款和存款功能。
2. 系统需求用户可以通过输入银行卡号和密码进行登录;用户登录成功后,可以选择查询余额、取款或存款等操作;用户可以选择退出系统,退出时应安全地清除用户登录信息。
3. 程序设计3.1 用户登录用户需要输入银行卡号和密码进行登录。
系统应提供一个登录函数,接受用户输入并验证登录信息的正确性。
如果登录成功,则进入主菜单;如果登录失败,则要求重新输入。
3.2 主菜单登录成功后,用户将进入主菜单,可以选择查询余额、取款或存款等操作。
主菜单应该提供以下功能选项:1. 查询余额:用户可以查询当前账户余额;2. 取款:用户可以输入取款金额并从账户余额中扣除相应金额;3. 存款:用户可以输入存款金额并将金额添加到账户余额中;4. 退出系统:用户选择退出系统。
3.3 查询余额查询余额功能应该调用一个查询余额函数,该函数将返回用户当前账户的余额信息,并将其显示在屏幕上。
3.4 取款取款功能应调用一个取款函数,该函数需要用户输入取款金额,并检查账户余额是否足够。
如果账户余额足够,应从账户余额中扣除相应金额;否则,应提示用户余额不足。
3.5 存款存款功能应调用一个存款函数,该函数需要用户输入存款金额,并将金额添加到账户余额中。
3.6 退出系统退出系统功能应调用一个退出系统函数,该函数应安全地清除用户登录信息,并结束程序运行。
4.本文讨论了一个简单的ATM自动取款机程序设计。
程序包括用户登录、主菜单、查询余额、取款、存款和退出系统等功能。
您可以将本文提供的设计思路作为参考,根据实际需求进行进一步的开发和完善。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计-ATM柜员机模拟程序软件学院课程设计报告书课程名称面向对象程序设计设计题目ATM柜员机模拟程序专业班级软件工程学号姓名指导教师刘腊梅1 设计时间2015 年月2 设计目的掌握图形用户界面设计方法,掌握常用swing组件的使用和事件处理程序设计.3 设计题目ATM柜员机模拟程序4 设计任务使用图形用户界面。
当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:(1)查询余额功能:初始余额为10000元(2)ATM取款功能:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
(3)ATM存款功能:不能出现负存款。
(4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
5设计内容5.1 kehu类代码import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*; // 导入包import java.util.*;class kehu // 定义客户类{String zh; //定义账号String pswf; //定义密码double jine; //定义金额public kehu() { } //构造GUKEpublic kehu(String zh, String pswf, double jine){this.zh = zh;this.pswf = pswf;this.jine = jine;}String getzh() //定义成员变量账号{return zh; //成员方法}double setMima(double pswf)//定义成员变量密码{return pswf;//成员方法}double getJine()//定义成员变量金额{return jine;//定义成员方法}void cunkuan(double money)//定义成员变量存款{jine = jine + money; //定义成员方法}void quqian(double money)//定义成员变量取款{jine = jine - money; //定义成员方法}String xiugaim(String mi)//定义成员变量密码{pswf = mi; //定义成员方法return pswf;}}5.2 ATM主界面模块设计class ATM extends JFrame implements ActionListener//导入接口类{JPanel p1,p2, p3; //定义个面板JLabel l1, l2, l3,l4; //定义个标签JPasswordField pswf; //定义一个密码文本JButton jb1, jb2; //定义个按钮JTextField jtf1,jc1; //定义个文本框Container content; //定义一个容器kehu[] g = new kehu[4]; //定义客户类数组public ATM() //布局{g[0] = new kehu("liuyiping", "123456", 10000);//客户类数组里给的帐号,密码,钱数g[1] = new kehu("chengyang", "123456", 10000);g[2] = new kehu("zhangzhicheng", "123456", 10000);g[3] = new kehu("pengzhanyuan", "123456", 10000);p1 = new JPanel();p2 = new JPanel(); //定义第二个面板l2 = new JLabel("卡号:"); //定义标签l2jc1 = new JTextField(10); //定义账号文本l3 = new JLabel("密码:"); //定义标签l3pswf = new JPasswordField(12); //定义密码文本l4 = new JLabel("欢迎使用自动取款机");p1.add(l4);p2.add(l2); //把它们分别镶在面板上p2.add(jc1);p2.add(l3);p2.add(pswf);p3 = new JPanel(); //定义第三个面板jb1 = new JButton("登录"); //定义按钮登录jb1jb1.addActionListener(this); //jb1申请监听jb2 = new JButton("注销"); //定义按钮注销jb2jb2.addActionListener(this); //jb2申请监听p3.add(jb1); //把它们添加到p3面板里p3.add(jb2);content = this.getContentPane(); //布局定义content.setLayout(new BorderLayout());content.add(p1, BorderLayout.NORTH);content.add(p2, BorderLayout.CENTER); //定义中部为面板p2content.add(p3, BorderLayout.SOUTH); //定义底部为面板p3this.pack();this.setTitle("ATM 柜员机"); //定义为窗口名称this.setBounds(300, 300, 400, 300); // 定义窗口的大小this.setResizable(false);this.show(); //显示this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 关闭、退出}public void actionPerformed(ActionEvent e) //监听类{String x = jc1.getText();if (e.getSource() == jb1) //如果点击是jb1按钮就进入For{ for (int i = 0; i < 4; i++) //判断名字在数组的位置if (x.equals(g[i].zh)) //检查到开始判断是否匹配{ if (pswf.getText().equals(g[i].pswf)) //名字匹配成功后判断密码是否成功{new XUANZE(g[i]); //密码真确后进入XUANZE的界面}else{JOptionPane.showMessageDialog(this, "密码错误!"); //密码错误弹出提示密码错误}}}elseSystem.exit(0); //注销事件退出}public static void main(String args[]) //定义的MAIN,才能进入。
{new ATM();}}主界面密码输入错误提示栏5.3 选择页面模块设计class XUANZE extends JFrame implements ActionListener//导入接口类{JPanel p2, p3; //定义个面板JLabel l1; //定义个标签JButton jb1, jb2, jb3, jb4, jb5; //定义个按钮Container content; //定义一个容器kehu key; //定义客户类传从参数keypublic XUANZE(GUKE key){this.key = key;p2 = new JPanel(); //定义面板jb1 = new JButton("ATM取款"); //定义jb1按钮ATM取款jb1.addActionListener(this); //jb1申请监听jb2 = new JButton("ATM存款"); //定义jb2按钮ATM存款jb2.addActionListener(this); //jb2申请监听jb3 = new JButton("查询余额"); //定义jb3按钮查询余额jb3.addActionListener(this); //jb3申请监听jb4 = new JButton("修改密码"); //定义jb4按钮修改密码jb4.addActionListener(this); //jb4申请监听p2.add(jb1);p2.add(jb2);p2.add(jb3);p2.add(jb4);p3 = new JPanel(); //定义面板jb5 = new JButton("退出"); //定义jb5按钮退出jb5.addActionListener( //定义一个匿名类new ActionListener(){public void actionPerformed(ActionEvent event){System.exit(0); //退出登陆}});p3.add(jb5);content = this.getContentPane(); //布局定义content.setLayout(new BorderLayout());content.add(p2, BorderLayout.CENTER); //定义中部为面板p2 content.add(p3, BorderLayout.SOUTH); //定义底部为面板p3 this.pack();this.setTitle("进入界面"); //定义为窗口名称this.setBounds(300, 300, 400, 300); // 定义窗口的大小this.setResizable(false);this.show();}public void actionPerformed(ActionEvent event) //接口监听{if (event.getSource() == jb4) //判断是否是jb4{new Xgmm(key); //进入XgmmsetVisible(false);}if (event.getSource() == jb1) //判断是否是jb1{new QUKUAN(key); //进入QUKUANsetVisible(false);}if (event.getSource() == jb2) //判断是否是jb2{new CUNKUAN(key); //进入CUNKUANsetVisible(false);}if (event.getSource() == jb3) //判断是否是jb3{new CHAXUN(key); //进入CHAXUNsetVisible(false);}}}进入选择界面5.4存款模块设计class CUNKUAN extends JFrame implements ActionListener//导入接口类{JPanel p2, p3; //定义个面板JLabel l1; //定义个标签JButton jb1, jb2; //定义个按钮JTextField jtf1; //定义一个文本框Container content; //定义一个容器kehu key; //定义客户类传从参数keypublic CUNKUAN(kehu key){this.key = key; //把key传到顶层容器p2 = new JPanel(); //定义面板l1 = new JLabel("请输入您要存入的金额:"); //定义一个标签请输入您要存入的金额:jtf1 = new JTextField(10); //定义一个文本框p2.add(l1);p2.add(jtf1);p3 = new JPanel(); //定义第三个面板jb1 = new JButton("确定"); //定义一个按钮确定jb1.addActionListener(this); //jb1申请一个监听jb2 = new JButton("返回"); //定义一个按钮返回jb2.addActionListener( //定义一个匿名类监听new ActionListener(){public void actionPerformed(ActionEvent event){XUANZEActionPerformed(event);}});p3.add(jb1);p3.add(jb2);content = this.getContentPane(); //布局定义content.setLayout(new BorderLayout());content.add(p2, BorderLayout.NORTH); //定义顶部为面板p1 content.add(p2,BorderLayout.CENTER); //定义中部为面板p2 content.add(p3, BorderLayout.SOUTH); //定义底部为面板p3this.pack();this.setTitle("自动存款"); //定义为窗口名称this.setBounds(300, 300, 400, 300); // 定义窗口的大小this.setResizable(false);this.show(); //显示}public void actionPerformed(ActionEvent e) //接口监听类{if (e.getSource() == jb1) //判断是是否是jb1{double money = Double.parseDouble(jtf1.getText());// 把money转成DoubleJOptionPane.showMessageDialog(this, "成功存款" + jtf1.getText() + "元!");//一个提示框填出你成功存了多少key.cunkuan(money); //把存的钱传回客户类jtf1.setText("0");}}public void XUANZEActionPerformed(ActionEvent event) //匿名类监听过程{if (event.getSource() == jb2) //判断要是jb2{new XUANZE(key); //返回XUANZE界面setVisible(false);}}存款界面存款成功5.5 取款模块设计class QUKUAN extends JFrame implements ActionListener//导入接口类JPanel p2, p3; //定义个面板JLabel l1; //定义个标签JButton jb1, jb2; //定义个按钮JTextField jtf1; //定义一个文本框Container content; //定义一个容器GUKE key; //定义客户类传从参数key public QUKUAN(GUKE key){this.key = key; //把key传到顶层容器p2 = new JPanel(); //定义面板l1 = new JLabel("请输入您要取的金额:"); //定义一个标签请输入您要取的金额:jtf1 = new JTextField(10); //定义一个文本框p2.add(l1);p2.add(jtf1);p3 = new JPanel(); //定义面板jb1 = new JButton("确定"); //定义一个按钮确定jb1.addActionListener(this); //jb1申请一个监听jb2 = new JButton("返回"); //定义一个按钮返回jb2.addActionListener(this); //jb1申请一个监听p3.add(jb1);p3.add(jb2);content = this.getContentPane(); //布局定义content.setLayout(new BorderLayout());content.add(p2, BorderLayout.CENTER); //定义中部为面板p2content.add(p3, BorderLayout.SOUTH); //定义底部为面板p3this.pack();this.setTitle("自动取款"); //定义为窗口名称this.setBounds(300, 300, 400, 300); // 定义窗口的大小this.setResizable(false);this.show();}public void actionPerformed(ActionEvent e) //接口监听类{if (e.getSource() == jb1) //判断是是否是jb1{double money = Double.parseDouble(jtf1.getText());// 把money转成Doubleif (money < key.jine){if (money % 100 == 0){if (money <=5000){JOptionPane.showMessageDialog(this, "成功取款" + jtf1.getText() + "元!");//一个提示框填出你成功取了多少key.quqian(money); //把存的钱传回客户类jtf1.setText("0");}else{JOptionPane.showMessageDialog(this, "提取金额不许超过五千");}}else{JOptionPane.showMessageDialog(this, "取款许为一百的整数");}}else{JOptionPane.showMessageDialog(this, "金额不足不许透支");//一个提示框提示你你的卡即将要已透支}}if (e.getSource() == jb2)//判断是是否是jb2{new XUANZE(key); //返回XUANZEsetVisible(false);}}取款界面取款成功金额不足取款失败提示提取金额不许超过五千提取金额需为一百的整数5.6 查询余额模块设计class CHAXUN extends JFrame implements ActionListener//导入接口类{JPanel p2, p3; //定义个面板JLabel l1; //定义个标签JButton jb1; //定义个按钮Container content; //定义一个容器kehu key; //定义客户类传从参数key public CHAXUN(kehu key){this.key=key; //把key传到顶层容器p2=new JPanel(); //定义面板l1=new JLabel("您的剩余金额为:"+ key.getJine());p2.add(l1);p3=new JPanel(); //定义面板jb1=new JButton("返回");jb1.addActionListener(this);p3.add(jb1);content=this.getContentPane(); //布局定义content.setLayout(new BorderLayout());content.add(p2,BorderLayout.CENTER); //定义中部为面板p2content.add(p3,BorderLayout.SOUTH); //定义底部为面板p3 this.pack();this.setTitle("查询余额"); //定义为窗口名称this.setBounds(300, 300, 400, 300); // 定义窗口的大小this.setResizable(false);this.show();}public void actionPerformed(ActionEvent e) //接口监听类{ if (e.getSource() == jb1) //判断是否是jb1 {new XUANZE(key); //返回XUANZEsetVisible(false);}}开户资金10000元存700后查询余额再取款900后查询余额5.7 修改密码模块设计class Xgmm extends JFrame implements ActionListener//导入接口类{JPanel p2, p3; //定义个面板JLabel l1, l2, l3, l4; //定义个标签JPasswordField jtf1, jtf2, jtf3; //定义个文本框JButton jb1, jb2; //定义个按钮Container content; //定义一个容器kehu key; //定义客户类传从参数key public Xgmm(kehu key){this.key=key; //把key传到顶层容器p2=new JPanel(); //定义第二个面板l2=new JLabel("请输入原始密码:"); //定义标签请输入原始密码:l3=new JLabel("输入要修改的密码:"); //定义标签输入要修改的密码l4=new JLabel("确认输入的新密码:"); //定义标签确认输入的新密码:jtf1 = new JPasswordField(15); //定义文本框jtf1jtf2 = new JPasswordField(15); //定义文本框jtf2jtf3=new JPasswordField(15); //定义文本框jtf3p2.add(l2);p2.add(jtf1);p2.add(l3);p2.add(jtf2);p2.add(l4);p2.add(jtf3);p3=new JPanel(); //定义面板jb1 = new JButton("确定"); //定义按钮jb1 确定jb1.addActionListener(this); //jb1申请监听jb2 = new JButton("返回登录"); //定义按钮jb2 放回登录jb2.addActionListener(this); //jb2申请监听p3.add(jb1);p3.add(jb2);content = this.getContentPane(); //布局定义content.setLayout(new BorderLayout());content.add(p2,BorderLayout.CENTER); //定义中部为面板p2content.add(p3,BorderLayout.SOUTH); //定义底部为面板p3this.pack();this.setTitle("修改密码"); //定义为窗口名称this.setBounds(300, 300, 400, 300); // 定义窗口的大小this.setResizable(false);this.show(); //显示}public void actionPerformed(ActionEvent e) //接口监听类{if (e.getSource() == jb1) //判断是否是jb1if (jtf1.getText().equals(key.pswf)) //判断是否是你输入的pswf正确{if (jtf2.getText().equals(jtf3.getText()))//判断是否是jtf2和jtf3相等不{if ((jtf2.getText()).length()==6){if (jtf2.getText().equals("000000") ||jtf2.getText().equals("111111") ||jtf2.getText().equals("222222") ||jtf2.getText().equals("333333") ||jtf2.getText().equals("444444") ||jtf2.getText().equals("555555") ||jtf2.getText().equals("666666") ||jtf2.getText().equals("777777") ||jtf2.getText().equals("888888") ||jtf2.getText().equals("999999")){ jtf2.setText("");jtf3.setText("");JOptionPane.showMessageDialog(this, "密码各位不能相同请重新输入!");//定义一个提示栏不成功}else{key.xiugaim(jtf2.getText()); //把改的密码传回GUKE类中JOptionPane.showMessageDialog(this, "修改成功!"); //定义一个提示框成功jtf1.setText("");jtf2.setText("");jtf3.setText("");}}else{jtf2.setText("");jtf3.setText("");JOptionPane.showMessageDialog(this, "密码需六位请重新输入!");//定义一个提示栏不成功}}else{jtf2.setText("");jtf3.setText("");JOptionPane.showMessageDialog(this, "两次输入密码不相符,请确认后重新输入!");//定义一个提示栏不成功}}else{JOptionPane.showMessageDialog(this, "密码输入错误,请确认后重新输入!");//定义一个提示栏原密码错误jtf1.setText("");jtf2.setText("");jtf3.setText("");}if (e.getSource() == jb2) //判断是是否是jb2{setVisible(false);}}}原密码输入错误提示修改失败两次输入密码不一修改失败密码不足六位修改失败密码各位都相同修改失败输入规范修改密码成功6 总结与展望通过本次的课程设计,是我更加的喜欢上了JA V A,这正是我一直想学的计算机实用语音。