课程设计ATM柜员机模拟程序.docx

上传人:b****3 文档编号:13268248 上传时间:2023-06-12 格式:DOCX 页数:27 大小:535.90KB
下载 相关 举报
课程设计ATM柜员机模拟程序.docx_第1页
第1页 / 共27页
课程设计ATM柜员机模拟程序.docx_第2页
第2页 / 共27页
课程设计ATM柜员机模拟程序.docx_第3页
第3页 / 共27页
课程设计ATM柜员机模拟程序.docx_第4页
第4页 / 共27页
课程设计ATM柜员机模拟程序.docx_第5页
第5页 / 共27页
课程设计ATM柜员机模拟程序.docx_第6页
第6页 / 共27页
课程设计ATM柜员机模拟程序.docx_第7页
第7页 / 共27页
课程设计ATM柜员机模拟程序.docx_第8页
第8页 / 共27页
课程设计ATM柜员机模拟程序.docx_第9页
第9页 / 共27页
课程设计ATM柜员机模拟程序.docx_第10页
第10页 / 共27页
课程设计ATM柜员机模拟程序.docx_第11页
第11页 / 共27页
课程设计ATM柜员机模拟程序.docx_第12页
第12页 / 共27页
课程设计ATM柜员机模拟程序.docx_第13页
第13页 / 共27页
课程设计ATM柜员机模拟程序.docx_第14页
第14页 / 共27页
课程设计ATM柜员机模拟程序.docx_第15页
第15页 / 共27页
课程设计ATM柜员机模拟程序.docx_第16页
第16页 / 共27页
课程设计ATM柜员机模拟程序.docx_第17页
第17页 / 共27页
课程设计ATM柜员机模拟程序.docx_第18页
第18页 / 共27页
课程设计ATM柜员机模拟程序.docx_第19页
第19页 / 共27页
课程设计ATM柜员机模拟程序.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

课程设计ATM柜员机模拟程序.docx

《课程设计ATM柜员机模拟程序.docx》由会员分享,可在线阅读,更多相关《课程设计ATM柜员机模拟程序.docx(27页珍藏版)》请在冰点文库上搜索。

课程设计ATM柜员机模拟程序.docx

课程设计ATM柜员机模拟程序

课程设计-ATM柜员机模拟程序

软件学院

课程设计报告书

 

课程名称面向对象程序设计

设计题目ATM柜员机模拟程序

专业班级软件工程

学号

姓名

指导教师刘腊梅

 

1设计时间

2015年月

2设计目的

掌握图形用户界面设计方法,掌握常用swing组件的使用和事件处理程序设计.

3设计题目

ATM柜员机模拟程序

4设计任务

使用图形用户界面。

当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:

(1)查询余额功能:

初始余额为10000元

(2)ATM取款功能:

每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。

(3)ATM存款功能:

不能出现负存款。

(4)修改密码:

新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

5设计内容

5.1kehu类代码

importjavax.swing.*;

importjavax.swing.event.*;

importjava.awt.*;

importjava.awt.event.*;//导入包

importjava.util.*;

classkehu//定义客户类

{

Stringzh;//定义账号

Stringpswf;//定义密码

doublejine;//定义金额

publickehu(){}//构造GUKE

publickehu(Stringzh,Stringpswf,doublejine)

{

this.zh=zh;

this.pswf=pswf;

this.jine=jine;

}

Stringgetzh()//定义成员变量账号

{

returnzh;//成员方法

}

doublesetMima(doublepswf)//定义成员变量密码

{

returnpswf;//成员方法

}

doublegetJine()//定义成员变量金额

{

returnjine;//定义成员方法

}

voidcunkuan(doublemoney)//定义成员变量存款

{

jine=jine+money;//定义成员方法

}

voidquqian(doublemoney)//定义成员变量取款

{

jine=jine-money;//定义成员方法

}

Stringxiugaim(Stringmi)//定义成员变量密码

{

pswf=mi;//定义成员方法

returnpswf;

}

}

5.2ATM主界面模块设计

classATMextendsJFrameimplementsActionListener//导入接口类

{

JPanelp1,p2,p3;//定义个面板

JLabell1,l2,l3,l4;//定义个标签

JPasswordFieldpswf;//定义一个密码文本

JButtonjb1,jb2;//定义个按钮

JTextFieldjtf1,jc1;//定义个文本框

Containercontent;//定义一个容器

kehu[]g=newkehu[4];//定义客户类数组

publicATM()//布局

{

g[0]=newkehu("liuyiping","123456",10000);//客户类数组里给的帐号,密码,钱数

g[1]=newkehu("chengyang","123456",10000);

g[2]=newkehu("zhangzhicheng","123456",10000);

g[3]=newkehu("pengzhanyuan","123456",10000);

p1=newJPanel();

p2=newJPanel();//定义第二个面板

l2=newJLabel("卡号:

");//定义标签l2

jc1=newJTextField(10);//定义账号文本

l3=newJLabel("密码:

");//定义标签l3

pswf=newJPasswordField(12);//定义密码文本

l4=newJLabel("欢迎使用自动取款机");

p1.add(l4);

p2.add(l2);//把它们分别镶在面板上

p2.add(jc1);

p2.add(l3);

p2.add(pswf);

p3=newJPanel();//定义第三个面板

jb1=newJButton("登录");//定义按钮登录jb1

jb1.addActionListener(this);//jb1申请监听

jb2=newJButton("注销");//定义按钮注销jb2

jb2.addActionListener(this);//jb2申请监听

p3.add(jb1);//把它们添加到p3面板里

p3.add(jb2);

content=this.getContentPane();//布局定义

content.setLayout(newBorderLayout());

content.add(p1,BorderLayout.NORTH);

content.add(p2,BorderLayout.CENTER);//定义中部为面板p2

content.add(p3,BorderLayout.SOUTH);//定义底部为面板p3

this.pack();

this.setTitle("ATM柜员机");//定义为窗口名称

this.setBounds(300,300,400,300);//定义窗口的大小

this.setResizable(false);

this.show();//显示

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭、退出

}

publicvoidactionPerformed(ActionEvente)//监听类

{

Stringx=jc1.getText();

if(e.getSource()==jb1)//如果点击是jb1按钮就进入For

{for(inti=0;i<4;i++)//判断名字在数组的位置

if(x.equals(g[i].zh))//检查到开始判断是否匹配

{if(pswf.getText().equals(g[i].pswf))//名字匹配成功后判断密码是否成功{

newXUANZE(g[i]);//密码真确后进入XUANZE的界面

}

else

{

JOptionPane.showMessageDialog(this,"密码错误!

");//密码错误弹出提示密码错误

}

}

}

else

System.exit(0);//注销事件退出

}

publicstaticvoidmain(Stringargs[])//定义的MAIN,才能进入。

{

newATM();

}

}

主界面

密码输入错误提示栏

5.3选择页面模块设计

classXUANZEextendsJFrameimplementsActionListener//导入接口类

{

JPanelp2,p3;//定义个面板

JLabell1;//定义个标签

JButtonjb1,jb2,jb3,jb4,jb5;//定义个按钮

Containercontent;//定义一个容器

kehukey;//定义客户类传从参数key

publicXUANZE(GUKEkey)

{

this.key=key;

p2=newJPanel();//定义面板

jb1=newJButton("ATM取款");//定义jb1按钮ATM取款

jb1.addActionListener(this);//jb1申请监听

jb2=newJButton("ATM存款");//定义jb2按钮ATM存款

jb2.addActionListener(this);//jb2申请监听

jb3=newJButton("查询余额");//定义jb3按钮查询余额

jb3.addActionListener(this);//jb3申请监听

jb4=newJButton("修改密码");//定义jb4按钮修改密码

jb4.addActionListener(this);//jb4申请监听

p2.add(jb1);

p2.add(jb2);

p2.add(jb3);

p2.add(jb4);

p3=newJPanel();//定义面板

jb5=newJButton("退出");//定义jb5按钮退出

jb5.addActionListener(//定义一个匿名类

newActionListener()

{

publicvoidactionPerformed(ActionEventevent)

{

System.exit(0);//退出登陆

}

}

);

p3.add(jb5);

content=this.getContentPane();//布局定义

content.setLayout(newBorderLayout());

content.add(p2,BorderLayout.CENTER);//定义中部为面板p2

content.add(p3,BorderLayout.SOUTH);//定义底部为面板p3

this.pack();

this.setTitle("进入界面");//定义为窗口名称

this.setBounds(300,300,400,300);//定义窗口的大小

this.setResizable(false);

this.show();

}

publicvoidactionPerformed(ActionEventevent)//接口监听

{

if(event.getSource()==jb4)//判断是否是jb4

{

newXgmm(key);//进入Xgmm

setVisible(false);

}

if(event.getSource()==jb1)//判断是否是jb1

{

newQUKUAN(key);//进入QUKUAN

setVisible(false);

}

if(event.getSource()==jb2)//判断是否是jb2

{

newCUNKUAN(key);//进入CUNKUAN

setVisible(false);

}

if(event.getSource()==jb3)//判断是否是jb3

{

newCHAXUN(key);//进入CHAXUN

setVisible(false);

}

}

}

进入选择界面

5.4存款模块设计

classCUNKUANextendsJFrameimplementsActionListener//导入接口类

{

JPanelp2,p3;//定义个面板

JLabell1;//定义个标签

JButtonjb1,jb2;//定义个按钮

JTextFieldjtf1;//定义一个文本框

Containercontent;//定义一个容器

kehukey;//定义客户类传从参数key

publicCUNKUAN(kehukey)

{

this.key=key;//把key传到顶层容器

p2=newJPanel();//定义面板

l1=newJLabel("请输入您要存入的金额:

");//定义一个标签请输入您要存入的金额:

jtf1=newJTextField(10);//定义一个文本框

p2.add(l1);

p2.add(jtf1);

p3=newJPanel();//定义第三个面板

jb1=newJButton("确定");//定义一个按钮确定

jb1.addActionListener(this);//jb1申请一个监听

jb2=newJButton("返回");//定义一个按钮返回

jb2.addActionListener(//定义一个匿名类监听

newActionListener()

{

publicvoidactionPerformed(ActionEventevent)

{

XUANZEActionPerformed(event);

}

}

);

p3.add(jb1);

p3.add(jb2);

content=this.getContentPane();//布局定义

content.setLayout(newBorderLayout());

content.add(p2,BorderLayout.NORTH);//定义顶部为面板p1content.add(p2,BorderLayout.CENTER);//定义中部为面板p2

content.add(p3,BorderLayout.SOUTH);//定义底部为面板p3

this.pack();

this.setTitle("自动存款");//定义为窗口名称

this.setBounds(300,300,400,300);//定义窗口的大小

this.setResizable(false);

this.show();//显示

}

publicvoidactionPerformed(ActionEvente)//接口监听类

{

if(e.getSource()==jb1)//判断是是否是jb1

{

doublemoney=Double.parseDouble(jtf1.getText());//把money转成Double

JOptionPane.showMessageDialog(this,"成功存款"+jtf1.getText()+"元!

");//一个提示框填出你成功存了多少

key.cunkuan(money);//把存的钱传回客户类

jtf1.setText("0");

}

}

publicvoidXUANZEActionPerformed(ActionEventevent)//匿名类监听过程

{

if(event.getSource()==jb2)//判断要是jb2

{

newXUANZE(key);//返回XUANZE界面

setVisible(false);

}

}

}

 

存款界面

存款成功

5.5取款模块设计

classQUKUANextendsJFrameimplementsActionListener//导入接口类

{

JPanelp2,p3;//定义个面板

JLabell1;//定义个标签

JButtonjb1,jb2;//定义个按钮

JTextFieldjtf1;//定义一个文本框

Containercontent;//定义一个容器

GUKEkey;//定义客户类传从参数key

publicQUKUAN(GUKEkey)

{

this.key=key;//把key传到顶层容器

p2=newJPanel();//定义面板

l1=newJLabel("请输入您要取的金额:

");//定义一个标签请输入您要取的金额:

jtf1=newJTextField(10);//定义一个文本框

p2.add(l1);

p2.add(jtf1);

p3=newJPanel();//定义面板

jb1=newJButton("确定");//定义一个按钮确定

jb1.addActionListener(this);//jb1申请一个监听

jb2=newJButton("返回");//定义一个按钮返回

jb2.addActionListener(this);//jb1申请一个监听

p3.add(jb1);

p3.add(jb2);

content=this.getContentPane();//布局定义

content.setLayout(newBorderLayout());

content.add(p2,BorderLayout.CENTER);//定义中部为面板p2

content.add(p3,BorderLayout.SOUTH);//定义底部为面板p3

this.pack();

this.setTitle("自动取款");//定义为窗口名称

this.setBounds(300,300,400,300);//定义窗口的大小

this.setResizable(false);

this.show();

}

publicvoidactionPerformed(ActionEvente)//接口监听类

{

if(e.getSource()==jb1)//判断是是否是jb1

{

doublemoney=Double.parseDouble(jtf1.getText());//把money转成Double

if(money

{

if(money%100==0)

{

if(money<=5000)

{

JOptionPane.showMessageDialog(this,"成功取款"+jtf1.getText()+"元!

");//一个提示框填出你成功取了多少

key.quqian(money);//把存的钱传回客户类

jtf1.setText("0");

}

else

{

JOptionPane.showMessageDialog(this,"提取金额不许超过五千");

}

}

else

{

JOptionPane.showMessageDialog(this,"取款许为一百的整数");

}

}

else

{

JOptionPane.showMessageDialog(this,"金额不足不许透支");//一个提示框提示你你的卡即将要已透支

}

}

if(e.getSource()==jb2)//判断是是否是jb2

{

newXUANZE(key);//返回XUANZE

setVisible(false);

}

}

取款界面

取款成功

金额不足取款失败提示

提取金额不许超过五千

提取金额需为一百的整数

5.6查询余额模块设计

classCHAXUNextendsJFrameimplementsActionListener//导入接口类

{

JPanelp2,p3;//定义个面板

JLabell1;//定义个标签

JButtonjb1;//定义个按钮

Containercontent;//定义一个容器

kehukey;//定义客户类传从参数key

publicCHAXUN(kehukey){

this.key=key;//把key传到顶层容器

p2=newJPanel();//定义面板

l1=newJLabel("您的剩余金额为:

"+key.getJine());

p2.add(l1);

p3=newJPanel();//定义面板

jb1=newJButton("返回");

jb1.addActionListener(this);

p3.add(jb1);

content=this.getContentPane();//布局定义

content.setLayout(newBorderLayout());

content.add(p2,BorderLayout.CENTER);//定义中部为面板p2

content.add(p3,BorderLayout.SOUTH);//定义底部为面板p3

this.pack();

this.setTitle("查询余额");//定义为窗口名称

this.setBounds(300,300,400,300);//定义窗口的大小

this.setResizable(false);

this.show();

}

publicvoidactionPerformed(ActionEvente)//接口监听类

{if(e.getSource()==jb1)//判断是否是jb1

{

newXUANZE(key);//返回XUANZE

setVisible(false);

}

}

 

开户资金10000元

存700后查询余额

再取款900后查询余额

5.7修改密码模块设计

classXgmmextendsJFrameimplementsActionListener//导入接口类

{

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2