2019-07-29 Day2 C語言學(xué)習(xí)1

總覽:

1. 頭文件

2. Main函數(shù)

3. 返回值

4. 集成開發(fā)環(huán)境IDE

5. 關(guān)鍵字

6. 注釋

7. printf和scanf

8. 數(shù)據(jù)類型

9. ATM模擬(2種)

10. ATM模擬(有密碼)

目的:學(xué)習(xí)c語言

技術(shù):

頭文件:

“ ”表示編譯器會首先從自己的工程里去查找這個頭文件,如果沒有那么會從系統(tǒng)庫里查找。

< >表示編譯器會首先從系統(tǒng)庫里查找這個頭文件,如果沒有那么會從自己工程里去查找。


Main函數(shù):任何一個程序必須有一個入口點(diǎn)


返回值:int標(biāo)識這個程序的運(yùn)行結(jié)果 0正常 1失敗

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

1:非正常退出,程序會沒收運(yùn)行過程中獲取的資源


集成開發(fā)環(huán)境IDE

寫代碼:文本編輯器文本文檔Sublime

編譯:編譯器:將高級語言轉(zhuǎn)化為低級語言—預(yù)編譯/預(yù)處理(將頭文件展開)—匯編(將高級語言轉(zhuǎn)化為匯編語言)—編譯(得到二進(jìn)制數(shù)據(jù))—鏈接->可執(zhí)行程序.exe—運(yùn)行? javac? gcc 編譯原理


關(guān)鍵字:編譯器定義的char char *String(ps:不能用關(guān)鍵字給變量命名


單行注釋://


多行注釋:/* */不能嵌套? 對一個方法函數(shù)注釋


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

int? %d %02d不足的補(bǔ)齊

64位系統(tǒng)中占4個字節(jié) 32位占2個字節(jié)

定義一個整形:Int a =1;立刻為我們分配內(nèi)存空間 賦初值1

聲明一個整型變量int b; b = 2 ;沒有分配內(nèi)存空間 使用的時候才分配

float? %f %.1f小數(shù)點(diǎn)后6位

double %f打印時和float一樣保存6位數(shù)字 計算時不會

long長整形 %ld? 20字節(jié)

char? %c

char? *%s

size_t len = sizeof(int);判斷所占字節(jié)

從終端輸入數(shù)據(jù)scanf(“%d”,&? );中介是操作系統(tǒng)

1. 終端輸入20 a b

2. 操作系統(tǒng)的io流來接收 緩存 20 a b

3. 將io流放到對應(yīng)的內(nèi)存空間 20-> 01x100;

getchar會將換行符也讀取進(jìn)來



應(yīng)用實(shí)例:銀行ATM界面內(nèi)* * *****歡迎光臨* * *****1.取款2.存款3.更改密碼4.退出0輸入不合法請重新輸入6輸入不合法請重新輸入1



If的使用:

判斷是否合法

條件:非0即真 0即假

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

switch (i){

case 1:

? ? ? print(“? ”);

? ? ? braek;

default:

? ? ? ;


技術(shù)的實(shí)現(xiàn):

代碼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.設(shè)置密碼\n4.退出\n");

//顯示操作

printf("請選擇操作");

while(1)

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

switch(choice)

{

case 1:

printf("請取款\n");

break;

case 2:

printf("請存款\n");

break;

case 3:

printf("設(shè)置密碼\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.設(shè)置密碼\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("請繼續(xù)操作\n");

break;

}

else{

printf("輸入不合法,請重新輸入\n");

scanf("%d",&i);

}

}//判斷選擇是否合法

? ? system("pause");

return 0;

}




變量的作用域:從定義到結(jié)束的作用范圍

局部變量

循環(huán):

for(? )? ? ? ? ? //和數(shù)組相關(guān),并且需要知道第幾次

執(zhí)行流程

? i=0

? I<10

? print

? i++

//i++是在一次循環(huán)結(jié)束之后才執(zhí)行

continue結(jié)束當(dāng)前循環(huán),繼續(xù)下次循環(huán)

break跳出當(dāng)前循環(huán)


while(? )? ? ? //不關(guān)心第幾次

應(yīng)用實(shí)例2:

* * *****歡迎光臨* * *****請輸入密碼:123錯誤-> 密碼錯誤請重新輸入: 最多輸入4 -> 此卡已凍結(jié) 請聯(lián)系客服 -> 退出正確->1.取款請輸入取款金額:200-> 取款成功 當(dāng)前余額為20->余額不足 是否繼續(xù)Y/N 2.存款請輸入金額:2000 -> 存款成功 當(dāng)前余額:3000!3.更改密碼請輸入原始密碼->請設(shè)置密碼->請確認(rèn)密碼4.退出請選擇操作:用函數(shù)實(shí)現(xiàn)


代碼:

#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.設(shè)置密碼\n4.退出\n");

? ? printf("請選擇操作");

scanf("%d",&choice);

switch(choice)

{

case 1:

printf("請輸入取款金額:");

int m;

scanf("%d",&m);

if(m<=money)

{

? ? money=money-m;

printf("取款成功,您的余額為:%d元,是否繼續(xù)1/0(1繼續(xù),0結(jié)束)\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元是否繼續(xù)1/0(1繼續(xù),0結(jié)束)\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("請確認(rèn)密碼:");

scanf("%d",&p2);

if(p1=p2)

{

pass=p1;

printf("密碼修改成功,是否繼續(xù)1/0(1繼續(xù),0結(jié)束");

int c1;

scanf("%d",&c1);

if(c1==y)

break;

else

? ? y=0;

}

else

{

printf("密碼輸入不一致,請重新輸入:");

scanf("%d",&p2);

if(p1=p2)

{

pass=p1;

printf("密碼修改成功,是否繼續(xù)1/0(1繼續(xù),0結(jié)束");

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次機(jī)會\n",i);

? ? printf("請輸入密碼:");

? ? scanf("%d",&p);

? ? }

else

{

printf("密碼多次錯誤,卡已凍結(jié),請練習(xí)客服!\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.設(shè)置密碼\n4.退出\n");

? ? printf("請選擇操作");

scanf("%d",&choice);

switch(choice)

{

case 1:

printf("請輸入取款金額:");

int m;

scanf("%d",&m);

if(m<=money)

{

? ? money=money-m;

printf("取款成功,您的余額為:%d元,是否繼續(xù)1/0(1繼續(xù),0結(jié)束)\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元是否繼續(xù)1/0(1繼續(xù),0結(jié)束)\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("請確認(rèn)密碼:");

scanf("%d",&p2);

if(p1=p2)

{

pass=p1;

printf("密碼修改成功,是否繼續(xù)1/0(1繼續(xù),0結(jié)束");

int c1;

scanf("%d",&c1);

if(c1==y)

break;

else

? ? y=0;

}

else

{

printf("密碼輸入不一致,請重新輸入:");

scanf("%d",&p2);

if(p1=p2)

{

pass=p1;

printf("密碼修改成功,是否繼續(xù)1/0(1繼續(xù),0結(jié)束");

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次機(jī)會\n",i);

? ? printf("請輸入密碼:");

? ? scanf("%d",&p);

? ? }

else

{

printf("密碼多次錯誤,卡已凍結(jié),請練習(xí)客服!\n");

y=0;

}

}

break;

}

case 4:

printf("退出\n");

y=0;

break;

default:

printf("輸入錯誤,請重新輸入\n");

break;

}

}

}

if(i>0)

{

printf("輸入錯誤,您還有%d次機(jī)會\n",i);

? ? printf("請輸入密碼:");

? ? scanf("%d",&p);

? ? }

else printf("密碼多次錯誤,卡已凍結(jié),請練習(xí)客服!\n");

}

}

system("pause");

return 0;

}

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

總結(jié):

進(jìn)一步了解了C語言里數(shù)據(jù)類型,及它們在32位和64位系統(tǒng)中所占的字節(jié)。同時回憶了循環(huán)語句和條件語句的用法等。對編程的邏輯思維有了更進(jìn)一步的認(rèn)識,一切都在往好的方向發(fā)展。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 4,092評論 0 2
  • 第1章 第一個C程序第2章 C語言基礎(chǔ)第3章 變量和數(shù)據(jù)類型第4章 順序結(jié)構(gòu)程序設(shè)計第5章 條件結(jié)構(gòu)程序設(shè)計第6章...
    小獅子365閱讀 10,894評論 3 71
  • 宿舍管理查詢 #include "stdio.h" #include "stdlib.h" /* 標(biāo)準(zhǔn)庫函數(shù)*/ ...
    YQ_蒼穹閱讀 840評論 0 2
  • C語言的學(xué)習(xí)要從基礎(chǔ)開始,這里是100個經(jīng)典的算法-1C語言的學(xué)習(xí)要從基礎(chǔ)開始,這里是100個經(jīng)典的 算法 題目:...
    Poison_19ce閱讀 1,318評論 0 0
  • 烽火芳菲的劇情簡介· · · · · · 珍珠港事件后為了鼓舞士氣,美國時任總統(tǒng)下令轟炸東京。在任務(wù)完成后,由于燃...
    貝卡Torches閱讀 290評論 0 0

友情鏈接更多精彩內(nèi)容