atm机《java语言程序设计》课程设计报告学位论文Word下载.docx
- 文档编号:21397637
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:41
- 大小:339.62KB
atm机《java语言程序设计》课程设计报告学位论文Word下载.docx
《atm机《java语言程序设计》课程设计报告学位论文Word下载.docx》由会员分享,可在线阅读,更多相关《atm机《java语言程序设计》课程设计报告学位论文Word下载.docx(41页珍藏版)》请在冰豆网上搜索。
取款的款项和存款的款项必须是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详细设计
主要包括:
三个标签:
“欢迎登录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,"
开户失败,资料没填写完整!
);
)反之,页面转到登陆页面;
一个标签:
“荷塘月色ATM机正在为您服务…”五个按钮:
“取款”、“存款”、“查询余额”、“修改密码”、“退出该界面”对页面使用了空布局。
对前四个按钮进行监听,当点击其中任一个按钮时,进入到该按钮实现功能的界面里,当点击“退出该界面”,弹出对话框“确定返回登录面?
”点击是,退出该界面,点击否,留在该界面。
十个按钮:
七个固定存取款钱数的按钮和一个“自定义”(存取款的钱数)按钮,还有“确定”按钮和“返回主页面”的按钮。
“您提取(存入)的金额数:
一个文本框;
对页面使用了空布局。
给八个存取款的按钮进行监听。
实现的功能:
当点击七个固定存取款的按钮时,按钮上的钱数显示在文本框中,当点击自定义按钮时,可以在文本框中手动输入钱数。
当点击“返回主页面”按钮时,结束该界面的操作,返回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
程序清单
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.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.io.*;
import.Socket;
importjava.util.Calendar;
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(){
银行卡号开户"
this.setLayout(null);
卡号开户"
卡号:
密码:
jl4=newJLabel("
确认密码:
jl5=newJLabel("
用户名:
jl6=newJLabel("
性别:
jcb=newJComboBox();
jcb.addItem("
男"
女"
jl7=newJLabel("
存款金额:
生成卡号"
确认开户"
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();
/images/8.jpg"
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);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java语言程序设计 atm java 语言程序设计 课程设计 报告 学位 论文