atm机《java语言程序设计》课程设计报告学位论文.docx

上传人:b****6 文档编号:8261347 上传时间:2023-01-30 格式:DOCX 页数:41 大小:339.62KB
下载 相关 举报
atm机《java语言程序设计》课程设计报告学位论文.docx_第1页
第1页 / 共41页
atm机《java语言程序设计》课程设计报告学位论文.docx_第2页
第2页 / 共41页
atm机《java语言程序设计》课程设计报告学位论文.docx_第3页
第3页 / 共41页
atm机《java语言程序设计》课程设计报告学位论文.docx_第4页
第4页 / 共41页
atm机《java语言程序设计》课程设计报告学位论文.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

atm机《java语言程序设计》课程设计报告学位论文.docx

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

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

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

当前位置:首页 > 经管营销 > 人力资源管理

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

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