php 在命令行运行的 ATM 基本功

php在命令行运行的 ATM 基本功

 

<?php
$stdin=fopen('php://stdin','r');
$userName = array(888);
$userPsw =array(888);
$userMoney =array(100);
$ismenu = false;
$a=1;
function tool(){
 global $stdin;
 return intval(fgets($stdin));
 }
function welcome(){
 echo "欢迎使用ATM"."\n"."1.登陆,2.注册,3.退出";
 switch (tool()){
  case 1:
   login();
   break;
  case 2:
   regiter();
   break;
  case 3:
   echo "谢谢使用";
   exit;
  default:
   echo "没得这选项"."\n";
   welcome();
 }
 }
function regiter(){
 global $userName;
 global $userPsw;
 global $userMoney;
 echo "输入注册账号"."\n";
 $newName = tool();
 echo "输入注册密码"."\n";
 $newPsw = tool();
 for ($j=0;$j<count($userName);$j++){
  if($newName==$userName[$j]){
   echo "用户存在,重新输入"."\n";
   regiter();
  }else {
   echo "注册成功"."\n";
   $userName[] = $newName;
   $userPsw[] = $newPsw;
   $userMoney[] = 0;
  }
 }
 }
function login(){
 echo "请输入账号";
 $name = tool();
 echo "请输入密码";
 $psw = tool();
 global $userName;
 global $userPsw;
 global $ismenu;
 global $a;
 for ($i=0;$i<count($userName);$i++){
  if ($userName[$i]==$name && $userPsw[$i]==$psw){
   $ismenu = true;
   $a=$i;
  }
 }
 if ($ismenu){
  echo "登陆成功"."\n";
  menu();
 }else{
  echo "登陆失败,请重新登陆"."\n";
  login();
 }
 }
function menu(){
  echo "1.查询,2存钱,3.取钱,4返回"."\n";
  global $a;
  global $userMoney;
  switch(tool()){
   case 1:
    echo "你的余额为:".$userMoney[$a]."\n";
    menu();
    break;
   case 2:
    save();
    menu();
    break;
   case 3:
    get();
    menu();
    break;
   case 4:
    welcome();
    break;
   default:
    echo "没得这选择";
    menu();
  }
 }
function save(){
 echo "请输入存款金额"."\n";
 global $a;
 global $userMoney;
 $save = tool();
 if ($save<=0){
  echo "金额方式错误,请重新输入"."\n";
  save();
  break;
 }else{
  $userMoney[$a]+=$save;
  echo "存款成功,你的余额为:".$userMoney[$a]."\n";
  menu();
 } 
 }
function get(){
 echo "请输入取款金额"."\n";
 global $a;
 global $userMoney;
 $get = tool();
 if ($get <=0 || $get>$userMoney[$a]){
  echo "金额不正确"."\n";
  get();
 }else{
  $userMoney[$a]-=$get;
  echo "取款成功,你的余额为:".$userMoney[$a]."\n";
  menu();
 }
 }
for (;;){
 welcome();  // 还有一个,函数自己调用自己的问题,可以用boolean类型解决,但我写的有点多,很麻烦
    // 是 welcome();
    //  if(boolean){
    //   login();
    //  }else{
    //   regiter();
    //  }
    // 这样解决
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个简单的 Java ATM 提款代码示例。这个示例包括账户验证、余额查询、取款以及退出功能。请注意,这只是一个简单的示例,并不包含所有的功能和安全措施。 ``` import java.util.Scanner; public class ATM { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); boolean isRunning = true; String userName = "John"; // 用户名 String password = "1234"; // 密码 double balance = 1000; // 账户余额 while (isRunning) { // 提示用户输入用户名和密码 System.out.print("请输入用户名:"); String inputUserName = scanner.nextLine(); System.out.print("请输入密码:"); String inputPassword = scanner.nextLine(); // 验证用户身份 if (userName.equals(inputUserName) && password.equals(inputPassword)) { System.out.println("登陆成功!"); while (true) { // 显示菜单 System.out.println("请选择操作:"); System.out.println("1. 查询余额"); System.out.println("2. 取款"); System.out.println("3. 退出"); int choice = scanner.nextInt(); switch (choice) { case 1: System.out.println("账户余额为:" + balance); break; case 2: System.out.print("请输入取款金额:"); double amount = scanner.nextDouble(); if (amount > balance) { System.out.println("余额不足!"); } else { balance -= amount; System.out.println("取款成功!账户余额为:" + balance); } break; case 3: System.out.println("退出成功!"); isRunning = false; break; default: System.out.println("输入有误,请重新选择!"); break; } } } else { System.out.println("用户名或密码错误,请重新输入!"); } } } } ``` 这是一个简单的 ATM 自动提款的 Java 代码示例。希望能够帮到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值