2019-07-29 Day2 C语言学习1

总览:

1. 头文件

2. Main函数

3. 返回值

4. 集成开发环境IDE

5. 关键字

6. 注释

7. printf和scanf

8. 数据类型

9. ATM模拟(2种)

10. ATM模拟(有密码)

目的:学习c语言

技术:

头文件:

“ ”表示编译器会首先从自己的工程里去查找这个头文件,如果没有那么会从系统库里查找。

< >表示编译器会首先从系统库里查找这个头文件,如果没有那么会从自己工程里去查找。


Main函数:任何一个程序必须有一个入口点


返回值:int标识这个程序的运行结果 0正常 1失败

0:程序正常退出,程序的资源自己分配

1:非正常退出,程序会没收运行过程中获取的资源


集成开发环境IDE

写代码:文本编辑器文本文档Sublime

编译:编译器:将高级语言转化为低级语言—预编译/预处理(将头文件展开)—汇编(将高级语言转化为汇编语言)—编译(得到二进制数据)—链接->可执行程序.exe—运行  javac  gcc 编译原理


关键字:编译器定义的char char *String(ps:不能用关键字给变量命名


单行注释://


多行注释:/* */不能嵌套  对一个方法函数注释


Printf(“a = %02\n”,a);

int  %d %02d不足的补齐

64位系统中占4个字节 32位占2个字节

定义一个整形:Int a =1;立刻为我们分配内存空间 赋初值1

声明一个整型变量int b; b = 2 ;没有分配内存空间 使用的时候才分配

float  %f %.1f小数点后6位

double %f打印时和float一样保存6位数字 计算时不会

long长整形 %ld  20字节

char  %c

char  *%s

size_t len = sizeof(int);判断所占字节

从终端输入数据scanf(“%d”,&  );中介是操作系统

1. 终端输入20 a b

2. 操作系统的io流来接收 缓存 20 a b

3. 将io流放到对应的内存空间 20-> 01x100;

getchar会将换行符也读取进来



应用实例:银行ATM界面内* * *****欢迎光临* * *****1.取款2.存款3.更改密码4.退出0输入不合法请重新输入6输入不合法请重新输入1



If的使用:

判断是否合法

条件:非0即真 0即假

  If( );          if( ); else if( );      if( );else;

switch (i){

case 1:

      print(“  ”);

      braek;

default:

      ;


技术的实现:

代码1:


```

#include "stdafx.h"

#include "iostream"


int _tmain(int argc, _TCHAR* argv[])

{  int choice=0;

//欢迎界面

printf("**************************\n");

printf("欢迎使用        \n");

printf("**************************\n");

printf("1.取款\n2.存款\n3.设置密码\n4.退出\n");

//显示操作

printf("请选择操作");

while(1)

{  scanf("%d",&choice);

switch(choice)

{

case 1:

printf("请取款\n");

break;

case 2:

printf("请存款\n");

break;

case 3:

printf("设置密码\n");

break;

case 4:

printf("退出\n");

break;

default:

printf("输入错误,请重新输入:");

break;

}

}

system("pause");

return 0;

}

```

代码2:

#include "stdafx.h"

#include "iostream"


int _tmain(int argc, _TCHAR* argv[])

{  //欢迎界面

printf("**************************\n");

printf("欢迎使用        \n");

printf("**************************\n");

printf("1.取款\n2.存款\n3.设置密码\n4.退出\n");

//显示操作

printf("请选择操作");

int i;

scanf("%d",&i);

for(int j=0;j<999;j++)

{

if(i==1||i==2||i==3||i==4)

/*

用if(0

*/

{

printf("请继续操作\n");

break;

}

else{

printf("输入不合法,请重新输入\n");

scanf("%d",&i);

}

}//判断选择是否合法

    system("pause");

return 0;

}




变量的作用域:从定义到结束的作用范围

局部变量

循环:

for(  )          //和数组相关,并且需要知道第几次

执行流程

  i=0

  I<10

  print

  i++

//i++是在一次循环结束之后才执行

continue结束当前循环,继续下次循环

break跳出当前循环


while(  )      //不关心第几次

应用实例2:

* * *****欢迎光临* * *****请输入密码:123错误-> 密码错误请重新输入: 最多输入4 -> 此卡已冻结 请联系客服 -> 退出正确->1.取款请输入取款金额:200-> 取款成功 当前余额为20->余额不足 是否继续Y/N 2.存款请输入金额:2000 -> 存款成功 当前余额:3000!3.更改密码请输入原始密码->请设置密码->请确认密码4.退出请选择操作:用函数实现


代码:

#include "stdafx.h"

#include "iostream"

int _tmain(int argc, _TCHAR* argv[])

{  int choice=0;

    int pass=123;

int money=100000;

//欢迎界面

printf("**************************\n");

    printf("          欢迎使用        \n");

printf("**************************\n");

printf("请输入密码:");

int p;

scanf("%d",&p);

if(p==pass)

{

    int y=1;

while(y==1)

{

printf("1.取款\n2.存款\n3.设置密码\n4.退出\n");

    printf("请选择操作");

scanf("%d",&choice);

switch(choice)

{

case 1:

printf("请输入取款金额:");

int m;

scanf("%d",&m);

if(m<=money)

{

    money=money-m;

printf("取款成功,您的余额为:%d元,是否继续1/0(1继续,0结束)\n",money);

int c1;

scanf("%d",&c1);

if(c1==y)

break;

else

    y=0;

}

else

{

printf("您的余额不足!请重新选择操作\n");

}

break;

case 2:

printf("请输入存款金额\n");

int m2;

if( m2 >0)

{

money=money+m2;

printf("存款成功,您的余额为:%d元是否继续1/0(1继续,0结束)\n",money);

int c2;

scanf("%d",&c2);

if(c2==y)

break;

else

    y=0;

}

case 3:

printf("请输入原始密码\n");

int p;

        scanf("%d",&p);

        if(p==pass)

{  int p1;

printf("请输入新密码:");

scanf("%d",&p1);

int p2;

printf("请确认密码:");

scanf("%d",&p2);

if(p1=p2)

{

pass=p1;

printf("密码修改成功,是否继续1/0(1继续,0结束");

int c1;

scanf("%d",&c1);

if(c1==y)

break;

else

    y=0;

}

else

{

printf("密码输入不一致,请重新输入:");

scanf("%d",&p2);

if(p1=p2)

{

pass=p1;

printf("密码修改成功,是否继续1/0(1继续,0结束");

int c1;

scanf("%d",&c1);

if(c1==y)

break;

else

    y=0;

}

}

}

else

{

for(int i=3;i>=0;i--)

{

if(i>0)

{

printf("输入错误,您还有%d次机会\n",i);

    printf("请输入密码:");

    scanf("%d",&p);

    }

else

{

printf("密码多次错误,卡已冻结,请练习客服!\n");

y=0;

}

}

break;

}

case 4:

printf("退出\n");

y=0;

break;

default:

printf("输入错误,请重新输入\n");

break;

}

}

}

else

{

for(int i=3;i>=0;i--)

{  if(p==pass)

{

    int y=1;

while(y==1)

{

printf("1.取款\n2.存款\n3.设置密码\n4.退出\n");

    printf("请选择操作");

scanf("%d",&choice);

switch(choice)

{

case 1:

printf("请输入取款金额:");

int m;

scanf("%d",&m);

if(m<=money)

{

    money=money-m;

printf("取款成功,您的余额为:%d元,是否继续1/0(1继续,0结束)\n",money);

int c1;

scanf("%d",&c1);

if(c1==y)

break;

else

    y=0;

}

else

{

printf("您的余额不足!请重新选择操作\n");

}

break;

case 2:

printf("请输入存款金额\n");

int m2;

if( m2 >0)

{

money=money+m2;

printf("存款成功,您的余额为:%d元是否继续1/0(1继续,0结束)\n",money);

int c2;

scanf("%d",&c2);

if(c2==y)

break;

else

    y=0;

}

case 3:

printf("请输入原始密码\n");

int p;

        scanf("%d",&p);

        if(p==pass)

{  int p1;

printf("请输入新密码:");

scanf("%d",&p1);

int p2;

printf("请确认密码:");

scanf("%d",&p2);

if(p1=p2)

{

pass=p1;

printf("密码修改成功,是否继续1/0(1继续,0结束");

int c1;

scanf("%d",&c1);

if(c1==y)

break;

else

    y=0;

}

else

{

printf("密码输入不一致,请重新输入:");

scanf("%d",&p2);

if(p1=p2)

{

pass=p1;

printf("密码修改成功,是否继续1/0(1继续,0结束");

int c1;

scanf("%d",&c1);

if(c1==y)

break;

else

    y=0;

}

}

}

else

{

for(int i=3;i>=0;i--)

{

if(i>0)

{

printf("输入错误,您还有%d次机会\n",i);

    printf("请输入密码:");

    scanf("%d",&p);

    }

else

{

printf("密码多次错误,卡已冻结,请练习客服!\n");

y=0;

}

}

break;

}

case 4:

printf("退出\n");

y=0;

break;

default:

printf("输入错误,请重新输入\n");

break;

}

}

}

if(i>0)

{

printf("输入错误,您还有%d次机会\n",i);

    printf("请输入密码:");

    scanf("%d",&p);

    }

else printf("密码多次错误,卡已冻结,请练习客服!\n");

}

}

system("pause");

return 0;

}

———————————————————————————————————————

总结:

进一步了解了C语言里数据类型,及它们在32位和64位系统中所占的字节。同时回忆了循环语句和条件语句的用法等。对编程的逻辑思维有了更进一步的认识,一切都在往好的方向发展。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容