java GUI实现ATM机系统(3.0版)

写个小项目了解一下GUI。用java GUI实现银行ATM自动取款机,实现登录界面、登录成功界面、各个操作功能实现界面。

用java GUI实现一个ATM机系统(3.0版)

设计思路

设计两个包(bank包,atmJFrame包)

1、bank包:

(1)、ATM类:实现用户各种操作;
(2)、Data类:从user文件中获取所有用户信息,并返回要找的用户,再将修改完之后的用户信息写入user文件中;
(3)、user文件储存所有用户信息。

2、atmJFrame包:

(1)、MyJFrame类:自己创建的界面父类;
(2)、LoginJFrame:登录界面;
(3)、WorkingJFrame:登录成功后显示的功能界面;
(4)、CentreJFrame:中间窗口,存钱、取钱、转账、修改密码界面的父类;
(5)、QuMoneyJFrame:取钱界面;
(6)、CunMoneyJFrame:存钱界面;
(7)、GiveMoneyJFrame:转账界面;
(8)、ChangePasswordJFrame:修改密码界面。

源码

bank包

package bank;

//ATM类
public class ATM {
 //有一个类操作数据的类
 private Data data = new Data();
 //ATM机里的数据
 private String userName;//用户账号且唯一
 private String userPassword;//用户密码
 private double userMoney;//用户账户里的钱
 private String user;//使用该台ATM机的用户全部信息
 private String antherUser;//被转账用户

 //登录方法
 public boolean login(String userNameString,String userPassword1){
 boolean b= false;
 String x = data.backUser(userNameString);
 //判断账户是否存在
 if(!x.equals("null")){
  user = x;//获取用户所有信息
  String[] str = user.split("\\*");//将用户信息分割
  userName = str[0];//用户名
  userPassword = str[1];//用户密码
  userMoney = Double.parseDouble(str[2]);//用户余额
  //密码正确
  if(userPassword.equals(userPassword1))
  b = true;
 }
 return b;
 }
 //获取账户余额
 public Double getMoney1(){
 return userMoney;
 }
 //存钱
 public boolean saveMoney(Double money1){
 boolean b = false;
 if(money1%100 == 0) { //如果存的钱正确
  userMoney = userMoney + money1;//存上
  b = true;
 }
 return b;
 }
 //取钱
 public boolean quMoney(Double money1){
 boolean b = false;
 if(money1%100 == 0 && money1 <= userMoney){
  userMoney = userMoney - money1;
  b = true;
 }
 return b;
 }
 //只判断用户账户是否存在
 public boolean anotherUser(String userName1){
 boolean b = false;
 String inUserName = userName1;
 String str = data.backUser(inUserName);
 //如果该账户存在
 if(!str.equals("null")) {
  antherUser = str;//获取被转账账户所有信息
  b = true;
 }
 return b;
 }
 //进行转账
 public void giveMoney(Double money1){
 String[] str1 = antherUser.split("\\*");//分割
 Double x = Double.parseDouble(str1[2]);//获取被转账账户余额
 x = x + money1;
 userMoney = userMoney - money1;
 antherUser = changeUser(str1[0], str1[1], x);//改变被转账账户信息
 data.saveData(antherUser,false);//将用户信息传给Data类保存被转账账户信息
 }
 //修改密码实现
 public void changePassword(String newPassword){
 userPassword = newPassword;
 }
 //办完业务后修改用户信息
 private String changeUser(String n,String w,Double d){
 String str = n + "*" + w + "*" + d;
 return str;
 }
 //办完所有业务
 public void over(){
 user = changeUser(userName,userPassword,userMoney);
 data.saveData(user,true);
 }
}
package bank;

import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

//数据类是文件和ATM机之间操作用户信息的桥梁
public class Data {
 //Map储存数据库里所有用户的全部信息
 Map<String,String> userData = new HashMap();
 //返回用户的信息
 private String user;

 //创建数据类加载所有用户信息
 public Data(){
 getUsers();
 }

 private void getUsers(){
 String str;
 String[] string;
 File file = new File("src\\bank\\user");
 FileReader fileReader = null;
 BufferedReader bufferedReader = null;
 try{
  fileReader = new FileReader(file);
  bufferedReader = new BufferedReader(fileReader);
  while((str = bufferedReader.readLine())!=null){
  string = str.split("\\*",2);
  userData.put(string[0],string[1]);
  }
 }catch(Exception e){
  e.printStackTrace();
  if((fileReader!=null)&&(bufferedReader!=null)){
  try {
   bufferedReader.close();
   fileReader.close();
  } catch (IOException e1) {
   e1.printStackTrace();
  }
  }
 }
 }

 //告诉用户名,如果找到返回该用户所有信息,没找到返回null
 public String backUser(String userName){
 String str = "null";
 if(userData.containsKey(userName))
  str = userName + "*" + userData.get(userName);
 user = str;
 return user;
 }
 //修改用户数据并储存在userData图里
 public void saveData(String user,boolean aBoolean){
 String[] string = user.split("\\*",2);
 userData.remove(string[0]);
 userData.put(string[0],string[1]);
 if(aBoolean)//判断用户是否操作结束
  changeUser();
 }

 //用户操作完,将userData里所有的用户再写入文件里
 private void changeUser(){
 String str,string="";
 Set<String> keys = userData.keySet();
 for(String key : keys){
  str = key + "*" + userData.get(key);
  string = string + str + "\n";
 }
 File file = new File("src\\bank\\user");
 FileWriter out = null;
 try {
  out = new FileWriter(file);
  out.write(string);
  out.flush();
 } catch (IOException e) {
  e.printStackTrace();
 }finally{
  if(out != null){
  try {
   out.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  }
 }
 }
}
//user文件
//需要注意文件位置"src\\bank\\user"
李四*234*7500.0
张三*123*13100.0
王五*123*1100.0

atmJFrame包

package atmJFrame.myJFrame;

import bank.ATM;

import javax.swing.*;
import java.awt.*;

//自己创造的界面的父类
public class MyJFrame extends JFrame {
 //设置字体供子类使用
 public static final Font FONT_SIZE_10 = new Font("宋体",Font.PLAIN,18);
 public static final Font FONT_SIZE_20 = new Font("宋体",Font.PLAIN,20);
 public static final Font FONT_SIZE_25 = new Font("宋体",Font.PLAIN,25);
 //给一个静态公共不可改变的ATM对象作为属性,供子类使用
 public static final ATM atm = new ATM();
 //创建窗体
 public MyJFrame(String title){
 super(title);
 //设置窗体不可改变
 setResizable(false);
 //设置窗体大小
 setSize(600,600);
 //设置窗体居中
 setLocationRelativeTo(null);
 }
 //无参构造,创建无标题窗体
 public MyJFrame(){
 this("");
 }
 //设置弹窗方法供子类使用(传入字符串并显示出)
 protected void showMessageDialog(String str){
 JOptionPane.showMessageDialog(this,str);
 }
}
package atmJFrame.myJFrame;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

//登录界面继承MyJFrame
public class LoginJFrame extends MyJFrame {
 public LoginJFrame(){
 super("欢迎使用ATM机");
 //设置窗体可关闭
 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 //设置组件
 init();
 //界面可视化
 setVisible(true);
 }
 //初始化界面
 private void init(){
 //创建面板对象,并定义为空布局
 JPanel jp = new JPanel(null);
 //添加标签
 JLabel jl1 = new JLabel("账号:");
 JLabel jl2 = new JLabel("密码:");
 //设置标签字体
 jl1.setFont(FONT_SIZE_20);
 jl2.setFont(FONT_SIZE_20);
 //设置标签在面板中的位置
 jl1.setBounds(100,100,70,70);
 jl2.setBounds(100,250,70,70);
 //添加文本框
 JTextField jtf = new JTextField(20);
 //添加密码文本框
 JPasswordField jpf = new JPasswordField(20);
 //设置文本框位置
 jtf.setBounds(200,115,200,40);
 jpf.setBounds(200,265,200,40);
 //添加按钮
 JButton jb = new JButton("登录");
 //设置按钮文字大小
 jb.setFont(FONT_SIZE_20);
 //设置按钮位置及大小
 jb.setBounds(250,400,100,50);
 //设置面板背景颜色
 jp.setBackground(Color.YELLOW);
 //内部类进行事件处理
 jb.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
  //获取输入的账号和密码
  String userName = jtf.getText();
  String userPassword = new String(jpf.getPassword());
  //验证是否正确
  boolean aBoolean = atm.login(userName,userPassword);
  if(aBoolean){
   //登录成功
   dispose();//关闭登录界面
   //打开功能界面
   new WorkingJFrame();
  }
  else
   showMessageDialog("账号或密码错误");//调用父类弹窗方法
  }
 });
 //添加组件
 jp.add(jl1);
 jp.add(jtf);
 jp.add(jl2);
 jp.add(jpf);
 jp.add(jb);
 //窗体添加面板
 add(jp);
 }
 public static void main(String[] args) {
 new LoginJFrame();//先创建登录界面
 }
}
package atmJFrame.myJFrame;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

//功能界面
public class WorkingJFrame extends MyJFrame {
 public WorkingJFrame(){
 super("功能界面");
 init();
 setVisible(true);
 }
 //初始化功能界面
 private void init(){
 //设置第一个面板对象
 JPanel jp1 = new JPanel();
 //创建标签,将标签添加到第一个面板上
 JLabel jb = new JLabel("请选择要进行的操作:");
 jb.setFont(FONT_SIZE_25);//设置标签字体大小
 jp1.add(jb);
 jp1.setBackground(Color.CYAN);
 //将第一个面板添加到窗体上方(JFrame窗体是边界布局)
 add(jp1, BorderLayout.NORTH);

 //创建第二个面板对象(空布局,自己设置按钮位置及大小),然后将按钮添加
 JPanel jp2 = new JPanel(null);
 //字符串数组存储各个按钮名字,然后循环设置按钮名字
 String[] str = {"1、余额查询","2、取钱","3、存钱","4、转账","5、修改密码","6、退出系统"};
 //int二维数组储存各个按钮位置及大小信息,循环设置
 int[][] xy = new int[][]{{50,100,200,50},{350,100,200,50},{50,200,200,50},{350,200,200,50},{50,300,200,50},{350,300,200,50}};
 for(int i = 0;i < str.length;i ++){
  JButton jButton = new JButton(str[i]);//创建按钮
  jButton.setFont(FONT_SIZE_20);//设置按钮字体大小
  jButton.setBounds(xy[i][0],xy[i][1],xy[i][2],xy[i][3]);//设置按钮位置及大小
  jButton.addActionListener(listener);//按钮注册监听器
  jp2.add(jButton);//将按钮添加
 }
 //设置jp2背景颜色
 jp2.setBackground(Color.GRAY);
 //将第二个面板添加到窗体(JFrame窗体中间)
 add(jp2);
 }
 //创建事件监听器
 private ActionListener listener = new ActionListener() {
 @Override
 public void actionPerformed(ActionEvent e) {
  String actionCommand = e.getActionCommand();//获取按钮上的字
  //switch选择功能,且每次功能结束回到该界面,关闭已操作完的功能界面
  switch(actionCommand){
  case "1、余额查询":
   getMoney();
   break;
  case "2、取钱":
   quMoney();
   break;
  case "3、存钱":
   cunMoney();
   break;
  case "4、转账":
   giveMoney();
   break;
  case "5、修改密码":
   changePassword();
   break;
  case "6、退出系统":
   over();
   break;
  }
 }
 };
 //查询余额功能
 private void getMoney(){
 showMessageDialog("您的账户余额为:" + atm.getMoney1());//调用父类方法弹窗
 }
 //取钱功能
 private void quMoney(){
 new QuMoneyJFrame();//创建取钱界面
 dispose();//关闭该界面
 }
 //存钱功能
 private void cunMoney(){
 new CunMoneyJFrame();
 dispose();
 }
 //转账功能
 private void giveMoney(){
 new GiveMoneyJFrame();
 dispose();
 }
 //修改密码功能
 private void changePassword(){
 new ChangePasswordJFrame();
 dispose();
 }
 //退出系统功能
 private void over(){
 atm.over();//调用方法操作文件
 dispose();
 }
}
package atmJFrame.myJFrame;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

//中间窗口,存钱、取钱、转账、修改密码界面的父类
public class CentreJFrame extends MyJFrame {
 //空布局面板,自己设置组件位置及大小
 protected JPanel jp = new JPanel(null);
 //输入金额标签
 protected JLabel jl = new JLabel("请输入金额:");
 //输入金额文件框
 protected JTextField jtf = new JTextField(20);
 //确认、取消按钮
 protected JButton jb1 = new JButton("确认");
 protected JButton jb2 = new JButton("取消");

 //转账时转账账号标签
 protected JLabel jLabel = new JLabel("请输入转账账号:");
 //转账时转账账号文本框
 protected JTextField jTextField = new JTextField(20);

 //修改密码时新密码标签
 protected JLabel jLabelCP = new JLabel("请输入新密码(只能为数字):");
 //修改密码时新密码文本框
 protected JTextField jTextFieldCP = new JTextField(20);

 //提醒用户输入金额为100的倍数
 private JLabel jle = new JLabel("( 提示:只能输入100的倍数 )");

 public CentreJFrame(String str){
 super(str);
 //判断要进行的操作
 if(str.equals("转账"))
  init1();
 else if(str.equals("修改密码"))
  init2();
 else
  init();
 one();//最后调用共有
 }
 //取钱和取钱特有组件
 private void init(){
 //输入金额标签,设置字体,位置及大小
 jl.setFont(FONT_SIZE_25);
 jl.setBounds(100,100,200,100);
 //输入金额文本框
 jtf.setBounds(300,250,200,50);
 //添加输入金额标签和输入金额文本框
 jp.add(jl);
 jp.add(jtf);
 setJLE();
 }
 //转账特有组件
 private void init1(){
 init();
 //输入账户标签
 jLabel.setFont(FONT_SIZE_25);
 jLabel.setBounds(100,10,200,40);
 //输入账户文本
 jTextField.setBounds(300,80,200,50);
 //添加输入账户标签和输入账户文本
 jp.add(jLabel);
 jp.add(jTextField);
 }
 //修改密码特有组件
 private void init2(){
 //输入新密码标签
 jLabelCP.setFont(FONT_SIZE_25);
 jLabelCP.setBounds(50,100,400,70);
 //输入新密码文本框
 jTextFieldCP.setBounds(300,215,200,40);
 //添加输入新密码标签和输入新密码文本框
 jp.add(jLabelCP);
 jp.add(jTextFieldCP);
 }
 //共有组件及操作
 private void one(){
 //按钮设置
 jb1.setFont(FONT_SIZE_20);
 jb2.setFont(FONT_SIZE_20);
 jb1.setBounds(300,350,100,50);
 jb2.setBounds(450,350,100,50);
 jp.add(jb1);
 jp.add(jb2);
 jp.setBackground(Color.GREEN);
 jb1.addActionListener(listener);
 jb2.addActionListener(listener);
 //添加到窗体
 add(jp);
 setVisible(true);
 }

 //设置提示
 private void setJLE(){
 jle.setFont(FONT_SIZE_10);
 jle.setBounds(100,180,300,50);
 jp.add(jle);
 }

 //创建监听器
 private ActionListener listener = new ActionListener() {
 @Override
 public void actionPerformed(ActionEvent e) {//按钮被点击后
  String actionCommand = e.getActionCommand();//获取按钮上的字
  switch(actionCommand){
  case "确认":
   change();
   break;
  case "取消":
   new WorkingJFrame();//创建功能界面
   dispose();//关闭此界面
   break;
  }
 }
 };
 //点击确认按钮执行的操作,子类重写覆盖实现各自功能
 protected void change(){
 }

 //正则表达式判断输入是否为数字
 protected boolean isNumber(String str){
 Pattern pattern = Pattern.compile("[0-9]*");
 Matcher isNum = pattern.matcher(str);
 if(!isNum.matches())
  return false;
 return true;
 }
}
package atmJFrame.myJFrame;

//取钱界面
public class QuMoneyJFrame extends CentreJFrame {
 public QuMoneyJFrame(){
 super("取钱");
 }
 protected void change(){
 String s = jtf.getText();
 if(isNumber(s)){
  Double money = Double.parseDouble(s);
  boolean b = atm.quMoney(money);
  if(b){
  showMessageDialog("请收好您的钱\n您的账户余额为:" + atm.getMoney1());
  }
  else
  showMessageDialog("您输入有误" );
 }
 else
  showMessageDialog("您输入有误" );
 jtf.setText("");
 }

}
package atmJFrame.myJFrame;

//存钱界面
public class CunMoneyJFrame extends CentreJFrame {
 public CunMoneyJFrame(){
 super("存钱");
 }
 protected void change(){
 String s = jtf.getText();
 if(isNumber(s)){
  Double money = Double.parseDouble(s);
  boolean b = atm.saveMoney(money);
  if(b)
  showMessageDialog("您的钱钱已存入\n您的账户余额为:" + atm.getMoney1());
  else
  showMessageDialog("您输入有误" );
 }
 else
  showMessageDialog("您输入有误" );
 jtf.setText("");
 }

}
package atmJFrame.myJFrame;

//转账界面
public class GiveMoneyJFrame extends CentreJFrame {
 public GiveMoneyJFrame(){
 super("转账");
 }
 protected void change(){
 String s = jTextField.getText();
 boolean b = atm.anotherUser(s);
 if(b){
  //获取输入金额
  String s1 = jtf.getText();
  if(isNumber(s1)){//如果输入是数字
  Double money = Double.parseDouble(s1);
  atm.giveMoney(money);
  showMessageDialog("钱已转入\n您的账户余额为:" + atm.getMoney1());
  }
  else
  showMessageDialog("您输入有误" );
 }
 else
  showMessageDialog("您输入有误" );
 new WorkingJFrame();//创建功能界面
 dispose();//关闭此界面
 }
}
package atmJFrame.myJFrame;

//修改密码界面
public class ChangePasswordJFrame extends CentreJFrame{
 public ChangePasswordJFrame(){
 super("修改密码");
 }

 protected void change(){
 String s = jTextFieldCP.getText();
 if(isNumber(s)){
  atm.changePassword(s);
  showMessageDialog("密码修改成功");
 }
 else
  showMessageDialog("您输入有误" );
 new WorkingJFrame();//创建功能界面
 dispose();//关闭此界面
 }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java使用嵌套循环模拟ATM机取款业务操作示例

    本文实例讲述了Java使用嵌套循环模拟ATM机取款业务操作.分享给大家供大家参考,具体如下: 代码: package com.jredu.ch03; import java.util.Scanner; public class Work4 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); for (int i =

  • java实现ATM机系统(2.0版)

    java实现银行ATM自助取款机,实现功能:用户登录.余额查询.存钱.取钱.转账.修改密码.退出系统. 用java实现一个ATM机系统(2.0版) 设计思路 设计五个类包括测试类: 1.ATM类也是主要的类,负责实现用户一系列的操作: 2.Data类,作为ATM类的一个属性,主要实现从java文件user中获取用户全部信息,并返回要找的用户,再将修改完之后的用户信息写入文件中. 这个类是ATM机与文件之间的桥梁: 3.Bank类,有ATM机(has-a),欢迎用户来使用ATM机: 4.User类

  • Java项目实现模拟ATM机

    本文实例为大家分享了Java实现模拟ATM机的具体代码,供大家参考,具体内容如下 项目名称 模拟ATM机 项目描述 简单实现ATM机功能 代码实现 测试类 public class Test { //模拟多功能ATM机 public static void main(String[] args) { ATM atm = new ATM(); atm.opearte(); } } 主类:实现主方法 public class ATM { private Bank bank; public ATM()

  • Java实现ATM取款机程序

    本文实例为大家分享了Java实现ATM取款机程序的具体代码,供大家参考,具体内容如下 对象说明: 功能:该程序的功能为实现模拟银行ATM自动取款机取款,存款,查询余额,转账等功能,只是完成了基本的功能. 思路:第一.登录判断,密码限制三次,使用for循环.第二.成功登录,选择相应的功能,使用switch语句.第四.实现功能的反复循环操作,因为次数不确定,使用while结构.第五.对每个功能模块进行填充完善. 代码展示: import java.util.Scanner; public class

  • java方法实现简易ATM功能

    用java方法写简易ATM,供大家参考,具体内容如下 本文需求:用java写一个简易ATM 功能:有登陆,有查询资金功能,有存款功能,有取款功能,有转账功能,有退出: 简述: (java方法)类似于javascript中的函数,用于封装一些代码,以便代码的复用: 技术需求:方法 效果如下: 代码如下: package com.atm; import java.util.Scanner; /** * * @author 小zz *创建时间2019年5月9日下午4:13:10 *@version 1

  • Java模拟实现ATM机

    Java模拟ATM机,供大家参考,具体内容如下 实现登录,查询,转账,取款,修改密码,退出功能. 源码 package bank; import java.io.*; import java.util.Scanner; //ATM类 public class Atm { private String[] user;//用户全部信息 private double money;//修改钱数 private double userMoney;//用户的钱 private String newPassw

  • java GUI实现ATM机系统(3.0版)

    写个小项目了解一下GUI.用java GUI实现银行ATM自动取款机,实现登录界面.登录成功界面.各个操作功能实现界面. 用java GUI实现一个ATM机系统(3.0版) 设计思路 设计两个包(bank包,atmJFrame包) 1.bank包: (1).ATM类:实现用户各种操作; (2).Data类:从user文件中获取所有用户信息,并返回要找的用户,再将修改完之后的用户信息写入user文件中: (3).user文件储存所有用户信息. 2.atmJFrame包: (1).MyJFrame类

  • 用Java实现简单ATM机功能

    本文实例为大家分享了Java实现简单ATM机功能的具体代码,供大家参考,具体内容如下 项目介绍 基于大家使用银行卡在ATM机取款操作,进行相对应ATM机操作流程的实现. 项目功能 1.注册功能: 根据用户输入的账号密码申请一张银行卡,存储在银行卡类型的数组中(一张银行卡对应一个有效用户). 2.登录功能: 登陆失败:重新登陆 或 注册登陆成功:对登陆的这张银行卡可以进行一下操作:存款.取款.查余额.转账.退卡功能. 项目知识点 3.java基本语法的使用4.一维数组5.函数调用,封装6.Java

  • java模拟实现银行ATM机操作

    java模拟银行ATM机操作(基础版),供大家参考,具体内容如下 实现的功能需求: 修改密码之后,就会自动退出登录,再重新登录,若登录成功才能验证修改密码成功,这里用到 [跳出指定循环], 其他功能都是基本操作,作为入门入手程序. 准备两个实体类(一个银行类,一个用户类),一个测试类,注意,这里暂且存储了两个用户,这里可以优化,暂且不优化了 Blank.java package com.demo2; public class Blank {     /*数组模拟数据库后台,并初始化*/    

  • Java实现ATM机操作系统

    本文实例为大家分享了Java实现ATM机操作系统的具体代码,供大家参考,具体内容如下 用IO流操作txt文件作为数据库模拟实现一个ATM业务操作系统---->网上银行,实现登录,查询余额,存款,取款,转账,开户,销户等业务功能看代码 1.用户类----->User: package atm; import java.io.Serializable; public class User implements Serializable{          //建议除了私有属性  无参数有参数构造方

  • C语言实现ATM机存取款系统

    本文实例为大家分享了C语言实现ATM机存取款系统的具体代码,供大家参考,具体内容如下 利用结构体和构造函数并且采用输入输出文件实现ATM机系统. 主要功能有: 利用三种方法查询.开户.登陆.菜单.取款.修改密码.存款.转账.创建个人信息.输出.删除.增加.退出. 是一个功能齐全,完备的ATM机系统. #include<stdio.h> #include<string.h> #include<stdlib.h> struct per //定义结构体 { char name

  • Java详解实现ATM机模拟系统

    目录 一.概述 二.程序概要设计 三.程序详细设计 四.程序演示 一.概述 (1)选题分析 (2) 开发环境 开发环境,选择IDEA这一Java开发软件,基于JDK1.8版本,在本机window上开发本ATM模拟程序. 二.程序概要设计 (1) 功能模块设计 经过对题目的分析,把本ATM模拟程序分为管理员端和用户模式两大模块.其中,管理员具有查询所有账户.导出所有账户信息到文件.注销功能.用户模块具有查询余额.ATM转账.ATM存款.ATM取款.修改密码.查询交易记录.导出记录.退卡等功能. 系

  • java Gui实现肯德基点餐收银系统

    大家应该都去麦当劳或肯德基吃过快餐,参考肯德基官网的信息模拟肯德基快餐店的收银系统,简单的java Gui模拟的肯德基收银系统. 1.系统介绍 同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠劵购买餐品结算和找零. 4.可在一定时间段参与店内活动(自行设计或参考官网信息). 5.模拟打印小票的功能

随机推荐