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();
 }
}

 

c++模拟ATM取款机

琢磨几天终于完成了,貌似bug不少,大家提提意见//bank.h int confirm_password(int ii);//密码输入及验证函数 void function(int ii);//功能...
  • dotasfans
  • dotasfans
  • 2014年01月06日 13:01
  • 1719

C#实现的简单的ATM机模拟实例

C#实现的简单的ATM机模拟实例: using System; using System.Collections.Generic; using System.Linq; using Syste...
  • ma451152002
  • ma451152002
  • 2013年07月02日 17:40
  • 2716

Java小程序:模拟ATM取款

Java小程序,模拟ATM机取款
  • yuerliang
  • yuerliang
  • 2016年05月11日 14:40
  • 3009

Java:利用嵌套循环模拟ATM机取款业务

代码:package com.jredu.ch03; import java.util.Scanner; public class Work4 { public static void mai...
  • xuehyunyu
  • xuehyunyu
  • 2017年07月28日 22:25
  • 496

模拟ATM机取款流程

package com.jerei.ch003; import java.util.Scanner; public class Practice { /** * @param args *...
  • yecaoysg
  • yecaoysg
  • 2016年08月01日 14:03
  • 1667

一个用java模拟ATM操作的小程序

一个用java模拟ATM操作的小程序
  • javaniuniu
  • javaniuniu
  • 2016年12月02日 16:36
  • 1148

C++课程设计之ATM柜员机系统

一、系统分析 1、需求分析: 1) 系统应该提供用户的登记:能模拟ATM柜员机程序,正确输入卡号和密码时能登陆个人账户; 2) 系统应提供查询余额功能:登陆账户后能查询个人账户余额,初始...
  • u013947318
  • u013947318
  • 2014年06月21日 09:45
  • 2433

atm取款机的简单程序代码

/* *********atm取款机********** */#include #include using namespace std; class ATM { public: void c...
  • Lucky_JP
  • Lucky_JP
  • 2017年04月12日 19:38
  • 1281

JAVA基础作业练习—自定义异常之模拟ATM

前言: 最近打算开始写博客,犹豫自己只是个java语言的初学者,所以现在的内容只是自己的一些学习笔记和做的一些小练习。 希望能在csdn学到更多的 知识,成长自己!我在努力成为成为程序员的路上! ...
  • hunao0221
  • hunao0221
  • 2015年11月20日 10:36
  • 2031

c语言写的简易ATM取款机

#include #include #include #include #include char ch[7]={"123456"}; int menu(); int login();...
  • CCSUXWZ
  • CCSUXWZ
  • 2016年06月04日 18:20
  • 1564
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java编写的模拟ATM取款机程序
举报原因:
原因补充:

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