c_结构体指针ATM机2

来源:互联网 发布:网络维护maxingit 编辑:程序博客网 时间:2024/05/08 15:46

(1)//

//  main.m

//  710ATM

//

//  Created by dllo on 15/7/10.

//  Copyright (c) 2015 flg. All rights reserved.

//


#import <Foundation/Foundation.h>

#import "ATM.h"

int main(int argc,constchar * argv[]) {

    ATM per1={"anyichen",1101,11101,10000};

    ATM per2={"ningzhiyuan",1102,11102,20000};

    ATM per3={"xiaoyahuizi",1103,11103,30000};

    ATM per4={"anleyan",1104,11104,40000};

    ATM per5={"wenshiqing",1105,11105,50000};

    ATM per[5]={per1,per2,per3,per4,per5};

    ATM *p=per;

    printf("输入账号:");

   int num=0;

    scanf("%d",&num);

    printf("输入密码:");

   int password=0;

    scanf("%d",&password);

    numandpassword(p,num,password,5);

(2)

//

//  ATM.h

//  710ATM

//

//  Created by dllo on 15/7/10.

//  Copyright (c) 2015 flg. All rights reserved.

//


#import <Foundation/Foundation.h>

#import "ATM.h"

struct ATM{

   char name[20];

   int number;

   int passWord;

   int money;

};

typedef struct ATM ATM;

void  numandpassword(ATM *p,int num,int password,int count);

void numandpasswordagin(ATM *p,int num,int password,int count);

void  numandpassword2(ATM *p,int num,int password,int count);

void numandpasswordagin1(ATM *p,int num,int password,int count);

void  numandpassword3(ATM *p,int num,int password,int count);

void moneyGet(ATM *p,int getMoneyNum);

void moneyGetagin(ATM *p,int getMoneyNum1);

void agin(ATM *p);

(3)


//

//  ATM.m

//  710ATM

//

//  Created by dllo on 15/7/10.

//  Copyright (c) 2015 flg. All rights reserved.

//


#import "ATM.h"

int falseNum=0;

void agin(ATM *p){

    printf("输入账号:");

   int num=0;

    scanf("%d",&num);

    printf("输入密码:");

   int password=0;

    scanf("%d",&password);

   if (num==falseNum) {

    printf("此账号已被锁定....\n");

    agin(p);

    }

    numandpassword(p,num,password,5);

};


int n=0;

void  numandpassword(ATM *p,int num,int password,int count){

   for (int i=0; i<count; i++) {

       if (p[i].number==num&&p[i].passWord==password) {

            n=i;

                printf("登陆成功\n");

                printf("姓名:%s\n可取金额:%d\n",p[i].name,p[i].money);

           int getMoneyNum=0;

            printf("输入取款金额(<=可取款余额且是100的倍数):");

            scanf("%d",&getMoneyNum);

            moneyGet(p,getMoneyNum);

        }

    }

    printf("账号或密码错误\n");

        numandpasswordagin(p, num, password, count);

};

void  numandpassword3(ATM *p,int num,int password,int count){

   for (int i=0; i<count; i++) {

       if (p[i].number==num&&p[i].passWord==password) {

            n=i;

            printf("登陆成功\n");

            printf("姓名:%s\n可取金额:%d\n",p[i].name,p[i].money);

           int getMoneyNum=0;

            printf("输入取款金额(<=可取款余额且是100的倍数):");

            scanf("%d",&getMoneyNum);

            moneyGet(p,getMoneyNum);

        }

    }

         printf("账号或密码3次错误,24小时内不允许对该账号操作\n");

    falseNum=num;

    agin(p);


};

void numandpasswordagin1(ATM *p,int num,int password,int count){

    printf("输入账号(剩余1):");

   int num1=0;

    scanf("%d",&num1);

    printf("输入密码(剩余1):");

   int password1=0;

    scanf("%d",&password1);

    numandpassword3(p,num1,password1,5);

}

void  numandpassword2(ATM *p,int num,int password,int count){

   for (int i=0; i<count; i++) {

       if (p[i].number==num&&p[i].passWord==password) {

            n=i;

            printf("登陆成功\n");

            printf("姓名:%s\n可取金额:%d\n",p[i].name,p[i].money);

           int getMoneyNum=0;

            printf("输入取款金额(<=可取款余额且是100的倍数):");

            scanf("%d",&getMoneyNum);

            moneyGet(p,getMoneyNum);

        }

    }

            printf("账号或密码错误\n");

                numandpasswordagin1(p, num, password, count);

};

void numandpasswordagin(ATM *p,int num,int password,int count){

    printf("输入账号(剩余2):");

   int num1=0;

    scanf("%d",&num1);

    printf("输入密码(剩余2):");

   int password1=0;

    scanf("%d",&password1);

    numandpassword2(p,num1,password1,5);

}

void moneyGetagin(ATM *p,int getMoneyNum){

    printf("请重新输入取款金额(<=可取款余额且是100的倍数):");

    scanf("%d",&getMoneyNum);

    moneyGet(p,getMoneyNum);

};

   void moneyGet(ATM *p,int getMoneyNum){

       if (getMoneyNum%100==0&&p[n].money>=getMoneyNum) {

            p[n].money-=getMoneyNum;

            printf("余额为:");

            printf("%d\n",p[n].money);

            printf("请稍等,系统正在为你准备出钞......\n");

            printf("请取款.........");

            printf("\n");

            printf("\n");

            agin(p);

        }

       else{moneyGetagin(p, getMoneyNum);};

    };














0 0
原创粉丝点击