Android Day3

Android Day3

技术应用:

今天主要复习了C语言中的一些基础知识,具体包括:
1.getchar方法,取走一个字符,换行符也可以读取进来
2.循环控制语句for,具体格式为:for(循环控制变量的初始化;条件;变量的变化){}
需要知道当前是第几次时用for,不需要则用while
关于是否在for循环内定义,涉及到变量的作用域,当需要将扩大作用域时在外面定义
注意()内条件不能省略 1和3可以省略 即for( ; 条件 ; ){}
3.++与--的使用:i++在一次循环之后再执行,而++i先加在进行循环
4.内存与硬盘的区别:RAM内存中内容断电即消失,硬盘中不会
5.函数:代码结构太复杂 不利于阅读 不利于移植
具体格式:
返回值 函数名称(形式参数,形式参数){} 形参相当于函数内部的局部变量
即在main函数中搭建框架 不做具体的事情 写代码的逻辑结构 具体的事情给每一个函数去实现
6.代码块-{} 一个代码块解决一个问题
7.return的用法 返回值 或提前终止某个函数
8.头文件.h 用于函数的声明 函数的声明 变量的声明(不能赋值)
执行文件.c
(1).创建.h文件
变量的声明 函数的声明/暴露接口给外部使用
(2).创建.c文件
函数的具体实现
还有私有的东西
(3).在.c文件中 分配内存空间 找到地址
(4).在使用的时候导入.h文件就可以了

具体应用为用函数编写一个ATM机登录取款存款的代码

首先定义全局变量并声明所用到的函数
int orgPwd = 123;
int totalMoney = 23200;
void welcome(void);
void loginATM(void);
void exitATM(int status);
void showMenu(void);
char getChoice(void);
void getMoney(void);
void inputMoney(void);
void changePwd(void);
在main函数中将功能实现
int main() {
welcome();
loginATM();
while (1)
{
    showMenu();
    char choice = getChoice();
    switch (choice) {
    case '1':
        getMoney();
        continue;
    case '2':
        inputMoney();
        continue;
    case '3':
        changePwd();
        continue;
    case '4':
        exitATM(EXIT_SUCCESS);
        break;
    default:
        exitATM(EXIT_FAILURE);
        break;
    }
  }
}
欢迎界面函数的具体实现
void welcome(void) {
  printf("*************\n");
  printf("   欢迎使用\n");
  printf("*************\n");
}
登录界面函数的具体实现
void loginATM(void) {
  int inputPassword = 0;
  int wrongTime = 0;
  printf("请输入密码(输入四次错将冻结账户):");
  while (1)
{
    scanf_s("%d", &inputPassword);
    if (orgPwd == inputPassword) {
        break;
    }
    else
    {
        wrongTime++;
        if (wrongTime == 4) {
            printf("密码错误四次,账户已冻结\n");
            exitATM(EXIT_FAILURE);
        }
        else
        {
            printf("密码错误,请重新输入:");
            continue;
        }
     }
  }
}
退出函数的具体实现,其形参为整型,显示退出的状态
void exitATM(int status) {
  printf("*************\n");
  printf("感谢您的使用,再见\n");
  printf("*************\n");
  exit(status);
}
菜单界面的显示
void showMenu(void) {
   printf("******************\n");
   printf("1.取款\n");
   printf("2.存款\n");
   printf("3.修改密码\n");
   printf("4.退出\n");
   printf("******************\n");
}
这里是选择操作界面的函数实现,此处运用数组,注意定义一个变量接受数组时,在地址符后面加上,数组变量数量才可以运行,不然会出错
  char getChoice(void) {
  char choice[20] = {};
  while (1)
{
    printf("请输入您的选择:");
    int count = scanf_s("%s", &choice, 20);
    if (count != 1) {
        printf("操作不可行,");
    }
    else
    {
        char ch = choice[0];
        if (ch == '1' || ch == '2' || ch == '3' || ch == '4') {
            return ch;
        }
        else
        {
            printf("输入不合法,");
        }
     }
   }
} 
取款界面具体函数的实现
void getMoney(void) {
  printf("正在取款,请选择取款金额:");
  int outputMoney;
  scanf_s("%d", &outputMoney);
  totalMoney -= outputMoney;
  printf("取款成功,当前余额为%d\n", totalMoney);
}
存款界面具体函数实现
void inputMoney(void) {
  printf("正在存款,请输入存款金额:");
  int inMoney;
  scanf_s("%d", &inMoney);
  totalMoney += inMoney;
  printf("存款成功,当前余额为%d\n", totalMoney);
}
修改密码函数具体的实现
void changePwd(void) {
  printf("正在修改密码,请输入原始密码:");
  int newPwd1;
  int newPwd2;
  int inputPwd;
  while (1){
    scanf_s("%d", &inputPwd);
    if (inputPwd == orgPwd) {
        printf("原始密码正确,请输入新密码:");
        scanf_s("%d", &newPwd1);
        printf("请再次输入新密码:");
        scanf_s("%d", &newPwd2);
        if (newPwd1 == newPwd2)
        {
            printf("密码修改成功\n");
            break;
        }
        else
        {
            printf("两次密码输入不一致,请重新输入原始密码:");
        }
    }
    else
    {
        printf("密码错误,请重新输入:");
    }
  }
}

感想

完成今天的学习之后我的感触很深,首先是觉得自己非常认真的完成了课堂上的听讲和练习,然后课下自己再去练习,可能因为自己之前c语言学的就不太理想,所以自己去练习的时候发现了很多的问题,首先就是不知道从什么地方入手,然后就是写着写着突然会卡住,思考之后才能慢慢写出来,再就是自己写出来的问题很多,花了很多时间才把润化好的代码写出来,虽然方法笨了点,效率低了点,能学到东西,已然欣慰

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容