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

原创 2007年10月14日 13:47:00

该程序的功能为实现模拟银行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();
 }
}

 

ATM取款机模拟实战项目

我们从现实生活中的ATM取款机的广泛使用,来确定我们编写ATM取款机程序的功能。首先,用户的登陆、用户的取款、用户的查询、用户的转帐、用户密码的修改等功能。根据实际功能的需求完成我们的程序。 “ATM取款机项目”主要描述“ATM取款机”的工作原理,与实际生活相结合,编写一个模拟实战项目。
  • 2015年05月12日 14:29

简单Atm系统JAVA代码

简单的ATM系统Java代码,有自己写的,请教过别人,借鉴过别人,但对像自己一开始根本没学过Java的来说,在惠普学习三个周后,能写出来也是一种提高。。。继续加油...
  • huangjuntao_1
  • huangjuntao_1
  • 2015-09-20 10:12:59
  • 6335

如何做一个简易的ATM机

下图是我做一个简易的ATM机的思路和步骤:(以人性化为原则,再根据生活中实际ATM机补充) 代码实现为: package lesson816; import java.util.Sc...
  • hugo_java
  • hugo_java
  • 2016-08-16 21:27:08
  • 2382

用java实现一个简易自动提款机

用java实现一个简易自动提款机,且有以下要求如何实现呢?首先,我们定义一个用户类User,同时根据要求设计好属性(本人部分命名没有使用驼峰命名法,不够规范)。因为一个人可能有多个卡,卡号又不能重复,...
  • qq_39984761
  • qq_39984761
  • 2017-12-20 22:09:54
  • 452

java模拟ATM取款机程序(源代码)

  • 2007年12月25日 00:20
  • 41KB
  • 下载

Java实现ATM取款机

  • 2011年11月28日 21:09
  • 229KB
  • 下载

用Java模仿银行自助存取一体机(ATM)

package pricate.use; import java.util.Scanner; //模仿银行自助存取一体机(ATM) public class TestUser4 {   pub...
  • pangqiandou
  • pangqiandou
  • 2016-08-11 20:33:35
  • 7840

用Java编写的ATM 取款机程序

  • 2010年07月04日 20:52
  • 6KB
  • 下载

JAVA实现的ATM机模拟程序

  • 2011年05月14日 20:17
  • 9KB
  • 下载

Java模拟简易ATM机运行(无界面、无数据库)

package testATM; /** code by Xu Xingrui*/ public class Atm { public static void main(String[] args...
  • Alpssoul
  • Alpssoul
  • 2015-10-01 16:04:44
  • 2549
收藏助手
不良信息举报
您举报文章:Java编写的模拟ATM取款机程序
举报原因:
原因补充:

(最多只允许输入30个字)