c语言的学习与实践3(函数实践以及实现ATM)

1.收获

今天我自己看了一遍视频,然后明白了许多函数的用法以及什么时候用,该怎样去定义函数。在看完视频后自己独立地将项目比较好的写了出来。在这过程中,我明白要去把整个项目的逻辑理清楚,分别分为哪几个部分,并且还要进行不断地思考。话不多说,看下面的过程就知道了。

2.过程

(1)进行登陆界面函数实现
通过简单地printf来实现。
//登陆界面

void welcome(void){
    printf_s("**************\n");
    printf_s("   欢迎使用\n");
    printf_s("**************\n");
}

(2)提示输入密码以及判断密码是否输入正确的函数
//输入密码

bool loginATM(void){
    int pw=0;
    int wrongtime=0;
    while(1){
    printf("请输入密码:");
    scanf_s("%d",&pw);
    if(pw==password){
    return true;
          }
    else { 
        wrongtime++;
        if(wrongtime==4){
        printf_s("此卡已冻结 请联系客服!\n");
        loginout();
        system("pause");
        return false;
                   }
        else {printf_s("密码错误 ");
              }
          }
    }
}

(3)密码正确后的显示操作

rintf_s("************\n");
        printf_s("1.取款\n");
        printf_s("2.存款\n");
        printf_s("3.修改密码\n");
        printf_s("4.退出\n");
        printf_s("************\n");

(4)判断操作是否正确

printf_s("请选择操作:");
        scanf_s("%d",&chiose);
        getchar();
        if(chiose==1||chiose==2||chiose==3||chiose==4){
            break;}
        else {
            printf_s("操作不合法 ");
               }

(5)判断操作是什么

switch(chiose){
    case 1:  outMoney();

        break;

    case 2:  putMoney();

        break;

    case 3: setpassword();

        break;

    default: loginout();

        system("pause");
        return 0;
          }

(6)在判断是什么操作之后,需要执行的操作我们用函数来实现
//取款

void outMoney(void){
    int outmoney=0;
    while(1){
       printf_s("请输入取款金额:");
       scanf_s("%d",&outmoney);
       if(outmoney>money||outmoney<0){
           printf_s("余额不足 ");
           bool ch=iscontinue();
           if(ch==false){return;
               }
          }
       else {money-=outmoney;
               printf_s("取款成功 当前余额为:%d\n",money);
                bool ch=iscontinue();
           if(ch==false){return;
                 }
              }
          }
    }

//存款


void putMoney(void){
    int putmoney=0;
    while(1){
    printf_s("请输入存款金额:");
        scanf_s("%d",&putmoney);
        money+=putmoney;
        printf_s("当前余额为:%d\n",money);
        bool ch=iscontinue();
        if(ch==false)return;
     }
}

//修改密码

void setpassword(void){
    int pw=0;
    int newpassword=0;
    int newpw=0;
    while(1){
        while(1){
            printf_s("请输入原始密码:");
            scanf_s("%d",&pw);
    
//判断原始密码是否正确
           if(pw!=password){
           printf_s("密码错误 ");
           }else {break;
                }
           }

//输入新的密码
        printf_s("请输入新密码:");
        scanf_s("%d",&newpw);
        printf_s("请再次输入新密码:");
        scanf_s("%d",&newpassword);

//判断两次密码是否一致
        if(newpw==newpassword){
          password=newpassword;
          printf_s("密码修改成功!\n");
          bool ch=iscontinue();
          if(ch==false)return;
           }
        else{
            printf_s("两次密码不一致 \n");
            bool ch=iscontinue();
            if(ch==false)return;
            }
      }
}

(7)在执行这些操作之后会有一个选择,是否继续进行该操作,我也用一个函数来实现
//是否继续操作

bool iscontinue(void){
    int ch;
     printf_s("是否继续 “是”请按1  “否”请按2:");
           scanf_s("%d",&ch);
           getchar();
           if(ch==2)return false;
           else return true;
}

(8)虽然这些函数已经定义了但是还是需要进行声明

void welcome(void);//登陆界面
bool loginATM(void);//登陆 输入密码
void loginout(void);//退出
void outMoney(void);//取款
bool iscontinue(void);//是否继续操作
void putMoney(void);//存款
void setpassword(void);//修改密码

(9)在这些函数中有些函数用到了相同的变量,这就需要我们将这些变量定义为全局变量

int password=123456;
int money=1000;
int _tmain(int argc, _TCHAR* argv[]){return 0;}

这些全局变量需要定义在主函数之前

3.最终效果

c语言的学习与实践3(函数实践以及实现ATM)_第1张图片
QQ图片20190731221835.png

4.不足

在这项目中还有很大的一部分都不是自己想出来的,,只是自己模仿过来的,不是属于自己的东西,还需要加强自生的水平,多去实际操作,多动手,多动脑,培养自己的逻辑思维。加油!!!

你可能感兴趣的:(c语言的学习与实践3(函数实践以及实现ATM))