java实训ATM取款机设计报告

合集下载

java实训ATM取款机设计报告

java实训ATM取款机设计报告

吉林工程技术师范学院信息工程学院《 Java项目实训》课程设计报告题目: ATM取款机JAVA实训课程设计专业:计算机科学与技术班级: C1341 姓名:姜秋红学号: 25摘要我选择的是“ATM取款机”,其目的主要是现在市面上的取款机功能不完善还有许多功能没有实现,用户对界面很熟悉,做起来更得心应手,所以的采用的界面和现在用户所用的界面基本相同,可以实现后台与前台的交互以及数据库之间的连接,使得我设计的ATM取款机更加完善。

利用jps网页设计一个总页面设计选择使用的用户是用户页面还是管理员页面,让使用的人根据权限去使用不同的功能。

在我的ATM取款机上实现了ATM机的基本功能,其界面参照了和原系统基本相同的界面。

增加了一些管理员的功能。

首先选择是用户登入还是管理员登入。

选择用户登入,有查看,存款,取款,转账和修改密码等功能。

选择管理员登入,有开户,销户,查询等功能;利用这些更能,使得ATM更加完善。

关键字:ATM,查询,取款,转账,修改,界目录程序设计概念 (4)程序设计的目的 (4)课程设计的内容 (4)设计方案的论证 (5)概要设计 (5)需求分析 (5)技术可行性 (5)经济可行性 (5)设计实现内容 (6)数据字典 (6)成员变量 (6)方法设计 (6)页面如下 (7)数据流程图 (7)测试运行及结果分析 (10)测试及问题探讨 (11)课设总结与体会 (12)致谢 (13)参考文献 (14)附录 (115)一、课程设计的概念1.1课程设计的目的现代社会,ATM可以说是一种使用非常广泛的机器, ATM使用是非常频繁的,然而由于程序及其机器本人的一些漏洞,导致ATM 机的犯罪现象屡有发生。

该项目的开发有利于进一步提高ATM机的性能及安全性,模拟开发ATM系统软件,掌握系统开基本流程,在开发系统中可以巩固所学的有关软件开发的知识,有利于提出优化改进现代ATM系统的建议。

1.2课程设计的内容银行ATM机的使用已经普及,人们都已习惯利用自动柜员机来提取现金,查询存款,转账,修改密码等等,我设计的ATM取款机添加了新的功能,具体功能如下:1.2.1管理员状态登入:1.2.1.1开户:添加一个新的用户1.2.1.2销户:删除一个无用用户1.2.1.3查询:管理员可以查询用户的相关信息1.2.2普通用户状态登入:1.2.2.1查询:用户可以查询自己的银行卡信息1.2.2.2存款:提供用户提取现金的功能1.2.2.3转账:提供用户在统一银行内的转账功能1.2.2.4查询交易情况:查询交易文件中的交易记录1.2.2.5修改密码:能够修改用户的银行卡密码二、设计方案的论证2.1概要设计《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。

JavaATM自动取款机

JavaATM自动取款机

Java课程设计报告项目: ATM自动取款机姓名:学号: 10592127班级: 10级网络一班分数:项目说明目录第一部分、项目整体概述………………………………………………页第二部分、数据库信息描述……………………………………………页第三部分、自己承担部分的实验报告………………………………页第四部分、心得体会……………………………………………………页一、项目整体概述我们的ATN机系统设计的实现根据结构程序设计原理,将每个模块的功能用相应的标准语句表示出来。

包括代码设计、数据库设计、用户界面设计、处理过程设计。

代码设计是指把系统管理对象数字化或字符化,便于计算机的处理。

遵照代码设计的原则:合理性、简明性、系统性、稳定性、可扩充性、标准化、便于识别和记忆。

数据库设计指对系统所采用的数据模式、子模式、应用程序、数据库等根据用户的具体要求进行分析和设计。

它也是管理信息系统设计的重要组成部分。

数据库设计的基本原则是尽可能提高数据组织的相对独立性,简化其结构,即用规范化方法设施数据存储的结构,提高数据的可维护性、完整性、一致性。

通过收集和分析用户需求,确定了数据库要保存的信息。

我们这次实训课设计的ATM机,主要应用java图形用户界面开发的知识,主要界面有欢迎界面,登陆界面,选择业务界面和退出,其中选择业务界面又包括修改密码,取款服务和查询余额。

能让人们通过我们的设计完成想要的操作。

为人们带来方面。

(1)模拟ATM柜员机程序;(2)欢迎界面点击Login(登录)跳到登陆界面,点击quit(退出)则退出。

(3)登陆界面包括输入卡号和密码,不正确时则不能进入提示没有该用户名称或密码错误,请核对后重新输入。

当密码和用户名都正确时则进入选择服务界面。

(4)选择页面可以选择修改密码,查询余额,和取款3个服务。

(2)修改密码。

当用户需要修改密码时,可以用这个功能,新密码不能为空,确定密码时不能为空,旧密码必须正确,且新密码和确定密码两次输入相同的情况下才可以成功修改密码。

java实训 ATM取款机

java实训 ATM取款机

ATM取款机课程设计报告姓名:学号:专业:班级:ATM取款机1 课程设计过程概述2009年6月,JA V A游戏开发课程设计在实验楼三楼机房进行,持续时间为两周。

这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象软件开发的思维,初步了解软件开发的一般流程,提高用JA V A编程的实际动手能力并增强大家对面向对象的了解。

这次课程设计的主要内容是独立用JA V A语言开发一个小的应用程序。

我开发了一个ATM柜员机。

2课程设计题目描述和基本设计要求我设计的ATM柜员机主要是由各个Windows窗口组成,它是由登录页面、选择服务、取款、查询余额、修改密码和退卡等功能。

它的各种按钮的事件和功能可以简单的模拟ATM柜员机的要求。

3系统需求分析3.1功能需求分析本ATM柜员机的主要功能如下所述:要求使用图形用户界面。

当输入给定的卡号和密码(初始卡号为000000和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:●查询余额:初始余额为50000元●ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。

●ATM存款:不能出现负存款。

●修改密码:只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

3.2其他需求分析(1)性能描述实时性好、灵活性强、易于不同年龄阶段的人操作。

(2)设计约束开发工具:JCrator ProV3.5.0运行环境:Windows 2000以上能实现用户所定义的各项需求。

(3)界面要求以Windows窗口形式显示,标题栏为ATM柜员机名称,右上角有最小化按钮、最大化按钮、关闭按钮,不同的窗口中有不同的按钮和选择菜单。

4系统设计4.1总体设计我所设计的ATM柜员机主要是由登录页面模块还由选择服务模块组成,其中选择服务模块又由取款模块、查询余额模块、修改密码模块、退卡模块组成。

其功能结构图如下所示:图1 ATM功能结构示意图4.2 ATM柜员机界面设计我觉得一个系统的界面应该要简单明了,当然样式美观就更好了。

java atm课程设计报告

java atm课程设计报告

Java ATM 课程设计报告1. 引言本报告旨在介绍一个基于 Java 编程语言的 ATM 课程设计项目。

该项目旨在设计一个简单的自动柜员机(ATM)系统,以实现基本的银行业务操作。

2. 需求分析在开始编写代码之前,我们首先需要对该系统的需求进行分析。

ATM 系统应具备以下功能: - 用户输入银行卡和密码进行身份验证。

- 用户能够查询账户余额和交易记录。

- 用户能够存款和取款。

- 用户能够转账给其他账户。

- 用户能够修改密码。

3. 设计思路基于以上需求,我们可以采用以下设计思路来实现该系统: 1. 设计一个ATM类,该类将作为系统的入口点。

2. 设计一个User类,用于表示 ATM 的用户。

该类应包含用户的银行卡号、密码、账户余额和交易记录等属性。

3. 设计一个Bank类,用于处理用户的交易请求。

该类应包含用户的账户信息,并提供存款、取款、转账和修改密码等方法。

4. 设计一个Main类,用于模拟用户与ATM 系统的交互过程。

4. 系统实现4.1 ATM类public class ATM {public static void main(String[] args) {// 创建用户对象User user = new User("1234567890", "123456", 1000);// 创建银行对象Bank bank = new Bank();// 用户输入银行卡和密码进行身份验证if (bank.authenticate(user.getCardNumber(), user.getPassword())) {// 用户通过身份验证,显示欢迎信息System.out.println("欢迎使用本 ATM 机!");// 进行后续操作,如查询余额、存款、取款、转账和修改密码等} else {// 身份验证失败,显示错误信息System.out.println("银行卡号或密码错误!");}}}4.2 User类public class User {private String cardNumber;private String password;private double balance;private List<String> transactionHistory;public User(String cardNumber, String password, double balance) { this.cardNumber = cardNumber;this.password = password;this.balance = balance;this.transactionHistory = new ArrayList<>();}// getter 和 setter 方法}4.3 Bank类public class Bank {private Map<String, User> users;public Bank() {ers = new HashMap<>();// 添加用户信息users.put("1234567890", new User("1234567890", "123456", 1000)); }public boolean authenticate(String cardNumber, String password) { // 验证用户身份User user = users.get(cardNumber);if (user != null && user.getPassword().equals(password)) {return true;}return false;}// 其他方法:存款、取款、转账和修改密码等}4.4 Main类public class Main {public static void main(String[] args) {ATM atm = new ATM();}}5. 测试与调试在完成代码的编写后,我们应进行测试和调试以确保系统的正常运行。

java课程设计报告【范本模板】

java课程设计报告【范本模板】

南京晓庄学院《JAVA程序设计》课程设计报告题目: ATM系统的设计与实现姓名:黄强学号:14131609班级: 14计算机转本2班指导教师:徐家喜完成时间成绩:信息工程学院2017年6月目录1摘要 (1)1.1系统开发背景 (1)1。

2系统开发的目的和意义 (2)1。

3完成的主要工作 (2)2需求分析和总体设计 (3)2.1需求分析与设计思路 (3)2。

1.1关键技术说明 (3)2。

1.2需求分析 (3)2.1.3系统设计方案与思路 (3)2。

1.4系统目录结构说明 (4)2。

2系统功能结构 (5)2.3数据库设计 (6)3详细设计 (7)3.1系统模块实现 (7)3。

1.1ATM主界面实现 (7)4系统运行结果 (11)5课程设计总结 (12)模拟ATM系统的设计与实现1摘要1.1系统开发背景随着Internet网络的迅速发展,作为电子商务的ATM自动取款系统以其方便、快捷和高效的优势,逐步成为新兴电子商务的经营模式和理念,人们已经不再是只满足于低效率的排队等待,而是渴望能充分享受网络所带来的更多的便利.ATM自动取款系统恰恰适应了如今的快节奏生活。

本文以实际ATM取款应用为北京,阐述了系统开发过程的开发方法、系统分析以及一般步骤。

本ATM系统的目的就是建立一个客户平台,用户使用此平台进行查询余额、存款、取款、转账、等业务办理。

相对于柜员操作一样的,不过ATM系统有的功能有权限设置,一些功能只有银行柜员才能进行的业务办理。

ATM取款系统的针对的用户群是使用此软件系统的用户,用户做为系统的服务群体,可以使用数据库已有的账号与密码,登陆ATM系统。

当用户成功登陆后就可以根据用户的需求进行各项业务的办理,办理完所有的手续后,用户的输入的新资料以及办理的业务处理后的信息都会反馈到数据库并且都会存入到数据库中。

这样用户就完成了办理业务。

关键词:ATM;MySQL; Java;1.2系统开发的目的和意义随着信息时代科技的飞速发展,使用ATM取款机、计算机等技术的发展,不仅提高了工作效率,而且大大的提高了其安全性。

Java实习报告材料(ATM自动柜员机)

Java实习报告材料(ATM自动柜员机)

JA V A实习报告一、实习目的1、将所学知识进行一个系统的联系。

2、培养学生分析问题和解决问题的能力,为学生提供了独立实践的机会。

3、理论联系实际,巩固所学知识,提高学生处理处理实际问题的能力。

4、进一步培养学生面向对象程序设计的思想。

5、将所学知识与社会实际现象相联系,使学生更清楚java的用途。

二、实习地点安康学院经济与管理系7405实验室三、实习内容1、题目ATM自动柜员机模拟程序2、功能介绍ATM自动柜员机包括以下操作内容:修改账号密码、余额查询、A TM取款、ATM存款四、实习过程1、选题阶段根据自己的学习情况和个人爱好选择要设计的内容,经过反复判断抉择我最后的实习项目选择是:A TM自动柜员机模拟程序2、分析题目要求的功能阶段针对题目和现实情况列出程序的功能,然后对每一个功能进行分析,画出草图,并列出每一个功能能的要求。

账号登陆:银行账号和初始密码为“123456”修改密码:旧密码等于原密码,新密码必须不小于6位,并且新密码两次输入的一致查询余额:初始余额为10000元ATM取款:取款的金额必须为100的倍数,不大于5000元,并且不能大于余额ATM存款:存款的金额不能为负数3、制定方案阶段画出每一个功能模块的草图(1(3)略(4)略(5)略画完草图后分析如何实现各个功能,并想出如何将各个功能块组合4、编写程序和调试阶段按照第三步和第四步的分析编写程序代码,每完成一个模块运行一次,不断的更改完善直到与分析的结果一直为止,然后完成后面的模块代码,每编写一都和前面的相联系,最后完成一个完整的程序。

(程序代码见附录1)5、编写实习报告阶段根据学院规定的实习报告格式和实际完成的内容编写实习报告。

五、完成的内容1、编写了一个ATM自动柜员机系统,可以进行密码修改、余额查询、取款和存款业务操作。

2、完成了一份实习报告六、实习心得经过短短两天的实习,我第一次体会到了java的用途和乐趣。

学了一学期的java,一直都是做小小的程序实现一个小小的功能,经过这次的实习,我将java中学到的好多部分融合到了一起完成一个完整的程序,实现了很多的功能,找到了很多的乐趣。

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

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柜员机。

随着市场经济的繁荣发展,人们物质生活得到了极大的提高,手中剩余资金日益增多,受传统观念的影响,绝大多数人喜欢把暂时不用的资金存入银行,而在需要现金时去银行提现,这就导致了银行业务的急剧增加。

最然银行网点越来越多,银行工作人员效率也随着信息化有明显增长,但依旧不能及时满足广大储户的需求。

而一味的增加营业网点,从理论上讲虽有缓解此问题的功效,但是建立一个网点需要付出昂贵的资金,还要不断注入人力资源。

ATM取款机系统——java课程设计

ATM取款机系统——java课程设计

软件开发课程设计报告设计题目:ATM取款机系统专业双学位姓名学号指导教师时间:目录一、概述 (2)二、设计目的 (2)三、系统总体设计 (2)3.1系统功能模块划分 (2)3.2 ATM取款机系统功能结构图 (3)3.3各模块详细设计及用户使用说明 (4)3.3.1 登陆模块 (4)3.3.2 选择服务模块 (4)3.3.3 取款服务模块 (5)3.3.4 修改密码模块 (6)3.3.5 存款服务模块 (6)3.3.6 查询余额模块 (6)3.3.7 转账服务模块 (7)3.3.8 通信缴费模块 (7)3.3.9 咨询服务模块 (8)3.3.10 退出操作模块 (8)四、系统运行结果及存在问题 (8)4.1运行结果 (8)4.2存在问题 (14)五、设计体会 (14)六、源程序 (14)ATM取款机系统一、概述自动柜员机(ATM)自发明以来,以其高效和低成本一直受到银行业的青睐,从我国引进第一台柜员机至今已经拥有6万台左右的规模,但与世界平均水平相比,我国的人均拥有量还有差距,与先进国家相比人均拥有数量甚至不到四分之一。

为了增强我国银行的竞争力,国家相继出台了很多相关措施,比如《关于促进银行卡产业发展的若干意见》等,各商业银行也对柜员机的发展制定了详细的规划,甚至出现了由银行单独购买模式发展为银行租赁商业公司ATM的模式。

可以说,随着我国经济的屈起,我国的柜员机也正面临着一个快速发展的春天。

二、设计目的(1)复习、巩固软件开发的基础知识,进一步加深对软件开发的理解和掌握;(2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。

提高学生适应实际,实践编程的能力;(3)培养学生在项目开发中团队合作精神、创新意识及能力。

三、系统总体设计3.1系统功能模块划分本系统主要包括登陆模块设计,选择服务模块设计,取款服务模块设计,修改密码模块设计,存款服务模块设计,查询余额模块设计,转账服务模块设计,通信缴费模块设计,咨询服务模块设计,退出操作模块设计等几个功能模块。

atm的实训报告

atm的实训报告

湖南工程职业技术学院信息系34101班实训设计课程名称:java程序设计题目:ATM模拟软件专业:计算机网络设计组名:power组长:杨玲副组长:谈小芳项目负责人:李佑文、王承宇2011年6月9日分配的任务组长—杨玲:分配各成员任务和word文档的编写。

副组长—谈小芳:下载有关资料。

项目负责人—李佑文、王承宇:通过书本和网络查找相关资料。

全组一起讨论策划软件的编写。

目录1、程序设计目的 (4)2、系统的分析与设计 (4)3系统需求分析 (5)3.1功能需求分析 (5)4系统设计 (5)4.1 总体设计 (5)4.2 ATM柜员机界面设计 (6)4.3各功能模块设计 (7)4.3.1登陆页面模块设计 (7)4.3.2选择服务模块设计 (7)4.3.3查询余额模块设计 (7)4.3.4取款模块设计 (7)4.3.5存款模块设计 (7)4.3.6 查看交易模块设计 (7)4.3.7 修改密码模块设计 (8)5类的规划 (8)1、程序设计目的通过实训加强对《java程序设计》理论知识的理解,提高上机操作能力。

掌握《java程序设计》常见问题和解决的方法;同时也更进一步熟悉java语言的基础知识;重点掌握面向对象的编程思想、运用Swing组件编写图形用户界面程序,运用JDBC编写数据库访问程序、运用wing组件和JDBC实现C/S结构的应用程序。

通过一个中小型项目实践使我们了解java 程序开发的基本方法,能够一起完成中小型的java项目程序。

这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象软件开发的思维,初步了解软件开发的一般流程,提高用JA V A编程的实际动手能力并增强大家对面向对象的了解。

2、系统的分析与设计ATM应用系统为更进一步的提供银行交易服务,实现24小时不间断自助服务,对提高银行间的业务竞争能力有很大的帮助。

通过ATM系统的项目实施和建设可以更进一步的提供自身竞争力,紧跟网路技术的潮流,为银行业务的进一步的电子化、自动化迈出坚实的一步。

JavaATM自动取款机

JavaATM自动取款机

Java课程设计报告项目: ATM自动取款机姓名:学号: 10592127班级: 10级网络一班分数:项目说明目录第一部分、项目整体概述………………………………………………页第二部分、数据库信息描述……………………………………………页第三部分、自己承担部分的实验报告………………………………页第四部分、心得体会……………………………………………………页一、项目整体概述我们的ATN机系统设计的实现根据结构程序设计原理,将每个模块的功能用相应的标准语句表示出来。

包括代码设计、数据库设计、用户界面设计、处理过程设计。

代码设计是指把系统管理对象数字化或字符化,便于计算机的处理。

遵照代码设计的原则:合理性、简明性、系统性、稳定性、可扩充性、标准化、便于识别和记忆。

数据库设计指对系统所采用的数据模式、子模式、应用程序、数据库等根据用户的具体要求进行分析和设计。

它也是管理信息系统设计的重要组成部分。

数据库设计的基本原则是尽可能提高数据组织的相对独立性,简化其结构,即用规范化方法设施数据存储的结构,提高数据的可维护性、完整性、一致性。

通过收集和分析用户需求,确定了数据库要保存的信息。

我们这次实训课设计的ATM机,主要应用java图形用户界面开发的知识,主要界面有欢迎界面,登陆界面,选择业务界面和退出,其中选择业务界面又包括修改密码,取款服务和查询余额。

能让人们通过我们的设计完成想要的操作。

为人们带来方面。

(1)模拟ATM柜员机程序;(2)欢迎界面点击Login(登录)跳到登陆界面,点击quit(退出)则退出。

(3)登陆界面包括输入卡号和密码,不正确时则不能进入提示没有该用户名称或密码错误,请核对后重新输入。

当密码和用户名都正确时则进入选择服务界面。

(4)选择页面可以选择修改密码,查询余额,和取款3个服务。

(2)修改密码。

当用户需要修改密码时,可以用这个功能,新密码不能为空,确定密码时不能为空,旧密码必须正确,且新密码和确定密码两次输入相同的情况下才可以成功修改密码。

javaATM课程设计报告

javaATM课程设计报告

ATM自动取款机一、需求分析运用了事件监听技术来实现ATM的各种功能例如:存款、取款、修改密码、查询。

利用NetBeans进行用户图形的界面排版,符合日常软件使用规范来设计菜单和界面,方便用户操作,同时也使的程序更加简单。

利用NetBeans对图形用户界面进行排版;用JDBCUtil.java文件进行数据库的连接。

本次设计的需求还有设计一个有存款、取款、修改密码、查询功能。

二、概要设计三、运行环境、开发语言1软件环境:操作系统:windows98/ME/2000/xp/windows7 2硬件环境:处理器:Intel Pentium 166MX或更高内存:32MB硬盘空间:1GB显卡:SVGA显示适配开法工具:MyEclipse8.5四、详细设计1 程序清单类名功能JFrame frame1ATM 自动柜员模拟登陆类名功能JFrame frame2选择业务类名功能JFrame frame3修改密码类名功能JFrame frame4ATM 取款类名功能JFrame frame5ATM 存款2 主要代码图片1ATM 自动柜员机登陆://第一个窗口界面设计:ATM自动柜员模拟登陆frame1=new JFrame("模拟ATM柜员机");frame1.setSize(400, 200);frame1.setLocation(300, 200);frame1.setResizable(false);//拖动鼠标时,其框架不会改变其大小GridBagLayout gridbag=new GridBagLayout(); //定义一个布局管理器GridBagConstraints constraints=new GridBagConstraints(); //创建该对象constraints.fill=GridBagConstraints.CENTER; //指定组件填充网格constraints.insets=new Insets(2,2,2,2);frame1.setLayout(gridbag);lb1=new JLabel("请输入您的银行卡号:");lb4=new JLabel("");text1=new JTextField(10);lb2=new JLabel("请输入您的银行卡密码:");text2=new JPasswordField(10);text2.setEchoChar('●');lb3=new JLabel("");zh=new JLabel("123456");zh.setVisible(false);mm=new JLabel("123456");mm.setVisible(false);pane=new JPanel();bt1=new JButton("更正");bt2=new JButton("确定");bt3=new JButton("退出");pane.add(bt1);pane.add(bt2);pane.add(bt3);buildConstraints(constraints,0,0,1,1,20,25); //指定其组件在网格中的存放位置及与其他组件之间的距离gridbag.setConstraints(lb1, constraints);frame1.add(lb1); //在框架上添加按钮buildConstraints(constraints,1,0,1,1,40,20); //设置其在网格中的位置gridbag.setConstraints(text1, constraints);frame1.add(text1);buildConstraints(constraints,1,1,1,1,20,12);gridbag.setConstraints(lb4, constraints);frame1.add(lb4);buildConstraints(constraints,0,1,1,1,20,12);gridbag.setConstraints(zh, constraints);frame1.add(zh);buildConstraints(constraints,0,2,1,1,20,5);gridbag.setConstraints(lb2, constraints);frame1.add(lb2);buildConstraints(constraints,1,2,1,1,40,10);gridbag.setConstraints(text2, constraints);frame1.add(text2);buildConstraints(constraints,1,3,1,1,20,12);gridbag.setConstraints(lb3, constraints);frame1.add(lb3);buildConstraints(constraints,0,3,1,1,20,12);gridbag.setConstraints(mm, constraints);frame1.add(mm);buildConstraints(constraints,1,4,1,1,20,5);gridbag.setConstraints(pane, constraints);frame1.add(pane);bt1.addActionListener(this); //为一些按钮注册监听器bt2.addActionListener(this);bt3.addActionListener(this);pack();frame1.setVisible(true);图2当帐户号和密码都对时进入“选择业务”界面,在里面可以选择您所修要办理的业务://第二个窗口界面设计:选择业务frame2=new JFrame("选择业务");frame2.setSize(400, 200);frame2.setLocation(300, 200);frame2.setResizable(false);p1=new JPanel();p2=new JPanel();p3=new JPanel();b1=new JButton("修改密码");b2=new JButton("查询余额");b3=new JButton("我要取款");b4=new JButton("我要存款");b5=new JButton("退出");b6=new JButton("返回");p1.add(b1); //将按钮添加到面板上p1.add(b2);p2.add(b3);p2.add(b4);p3.add(b6);p3.add(b5);frame2.add(p1,BorderLayout.NORTH); //设置按钮在框架中的位置frame2.add(p2,BorderLayout.CENTER);frame2.add(p3,BorderLayout.SOUTH);b1.addActionListener(this); //为其注册监听器b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b6.addActionListener(this);b5.addActionListener(this);图三“选择业务”界面选择“修改密码”进入下面的界面(密码长度大于6位长度)://第三个窗口界面设计:修改密码frame3=new JFrame("修改密码");frame3.setSize(400, 180);frame3.setLocation(300, 200);frame3.setResizable(false);GridBagLayout gridbag1=new GridBagLayout();GridBagConstraints constraints1=new GridBagConstraints(); //创建GridBagLayout所对应的类constraints1.fill=GridBagConstraints.BOTH;constraints1.insets=new Insets(2,2,2,2);frame3.setLayout(gridbag);lbe1=new JLabel("旧密码:");lbe2=new JLabel("新密码:");lbe3=new JLabel("确认密码:");cw1=new JLabel("");cw2=new JLabel("");cw3=new JLabel("");button1=new JButton("确认");button2=new JButton("业务");button3=new JButton("退出");tf1=new JPasswordField(10);tf2=new JPasswordField(10);tf3=new JPasswordField(10);tf1.setEchoChar('●'); //设置文本区域显示字符tf2.setEchoChar('●');tf3.setEchoChar('●');buildConstraints(constraints,0,0,1,1,20,12); gridbag.setConstraints(lbe1, constraints); frame3.add(lbe1);buildConstraints(constraints,1,0,1,1,40,0); gridbag.setConstraints(tf1, constraints); frame3.add(tf1);buildConstraints(constraints,2,0,1,1,40,5); gridbag.setConstraints(cw1, constraints); frame3.add(cw1);buildConstraints(constraints,0,1,1,1,20,12); gridbag.setConstraints(lbe2, constraints); frame3.add(lbe2);buildConstraints(constraints,1,1,1,1,40,0); gridbag.setConstraints(tf2, constraints); frame3.add(tf2);buildConstraints(constraints,2,1,1,1,40,5); gridbag.setConstraints(cw2, constraints); frame3.add(cw2);buildConstraints(constraints,0,2,1,1,20,12); gridbag.setConstraints(lbe3, constraints); frame3.add(lbe3);buildConstraints(constraints,1,2,1,1,40,0); gridbag.setConstraints(tf3, constraints); frame3.add(tf3);buildConstraints(constraints,2,2,1,1,40,5); gridbag.setConstraints(cw3, constraints); frame3.add(cw3);buildConstraints(constraints,0,3,1,1,20,12); gridbag.setConstraints(button1, constraints); frame3.add(button1);buildConstraints(constraints,1,3,1,1,40,5); gridbag.setConstraints(button2, constraints); frame3.add(button2);buildConstraints(constraints,2,3,1,1,40,5);gridbag.setConstraints(button3, constraints);frame3.add(button3);button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);图4选择业务”界面的“查询余额”,初始余额为10000元://第四个窗口界面设计:查询余额frame4=new JFrame("查询余额");frame4.setSize(400, 200);frame4.setLocation(300, 200);frame4.setResizable(false);GridBagLayout gridbag2=new GridBagLayout();GridBagConstraints constraints2=new GridBagConstraints();constraints2.fill=GridBagConstraints.BOTH;constraints2.insets=new Insets(2,2,2,2);frame4.setLayout(gridbag);label=new JLabel("您当前的可用余额为:");tt=new JLabel("10000");tt1=new JLabel("元");bb1=new JButton("业务");bb2=new JButton("退出");buildConstraints(constraints,0,0,1,1,20,30);gridbag.setConstraints(label, constraints);frame4.add(label);buildConstraints(constraints,1,0,1,1,1,30);gridbag.setConstraints(tt, constraints);frame4.add(tt);buildConstraints(constraints,2,0,1,1,30,30);gridbag.setConstraints(tt1, constraints);frame4.add(tt1);buildConstraints(constraints,0,1,1,1,1,2);gridbag.setConstraints(bb1, constraints);buildConstraints(constraints,2,1,1,1,1,2);gridbag.setConstraints(bb2, constraints);frame4.add(bb2);bb1.addActionListener(this);bb2.addActionListener(this);图5“选择业务”界面中的“我要取款”,进入“ATM取款”界面://第五个窗口界面设计:ATM取款frame5=new JFrame("ATM取款");frame5.setSize(400, 200);frame5.setLocation(300, 200);frame5.setResizable(false);GridBagLayout gridbag3=new GridBagLayout();GridBagConstraints constraints3=new GridBagConstraints();constraints3.fill=GridBagConstraints.CENTER;constraints3.insets=new Insets(2,2,2,2);frame5.setLayout(gridbag3);aa=new JLabel("请输入您要取的数目");ff=new JTextField(10);bb=new JLabel("元");pp=new JPanel();qq1=new JButton("确定");qq2=new JButton("业务");qq3=new JButton("退出");ww1=new JLabel("");pp.add(qq1);pp.add(qq2);pp.add(qq3);buildConstraints(constraints3,0,0,1,1,20,10);gridbag3.setConstraints(aa, constraints3);frame5.add(aa);buildConstraints(constraints3,0,1,1,1,1,1);gridbag3.setConstraints(ff, constraints3);buildConstraints(constraints3,1,1,1,1,30,0);gridbag3.setConstraints(bb, constraints3);frame5.add(bb);buildConstraints(constraints3,0,2,1,1,20,10);gridbag3.setConstraints(pp, constraints3);frame5.add(pp);buildConstraints(constraints3,2,2,1,1,20,0);gridbag3.setConstraints(ww1, constraints3);frame5.add(ww1);qq1.addActionListener(this);qq2.addActionListener(this);qq3.addActionListener(this);pack();图6用户点击存款功能://第六个窗口界面设计:ATM存款frame6=new JFrame("ATM存款");frame6.setSize(400, 200);frame6.setLocation(300, 200);frame6.setResizable(false);GridBagLayout gridbag4=new GridBagLayout();GridBagConstraints constraints4=new GridBagConstraints();constraints4.fill=GridBagConstraints.CENTER;constraints4.insets=new Insets(2,2,2,2);frame6.setLayout(gridbag4);w1=new JLabel("请输入您要存款的数目");f=new JTextField(10);w2=new JLabel("元");p3=new JPanel();q1=new JButton("确定");q2=new JButton("业务");q3=new JButton("退出");ww=new JLabel("");p3.add(q1);p3.add(q2);p3.add(q3);buildConstraints(constraints4,0,0,1,1,20,10);gridbag4.setConstraints(w1, constraints4);frame6.add(w1);buildConstraints(constraints4,0,1,1,1,1,1);gridbag4.setConstraints(f, constraints4);frame6.add(f);buildConstraints(constraints4,1,1,1,1,30,0);gridbag4.setConstraints(w2, constraints4);frame6.add(w2);buildConstraints(constraints4,0,2,1,1,20,10);gridbag4.setConstraints(p3, constraints4);frame6.add(p3);buildConstraints(constraints4,2,2,1,1,20,0);gridbag4.setConstraints(ww, constraints4);frame6.add(ww);q1.addActionListener(this);q2.addActionListener(this);q3.addActionListener(this);pack();}public void actionPerformed(ActionEvent aa) {//第一个窗口事件:A TM自动柜员模拟登陆if(aa.getSource()==bt1){lb3.setText("");lb4.setText("");text1.setText("");text2.setText("");}if(aa.getSource()==bt2){String zh1=zh.getText();String mm1=mm.getText();if(text1.getText().equals(zh1) && text2.getText().equals(mm1)){ frame1.setVisible(false);frame2.setVisible(true);}if(!(text1.getText().equals("123456"))){//设置初始密码为123456 text1.setText("");text2.setText("");lb4.setText("");lb4.setText("帐户不存在,请重新输入!");}if(text1.getText().equals("123456") && !(text2.getText().equals("123456"))){ if(text2.getText().equals("")){text2.setText("");lb4.setText("");lb3.setText("请输入密码!");}else{text2.setText("");lb4.setText("");lb3.setText("密码不正确,请重新输入!");}}}if(aa.getSource()==bt3){System.exit(0);}//第二个窗口事件:选择业务if(aa.getSource()==b1){tf1.setText("");tf2.setText("");tf3.setText("");cw1.setText("");cw2.setText("");cw3.setText("");frame2.setVisible(false); //显示该设定窗口frame3.setVisible(true); //不显示该设定窗口}if(aa.getSource()==b2){frame2.setVisible(false);frame4.setVisible(true);}if(aa.getSource()==b3){frame2.setVisible(false);frame5.setVisible(true);ww1.setText("");ff.setText("");}if(aa.getSource()==b4){ww.setText("");frame2.setVisible(false);frame6.setVisible(true);f.setText("");}if(aa.getSource()==b6){text1.setText("");text2.setText("");lb4.setText("");lb3.setText("");frame2.setVisible(false);frame1.setVisible(true);}if(aa.getSource()==b5){System.exit(0);}//第三个窗口事件:修改密码if(aa.getSource()==button1){String mm2=mm.getText();int xmms=tf2.getText().length();if(tf1.getText().equals(mm2)){ //if语句判定密码是否与默认密码一致if(xmms>=6){if(tf3.getText().equals(tf2.getText())){cw1.setText("");cw2.setText("");mm.setText(tf2.getText());cw3.setText("密码修改成功!");}else{cw1.setText("");cw2.setText("");tf2.setText("");tf3.setText("");cw3.setText("两次密码不一致!");}}else{tf2.setText("");tf3.setText("");cw1.setText("");cw3.setText("");cw2.setText("长度应不小于6位!"); //密码长度大于或等于6位}}else{tf1.setText("");tf2.setText("");tf3.setText("");cw1.setText("原密码输入不对!");cw2.setText("");cw3.setText("");}}if(aa.getSource()==button2){frame3.setVisible(false);frame2.setVisible(true);}if(aa.getSource()==button3){System.exit(0);}//第四个窗口事件:余额查询if(aa.getSource()==bb1){frame4.setVisible(false);frame2.setVisible(true);}if(aa.getSource()==bb2){System.exit(0);}//第五个窗口事件:A TM取款if(aa.getSource()==qq1){String qu=ff.getText();double qu1=Double.parseDouble(qu);String yu2=tt.getText();double yu21=Double.parseDouble(yu2);if(qu1%100==0 && qu1<=5000){//取款必须为100的整数倍,并且其数目小于5000 if(qu1<=yu21){double sum1=yu21-qu1;tt.setText(""+sum1);ff.setText("");ww1.setText("取款成功!您可以查询余额!");}else{ff.setText("");ww1.setText("余额不足!");}}else{ff.setText("");ww1.setText("应为100的倍数且<5000!");}}if(aa.getSource()==qq2){frame5.setVisible(false);frame2.setVisible(true);}if(aa.getSource()==qq3){System.exit(0);}//第六个窗口事件:A TM存款if(aa.getSource()==q1){String cun=f.getText();double cun1=Double.parseDouble(cun);String yu=tt.getText();double yu1=Double.parseDouble(yu);if(cun1>=0){double sum=yu1+cun1;tt.setText(""+sum);f.setText("");ww.setText("存款成功!您可以查询余额!");}else{f.setText("");ww.setText("必须为非负数!");}}if(aa.getSource()==q2){frame6.setVisible(false);frame2.setVisible(true);}if(aa.getSource()==q3){System.exit(0); } }public static void main(String[] args) {new ATM(); } }五、调试与分析1)在编写过程中当向JFrame窗口添加组件,其实是在内容嵌板上添加,自己在编写是没注意到这个问题,导致老出错,为获取这个内容嵌板,就使用getC ontentpane;2)在给按钮注册监听器时,没有给对象创建空间,也导致程序出现错误:3)还有一些主要是在编写过程中的语法错误,在同学的帮助下加以改正。

JavaATM课程设计报告书

JavaATM课程设计报告书

呼和浩特民族学院课程设计报告设计名称:《面向对象程序设计》课程设计选题名称: ATM自动取款机模拟系统姓名:萌学号:专业班级:计算机科学与技术专业系(院):计算机系设计时间:2013.11.19~2013.11.28设计地点: 5、6机房4.课程设计成果调试程序,进入主界面:选择查询选择查询后,进入如下界面,可以先输入密码,检测密码输入是否正确。

取款查看余额更改密码:存款转账:继续操作检验和退出程序:5.课程设计心得在本次的课程设计中,ATM自动取款机模拟系统在初选时觉得很难,因为在我觉得这个程序太大了,而且有好的方法我不是很熟练,我也在网上查阅的很多资料,最后定下这个程序。

根据课程设计的要求,在ATM自动取款机模拟系统要实现查询,存款,取款,转账,密码修改等功能,还有程序选择功能,错误提示,退出系统等功能。

在调试过程中,出现了很多问题,对于我来说,方法的调用时最难的了,经过网上查询,老师帮助,同学商议,最后解决了我的难题,但是我写的还是很慢的了,经过斟酌才写下这篇程序报告。

不过通过解决这些问题,我也对java中许多不理解的地方也有了不同的看法,知道了很多的知识,我觉得这些辛苦没有白费。

最后,能让读者或者使用的人更清楚明白的直观的认识这个程序我加了很多,汉语的注释和操作中的提示,通过这次程序设计报告的完成我希望以后我的程序越来越好,我知道的知识越来越多。

参考文献:《Java语言与面向对象程序设计》-----------王行言编著《Java2实用教程》------------------------耿祥义,跃平编著《Java实用程序设计100例》---------------袁海燕,王文涛编著。

ATM机《Java语言程序设计》课程设计报告

ATM机《Java语言程序设计》课程设计报告

《Java语言程序设计》课程设计报告题目: ATM机班级: 10信息一班系部:信息管理系专业:计算机应用技术2011年 6 月 25 日ATM机设计报告目录1 概述 (2)1.1 问题分析 (2)1.2功能 (2)2 总体设计 (3)3 详细设计 (3)1.登录界面Client()类结构介绍: (3)2.卡号生成界面AtmDemo()类结构介绍: (3)3.功能界面Main()类结构介绍: (4)4.存款地界面KeepMoney()和取款地界面GetMoney()结构介绍: (4)5.修改密码界面Change()类结构介绍: (5)7.查询余额界面Yuxia.java()类结构介绍: (5)4 实现 (5)1. 运行环境 (5)2. 运行情况抓图 (5)5 总结与体会 (6)6 参考文献 (7)7 附录:程序清单 (7)1 概述1.1 问题分析模拟ATM机基本操作功能:存款、取款、余额查询、修改密码等;初始账户10000元;修改密码时必须修改两次,确认后才可使用;取款地款项和存款地款项必须是100地整倍数;1.2功能1)模拟ATM机实现当用户进入登陆页面后,用户需先点击银行开户按钮进行银行开户;2)进入银行开户页面之后,进行填写客户信息,系统会自动生成卡号,信息填写完整后系统会自动保存用户信息在生成地文件中,并返回登陆页面进行登录.3)登陆成功之后进入ATM机操作页面进行存款、取款、余额查询、修改密码,点击一个按钮都会显示出对应地页面.2 总体设计1、Client()类第一个登陆页面主要包括:登陆账号按钮、银行开户按钮、重新登录按钮、退出系统按钮;2、AtmDemo()类第二个登陆页面主要进行用户资料填写主要包括:卡号、密码、确认密码、用户名、性别、存款金额标签;生成卡号、确认开户、取消开户按钮;3、Main()类第二个登陆页面主要设置安放按钮,主要包括:取款、存款、修改密码、查询余额、退出该界面按钮并对所有按钮进行监听;4、GetMoney()类第三个登陆页面主要进行取款设置主要包括:提款金额数目地数字按钮,当点击相应地按钮时,提取金额框内显示相应地取款金额;当提款地金额超出卡内总金额时,取款失败;5、KeepMoney()类第四个登陆页面主要进行存款设置主要包括:存款金额数目地数字按钮,当点击相应地按钮时,存款金额框内显示相应地存款金额;6、Change()类第五个登陆页面主要进行密码修改地设置主要包括:设置“确认”“取消”“返回主页面”三个按钮;两次输入新地密码,当两次密码相同时点击“确认”按钮修改密码成功,第二次进行账户登录时使用修改后地密码7、Yuxia()类第六个登陆页面主要进行余额查询地设置主要包括:当点击“查看余额”按钮时查看存款、取款后卡内地总金额,显示在文本框内;当点击“返回主页面”时返回Main页面;8、Account()类主要保存文件地卡号,密码和账户金额,对进行数据信息在不同地类内调用传递;3 详细设计1.登录界面Client()类结构介绍:主要包括:三个标签:“欢迎登录A TM机”,“卡号”,“密码”两个文本框:JTextField和JPasswordField四个按钮:“登陆账号”,“银行开户”,“重新登录”,“退出系统”对页面使用了空布局.对文本框进行监听,设置卡号只能为数字,且只能输入8位.设置密码框不为空.给四个按钮创建监听ActionListener,四个按钮实现地功能:登陆账号:第一次进入登录界面时,当点击“登录账户”弹出对话框:“请进行银行开户”.重新登录:当点击“重新登录”按钮,用setText(“”)把文本框和密码框为空.银行开户:当点击“银行开户”按钮时,界面跳到银行开户地界面里.退出系统:当点击“退出系统”时,弹出对话框“确定要退出ATM系统?”点击是,退出系统,点击否,留在该界面.当银行开户成功后,再次输入卡号和密码,如果其中一个或全部错误,弹出对话框:“请核对你地卡号和密码,重新登录”,并不设置文本框为空.2.卡号生成界面AtmDemo()类结果介绍:继承Jframe创建银行卡号开户窗体,创建监听;应用空布局设置JLabel标签,JTextField, JPasswordField,JButton,JComboBox复选按钮框在窗体中地位置当点击“生成卡号”按钮时系统会自动生成卡号( inti=(int)(Math.random()*100000000)。

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

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位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

java课程设计报告_自动取款机模拟程序

java课程设计报告_自动取款机模拟程序

学院计算机科学与技术系课程设计报告2014~2015学年第一学期课程JAVA课程设计课程设计名称自动取款机模拟程序学生学号专业班级指导教师2014年9月自动取款机模拟程序一、课程设计过程概述这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象软件开发的思维,初步了解软件开发的一般流程,提高用JAVA编程的实际动手能力并增强大家对面向对象的了解。

这次课程设计的主要容是独立用JAVA语言开发一个小的应用程序名称:自动取款机模拟程序容:在PC机上设计一个自动取款机的模拟程序,实现现实中取款机的大部分功能。

二、任务和要求1.程序分为两部分:管理端和客户端。

2.管理端负责管理所有的银行卡,管理员可以增加和删除银行卡。

(1)每银行卡由卡号唯一标识,卡号由9位阿拉伯数字组成;(2)新增的银行卡密码均为“123456”,卡金额均为0元;(3)只有管理员增加的银行卡才能登陆客户端;(4)删除后的银行卡将不能再登陆客户端。

3.客户端负责常见的取款机操作。

(1)客户端需要登陆,用户输入正确的银行卡号和密码,系统核对无误后才能进行操作;(2)登陆后,用户可以进行查询余额、取款、存款和修改密码的操作;(3)修改密码时,用户需输入两次新密码,确定无误后方可更改;(4)取款和存款操作,有操作结果提示,如“操作成功”或“余额不足,操作失败”等。

三、数据库设计程序中包括用户客户端和管理客户端,所以在数据库中需要设计用户信息表和管理员信息表分别来保存用户信息和管理员信息(数据库采用MySQL )。

表1用户信息表(user )表2管理员信息表(admin )列名数据类型及长度 是否为空 主键 默认值 说明 adminName Varchar (10) NO 主键 管理员 passwordVarchar (10)NOadmin管理员密码四、系统设计1、设计框架图一 总体设计框架列名 数据类型及长度 是否为空 主键 默认值 说明 cardNum Varchar (12)NO 主键 用户 password Int(6) NO 123456 用户密码 balanceInt(10)NO余额2、总体设计我所设计的ATM机主要是由登录页面模块还由选择服务模块组成,在登录时可选择用户登录或管理员登陆。

atm机 JAVA课程设计报告

atm机 JAVA课程设计报告

附件2:《计算机程序设计》课程设计报告题目:模拟ATM班级:姓名:指导教师:2014年6月19日一、功能描述开发者记录界面实现效果、实现思想、关键技术、代码优化等方面。

(1)实现效果(2)实现思想要想实现取款功能,首先显示“取款”窗口或对话框,输入取款金额,然后在文本框内显示,单击确定就可以取款成功。

这就需要给取款按钮注册监听,编写监听器类。

(3)关键代码如下:注册监听:import java.awt.event.*;btTake.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubnew Take(myCard).init();}});(4)代码优化如下:添加背景:import javax.swing.*;JPanel panelTake = new JPanel(null);((JPanel)this.getContentPane()).setOpaque(false);ImageIcon img=new ImageIcon("image//a.jpg");JLabel background=new JLabel(img);this.getLayeredPane().add(background,new Integer(Integer.MIN_VALUE));background.setBounds(0,0,560,300);panelTake.add(background);设置字体的粗细、大小、颜色:import java.awt.*;记录界面实现效果、实现思想、关键技术、代码优化等方面。

(1)实现效果(2)实现思想要想实现修改密码功能,首先显示“修改密码”窗口或对话框,输入现在的密码,然后在文本框内显示,单击确定。

银行存取款管理系统课程设计报告JAVA

银行存取款管理系统课程设计报告JAVA

银行存取款管理系统课程设计报告JAVA一、项目背景介绍在当今社会,银行作为金融服务的重要机构,对于存取款管理系统的需求日益增加。

为了满足这一需求,我们设计了一款基于Java语言的银行存取款管理系统,旨在帮助银行更高效地管理客户的资金。

二、项目需求分析1. 用户管理•实现用户的注册、登录功能,保障账户安全。

•对用户的身份进行验证,确保账户信息的准确性。

2. 存款管理•用户可以对账户进行存款操作,包括现金存款和转账存款。

•及时更新账户余额,保证用户能够随时查看账户信息。

3. 取款管理•实现用户对账户的取款操作,包括现金取款和转账取款。

•在用户取款时进行验证,确保账户余额充足。

4. 查询管理•提供用户对账户余额、交易记录等信息的查询功能,方便用户了解自己的财务情况。

三、系统设计1. 技术选型•Java语言:稳定、跨平台、易于学习。

•MySQL数据库:存储用户账户信息、交易记录等数据。

•Swing GUI库:用于实现系统的图形化界面。

2. 模块设计•用户管理模块:负责用户的注册、登录,以及身份验证。

•存款管理模块:处理用户的存款操作,更新账户余额。

•取款管理模块:处理用户的取款操作,验证账户余额。

•查询管理模块:提供用户账户信息的查询功能。

四、系统实现1. 用户管理模块实现// 用户注册功能public void register(String username, String password) {// 注册逻辑}// 用户登录功能public boolean login(String username, String password) {// 登录逻辑}2. 存款管理模块实现// 存款功能public void deposit(String account, double amount) {// 存款逻辑}// 转账功能public void transfer(String fromAccount, String toAccount, double amoun t) {// 转账逻辑}3. 取款管理模块实现// 取款功能public void withdraw(String account, double amount) {// 取款逻辑}// 转账功能public void transfer(String fromAccount, String toAccount, double amoun t) {// 转账逻辑}4. 查询管理模块实现// 查询余额功能public double checkBalance(String account) {// 查询余额逻辑}// 查询交易记录功能public List<Transaction> getTransactionHistory(String account) {// 查询交易记录逻辑}五、系统测试1. 单元测试•分别测试用户管理、存款管理、取款管理、查询管理模块的各项功能是否正常运行。

Java银行ATM模拟系统报告

Java银行ATM模拟系统报告

《Java核心技术上》结课报告班级:学号:姓名:银行ATM机模拟系统1.设计内容本系统采用JAVA语言并在eclipse环境下编写测试完成,涉及类的概念,异常处理机制,基本上模拟了ATM系统的相关实现,且代码内标注大量注释,读者可以很轻松的看清楚。

2.技术说明当输入用户的卡号和密码时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:(1)查询余额:初始余额为10000元(2)ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。

(3)ATM存款:不能出现负存款。

(4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

3.系统设计3.1功能说明本系统主要模拟银行ATM机系统功能,主要有查阅、取款、存款、账户修改密码等功能。

4.测试*验证登陆无法成功执行解决方法:查资料,上网查询*修改密码某些要求无法实现解决方法:查资料,上网查询5.总结总的来说,本次设计当中存有许多的不足之处,基本上设计出了和自己预想中的效果,但同时在设计上也还存在着很多的,很多事没有什么用的代码,我想是因为时间和经验的问题,以后多练习就肯定能提高。

仔细地看,还是有一些小问题。

通过java编写简单的ATM登录系统的设计,我不仅复习了上学期的java编程设计基础知识,并且增强了我对java语言的领悟和应用,同时也更深刻的懂得了学好学会了并不是代表能够真正的在实践中运用得流畅,这次实践给了我们一个既动手又动脑独立实践的机会,但其中也包含了自我寻找资料的能力和同学间的合作能力。

这个系统将理论和实践相结合,提高自己的分析、解决问题的能力,并且让我明白了计算机的技术一定要从实际出发才能真正的提高自己的能力;6.参考文献安博教育《java核心技术》电子工业出版社8. 源代码package other;//------ATM模拟系统------importpublic class ATM {private String AccountNum=;//账号private String password="123456";//密码private long balance=10000;//初始余额Scanner sc=new Scanner(System.in);//构造函数public ATM(){}public ATM(String temp,String temp2){this.AccountNum=temp;this.password=temp2;}//-------修改密码模块------public void changePassword(String oldPass,String password){ if(!oldPass.equals(this.password)){//判断初始密码System.err.println("Wrong initial password.");return;}if(password.length()<6){//判断新密码长度System.err.println("Password too short.");return;}if(this.password.equals(password)){ //不能与原密码相同System.err.println("Password cannot be the same.");return;}this.password=password;System.out.println("newpassword:"+this.password);}//-------查询余额模块------public long balanceInquery(){return this.balance;}//------存款模块------public void deposit(){int amount;System.out.println("请输入存款金额:");amount=sc.nextInt();if(amount<0){ //避免出现负存款System.err.println("Cannot deposit negative amount");return;}this.balance+=amount;System.out.println("balance="+this.balance);}//-------取款模块------public void withdraw(){int amount;System.out.println("请输入取款金额:");amount=sc.nextInt();if(amount>5000||amount<0){ //每次取款不能超过5000System.err.println("Withdraw limit:¥0-¥5000");System.exit(0);}if((amount%100)!=0){ //取款为100倍数System.err.println("The amount has to be a product of100");System.exit(0);}long newBalance=this.balance-amount;if(newBalance<0){ //取款后余额不能为负System.err.println("Not enough money in the account");}this.balance=newBalance;System.out.println("balance="+this.balance);}//-------主界面显示模块------public void menu(){int select;ATM a=new ATM();try{String AccountNum=;String password="123456";Scanner sc=new Scanner(System.in);System.out.println("-----------------------------------欢迎使用ATM模拟系统------------------------");System.out.print("\t请输入账号:");AccountNum=sc.next();System.out.print("\t请输入密码:");password=sc.next();if (!AccountNum.equals(this.AccountNum)) {System.err.println("账号错误"); //验证登陆账号System.exit(0);}else if (!password.equals(this.password)) {System.err.println("密码错误"); //验证登陆密码System.exit(0);}else {System.out.println("登陆成功,进入主菜单!");do{System.out.println("\n ************1查询************");System.out.println("\n ************2取款************");System.out.println("\n ************3存款************");System.out.println("\n ************4修改密码**********");System.out.println("\n ************0退出************");System.out.println("\n请输入选择:");System.out.println("----------------------------------------------------------------");select=sc.nextInt();switch(select){case 1:System.out.println("Balance="+a.balanceInquery());//余额查询break;case 2:a.withdraw(); //取款break;case 3:a.deposit();//存款break;case 4:System.out.println("Oldpassword:");String temp=sc.next();System.out.println("Newpassword:");String temp2=sc.next();a.changePassword(temp,temp2);//改密break;case 0:System.exit(0);//退出break;default:System.out.println("请输入数字1-5");}//end switch}while(true);//实现循环}}catch(Exception e){e.printStackTrace();}}public static void main(String[] args) {// TODO Auto-generated method stubATM a=new ATM();a.menu();}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

吉林工程技术师范学院信息工程学院《 Java项目实训》课程设计报告题目: ATM取款机JAVA实训课程设计专业:计算机科学与技术班级: C1341姓名:姜秋红学号: 25摘要我选择的是“ATM取款机”,其目的主要是现在市面上的取款机功能不完善还有许多功能没有实现,用户对界面很熟悉,做起来更得心应手,所以的采用的界面和现在用户所用的界面基本相同,可以实现后台与前台的交互以及数据库之间的连接,使得我设计的ATM取款机更加完善。

利用jps网页设计一个总页面设计选择使用的用户是用户页面还是管理员页面,让使用的人根据权限去使用不同的功能。

在我的ATM取款机上实现了ATM机的基本功能,其界面参照了和原系统基本相同的界面。

增加了一些管理员的功能。

首先选择是用户登入还是管理员登入。

选择用户登入,有查看,存款,取款,转账和修改密码等功能。

选择管理员登入,有开户,销户,查询等功能;利用这些更能,使得ATM更加完善。

关键字:ATM,查询,取款,转账,修改,界目录程序设计概念4程序设计的目的4课程设计的内容4设计方案的论证5概要设计5需求分析5技术可行性 5经济可行性 5设计实现内容6数据字典6成员变量6方法设计6页面如下7数据流程图 7测试运行及结果分析10测试及问题探讨11课设总结与体会12致谢13参考文献14附录115一、课程设计的概念课程设计的目的现代社会,ATM可以说是一种使用非常广泛的机器, ATM使用是非常频繁的,然而由于程序及其机器本人的一些漏洞,导致ATM机的犯罪现象屡有发生。

该项目的开发有利于进一步提高ATM机的性能及安全性,模拟开发ATM系统软件,掌握系统开基本流程,在开发系统中可以巩固所学的有关软件开发的知识,有利于提出优化改进现代ATM系统的建议。

课程设计的内容银行ATM机的使用已经普及,人们都已习惯利用自动柜员机来提取现金,查询存款,转账,修改密码等等,我设计的ATM取款机添加了新的功能,具体功能如下:管理员状态登入:无用用户二、设计方案的论证概要设计《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。

实践教学环节是必不可少的一个重要环节。

本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

?需求分析ATM设计的主要目标为:管理员登陆时要写入账户的名和身份证号在数据库里进行匹配,匹配成功则登入否则在前台显示账号或密码错误;普通用户登入时要写入银行卡号和所属银行卡号的密码,在数据库中进行匹配,匹配成功即登入否则在前台显示账号或密码错误可行性分析法是对工程项目技术经济论证技术经济论证经济合理性综合分析的方法。

其目的是通过对技术先进程度,经济合理性和条件可能性的分析论证,选择以最小的人力、物力、财力耗费,取得最佳技术、经济、社会效益的切实方案。

它是解决项目投资前期分析的主要手段。

三、设计实现内容系统功能结构设计数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。

成员变量成员变量也叫类的属性,一般带有访问控制属性的,而全局变量虽然也有类的属性,但全局变量严重影响了封装和模块化,一般的全局变量前面要加上static和?fina属性其中,static使该变量任何类都可用(方法?ClassName.全局变量名)?,而?fina则使得变量不可更改,基本上算是常量了,这也在一定程度上防止对变量的非法修改。

方法设计方法名称为任何合乎语法的识别字,返回值类型是方法执行结果返回给调用者的数据类型,void表示没有返回值,参数行(parameter?list)是调用时给予的参数声明,两个以上的参数声明以逗号隔开,若没有参数则参数行为空白,调用时每一个参数对应一个参数值(argument)大括号内为方法本体,也称为方法程序模块(block),包含声明(declarations)和语句(statements),声明也可以掺杂在语句之间。

一个方法不能声明在另一个方法内。

表方法定义数据流程图图选择方式登入四、测试运行及结果分析1、用户向ATM提款机中插入银行卡,如果银行卡是合法的,ATM提款机界面提示用户输入提款密码;2、用户输入该银行卡的密码,ATM提款机与MainFrame传递密码,检验密码的正确性。

如果输入密码正确,提示用户输入取钱金额,提示信息为,“请输入您的提款额度”;3、用户输入取钱金额,系统校验金额正确,提示用户确认,提示信息为“您输入的金额是xxx,请确认,谢谢!”,用户按下确认键,确认需要提取的金额;4、系统同步银行主机,点钞票,输出给用户,并且减掉数据库中该用户帐户中的存款金额。

5、用户提款,银行卡自动退出,用户取走现金,拔出银行卡,ATM提款机界面恢复到初始状态;五、测试及问题探讨如果插入无效的银行卡,那么,在ATM提款机界面上提示用户“您使用的银行卡无效!”,3秒钟后,自动退出该银行卡。

?如果用户输入的密码错误,则提示用户“您输入的密码无效,请重新输入”如果用户连续3次输入错误密码,ATM提款机吞卡,并且ATM提款机的界面恢复到初始状态。

此时,其他提款人可以继续使用其他的合法的银行卡在ATM提款机上提取现金。

用户输入错误的密码后,也可以按“退出”键,则银行卡自动退出。

如果用户输入的单笔提款金额超过单笔提款上限,ATM提款机界面提示“您输入的金额错误,单笔提款上限金额是2500RMB,请重新输入”;如果用户输入的单笔金额,不是以50RMB为单位的,那么提示用户“您输入的提款金额错误,请输入以50为单位的金额”;如果用户输入正确的提款金额,ATM提款机提示用户确认后,用户取消提款,则ATM提款机自动退出该银行卡;如果ATM提款机中余额不足,则提示用户,“抱歉,ATM提款机中余额不足”,3秒钟后,自动退出银行卡如果用户银行户头中的存款小于提款金额,则提示用户“抱歉,您的存款余额不足!”,3秒钟后,自动退出银行卡;如果用户没有取走现金,或者没有拔出银行卡,ATM提款机不做任何提示,直接恢复到界面的初始状态;六、课设总结与体会大约一个星期的编写JAVA程序,发现自己不懂的地方很多,在完成这个设计的时候,我总是被一些小的,细的问题挡住前进的步伐,让我总是为了解决一个小问题而花费很长的时间,甚至做到很晚,最好猛然发现自己缺少一个定义或者还要查阅其他的书籍才能找出解决的办法。

例如,我定义了一个链表,可是向里面添加东西的时候,总是出错,后来在上机的时候问老师,才知道链表没有初始化,这是自己的粗心造成的。

我在做设计的过程中发现有很多东西,我都还不知道。

在做进制转换时不知道函数怎么写,是我上网查到的,再经过修改查到我的程序中。

其实在用语言来编程的时候,基础是一个不可缺少的知识,但是往往一些核心的高层次的东西更是不可缺少。

七、致谢通过这次课程设计还使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,并且还发现了自己的许多不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

但通过这次课程设计之后,一定把以前所学过的知识重新温故。

我完成了这次JAVA课程设计,不过这只是我学习路上的驿站。

我相信我在未来的学习中会记住从本次课程设计中所学到的东西,并将它用到未来的学习中去。

在这里谢谢老师的指导,我会更加努力的学习八、参考文献[1].张桂珠刘丽陈爱国 Java面向对象程序设计(第2版)北京邮电大学出版社[2]毕广吉. Java程序设计实例教程. 北京:冶金工业出版社,2007年[6]董迎红、王薇编着,Java程序设计案例教程与实训,北京大学出版社[7]赵文靖编着,《Java程序设计基础与上机指导》,清华大学出版社九、附录package c;import ;import ;public class Zong implements JieK {public void kh(info u)throws ClassNotFoundException, SQLException{String pid = ();String user_name = ();String telephone = ();String addr = ();LianJie lj=new LianJie();Connection con = ();String sql = "{call kaihu(?,?,?,?)}";CallableStatement cs = (sql);(1,pid);(2,user_name );(3,telephone );(4,addr);();();}public void xh (String user_id)throws ClassNotFoundException, SQLException{Connection con = null;LianJie lj=new LianJie();con = ();String sql = "{call xiaohu(?)}";CallableStatement cs = (sql);(1,user_id);();}public List<info> cx(String pid,String user_id) throws ClassNotFoundException, SQLException{Connection con = null;con = ();Statement sta = null;String sql = "SELECT * FROM userinfo where 1=1";if (pid != null && pid!=""){sql = sql+" and pid='"+ pid+"'";}if (user_id != null && user_id!=""){sql = sql+" and user_id='"+ user_id+"'";}sta = ();ResultSet rs = null;rs = (sql);List<info> list=null;list = new ArrayList<info>();while()){String user_id1 = (1);String user_name = (2);String pid1 = (3);String telephone = (4);String addr = (5);info s = new info();(user_id1);(user_name);(pid1);(telephone);(addr);(s);}return list;}public List<info> yhcx(String card_id)throws ClassNotFoundException,SQLException{ Connection con = null;con = ();PreparedStatement ps =null;String sql1="select ,,,,, from cardinfo c,userinfo u where = and card_id=? ";ps = (sql1);(1,card_id);ResultSet rs = ();List<info> li=new ArrayList<info>();while()){String user_id=(1);String user_name=(2);String telephone=(3);String card_id1=(4);Date open_date=(5);int balance=(6);info info=new info( );(user_id);(user_name);(telephone);(card_id1);(open_date);(balance);(info);}return li;}public void jiaoyi(info u) throws ClassNotFoundException,SQLException{String card_id = ();String trans_type=();int trans_money=();String card_id1 = ();Connection con = null;con = ();String sql = "{call user_money(?,?,?,?)}";CallableStatement cs = (sql);(1, trans_type);(2, card_id);(3, trans_money);(4, card_id1);();}public List<info> yhjy(String card_id) throws ClassNotFoundException, SQLException{ Connection con = null;LianJie lj=new LianJie();con = ();Statement sta = null;String sql = "SELECT * FROM transinfo where 1=1";if (card_id != null && card_id!=""){sql = sql+" and card_id='"+ card_id+"'";}sta = ();ResultSet rs = null;rs = (sql);List<info> list=null;list = new ArrayList<info>();while()){Date trans_date = (1);String card_id1 = (2);int balance = (3);String trans_type = (4);int trans_money = (5);String remark = (6);info s = new info();String a=();(a);(card_id1);(balance);(trans_type);(trans_money);(remark);(s);}return list;}public info dl(String user_id,String passwd)throws ClassNotFoundException, SQLException{Connection con = null;LianJie lj=new LianJie();con = ();Statement sta = ();String sql = "SELECT card_id FROM cardinfo where user_id='"+user_id+"' and passwd='"+passwd+"'" ;ResultSet rs = null;rs = (sql);String card_id=null;info in=null;while()){in = new info();card_id = ("card_id");(card_id);}();();return in;}public List<info> card(String user_id) throws SQLException, ClassNotFoundException{Connection con = null;LianJie lj=new LianJie();con = ();Statement sta = ();String sql = "SELECT * FROM cardinfo where user_id='"+user_id+"'" ;ResultSet rs = null;rs = (sql);String card_id=null;List<info> list=null;list = new ArrayList<info>();while()){card_id = ("card_id");Date open_date = ("open_date");int open_money = ("open_money");int balance = ("balance");String passwd = ("passwd");user_id = ("user_id");info in=new info( );(card_id);(open_date);(open_money);(balance);(passwd);(user_id);(in);}();();return list;}public List<info> select(String user_id) throws Exception {Connection con = null;LianJie lj=new LianJie();con = ();PreparedStatement ps =null;String sq3="select * from userinfo where user_id=?";if(user_id==null||("")){sq3="select * from userinfo";ps = (sq3);}else{ps = (sq3);(1,user_id);}ResultSet rs = ();List<info> li=new ArrayList<info>();while()){String user_id1=(1);String user_name=(2);String pid=(3);String telephone=(4);String addr=(5);info info=new info( );(addr);(pid);(telephone);(user_id1);(user_name);(info);}return li;}public void update(info in) throws SQLException,ClassNotFoundException{String userid = ();String username = ();String telephone = () ;String addr = ();String sq8="update userinfo set USER_NAME=?,TELEPHONE=?,ADDR=? where user_id=?";Connection con = null;LianJie lj=new LianJie();con = ();PreparedStatement sta=con. prepareStatement(sq8);(4, userid);(1, username);(2, telephone);(3, addr);();();();}public String id(String user_name)throws Exception{LianJie lj=new LianJie();Connection con = ();String sq7="select user_id from userinfo where user_name=? ";PreparedStatement st=(sq7);(1,user_name);ResultSet rs=();String user_id1=null;while()){user_id1= ("user_id");}return user_id1;}public List<info> yhselect(String card_id) throws Exception { Connection con = null;LianJie lj=new LianJie();con = ();PreparedStatement ps =null;String sq3="select * from cardinfo where card_id=?";if(card_id==null||("")){sq3="select * from cardinfo";ps = (sq3);}else{ps = (sq3);(1,card_id);}ResultSet rs = ();List<info> list=new ArrayList<info>();while()){card_id = ("card_id");Date open_date = ("open_date");int open_money = ("open_money");int balance = ("balance");String passwd = ("passwd");String user_id = ("user_id");info in=new info( );(card_id);(open_date);(open_money);(balance);(passwd);(user_id);(in);}return list;}public void yhupdate(info in) throws SQLException,ClassNotFoundException{ String card_id = ();String passwd= ();String sq8="update cardinfo set passwd=? where card_id=?";Connection con = null;LianJie lj=new LianJie();con = ();PreparedStatement sta=con. prepareStatement(sq8);(1,passwd);(2,card_id);();();();}public List<info> yhc(String card_id,String passwd) throws ClassNotFoundException, SQLException{Connection con = null;LianJie lj=new LianJie();con = ();Statement sta = null;// if (card_id != null && card_id!=""){//// }String sql = "SELECT ,,,,,,, FROM cardinfo a,userinfo b where = and ='"+ card_id+"' and ='"+passwd+"'";sta = ();ResultSet rs = null;rs = (sql);List<info> list=null;list = new ArrayList<info>();while()){String passwd1 = ("passwd");int open_money=("open_money");String user_id = ("user_id");String user_name = ("user_name");String telephone = ("telephone");card_id = ("card_id");Date open_date = ("open_date");int balance = ("balance");info in=new info( );(passwd1);(open_money);(user_id);(user_name);(telephone);(card_id);(open_date);(balance);(in);}return list;}public info jiaoyan(String card_id,String passwd) throws ClassNotFoundException, SQLException {Connection con = null;LianJie lj=new LianJie();con = ();String sql = "SELECT card_id FROM cardinfo where card_id='"+card_id+"' and passwd='"+passwd+"'";Statement sta = ();ResultSet rs = (sql);info s = new info();while()){String card_id1 = (1);(card_id1);}return s;}public info GLjiaoyan(String user_id,String PID) throws ClassNotFoundException, SQLException {Connection con = null;LianJie lj=new LianJie();con = ();String sql = "SELECT user_id FROM userinfo where user_id='"+user_id+"' and PID='"+PID+"'";Statement sta = ();ResultSet rs = (sql);info s = new info();while()){String user_id1 = (1);(user_id1);}return s;}}。

相关文档
最新文档