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

上传人:b****8 文档编号:10645038 上传时间:2023-02-22 格式:DOCX 页数:46 大小:336.69KB
下载 相关 举报
ATM机《Java语言程序设计》课程设计报告.docx_第1页
第1页 / 共46页
ATM机《Java语言程序设计》课程设计报告.docx_第2页
第2页 / 共46页
ATM机《Java语言程序设计》课程设计报告.docx_第3页
第3页 / 共46页
ATM机《Java语言程序设计》课程设计报告.docx_第4页
第4页 / 共46页
ATM机《Java语言程序设计》课程设计报告.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

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

《ATM机《Java语言程序设计》课程设计报告.docx》由会员分享,可在线阅读,更多相关《ATM机《Java语言程序设计》课程设计报告.docx(46页珍藏版)》请在冰豆网上搜索。

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

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()类结构介绍:

主要包括:

三个标签:

“欢迎登录ATM机”,“卡号”,“密码”

两个文本框:

JTextField和JPasswordField四个按钮:

“登陆账号”,“银行开户”,“重新登录”,“退出系统”对页面使用了空布局.对文本框进行监听,设置卡号只能为数字,且只能输入8位.设置密码框不为空.给四个按钮创建监听ActionListener,四个按钮实现地功能:

登陆账号:

第一次进入登录界面时,当点击“登录账户”弹出对话框:

“请进行银行开户”.

重新登录:

当点击“重新登录”按钮,用setText(“”)把文本框和密码框为空.

银行开户:

当点击“银行开户”按钮时,界面跳到银行开户地界面里.

退出系统:

当点击“退出系统”时,弹出对话框“确定要退出ATM系统?

”点击是,退出系统,点击否,留在该界面.

当银行开户成功后,再次输入卡号和密码,如果其中一个或全部错误,弹出对话框:

“请核对你地卡号和密码,重新登录”,并不设置文本框为空.

2.卡号生成界面AtmDemo()类结果介绍:

继承Jframe创建银行卡号开户窗体,创建监听;应用空布局设置JLabel标签,JTextField,JPasswordField,JButton,JComboBox复选按钮框在窗体中地位置当点击“生成卡号”按钮时系统会自动生成卡号(inti=(int)(Math.random()*100000000)。

)对生成地卡号进行数据保存(account)由Account传递到登陆页面,让生成地卡号与登陆地卡号相同在登录页面进行登录操作;

设置密码与确认密码框中地内容相等,如果不相同提示(“JOptionPane.showConfirmDialog(this,"两次填写密码不同,请重新输入正确地密码!

","提示",JOptionPane.OK_CANCEL_OPTION)。

”),对生成地密码进行数据保存(account)让后传递到ATM—Client页面进行密码连接;

设置存款金额框存款金额为100地整倍数;当点击“取消开户”按钮时,所有文本框内容为空;当点击“确认开户”按钮时,如果资料填写不完整,系统进行提示(elseif(jtf1.getText().equals("")||jtf2.getText().equals("")||jtf3.getText().equals("")||s3.equals("")||s2.equals("")){JOptionPane.showMessageDialog(this,"开户失败,资料没填写完整!

")。

)反之,页面转到登陆页面;

3.功能界面Main()类结构介绍:

主要包括:

一个标签:

“荷塘月色ATM机正在为您服务…”五个按钮:

“取款”、“存款”、“查询余额”、“修改密码”、“退出该界面”对页面使用了空布局.

对前四个按钮进行监听,当点击其中任一个按钮时,进入到该按钮实现功能地界面里,当点击“退出该界面”,弹出对话框“确定返回登录面?

”点击是,退出该界面,点击否,留在该界面.

4.存款地界面KeepMoney()和取款地界面GetMoney()结构介绍:

主要包括:

十个按钮:

七个固定存取款钱数地按钮和一个“自定义”(存取款地钱数)按钮,还有“确定”按钮和“返回主页面”地按钮.一个标签:

“您提取(存入)地金额数:

一个文本框;对页面使用了空布局.给八个存取款地按钮进行监听.实现地功能:

当点击七个固定存取款地按钮时,按钮上地钱数显示在文本框中,当点击自定义按钮时,可以在文本框中手动输入钱数.

当点击“返回主页面”按钮时,结束该界面地操作,返回Main页面里.

文本框:

①文本框设置为不可编辑.当点击存取款按钮时,钱数显示在文本框中,但不能手动修改文本框中地内容.当点击自定义按钮时,文本框可以手动输入,文本框中输入地存取款地钱数必须是100地倍数,最少为100,最多为5000元,否则弹出对话框进行提醒,存取钱不成功.

②自定义一个监听类,对文本框进行监听,自定义输入钱数时,文本框中只能输入数字,且最多可输入四位数.当文本框为空时,点击“确定”按钮,弹出对话框:

“请输入存(取)款金额”.

在存款KeepMoney.java界面时,当点击“确定”按钮,弹出对话框“您已存款**元,余额为**元”.

在取款GetMoney.java界面时,当点击“确定”按钮时,如果账户金额大于或等于提取金额时,弹出对话框“您已取款**元,余额为**元”.如果账户金额小于提取金额时,弹出对话框“余额不足,取钱失败”,并获取余额数,

停止金额地运算.以防止取款不成功,但已透支地现象.

5.修改密码界面Change()类结构介绍:

继承JFrame创建修改密码窗体,设置窗体地空布局;对确认密码框进行监听和数据传递保存(account.setPwd(s2)。

)传递到Client()类内;当两次输入密码相同时点击“确认”按钮密码修改成功,下次登录使用新密码进行登录.;点击“取消”按钮文本框内容消失为空;点击“返回主页面”按钮返回至Main()(elseif(e.getSource()==jb3){newMain()。

this.setVisible(false)。

);

6.查询余额界面Yuxia.java()类结构介绍:

创建查询余额窗体,应用空布局设置布局;对按钮创建监听(addActionListener)当点击“查看余额”按钮时显示卡内当前地余额(运用Account类进行数据传递实现(jtf1.setText((account.getCountmoney())+"")。

))

4实现

1.运行环境

MyEclipse6.5

2.运行情况抓图

12

34

7

5总结与体会

此次实训基本把我们本学期所学地内容进行综合应用,让我们更加容易简单地了解体验到了未来工作地一般状况,锻炼了我们地实际操作能力,同时也在一定程度上增加了同学们对Java语言学习地信心,一些简单地小游戏,通过运用自己所学也是可以实现地,让我们不在对编程感觉那么神秘.

团队合作与交流很重要,“团结就是力量”在本次工程开发中真地体会得到,在做工程时,小组成员要知道本小组所做工程地基本构想框架,要做什么、实现什么.如果有自己地想法就要和自己地伙伴进行交流.

6参考文献

【1】魏艳铭,Java程序设计,河南经贸职业学院:

ATM机视频提示,2011.6

【2】网络资源:

http:

//www.toedu.org/

【3】《Java程序设计精讲》,北京:

清华大学出版社,2010.9

7附录:

程序清单

1.Client.java//ATM机地登录界面

packageclient。

importjavax.swing.*。

importclient.GetMoney.myKeyListener。

importjava.awt.*。

importjava.awt.event.*。

import.URL。

publicclassClientextendsJFrameimplementsActionListener{

JLabeljl1,jl2,jl3。

JLabeljl。

//添加图片地标签

JTextFieldjtf。

JPasswordFieldjpf。

JButtonjb1,jb2,jb3,jb4。

staticAccountaccount。

publicClient(Accountaccount){

super("ATM-Client")。

this.account=account。

setLayout(null)。

jl1=newJLabel("欢迎进入“荷塘月色ATM机”")。

Fontf=newFont("华文新魏",Font.BOLD,24)。

jl1.setForeground(Color.BLUE)。

jl1.setFont(f)。

jl2=newJLabel("卡号:

")。

jl3=newJLabel("密码:

")。

jtf=newJTextField(8)。

jtf.addKeyListener(newmyKeyListener(jtf))。

jpf=newJPasswordField()。

jb1=newJButton("登陆账号")。

jb1.addActionListener(this)。

jb2=newJButton("银行开户")。

jb2.addActionListener(this)。

jb3=newJButton("重新登录")。

jb3.addActionListener(this)。

jb4=newJButton("退出系统")。

jb4.addActionListener(this)。

//添加图片

jl=newJLabel()。

URLresource=this.getClass().getResource("/images/6.jpg")。

ImageIconbgImage=newImageIcon(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,155,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.setSize(400,400)。

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)。

this.setVisible(true)。

}

publicstaticvoidmain(String[]args){

newClient(account)。

}

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==jb1){

Strings1=jtf.getText()。

Strings2=newString(jpf.getPassword())。

if(account!

=null){

if(s1.equals(account.ip)&&s2.equals(account.pwd)){

newMain(account)。

this.setVisible(false)。

}else{

JOptionPane.showMessageDialog(this,"请核对您地卡号和密码,重新登录")。

}

}elseif(account==null){

JOptionPane.showMessageDialog(this,"请进行银行开户")。

}

}elseif(e.getSource()==jb2){

//连接到地AtmDemo.java

newAtmDemo()。

this.setVisible(false)。

}elseif(e.getSource()==jb3){

jtf.setText("")。

jpf.setText("")。

}elseif(e.getSource()==jb4){

//设置jb4——退出系统

inti=JOptionPane.showConfirmDialog(this,"您确定要退出ATM机系统?

",

"提示",JOptionPane.YES_NO_OPTION)。

if(i==1){

return。

}

System.exit(0)。

}

}

//创建jtf地监听,使jtf只能输入8个数字,且只能输入数字

classmyKeyListenerextendsKeyAdapter{

privateJTextFieldjtf。

privateintlength。

publicmyKeyListener(JTextFieldjtf){

this.jtf=jtf。

this.length=8。

}

publicmyKeyListener(JTextFieldjtf,intlength){

this.jtf=jtf。

this.length=length。

}

publicvoidkeyTyped(KeyEvente)

{

booleanb=Character.toString(e.getKeyChar()).matches("\\d")。

if(!

b||jtf.getText().length()==length){

e.consume()。

}

}

}

}

2.AtmDemo.java//ATM卡号生成页面

packageclient。

importjava.awt.*。

importjava.awt.event.*。

importjava.io.*。

import.Socket。

importjava.util.Calendar。

import.URL。

importjavax.swing.*。

publicclassAtmDemoextendsJFrameimplementsActionListener{

JLabeljl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8。

JTextFieldjtf1,jtf2,jtf3。

JPasswordFieldjpf1,jpf2。

JButtonjb1,jb2,jb3。

JComboBoxjcb。

BufferedReaderbr。

JLabelmsg。

Accountaccount。

inttotalmoney=10000。

intmoney。

publicAtmDemo(){

super("银行卡号开户")。

this.setLayout(null)。

jl1=newJLabel("卡号开户")。

jl2=newJLabel("卡号:

")。

jl3=newJLabel("密码:

")。

jl4=newJLabel("确认密码:

")。

jl5=newJLabel("用户名:

")。

jl6=newJLabel("性别:

")。

jcb=newJComboBox()。

jcb.addItem("男")。

jcb.addItem("女")。

jl7=newJLabel("存款金额:

")。

jb1=newJButton("生成卡号")。

jb2=newJButton("确认开户")。

jb3=newJButton("取消开户")。

jtf1=newJTextField(16)。

jtf1.setEditable(false)。

//设置文本框不可见

jtf2=newJTextField(4)。

jtf3=newJTextField()。

jpf1=newJPasswordField(6)。

jpf2=newJPasswordField(6)。

msg=newJLabel("")。

msg.setForeground(Color.RED)。

//监听

jb1.addActionListener(this)。

jb2.addActionListener(this)。

jb3.addActionListener(this)。

jtf3.addKeyListener(newmyKeyListener(jtf3))。

jl1.setForeground(Color.RED)。

jl1.setFont(newFont("宋体",Font.PLAIN,40))。

//添加图片

jl8=newJLabel()。

URLresource=this.getClass().getResource("/images/8.jpg")。

ImageIconbgImage=newImageIcon(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,91,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)。

//密码框

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)。

}

publicstaticvoidmain(Stringargs[]){

newAtmD

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 英语

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

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