模拟ATM自动取款机功能

#include<stdio.h> 
#include<stdlib.h> 
#include<string.h> 
#include<conio.h> 
#include<windows.h> 
#define N 6 
char b[N]={'8','8','8','8','8','8'};        //存放密码 
int money=5000; 
int securitytime=3; 
void Login(); 
void JieMian(); 
void SaveMoney(); 
void GetMoney(); 
void Query(); 
void Return(); 
//密码验证函数,验证成功返回1,否则返回0 
void Login() 

char a[20],ch; //用户登录密码,用以验证 
int i=0,n=1,k; 
printf("\n\t\t欢迎使用ATM自动存取款机\n"); 
printf("卡号:123456");
printf("\n请输入密码:"); 
for(n=1;n<=3;n++) 
{
while((a[i]=getch())!=13) 
{
i=i+1; 
            printf("*");   //将用户输入的密码以*显示 

        for(k=0;k<6;k++) 
        if(a[k]!=b[k]) break; 
        if(k==6) 
{
printf("\n密码正确,请继续!!\n"); 
JieMian(); 

   else
             printf("\n密码错误,您还有%d次机会,请重新输入:\n",3-n);

    printf("\n您已经输入3次错误,您的卡将被没收,请去相关网点办理!\n"); 
    exit(1); 



// 界面设计 
void JieMian() 

int SelectKey; 
system("cls");//清屏幕函数 
while(1) 
{
puts("\n= = = = = = = = = = = = = = = ="); 
puts("| 请选择相应功能: |"); 
puts("| 1. 查询功能Query |"); 
puts("| 2. 取款功能Get Money |"); 
puts("| 3. 存款功能Save Money | "); 
puts("| 4. 退出功能Return | "); 
puts("\n= = = = = = = = = = = = = = = = "); 
printf("\n请选择功能:"); 
scanf("%d",&SelectKey); 
switch(SelectKey) 

case 1:
printf("\n查询功能\n");Query();break; 
case 2:
printf("\n取款功能\n");GetMoney();break; 
case 3:
printf("\n存款功能\n");SaveMoney();break; 
case 4:
printf("\n退出功能\n");Return();break; 
}  
}



/*Query查询功能*/ 
void Query() 

   system("cls"); 
   puts("===================================="); 
   printf("| Your Query balance is $%ld |\n",money); 
   puts("| Press any key to return... |"); 
   puts("===================================="); 



/*GetMoney取钱功能*/ 
void GetMoney() 
{
char GetMoney; 
char kahao[20]; 
long y;  
do 

puts("================================="); 
puts("| Please select GetMoney: |"); 
puts("| 1. $100 |"); 
puts("| 2. $200 |"); 
puts("| 3. other |"); 
puts("| 4. Return |"); 
puts("================================="); 
GetMoney = getch(); 
}while(GetMoney!='1'&&GetMoney!='2'&&GetMoney!='3' && GetMoney!='4'); 
    switch(GetMoney) 
{
case '1': 
system("cls"); 
if(money>100) 
{
puts("==========================================="); 
puts("| Your GetMoney is $100,Thank you! |"); 
puts("| Press any key to return... |"); 
puts("==========================================="); 
money=money-100; 
printf("\n您的余额为%d",money);

else
printf("\n您的余额不足!"); 
            getch(); 
            break; 
      case '2': 
system("cls"); 
if(money>200) 
{
puts("========================================"); 
puts("| Your GetMoney is $200,Thank you! |"); 
puts("| Press any key to return... |"); 
puts("========================================"); 
money=money-200; 
printf("\n 您的余额为%d",money);

           else
   printf("\n您的余额不足!"); 
           getch(); 
           break; 
case '3': 
system("cls"); 
printf("please get some money:"); 
scanf("%ld",&y); 
if(money>y) 
{
money=money-y; 
printf("\n您的余额为%d",money);

else 
{
printf("\n您的余额不足!"); 
printf("\n您的余额为%d",money);

getch(); 
break; 
case '4': break; 
}return; 



/*SaveMoney存钱功能*/ 
void SaveMoney() 

char SaveMoney; 
long y; 
do 
{
system("cls"); 
puts("=========================================="); 
puts("| Please select Save Money: |"); 
puts("| 1. $100 |"); 
puts("| 2. $500 |"); 
puts("| 3. $1000 |"); 
puts("| 4. other |"); 
puts("| 5. Return |"); 
puts("=========================================="); 
SaveMoney = getch(); 

while(SaveMoney!='1'&&SaveMoney!='2'&& SaveMoney!='3'&&SaveMoney!='4'&&SaveMoney!='5'); 
    switch(SaveMoney) 

{
case '1': 
{
system("cls"); 
puts("==========================================="); 
puts("| Your save money is $100,Thank you! |"); 
puts("| Press any key to return... |"); 
puts("==========================================");} 
money=money+100; 
printf("\n您的余额为%d",money); 
getch();

break; 
case '2': 
{
system("cls"); 
puts("=============================================="); 
puts("| Your Save Money is $500,Thank you! |"); 
puts("| Press any key to return... |"); 
puts("=============================================="); 
money=money+500; 
printf("\n您的余额为%d",money); 
getch();

break; 
case '3': 
{
system("cls"); 
puts("============================================"); 
puts("| Your Save Money is $1000,Thank you! |"); 
puts("| Press any key to return... |"); 
puts("============================================"); 
money=money+1000; 
printf("\n您的余额为%d",money); 
getch();

    break; 
case '4': 
{
system("cls"); 
puts("============================================="); 
puts("| Your Save some Money,Thank you! |"); 
puts("| Press any key to return... |"); 
puts("============================================="); 
puts("please save some money:"); 
scanf("%ld",&y); 
if(y%100!=0) 
printf("该存款机只能处理整百的操作,请核查!!"); 
else 

money=money+y; 
printf("\n您的余额为%d",money);

getch();

    break; 
case '5': 
break; 
}
  return; 



/*Return,退出功能*/ 


void Return() 

system("cls"); 
puts("===================================="); 
puts("| Thank you for your using! |"); 
puts("| RETURN! |"); 
puts("===================================="); 
exit(1); 



//主函数 
int main() 


{
Login(); 
return 0;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 GUI 模拟 ATM 自动提款机的 Python 代码: ```python from tkinter import * from tkinter import messagebox class ATM: def __init__(self, master): self.master = master master.title("ATM") # 创建标签、输入框、按钮 self.balance_label = Label(master, text="余额:") self.balance_label.grid(row=0, column=0) self.balance_entry = Entry(master) self.balance_entry.grid(row=0, column=1) self.withdraw_label = Label(master, text="取款金额:") self.withdraw_label.grid(row=1, column=0) self.withdraw_entry = Entry(master) self.withdraw_entry.grid(row=1, column=1) self.withdraw_button = Button(master, text="取款", command=self.withdraw) self.withdraw_button.grid(row=2, column=1) def withdraw(self): # 获取余额和取款金额 balance = float(self.balance_entry.get()) withdraw_amount = float(self.withdraw_entry.get()) # 判断余额是否充足 if balance >= withdraw_amount: balance -= withdraw_amount self.balance_entry.delete(0, END) self.balance_entry.insert(0, str(balance)) messagebox.showinfo("成功", "取款成功!") else: messagebox.showerror("错误", "余额不足!") # 创建主窗口 root = Tk() # 创建 ATM 对象 atm = ATM(root) # 进入事件循环 root.mainloop() ``` 这个 GUI 程序包含一个余额标签、一个余额输入框、一个取款金额标签、一个取款金额输入框和一个取款按钮。当用户点击取款按钮时,程序会检查余额是否充足,如果充足则从余额中扣除取款金额,并更新余额输入框的显示。如果余额不足,则弹出错误消息框。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值