C语言-ATM机

来源:互联网 发布:java如何合并两个list 编辑:程序博客网 时间:2024/04/27 16:57
#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;}

0 0
原创粉丝点击