c语言-(编写代码时用函数和不用函数)


心得体会

随着对代码的逐渐熟悉,越发觉得养成逻辑思维和调整自己时间的重要性。经历了几天的代码生活,真心感到有一丝的疲惫,写程序的时候,写一个代码要花好长时间,有时会觉得脑袋有点懵,感觉很难合理安排自己的时间。编程序对我现在来说是一件很困难的事情,但也是一件很有趣的事情。今天所学的知识中,让我尤为影响深刻的是用函数和不用函数编ATM,对比起来,用函数的逻辑思维更强,并且查找错误也更方便。

目的

1.不断练习,熟练掌握c语言阶段的练习
2.养成逻辑思维

应用

  • ATM不用函数实现
  • ATM用函数实现

技术

  • 编写ATM的欢迎界面
  • 编写ATM的密码输入过程
  • 选择操作
  • 取款
  • 存款
  • 修改密码

每个技术如何使用

  • 用c语言编写ATM的欢迎界面
    1.不用函数
printf("**************\n");
    printf("   欢迎使用\n");
    printf("**************\n");

2.用函数

void welcome(void);

welcome();

    printf("***************\n");
    printf("   欢迎使用ATM\n");
    printf("***************\n");
}
  • 编写ATM的登录过程,密码输入
    1.不用函数
printf("请输入密码:");
    while (1) {
        scanf("%d", &inputPwd);
        if (inputPwd == password) {
            //密码正确
            break;
        }else{
            totalTime--;
            if (totalTime == 0) {
                printf("此卡已冻结 请联系客服!\n");
                //退出
                exit(EXIT_FAILURE);
            }else{
                printf("密码不正确 请重新输入:");
            }
        }

2.用函数

bool loginATM(void);

bool result=loginATM( );
    if(result==false){
    //强行退出
         exitATM(EXIT_FAILURE);
    }

bool loginATM(void){
    int password=0;
    int totalTime=4;
    while(1)
    {
        printf("请输入密码:");
        scanf_s("%d",&password);
        if(password==orgPassword){
            return true;
        }else {
            totalTime--;
            if(totalTime==0){
               return false;
               }else{
                 printf("密码输入错误,请重新输入");
               }
           }
       }
    }
        
     printf("操作不合法");
        }
     }
  }
  }
  • 选择操作
    1.不用函数
 char ch[20] = {};
        while (1) {
            //去掉上一次输入的回车符 \n
            printf("请选择操作:");
            int count = scanf("%s", ch);
            
            if (count != 1) {
                 printf("输入不合法 ");
            } else{
                //获取第一个字符
                choice = ch[0];
                
                if (choice == '1' || choice == '2' || choice == '3' || choice == '4') {
                    break;
                } else{
                    printf("输入不合法 ");
                }
            }

2.用函数

char getChoice(void){
    //将输入的所有字符串全部从缓存里面读取出来
    char temp[20] = {};
    
    while (1) {
        printf("请选择操作:");
        int count = scanf("%s", temp);
  
        //确保值输入一个字符
        if (count != 1) {
            printf("输入不合法,");
        } else{
            //获取输入的字符
            char ch = temp[0];
            
            //虽然输入一个字符 也可能不正确
            if (ch == '1' || ch == '2' || ch == '3' || ch == '4') {
                return ch;
            }else{
                printf("输入不合法,");
            }
        }
        
    }
}
  • 取款
    1.不用函数
 switch (choice) {
            case '1':
                //取款
                while(1){
                    int outMoney = 0;
                    printf("请输入取款金额:");
                    scanf("%d", &outMoney);
                    
                    if (outMoney > totalMoney) {
                       //金额不足
                        printf("余额不足是否继续(y/n):");
                        getchar();
                        choice2 = getchar();
                        if (choice2 == 'n') {
                            break;
                        }
                    }else{
                        totalMoney -= outMoney;
                        printf("取款成功 余额为:%d\n", totalMoney);
                        break;
                    }
                    
                }
                break;

2.用函数

void withdraw(void){
    int outMoney = 0;
    
    while (1) {
        printf("请输入取款金额:");
        scanf("%d", &outMoney);
        
        if(outMoney > 0 && outMoney <= totalMoney){
            totalMoney = totalMoney - outMoney;
            
            printf("取款成功 余额为:%d\n", totalMoney);
            //提示是否继续
            bool ch = isContinue();
            if (ch == false) {
                return; //break;
            }
        }else{
            printf("余额不足,");
        }
    }
}
  • 存款
    1.不用函数
case '2':
                printf("请输入存款金额:");
                int inputMoney = 0;
                scanf("%d", &inputMoney);
                totalMoney += inputMoney;
                printf("存款成功 余额为:%d\n", totalMoney);
                break;

2.用函数

void deposit(void){
    int intputMoney = 0;
    while (1) {
        printf("请输入存款金额:");
        scanf("%d", &intputMoney);
        
        totalMoney = totalMoney + intputMoney;
        printf("存款成功,余额为:%d\n", totalMoney);
        bool ch = isContinue();
        if (ch == false) {
            return; //break;
        }
    }
}
  • 修改密码
    1.不用函数
case '3':
                
                while (1) {
                    printf("请输入新密码:");
                    scanf("%d", &newPassword1);
                    
                    printf("请确认密码:");
                    scanf("%d", &newPassword2);
                    
                    if (newPassword1 == newPassword2){
                        password = newPassword1;
                        printf("更改密码成功\n");
                        break;
                    }else{
                        printf("两次密码不一致 ");
                    }
                }

2.用函数

void setPassword(void){
    int newPwd1 = 0;
    int newPwd2 = 0;
    
    while (1) {
        //输入原始密码
        bool result = loginATM();
        if (result == true) {
            while (1) {
                printf("请输入新密码:");
                scanf("%d", &newPwd1);
                
                printf("请确认密码:");
                scanf("%d", &newPwd2);
                
                if (newPwd1 == newPwd2) {
                    printf("设置密码成功!\n");
                    return;
                } else{
                    printf("两次密码不一致,");
                }
            }
            
        }
    }
}

为什么要使用函数

1.代码结构太复杂 不利于阅读 不利于移植/拷贝
2.函数实际上是一个代码块 一个代码块解决一个问题
3.代码块就是大括号 {}

实际使用

c语言-(编写代码时用函数和不用函数)_第1张图片
20190731_220913.gif
c语言-(编写代码时用函数和不用函数)_第2张图片
20190731_221137.gif

今日错误总结

  • if语句的括号内加了“ ”
  1. 错误示范:
if(“   ”){}

2.正确示范

if(){ }
  • printf 输入语句是加了&(地址符)
  1. 错误示范:
printf("账户余额为%d",*&money*);

2.正确示范

printf("账户余额为%d",*money*);
  • scanf输入语句中
    1.错误示范:
scanf("%d%",&draw_money);

2.正确示范

scanf("%d",&draw_money);
  • 总结
    要细心点!!!

你可能感兴趣的:(c语言-(编写代码时用函数和不用函数))