课程设计-ATM柜员机模拟程序
- 格式:doc
- 大小:761.73 KB
- 文档页数:26
ATM柜员机模拟程序摘要使用图形用户界面。
当输入给定的卡号和密码(初始卡号为123456和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:查询余额:初始余额为50000元ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
ATM存款:不能出现负存款。
修改密码:只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
我所设计的ATM柜员机主要是由登录页面模块还由选择服务模块组成,其中选择服务模块又由取款模块、查询余额模块、修改密码模块、退卡模块组成。
一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、方便易操作。
我设计的界面主要分为窗体、菜单、按钮和文本输入框几个部分,分别执行相应的操作。
关键字:图形用户界面;ATM;柜员机;模拟程序;模块;ATM machines simulation programAbstractUse the graphical user interface. When the input given card number and password (initial card number for 123456 and password for 123456), the system can login ATM machines system, users can according to the following rules:Inquires the balance: initial balance is 50000 yuan ATM withdrawals: every time a multiple of the amount of, the total will not more than 5000 yuan, the amount of withdrawals allows no overdraft.ATM deposits: can't negative deposits.Change the password: only the correct password is old, the new password accords with a requirement, and two enter the same case can be modified successfully password.I designed by ATM machines is mainly composed of the login page module by choice service module is, selecting the service module by withdrawals and module, inquires module, modify the password balance module, return card modules. A system interface has a direct influence on the user's operation, interface design requirements style beauty, simple and clear, make the operation easy. I design interface are divided into form, menu, button and text input box sectionsKeywords:graphical user interface; ATM; Automated Teller Machine; simulation program; module;1 系统需求分析1.1 功能需求分析本ATM柜员机的主要功能如下所述:要求使用图形用户界面。
C语言-ATM机模拟操作程序实现功能点:a.查询:查询帐户的存款余额。
按任意键返回主菜单;b.取款:输入100、500、1000、2000、5000、其它金额为取款金额,取款金额不超过帐户余额,操作后帐户余额应相应减少,之后可返回主菜单;c.存款:输入100、500、1000、2000、5000、其它金额为存款金额,存款金额不超过20000元,操作后帐户余额应相应增加。
之后可返回主菜单;d.转帐:输入一个帐户号,程序判断与文件信息是否相符,储户确认无误后,再输入100、500、1000、2000、5000、其它金额为转帐金额,转帐金额不得超过帐户余额,操作后帐户余额应相应减少。
之后可返回主菜单;e.修改密码:连续输入两次新密码(两次输入结果完全相同)后,新密码取代旧密码,并存放到帐户信息文件中。
之后可返回主菜单;f.退出:退出系统;g.帮助:增加趣味性;h.存款时,可正可负,正表示存款,负表示取款;i.帐户信息存放在accounts.txt文件,储户存取款记录保存在records.txt中;(在目录下创建这两个文件)j.采用模块化程序设计方法来实现,即main()显示主菜单、调用相关函数实现相应功能,起主控作用;k.储户一天内输错密码的次数不能超过3次,否则无法进入系统;l.有效避免输入存款金额、取款金额为负数等异常情况的出现。
较为突出的功能是注册、登录时账号密码的核对验证;存款转出转入金额的核对。
是否超过余额,是否不符合格式,是否为冲突操作。
(2)程序运行截图及说明(每图限50到100字);●进入程序,menu1可选择登录、注册功能。
●选择登录,输入账号密码,通过输入内容与文件的匹配,判断是否成功登录。
若登录失败,则重新选择。
●选择注册,输入账号密码,写入文件中。
●进入menu2,有五大功能选择,输入对应的序列号进入。
●余额查询功能输出账号所对应的余额。
●取款功能,需要安装要求取出格式化的金额。
《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柜员机。
随着市场经济的繁荣发展,人们物质生活得到了极大的提高,手中剩余资金日益增多,受传统观念的影响,绝大多数人喜欢把暂时不用的资金存入银行,而在需要现金时去银行提现,这就导致了银行业务的急剧增加。
最然银行网点越来越多,银行工作人员效率也随着信息化有明显增长,但依旧不能及时满足广大储户的需求。
而一味的增加营业网点,从理论上讲虽有缓解此问题的功效,但是建立一个网点需要付出昂贵的资金,还要不断注入人力资源。
《Java程序设计》课程设计报告题目 ATM柜员机模拟程序姓名学号性别所在班级指导教师二〇一二年十二月二十九日目录一前言 (1)1.1 课程设计题目 (1)1.2 课程设计完成地点 (1)1.3 系统概述 (1)1.3.1课程设计介绍 (1)1.3.2 课程设计目的 (2)1.3.3 课程设计内容 (2)1.4 相关技术 (3)二需求分析 (5)2.1 功能需求 (5)2.2 界面需求 (5)2.2.1窗体的设计 (5)2.2.2窗体的主要结构的设计 (6)三功能设计 (7)3.1 系统总体结构 (7)3.2 系统模块 (8)3.3 主要相关类 (10)四详细设计 (12)4.1登陆页面模块设计 (12)4.2选择服务模块设计 (14)4.3取款模块设计 (15)4.4修改密码模块设计 (17)4.5退卡模块设计 (18)4.6异常处理情况说明 (18)4.7系统实现与测试 (19)五总结 (21)5.1遇到的问题及解决办法 (21)5.2心得体会 (21)六感谢 (22)一前言1.1 课程设计题目ATM柜员机模拟程序1.2 课程设计完成地点文理楼A5041.3 系统概述1.3.1课程设计介绍本次JAVA游戏开发课程设计在文理楼机房进行,为期一周。
这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象软件开发的思维,初步了解软件开发的一般流程,提高用JAVA编程的实际动手能力并增强大家对面向对象的了解。
这次课程设计的主要内容是独立用JAVA语言开发一个简单的应用程序。
我所设计的是ATM柜员机。
随着市场经济的繁荣发展,人们物质生活得到了极大的提高,手中剩余资金日益增多,受传统观念的影响,绝大多数人喜欢把暂时不用的资金存入银行,而在需要现金时去银行提现,这就导致了银行业务的急剧增加。
最然银行网点越来越多,银行工作人员效率也随着信息化有明显增长,但依旧不能及时满足广大储户的需求。
而一味的增加营业网点,从理论上讲虽有缓解此问题的功效,但是建立一个网点需要付出昂贵的资金,还要不断注入人力资源。
软件学院课程设计报告书课程名称面向对象程序设计设计题目ATM柜员机模拟程序专业班级软件工程学号姓名指导教师刘腊梅2015年月目录1 设计时间 (1)2 设计目的 (1)3 设计题目 (1)4 设计任务 (1)5 设计内容 (1)5.1 kehu类代码 (1)5.2 ATM主界面模块设计 (2)5.3 选择页面模块设计 (5)5.4 存款模块设计 (8)5.5 取款模块设计 (11)5.6 查询余额模块设计 (16)5.7 修改密码模块设计 (18)6 总结与展望 (23)参考文献 (24)成绩评定 (24)new ATM();}}主界面密码输入错误提示栏5.3 选择页面模块设计class XUANZE extends JFrame implements ActionListener//导入接口类{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; //定义一个容器存款界面存款成功5.5 取款模块设计class QUKUAN extends JFrame implements ActionListener//导入接口类{JPanel p2, p3; //定义个面板JLabel l1; //定义个标签JOptionPane.showMessageDialog(this, "金额不足不许透支");//一个提示框提示你你的卡即将要已透支}}if (e.getSource() == jb2)//判断是是否是jb2{new XUANZE(key); //返回XUANZEsetVisible(false);}}取款界面取款成功金额不足取款失败提示提取金额不许超过五千提取金额需为一百的整数{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); //定义文本框jtf1原密码输入错误提示修改失败两次输入密码不一修改失败密码不足六位修改失败密码各位都相同修改失败输入规范修改密码成功6 总结与展望通过本次的课程设计,是我更加的喜欢上了JA V A,这正是我一直想学的计算机实用语音。
java课程设计-ATM柜员机模拟程序ATM柜员机模拟程序文档1、简介1.1 目的1.2 背景1.3 范围2、系统需求分析2.1 功能需求2.1.1 用户身份认证2.1.2 查询账户余额2.1.3 存款2.1.4 取款2.1.5 转账2.1.6 交易明细查询2.1.7 修改密码2.2 非功能需求2.2.2 可靠性2.2.3 可维护性3、概要设计3.1 系统结构3.1.1 用户界面模块 3.1.2 业务逻辑模块 3.1.3 数据访问模块 3.2 类图3.3 时序图3.4 数据库设计4、详细设计4.1 用户身份认证模块设计 4.1.1 输入验证4.1.2 身份验证4.2 查询账户余额模块设计 4.2.1 数据库查询4.3 存款模块设计4.3.1 输入验证4.3.2 更新账户余额 4.4 取款模块设计4.4.1 输入验证4.4.2 更新账户余额 4.5 转账模块设计4.5.1 输入验证4.5.2 更新账户余额 4.6 交易明细查询模块设计 4.6.1 数据库查询4.6.2 显示交易明细 4.7 修改密码模块设计4.7.1 输入验证4.7.2 更新密码5、测试计划5.1 单元测试5.2 集成测试5.3 系统测试5.4 用户验收测试6、部署计划6.1 环境要求6.2 部署步骤7、维护与支持7.1 维护流程7.2 支持渠道8、附件8.1 用户界面设计稿8.2 数据库设计文档9、法律名词及注释9.1 ATM(Automatic Teller Machine):自动柜员机9.2 用户身份认证:通过用户输入的身份信息进行验证确认用户身份的过程9.3 查询账户余额:用户查询银行账户中的可用余额的操作9.4 存款:用户将现金存入银行账户的操作9.5 取款:用户从银行账户中取出指定金额的现金的操作9.6 转账:用户将一定金额从自己的账户转移到其他账户的操作9.7 交易明细查询:用户查询银行账户的交易明细记录的操作9.8修改密码:用户修改自己的银行账户密码的操作。
课程设计任务书课程名称:C++程序设计课程设计设计题目:ATM取款机模拟程序已知技术参数和设计要求:1. 问题描述:课题的任务是设计一个ATM取款机的模拟程序。
日常生活中,我们常使用ATM取款机,对它的操作过程有所了解。
这里我们要模拟的是用户所见的A TM取款机的属性和行为,ATM机与网络连接的部分不包括在这个任务中。
设计中应尽可能把它模拟得与真实的ATM接近一些,我们抽象出下列问题:(1) 用户插卡,A TM验证用户帐号信息。
(2) 用户首次操作须验证密码。
(3) 用户查询余额,ATM显示余额。
(4) 用户取款,A TM操作交易过程。
(5) 用户转账,A TM请求插入转入卡,然后操作交易过程。
(6) 用户更改密码,A TM受理此业务。
(7) 用户退卡。
A TM清理现场。
(8) 所有用户信息保存在文件中。
(9) 对于一个在线用户,如果超过一定时间用户没有任何操作,ATM锁机,直到用户退卡为止。
(10) ATM向用户显示欢迎词及其他提示信息。
2. 功能要求:(1)插卡功能(用卡号模拟);(2)取款功能;(3)查询余额功能;(4)验证帐号功能;(5)更改密码功能;(6)退卡功能;(7)锁卡功能。
3. 界面要求:用户界面设计不做统一规定,但应做到界面友好,易于操作。
4. 技术要求:要求所有用户的信息以密文形式保存在数据文件中,加密算法为:字节各位取反,然后高半字节和低半字节交换位置。
用户输入密码时不能以明文形式显示在屏幕上,应以“*”号代替来显示用户密码的输入。
要求利用面向对象的方法以及C++的编程思想来完成系统的设计;在设计的过程中,建立清晰的类层次;在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;要求运用面向对象的机制来实现系统功能。
要求主函数(或图形界面下的主调函数)很“干净”,只有一些类对象的定义和某个类对象的一个成员函数的调用。
5. 课程设计时间:15周、16周6. 课程设计的考核方式及评分方法1)考核方式⏹课程设计结束时,在机房当场验收。
软件学院
课程设计报告书
课程名称面向对象程序设计
设计题目ATM柜员机模拟程序
专业班级软件工程
学号
姓名
指导教师腊梅
2015年月
目录
1 设计时间 (1)
2 设计目的 (1)
3 设计题目 (1)
4 设计任务 (1)
5 设计容 (1)
5.1 kehu类代码 (1)
5.2 ATM主界面模块设计 (2)
5.3 选择页面模块设计 (5)
5.4 存款模块设计 (8)
5.5 取款模块设计 (11)
5.6 查询余额模块设计 (16)
5.7 修改密码模块设计 (18)
6 总结与展望 (23)
参考文献 (24)
成绩评定 (24)
new ATM();
}
}
主界面
密码输入错误提示栏
5.3 选择页面模块设计
class XUANZE extends JFrame implements ActionListener//导入接口类{
setVisible(false);
}
if (event.getSource() == jb3) //判断是否是jb3
{
new CHAXUN(key); //进入CHAXUN
setVisible(false);
}
}
}
进入选择界面
5.4 存款模块设计
class CUNKUAN extends JFrame implements ActionListener//导入接口类{
JPanel p2, p3; //定义个面板
JLabel l1; //定义个标签
JButton jb1, jb2; //定义个按钮
JTextField jtf1; //定义一个文本框
Container content; //定义一个容器
kehu key; //定义客户类传从参数key
存款界面
存款成功
5.5 取款模块设计
class QUKUAN extends JFrame implements ActionListener//导入接口类{
JPanel p2, p3; //定义个面板
JLabel l1; //定义个标签
JButton jb1, jb2; //定义个按钮
提示你你的卡即将要已透支
}
}
if (e.getSource() == jb2)//判断是是否是jb2
{
new XUANZE(key); //返回XUANZE
setVisible(false);
}
}
取款界面
取款成功
金额不足取款失败提示
提取金额不许超过五千
提取金额需为一百的整数
{
new XUANZE(key); //返回XUANZE
setVisible(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); //定义文本框jtf1
原密码输入错误提示修改失败
两次输入密码不一修改失败
密码不足六位修改失败
密码各位都相同修改失败
输入规修改密码成功
6 总结与展望
通过本次的课程设计,是我更加的喜欢上了JA V A,这正是我一直想学的计算机实用语音。
通过这次设计,是我加深了对本学期对JA V A语言的各个知识点的掌握和巩固,特别是图形用户界面。
在设计过程中先建立了一个详细的计划,划分为几个模块,然后逐个进行解决,在设计的过程中,由于有些知识点的薄弱,出现了一些错误和困难但是到后来都通过慢慢分析和查看API文档得到了解决。
从而完整的完成了设计所要求的各项功能。
这次设计使我感觉到了自己设计程序在除掉种种错误和克服种种困难而顺畅运行时的成就感,也加深了我对我专业的喜爱,希望我会在以后的学习中有更好的属于自己的作品,对于这门科学更加精通。
同时我也会为了自己的这个愿望不断努力,争取早日成为这方面的精英人才。