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();
}
$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();
}
}
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();
// }
// 这样解决
}
welcome(); // 还有一个,函数自己调用自己的问题,可以用boolean类型解决,但我写的有点多,很麻烦
// 是 welcome();
// if(boolean){
// login();
// }else{
// regiter();
// }
// 这样解决
}