C语言-ATM机

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
typedef struct card
{
    int cardNumber;
    int cardPassword;
    float money;
    bool state;
}Card;
//卡号相关函数
int cardManage(Card card[],int cardCount)
{
    printf("请输入卡号:");
    int cardNo=0;
    while (1) {
        scanf("%d",&cardNo);
        for (int i = 0 ;i<cardCount; i++) {
            if (cardNo==card[i].cardNumber&&card[i].state==1) {
                return i;
            }else if (cardNo==card[i].cardNumber&&card[i].state==0){
                printf("你的卡已被锁定,24小时不能操作,请及时联系我行工作人员。\n");
                return -1;
            }else
                continue;
        }
        printf("你输入的卡号不存在,请从新输入:");
    }
    return 0 ;
}
//密码信息相关函数
bool passWordInfo(Card card[],int number)
{
    printf("请输入密码:");
    int password=0;
    int times=3;
    while (times--) {
        scanf("%d",&password);
        if (password==card[number].cardPassword) {
            printf("密码输入正确!\n");
            return 1;
        }else{
            printf("密码输入正确,剩余次数%d\n",times);
        }
    }
    card[number].state=0;
    printf("密码输入三次,24小时不能对该卡操作");
    return 0;
}


void service(Card card[],int number)
{
    while (1) {
        printf("取款请按1\n存款请按2\n查询请按3\n退出请按0\n");
        int order =0;
        scanf("%d",&order);
        switch (order) {
            case 1:
                while (1) {
                printf("请输入取款金额,最高限额2000");
                int money=0;
                    scanf("%d",&money);
                    if (money>2000) {
                        printf("输入金额超过2000,请重新输入:\n");
                    }else if (money>card[number].money){
                        printf("余额不足,请重新输入:\n");
                    }else{
                        card[number].money-=money;
                        printf("取款成功,余额%f\n",card[number].money);
                        break;
                }
                     }
                
            case 2:
            {
            
                printf("请输入存款金额\n");
                int money=0;
                scanf("%d",&money);
                 card[number].money+=money;
                printf("存款成功,卡内余额为%f",card[number].money);
                break;
                
            }
             case 3:
                printf("卡内余额为:%f\n",card[number].money);
             case 0:
                return ;
            default:
                break;
        }
        printf("继续交易请按1\n 退回请按0\n");
        scanf("%d",&order);
        if (order==0) {
            return;
        }
        
    }
}
int main(int argc, const char * argv[])
{
    Card card[5]={
        {123,111,1000000,1},
        {234,222,1000,1},
        {345,333,10000,1},
        {456,444,100,1},
        {567,555,2387,1}};
    int number = 0;
    while (1) {
        number=cardManage(card, 5);
        if (number<0) {
            continue;
        }
        bool result;
        result=passWordInfo(card, number);
        if (result==0) {
            continue;
        }
        service(card, number);
    }
    return 0;
}

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值