import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.Calendar;

public class userlogin {

static ATM1 atm =new ATM1();  // 创建一个实例

static String[] a =new String[10];  //最近9次交易的清单

static int k=0;

public static String selectTime (){

//用于获取交易时间

Calendar c = Calendar.getInstance();

String

time1=c.get(Calendar.YEAR)+"年"+c.get(Calendar.MONTH)+"月"+

c.get(Calendar.DATE)+"日"+

c.get(Calendar.HOUR_OF_DAY)+"时"+

+

c.get(Calendar.MINUTE)+"分"+c.get(Calendar.SECOND)+"秒";

return time1;

}

public static void login(){

//登录页面

int

username,userpass,name,pass;  //账号与密码

name=atm.getusername();

pass=atm.getuserpass();

System.out.println("欢迎使用银行自主服务终端机");

try{

BufferedReader in =new

BufferedReader(new InputStreamReader(System.in));

System.out.println("请输入账号:");

String

inputLine=in.readLine();

username

=Integer.valueOf(inputLine).intValue();

System.out.println("请输入密码:");

String

inputLine1=in.readLine();

userpass

=Integer.valueOf(inputLine1).intValue();

}catch(Exception

exc){

return;

}

if((userpass==pass)&&(username==name)){

int choice=-1;

while(choice!=0){

choice=selectServer();

handle(choice);

}

}

else

System.out.println("账号或密码错误");

}

//

public static int selectServer(){

//显示服务并返回用户的选择结果

System.out.println("\n\n=============\n");

System.out.println("1.查询余额");

System.out.println("2.取款");

System.out.println("3.存款");

System.out.println("4.修改密码");

System.out.println("5.转账");

System.out.println("6.打印清单:");

System.out.println("0.退出");

System.out.println("\n\n=============\n");

//用户选择

int choice=-1;

try{

BufferedReader in =new BufferedReader(new

InputStreamReader(System.in));

System.out.println("请选择服务(0--6):\n");

String inputLine=in.readLine();

choice =Integer.valueOf(inputLine).intValue();

}catch(Exception exc){

}

return choice;

}

//对用户的选择结果choice分别作处理

public static void handle(int choice){

switch(choice){

//查询帐户当前的余额

case 1:

double balance =atm.getBalance();

System.out.println("您的余额为:" +balance );

break;

//向帐户取款,取款金额为amount

case 2:

double amount;

int choice1;  //是否确定取款

System.out.println("请输入取款金额:");

try{

BufferedReader in =new BufferedReader(new

InputStreamReader(System.in));

String inputLine=in.readLine();

amount =Double.valueOf(inputLine).doubleValue();

}

catch(Exception exc){

return;

}

System.out.println("您确定取"+amount+"元吗?");

System.out.println("确定请按1");

System.out.println("取消请按0");

try{

BufferedReader in =new BufferedReader(new

InputStreamReader(System.in));

String inputLine=in.readLine();

choice1 =Integer.valueOf(inputLine).intValue();

}

catch(Exception exc){

return;

}

boolean isa,iswithdraw=false;

if(choice1==1){

isa=true;

iswithdraw =atm.withdraw(amount);

}

else isa=false;

if(iswithdraw && isa){

System.out.println("交易成功");

if(k<9){

k=k+1;

a[k]=selectTime()+"取款 "+amount+"元";

}else {

k=0;

k++;

}

try{

BufferedReader in =new BufferedReader(new

InputStreamReader(System.in));

System.out.println("是否打印凭条:");

System.out.println("1.打印凭条");

System.out.println("0.不打印凭条");

String

inputLine=in.readLine();

int choice2

=Integer.valueOf(inputLine).intValue();

if(choice2==1)System.out.println(selectTime()+"取款

"+amount+"元");

}

catch(Exception

exc){

return;

}

}

else System.out.println("交易失败");

break;

//向帐户存款,存款金额为amount

case 3:

double amount1;

try{

System.out.println("请输入存款金额:");

BufferedReader in =new BufferedReader(new

InputStreamReader(System.in));

String inputLine=in.readLine();

amount1 =Double.valueOf(inputLine).doubleValue();

atm.deposit(amount1);

System.out.println("交易成功");

if(k<9){

k=k+1;

a[k]=selectTime()+"存款 "+amount1+"元";

}else {

k=0;

k++;

}

try{

BufferedReader in1 =new BufferedReader(new

InputStreamReader(System.in));

System.out.println("是否打印凭条:");

System.out.println("1.打印凭条");

System.out.println("0.不打印凭条");

String

inputLine1=in1.readLine();

int choice2

=Integer.valueOf(inputLine1).intValue();

if(choice2==1)System.out.println(selectTime()+"存款

"+amount1+"元");

}

catch(Exception

exc){

return;

}

}

catch(Exception exc){

}

break;

//修改帐户密码

case 4:

System.out.println("请输入新密码:");

int userpass1,userpass2;

try{

BufferedReader in =new BufferedReader(new

InputStreamReader(System.in));

String inputLine=in.readLine();

userpass1 =Integer.valueOf(inputLine).intValue();

}

catch(Exception exc){

return;

}

System.out.println("请再次输入密码:");

try{

BufferedReader in =new BufferedReader(new

InputStreamReader(System.in));

String inputLine=in.readLine();

userpass2 =Integer.valueOf(inputLine).intValue();

}

catch(Exception exc){

return;

}

if(userpass1==userpass2){

atm.updatepass(userpass2);

System.out.println("修改密码成功:");

System.out.println("您新密码为:"+atm.getuserpass());

}

else System.out.println("修改密码失败:");

break;

//退出

case 0:

System.out.println("谢谢使用ATM再见");

break;

case 5:

int user;

double amount11;

try{

System.out.println("请输入转入账号:");

BufferedReader in =new BufferedReader(new

InputStreamReader(System.in));

String inputLine=in.readLine();

user =Integer.valueOf(inputLine).intValue();

System.out.println("请输入转账金额:");

String inputLine1=in.readLine();

amount11 =Double.valueOf(inputLine1).doubleValue();

atm.withdraw(amount11);

System.out.println("交易成功");

if(k<9){

k=k+1;

a[k]=selectTime()+"向"+user+"转账 "+amount11+"元";

}else {

k=0;

k++;

}

try{

BufferedReader in1 =new BufferedReader(new

InputStreamReader(System.in));

System.out.println("是否打印凭条:");

System.out.println("1.打印凭条");

System.out.println("0.不打印凭条");

String

inputLine11=in1.readLine();

int choice2

=Integer.valueOf(inputLine11).intValue();

if(choice2==1)System.out.println(selectTime()+"存款

"+amount11+"元");

}

catch(Exception

exc){

return;

}

}

catch(Exception exc){

}

break;

case 6:

for(k=1;k<10;k++)

System.out.println(a[k]);

}

}

//主程序

public static void main (String [] args){

System.out.println("刚开始时帐号为123,密码为123");

login();

}

}

ATM机程序Linux,c语言模拟银行ATM机程序相关推荐

  1. 大学生妙用C语言模拟银行ATM,被某公司直接破格录取,月薪上万

    ATM(Automatic Teller Machine的缩写)即自动取款机,因大部分用于取款,所以又称自动取款机.它是一种高度精密的机电一体化装置,利用磁性代码卡或智能卡实现金融交易的自助服务,代替 ...

  2. c语言模拟银行ATM的程序,简单模拟银行ATM取款系统 | C/C++程序员之家

    学习C#,第一次C#实验课,模拟ATM取款系统,锻炼基本的C#语法以及选择控制语句! 实现功能: 1.取款 2.余额查询 3.修改密码 4.退出 [cpp] using System; using S ...

  3. c语言银行自动取款系统,[c语言]模拟银行atm机,实现存款、取款等业务

    可以使用结构体来存储账号.密码.余额等. // // main.c // testATM // // Created by 赵亚北 on 14-7-10. // Copyright (c) 2014年 ...

  4. python循环案例:模拟银行ATM存款取款

    案例:模拟银行ATM存款取款 1.模拟3张银行卡,1001,1002,1003,分别设置密码和余额(使用列表嵌套字典的方式): 2.提示用户输入银行卡和密码,遍历每张卡的信息验证是否成功: 3.如果用 ...

  5. python循环结构练习(五)—— 模拟银行ATM存款取款

    一. 场景描述案例:模拟银行ATM存款取款 1.模拟3张银行卡,1001,1002,1003,分别设置密码和余额(使用列表嵌套字典的方式): 2.提示用户输入银行卡和密码,遍历每张卡的信息验证是否成功 ...

  6. Java 多线程 模拟银行ATM实时存取钱

    近期想回顾一些知识: 一.Java 多线程 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务.多线程是多任务的一种特别的形式,但多线程使用了更小的资源开 ...

  7. 模拟银行ATM存款存取款的相关功能

    模拟银行ATM存款存取款的相关功能 具体需求: 模拟.3张银行卡,1001,1002,1003,分别设置密码和余额(可以用9个变里分别保存卡号.密码和余额) 提示用户输入银行卡和密码 如果用户输入正确 ...

  8. 三菱PLC程序 三菱F5U 系列PLC程序,ST语言编程,配触摸屏程序,恒压测试设备,可递增,可一直保持恒压,递增的阶梯和递增的先后顺序都可在触摸屏上设置

    三菱PLC程序 三菱F5U 系列PLC程序,ST语言编程,配触摸屏程序,恒压测试设备,可递增,可一直保持恒压,递增的阶梯和递增的先后顺序都可在触摸屏上设置,有监控曲线和历史记录,PLC采用ST语言进行 ...

  9. 用Java程序模拟银行ATM机,实现包括存款、取款、查询、转账功能的简单应用

    (1)想象现实世界中的相关操作沙及哪些实体呢?一个是储户,一个是ATM机.因 此根据面向对象中的抽象原则,可将其抽象为两个类:代表储户的账户信息类,代表银行 ATM机的ATM类.外加一个主类(负责实例 ...

最新文章

  1. 分享Kali Linux 2016.2第42周镜像文件
  2. 第12章 样式(三)
  3. mysql etc my.cnf_mysql配置文件 /etc/my.cnf 详细解释
  4. 【常见Web应用安全问题】
  5. 第五届新疆ACM H-虚无的后缀
  6. 【英语学习】【English L06】U03 House L2 Let's look for an apartment online
  7. OpenShift Security (13) - 利用Log4j漏洞攻击容器
  8. matlab机液位置伺服系统,基于MATLAB的电液位置伺服系统仿真分析
  9. hnu 暑期实训之web导航
  10. jQuery实现Ajax
  11. msdp rpf 规则1
  12. Python AutoCAD 绘图
  13. Google 分析 SDK 之渠道统计
  14. 叮叮书店 about.html,网页编程HTML+CSS网站设计
  15. 阿里天池:淘宝用户行为分析项目
  16. 期货开户手续费是怎么查询?
  17. 2021年网易云音乐实时计算平台发展和挑战
  18. 7-10 公路村村通 (最小生成树Prim算法) | PTA数据结构与算法——C语言实现
  19. Python的特点及数据的存储单位(¥4)
  20. (基础)详解Python实现图像分割增强的两种方法

热门文章

  1. 《iOS防护02》破解ptrace防护
  2. python统计奇数和偶数的个数_Python 统计位数为偶数的数字的代码
  3. QSystemTrayIcon退出后系统托盘图标不消失问题
  4. NLP入门之综述阅读-自然语言处理发展及应用综述
  5. 收藏 |2019互联网安全与DDoS态势研究报告解读Pro版
  6. Cadence原理图DRC检查介绍
  7. ubuntu上传文件到百度网盘
  8. Zooming Slow-Mo: Fast and Accurate One-Stage Space-Time Video Super-Resolution | 摘要翻译 |
  9. Dockerfile+elasticsearch7.12.1(配置密码及证书)+kibana7.12.1+cerebro0.83搭建集群
  10. 谷歌浏览器,查找CSS选择器