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语言学的就不太理想,所以自己去练习的时候发现了很多的问题,首先就是不知道从什么地方入手,然后就是写着写着突然会卡住,思考之后才能慢慢写出来,再就是自己写出来的问题很多,花了很多时间才把润化好的代码写出来,虽然方法笨了点,效率低了点,能学到东西,已然欣慰