ImageVerifierCode 换一换
格式:DOCX , 页数:46 ,大小:336.69KB ,
资源ID:10645038      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10645038.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ATM机《Java语言程序设计》课程设计报告.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、ATM机Java语言程序设计课程设计报告Java语言程序设计课程设计报告题 目: ATM机 班 级: 10信息一班 系 部: 信息管理系 专 业: 计算机应用技术 2011年 6 月 25 日ATM机设计报告1 概述 21.1 问题分析 21.2功能 22 总体设计 33 详细设计 31.登录界面Client()类结构介绍: 32.卡号生成界面AtmDemo()类结构介绍: 33.功能界面Main()类结构介绍: 44.存款地界面KeepMoney()和取款地界面GetMoney()结构介绍: 45.修改密码界面Change()类结构介绍: 57.查询余额界面Yuxia.java()类结构介绍

2、: 54 实现 51. 运行环境 52. 运行情况抓图 55 总结与体会 66 参考文献 77 附录: 程序清单 71 概述1.1 问题分析模拟ATM机基本操作功能:存款、取款、余额查询、修改密码等;初始账户10000元;修改密码时必须修改两次,确认后才可使用;取款地款项和存款地款项必须是100地整倍数;1.2功能1)模拟ATM机实现当用户进入登陆页面后,用户需先点击银行开户按钮进行银行开户;2)进入银行开户页面之后,进行填写客户信息,系统会自动生成卡号,信息填写完整后系统会自动保存用户信息在生成地文件中,并返回登陆页面进行登录.3)登陆成功之后进入ATM机操作页面进行存款、取款、余额查询、修

3、改密码,点击一个按钮都会显示出对应地页面.2 总体设计1、Client()类第一个登陆页面主要包括:登陆账号按钮、银行开户按钮、重新登录按钮、退出系统按钮;2、AtmDemo()类第二个登陆页面主要进行用户资料填写主要包括:卡号、密码、确认密码、用户名、性别、存款金额标签;生成卡号、确认开户、取消开户按钮;3、Main()类第二个登陆页面主要设置安放按钮,主要包括:取款、存款、修改密码、查询余额、退出该界面按钮并对所有按钮进行监听;4、GetMoney()类第三个登陆页面主要进行取款设置主要包括:提款金额数目地数字按钮,当点击相应地按钮时,提取金额框内显示相应地取款金额;当提款地金额超出卡内总

4、金额时,取款失败;5、KeepMoney()类第四个登陆页面主要进行存款设置主要包括:存款金额数目地数字按钮,当点击相应地按钮时,存款金额框内显示相应地存款金额;6、Change()类第五个登陆页面主要进行密码修改地设置主要包括:设置“确认”“取消”“返回主页面”三个按钮;两次输入新地密码,当两次密码相同时点击“确认”按钮修改密码成功,第二次进行账户登录时使用修改后地密码7、Yuxia()类第六个登陆页面主要进行余额查询地设置主要包括:当点击“查看余额”按钮时查看存款、取款后卡内地总金额,显示在文本框内;当点击“返回主页面”时返回Main页面;8、Account()类主要保存文件地卡号,密码和

5、账户金额,对进行数据信息在不同地类内调用传递;3 详细设计1.登录界面Client()类结构介绍:主要包括:三个标签:“欢迎登录ATM机”,“卡号”,“密码”两个文本框:JTextField和JPasswordField四个按钮:“登陆账号”,“银行开户”,“重新登录”,“退出系统”对页面使用了空布局.对文本框进行监听,设置卡号只能为数字,且只能输入8位.设置密码框不为空.给四个按钮创建监听ActionListener,四个按钮实现地功能:登陆账号:第一次进入登录界面时,当点击“登录账户”弹出对话框:“请进行银行开户”.重新登录: 当点击“重新登录”按钮,用setText(“”)把文本框和密码

6、框为空. 银行开户: 当点击“银行开户”按钮时,界面跳到银行开户地界面里. 退出系统:当点击“退出系统”时,弹出对话框“确定要退出ATM系统?”点击是,退出系统,点击否,留在该界面.当银行开户成功后,再次输入卡号和密码,如果其中一个或全部错误,弹出对话框:“请核对你地卡号和密码,重新登录”,并不设置文本框为空.2.卡号生成界面AtmDemo()类结果介绍:继承Jframe创建银行卡号开户窗体,创建监听;应用空布局设置JLabel标签,JTextField, JPasswordField,JButton,JComboBox复选按钮框在窗体中地位置当点击“生成卡号”按钮时系统会自动生成卡号( in

7、ti=(int)(Math.random()*100000000)。)对生成地卡号进行数据保存(account)由Account传递到登陆页面,让生成地卡号与登陆地卡号相同在登录页面进行登录操作;设置密码与确认密码框中地内容相等,如果不相同提示(“JOptionPane.showConfirmDialog(this,两次填写密码不同,请重新输入正确地密码!,提示,JOptionPane.OK_CANCEL_OPTION )。”),对生成地密码进行数据保存(account)让后传递到ATMClient页面进行密码连接;设置存款金额框存款金额为100地整倍数;当点击“取消开户”按钮时,所有文本框内

8、容为空;当点击“确认开户”按钮时,如果资料填写不完整,系统进行提示(elseif(jtf1.getText().equals()|jtf2.getText().equals()|jtf3.getText().equals()|s3.equals()|s2.equals() JOptionPane.showMessageDialog(this,开户失败,资料没填写完整!)。)反之,页面转到登陆页面;3.功能界面Main()类结构介绍:主要包括:一个标签:“荷塘月色ATM机正在为您服务”五个按钮:“取款”、“存款”、“查询余额”、“修改密码”、“退出该界面”对页面使用了空布局.对前四个按钮进行监听

9、,当点击其中任一个按钮时,进入到该按钮实现功能地界面里,当点击“退出该界面”,弹出对话框“确定返回登录面?” 点击是,退出该界面,点击否,留在该界面.4.存款地界面KeepMoney()和取款地界面GetMoney()结构介绍:主要包括:十个按钮:七个固定存取款钱数地按钮和一个“自定义”(存取款地钱数)按钮,还有“确定”按钮和“返回主页面”地按钮.一个标签:“您提取(存入)地金额数:一个文本框;对页面使用了空布局.给八个存取款地按钮进行监听.实现地功能:当点击七个固定存取款地按钮时,按钮上地钱数显示在文本框中,当点击自定义按钮时,可以在文本框中手动输入钱数.当点击“返回主页面”按钮时,结束该界

10、面地操作,返回Main页面里.文本框: 文本框设置为不可编辑.当点击存取款按钮时,钱数显示在文本框中,但不能手动修改文本框中地内容.当点击自定义按钮时,文本框可以手动输入,文本框中输入地存取款地钱数必须是100地倍数,最少为100,最多为5000元,否则弹出对话框进行提醒,存取钱不成功. 自定义一个监听类,对文本框进行监听,自定义输入钱数时,文本框中只能输入数字,且最多可输入四位数.当文本框为空时,点击“确定”按钮,弹出对话框:“请输入存(取)款金额”.在存款KeepMoney.java界面时,当点击“确定”按钮,弹出对话框“您已存款*元,余额为*元”.在取款GetMoney.java界面时,

11、当点击“确定”按钮时,如果账户金额大于或等于提取金额时,弹出对话框“您已取款*元,余额为*元”.如果账户金额小于提取金额时,弹出对话框“余额不足,取钱失败”,并获取余额数,停止金额地运算.以防止取款不成功,但已透支地现象.5. 修改密码界面Change()类结构介绍:继承JFrame创建修改密码窗体,设置窗体地空布局;对确认密码框进行监听和数据传递保存(account.setPwd(s2)。)传递到Client()类内;当两次输入密码相同时点击“确认”按钮密码修改成功,下次登录使用新密码进行登录.;点击“取消”按钮文本框内容消失为空;点击“返回主页面”按钮返回至Main()(else if(e

12、.getSource()=jb3)new Main()。this.setVisible(false)。);6.查询余额界面Yuxia.java()类结构介绍:创建查询余额窗体,应用空布局设置布局;对按钮创建监听(addActionListener) 当点击“查看余额”按钮时显示卡内当前地余额(运用Account类进行数据传递实现(jtf1.setText(account.getCountmoney()+)。)4 实现1.运行环境 MyEclipse6.52.运行情况抓图1 2 3 4 75 总结与体会此次实训基本把我们本学期所学地内容进行综合应用,让我们更加容易简单地了解体验到了未来工作地一般

13、状况,锻炼了我们地实际操作能力,同时也在一定程度上增加了同学们对Java语言学习地信心,一些简单地小游戏,通过运用自己所学也是可以实现地,让我们不在对编程感觉那么神秘.团队合作与交流很重要,“团结就是力量”在本次工程开发中真地体会得到,在做工程时,小组成员要知道本小组所做工程地基本构想框架,要做什么、实现什么.如果有自己地想法就要和自己地伙伴进行交流.6 参考文献【1】魏艳铭,Java程序设计,河南经贸职业学院:ATM机视频提示,2011.6【2】网络资源:http:/www.toedu.org/【3】Java程序设计精讲,北京:清华大学出版社,2010.97 附录:程序清单1.Client.

14、java/ATM机地登录界面package client。import javax.swing.*。import client.GetMoney.myKeyListener。import java.awt.*。import java.awt.event.*。import .URL。public class Client extends JFrame implements ActionListener JLabel jl1,jl2,jl3。 JLabel jl。/添加图片地标签 JTextField jtf。 JPasswordField jpf。 JButton jb1,jb2,jb3,jb4

15、。 static Account account。 public Client(Account account) super(ATM-Client)。 this.account=account。 setLayout(null)。 jl1=new JLabel(欢迎进入“荷塘月色ATM 机”)。 Font f=new Font(华文新魏,Font.BOLD,24)。 jl1.setForeground(Color.BLUE)。 jl1.setFont(f)。 jl2=new JLabel(卡号:)。 jl3=new JLabel(密码:)。 jtf=new JTextField(8)。 jtf.

16、addKeyListener(new myKeyListener(jtf)。 jpf=new JPasswordField()。 jb1=new JButton(登陆账号)。 jb1.addActionListener(this)。 jb2=new JButton(银行开户)。 jb2.addActionListener(this)。 jb3=new JButton(重新登录)。 jb3.addActionListener(this)。 jb4=new JButton(退出系统)。 jb4.addActionListener(this)。 /添加图片 jl= new JLabel()。 URL

17、 resource = this.getClass().getResource(/images/6.jpg)。 ImageIcon bgImage=new ImageIcon(resource)。 /创建图标 jl.setIcon(bgImage)。 jl.setBounds(0,0,400,400)。 jl1.setBounds(25, 40, 400, 40)。 jl2.setBounds(50, 85, 60, 40)。 jl3.setBounds(50, 150, 60, 40)。 jtf.setBounds(120, 90,150, 30)。 jpf.setBounds(120, 1

18、55,150,30)。 jb1.setBounds(0, 250, 90, 30)。 jb2.setBounds(100, 250, 90,30 )。 jb3.setBounds(200, 250, 90,30 )。 jb4.setBounds(300, 250, 90, 30)。 this.add(jl1)。 this.add(jl2)。 this.add(jtf)。 this.add(jl3)。 this.add(jpf)。 this.add(jb1)。 this.add(jb2)。 this.add(jb3)。 this.add(jb4)。 this.add(jl)。 this.setS

19、ize(400,400)。 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)。 this.setVisible(true)。 public static void main(String args) new Client(account)。 public void actionPerformed(ActionEvent e) if(e.getSource()=jb1) String s1=jtf.getText()。 String s2=new String(jpf.getPassword()。 if(account!=null) if(s

20、1.equals(account.ip)&s2.equals(account.pwd) new Main(account)。 this.setVisible(false)。 else JOptionPane.showMessageDialog(this,请核对您地卡号和密码,重新登录)。 else if(account=null) JOptionPane.showMessageDialog(this, 请进行银行开户)。 else if(e.getSource()=jb2) /连接到地AtmDemo.java new AtmDemo()。 this.setVisible(false)。 els

21、e if(e.getSource()=jb3) jtf.setText()。 jpf.setText()。 else if(e.getSource()=jb4) /设置jb4退出系统 int i=JOptionPane.showConfirmDialog(this,您确定要退出ATM机系统?,提示,JOptionPane.YES_NO_OPTION)。 if(i=1) return。 System.exit(0)。 /创建jtf地监听,使jtf只能输入8个数字,且只能输入数字 class myKeyListener extends KeyAdapter private JTextField j

22、tf。 private int length。 public myKeyListener(JTextField jtf) this.jtf = jtf。 this.length = 8。 public myKeyListener(JTextField jtf,int length) this.jtf = jtf。 this.length = length。 public void keyTyped(KeyEvent e) boolean b = Character.toString(e.getKeyChar().matches(d)。 if(!b | jtf.getText().length(

23、) = length) e.consume()。 2.AtmDemo.java/ATM卡号生成页面 package client。import java.awt.*。import java.awt.event.*。import java.io.*。import .Socket。import java.util.Calendar。import .URL。import javax.swing.*。public class AtmDemo extends JFrame implements ActionListener JLabel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8。

24、JTextField jtf1,jtf2,jtf3。 JPasswordField jpf1,jpf2。 JButton jb1,jb2,jb3。 JComboBox jcb。 BufferedReader br。 JLabel msg。 Account account。 int totalmoney=10000。 int money。 public AtmDemo() super(银行卡号开户)。 this.setLayout(null)。 jl1=new JLabel(卡号开户)。 jl2=new JLabel(卡号:)。 jl3=new JLabel(密码 :)。 jl4=new JLa

25、bel(确认密码 :)。 jl5=new JLabel(用户名:)。 jl6=new JLabel(性别:)。 jcb = new JComboBox()。 jcb.addItem(男)。 jcb.addItem(女)。 jl7=new JLabel(存款金额:)。 jb1=new JButton(生成卡号)。 jb2=new JButton(确认开户)。 jb3=new JButton(取消开户)。 jtf1=new JTextField(16)。 jtf1.setEditable(false)。/设置文本框不可见 jtf2=new JTextField(4)。 jtf3=new JText

26、Field()。 jpf1=new JPasswordField(6)。 jpf2=new JPasswordField(6)。 msg=new JLabel()。 msg.setForeground(Color.RED)。 /监听 jb1.addActionListener(this)。 jb2.addActionListener(this)。 jb3.addActionListener(this)。 jtf3.addKeyListener(new myKeyListener(jtf3)。 jl1.setForeground(Color.RED)。 jl1.setFont(new Font(

27、宋体, Font.PLAIN, 40)。 /添加图片 jl8= new JLabel()。 URL resource = this.getClass().getResource(/images/8.jpg)。 ImageIcon bgImage=new ImageIcon(resource)。 /创建图标 jl8.setIcon(bgImage)。 jl8.setBounds(0,0,400,400)。 jl1.setBounds(105, 10, 225, 41)。/卡号开户 jl2.setBounds(40, 60, 81, 18)。/卡号 jb1.setBounds(297, 60, 9

28、1, 18)。/生成卡号 jl3.setBounds(40, 90, 81, 18)。/密码 jl4.setBounds(40, 120, 81, 18)。/确认密码 jl5.setBounds(40, 150, 81, 18)。/用户名 jl6.setBounds(40, 180, 81, 15)。/性别 jcb.setBounds(100, 180, 110, 18)。/复选按钮 jl7.setBounds(40, 210, 81, 15)。/存款金额 jtf1.setBounds(100, 60, 190, 18)。/卡号框 jpf1.setBounds(100, 90, 170, 18

29、)。/密码框 jpf2.setBounds(100, 120, 150, 18)。/确认密码框 jtf2.setBounds(100, 150, 130, 18)。/用户名框 jtf3.setBounds(100, 210, 90, 18)。/存款金额框 jb2.setBounds(80, 300,100, 25)。/确认开户 jb3.setBounds(230, 300, 100, 25)。/取消开户 msg.setBounds(150,260,270,60)。 add(jb1)。 add(jb2)。 add(jb3)。 add(jcb)。 add(jl1)。 add(jl2)。 add(jl3)。 add(jl4)。 add(jl5)。 add(jl6)。 add(jl7)。 add(jpf1)。 add(jpf2)。 add(jtf1)。 add(jtf2)。 add(jtf3)。 add(msg)。 add(jl8)。 this.setSize(400,400)。 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)。 this.setVisible(true)。 public static void main(String args) new AtmD

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1