`

Java编写的模拟ATM取款机程序

阅读更多

该程序的功能为实现模拟银行ATM自动取款机提款,查询等功能. 只是完成了基本的功能。

 

/**
 * @version 1.0
 * @author Devil_Angel
 * 该程序的功能为实现模拟银行ATM自动取款机提款,查询等功能.
 * 
 */

import java.io.*;

/*该类为实现客户信息及部分功能*/
class Account {
 private String code    =null;   //信用卡号
 private String name    =null;   //客户姓名
 private String password=null;   //客户密码
 private double money   =0.0;   //卡里金额
 
 /********************/
 public Account(String code,String name,String password,double money)
 {
  this.code=code;
  this.name=name;
  this.password=password;
  this.money=money;
 }
 
 protected String get_Code() {
  return code;
 }
 
 protected String get_Name() {
  return name;
 }
 
 protected String get_Password() {
  return password;
 }
 
 public double get_Money() {
  return money;
 }
 
 /*得到剩余的钱的数目*/
 protected void set_Balance(double mon) {
  money -= mon;
 }
}

/**********实现具体取款机功能*********/
class ATM {
 Account act;
// private String name;
// private String pwd;
 
 public ATM() {
  act=new Account("000000","Devil","123456",50000);
 }
 
 /***********欢迎界面***********/
 protected void Welcome()
 {
  String str="---------------------------------";
  System.out.print(str+"\n"+
       "欢迎使用Angel模拟自动取款机程序.\n"+str+"\n");
  System.out.print(" 1.>取款."+"\n"+
       " 2.>查询信息."+"\n"+
       " 3.>密码设置."+"\n"+
       " 4.>退出系统."+"\n");
 }
 
 /**********登陆系统**********/
 protected void Load_Sys() throws Exception
 {
  String card,pwd;
  int counter=0;
  
  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  do {
   System.out.println("请输入您的信用卡号:");
   card=br.readLine();
   System.out.println("请输入您的密码:");
   pwd=br.readLine();
   
   if(!isRight(card,pwd))
   {
    System.out.println("您的卡号或密码输入有误.");
    counter++;
   }
   else
    SysOpter();
   
  }while(counter<3);
  Lock_Sys();
 }
 
 /**********系统操作**********/
 protected void SysOpter() throws Exception
 {
  int num;
  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  System.out.println("请选择您要操作的项目(1-4):");
  num=br.read();  //num为ASICC码转换的整数
  switch(num) {
  case 49: BetBalance(); break;
  case 50: Inqu_Info(); break;
  case 51: Set_Password(); break;
  case 52: Exit_Sys();  break;
  }
  System.exit(1);
 }
 
 /**********信息查询**********/
 protected void Inqu_Info() {
  System.out.print("---------------------\n"+
       act.get_Code()+"\n"+
       act.get_Name()+"\n"+
       act.get_Money()+"\n"+
       "-----------------------");
 }
 
 /**********取款**********/
 public void BetBalance() throws Exception
 {
  String str=null,str1;
  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  do {
   System.out.println("请输入您要取的数目:");
   str=br.readLine();
   str1=String.valueOf(act.get_Money());
   if(str.compareTo(str1)>0) {
    System.out.println("超过已有的钱数,请重新输入您要取的数目:");
   }
   else {
    /*操作成功*/
//    act.set_Balance(str);
    System.out.println("取款成功,请收好您的钱.");
    Welcome();
    SysOpter();
   }
  }while(true);
  
 }
 
 /**********判断卡内是否有钱**********/
 protected boolean isBalance() {
  if(act.get_Money()<0) { 
//   System.out.println("对不起,您的钱数不够或卡已透支.");
   return false;
  }
  return true;
 }
 
 /********卡号密码是否正确******/
 protected boolean isRight(String card,String pwd)
 {
  if(act.get_Code().equals(card) && act.get_Password().equals(pwd))
   return true;
  else
   return false;
 }
 
 /**********密码修改**********/
 protected void Set_Password() throws Exception
 {
  String pwd=null;
  int counter=0;
  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  do {
   System.out.println("请输入旧密码:");
   pwd=br.readLine();
   if(act.get_Password().equals(pwd))
   {
    do {
     System.out.println("请输入新密码:");
     String pwd1=br.readLine();
     System.out.println("请再次输入新密码:");
     String pwd2=br.readLine();
     if(!pwd1.equals(pwd2))
     {
      System.out.println("两次输入不一致,请再次输入.");
     }
     else
     {
      System.out.println("密码修改成功,请使用新密码.");
      Welcome();
      SysOpter();
     }
    }while(true);
   }
  }while(counter>3);
  
 }
 
 /**********锁定机器**********/
 protected void Lock_Sys() {
  System.out.println("对不起,您的操作有误,卡已被没收.");
  System.exit(1);
 }
 
 /**********结束系统**********/
 protected void Exit_Sys() {
  System.out.println("感谢您使用本系统,欢迎下次在来,再见!");
  System.exit(1);
 }
 
}

public class Text
{
 public static void main(String[] args) throws Exception
 {
  ATM atm=new ATM();
  atm.Welcome();
  atm.Load_Sys();
//  atm.Exit_Sys();
 }
}

 

分享到:
评论

相关推荐

    java编写ATM柜员机模拟程序(GUI+javaSwing+MySQL).zip

    java编写的ATM模拟程序,GUI界面,连接Mysql数据库,实现了管理员界面(增删改查),用户界面(取款,存款,查询,安全退出,修改密码,转账,查询记录,导出记录),详情请看我的博客 ...

    JAVA编写的模拟ATM机程序

    用JAVA编写的模拟ATM取款,存款流程

    Java 编写的简单模拟ATM取款机源码

    Java 编写的简单模拟ATM取款机源码

    模拟ATM取款机(JAVA+MySQL开发)

    ATM取款机模拟系统是基于Java编程语言和MySQL数据库技术开发的一款实用程序,它能够模拟银行ATM机的各种操作,如存款、取款、查询余额、修改密码等。这个项目旨在提供一个基础的金融交易模拟环境,帮助学习者理解和...

    基于java的模拟ATM取款机系统

    【基于Java的模拟ATM取款机系统】是一个利用编程技术构建的仿真实验,它旨在模拟真实的自动取款机(ATM)操作流程。在这个系统中,主要使用了Java语言,特别是Java AWT(Abstract Window Toolkit)和SWING库,这两个...

    JAVA语言模拟ATM取款机体会

    在本项目中,"JAVA语言模拟ATM取款机体会" 是一个实践性质的学习任务,旨在帮助学习者通过编程理解ATM(自动取款机)的工作原理,掌握Java编程技能。ATM机模拟通常涉及用户交互、账户管理、交易处理等核心功能。以下...

    Java简单模拟ATM机

    java语言编写的简单模拟ATM机功能案例,有美观的UI界面,和比较完善的功能模块,业务分层,编码格式规范。可供初学者参考。 另在db文件夹中附带两种数据库(mysql、sqlserver)表结构。 项目目录结构: .classpath ....

    Java模拟ATM取款机程序(多个类)

    通过模拟ATM取款机,教你如何定义及使用多个类。

    java实现“模拟ATM机存取款管理系统”课程设计.txt

    java实现“模拟ATM机存取款管理系统”课程设计 模拟银行的自动取款机使用过程中的界面和用户交互过程。实现查询银行卡余额、取款、存款、修改密码、退出系统等功能。 功能要求: (1)卡号、密码输入最多三次,否则...

    java银行管理系统(模拟ATM取款机)

    作为一款基于Java编程语言的银行管理模拟ATM取款机,这个项目旨在帮助学习者理解如何将理论知识应用于实际场景,同时提升数据库操作和程序设计的能力。以下是关于该系统的详细知识点介绍。 1. **Java编程基础**: ...

    java ATM模拟程序

    Java ATM模拟程序是一种基于Java编程语言开发的模拟自动取款机(ATM)的应用程序。这个小程序设计的主要目的是为了提供一个交互式的环境,用户可以在这个环境中进行常见的ATM操作,如取款、存款、查询余额以及修改...

    java版 模拟ATM提款机

    在Java编程领域,模拟ATM(自动取款机)是一个常见的练习项目,它可以帮助开发者熟悉面向对象编程、异常处理、用户交互以及简单的银行交易逻辑。在这个项目中,我们可以通过创建类来代表ATM、账户、交易等核心概念,...

    JavaATM机取款模拟程序

    本ATM取款模拟项目用Java编写,是本学期《面向对象》课程学期过程中老师要求写的,现上传供广大Java初学者和刚接触面向对象的朋友学习和参考。本代码只实现取款过程,有兴趣的朋友可以自己再改进。本人也是Java的初学...

    atm机模拟程序 java源码

    【标题】:“ATM机模拟程序 Java源码”是一份专为初学者设计的编程学习资源,它通过Java语言实现了ATM自动取款机的基本功能,帮助开发者理解面向对象编程和软件工程的基本概念。 【描述】:这个描述指出,这个Java...

    Java写的ATM机取款模拟程序

    Java编写的ATM机取款模拟程序是一个典型的面向对象编程示例,它涵盖了类的设计、对象的创建以及方法的调用等核心概念。这个程序旨在帮助初学者理解如何利用Java来构建一个实际应用中的简单系统。 首先,我们需要...

    JAVA-ATM.rar_Java 实现 自动 取款机 模拟 程序_atm java_java ATM_java 银行_自动提款

    Java ATM模拟程序是一种基于Java编程语言开发的软件应用,它旨在模拟实际银行自动取款机(ATM)的各种操作,如存款、取款、查询余额等。在这个项目中,开发者通常会关注以下几个核心知识点: 1. **面向对象编程**:...

    Java ATM机模拟程序

    Java ATM机模拟程序是一个非常适合初学者的项目,它可以帮助学习者深入理解面向对象编程、类的设计以及实际应用中的控制流程。这个程序在NetBeans IDE 8.0环境下编写,提供了从基础到进阶的五个不同示例,逐步引导...

Global site tag (gtag.js) - Google Analytics