2019-07-29 Day2 C語言學習1

總覽:

1. 頭文件

2. Main函數

3. 返回值

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

5. 關鍵字

6. 注釋

7. printf和scanf

8. 數據類型

9. ATM模擬(2種)

10. ATM模擬(有密碼)

目的:學習c語言

技術:

頭文件:

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

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


Main函數:任何一個程序必須有一個入口點


返回值:int標識這個程序的運行結果 0正常 1失敗

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

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


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

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

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


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


單行注釋://


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


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

int? %d %02d不足的補齊

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

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

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

float? %f %.1f小數點后6位

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

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

char? %c

char? *%s

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

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

1. 終端輸入20 a b

2. 操作系統(tǒng)的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("請繼續(xù)操作\n");

break;

}

else{

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

scanf("%d",&i);

}

}//判斷選擇是否合法

? ? system("pause");

return 0;

}




變量的作用域:從定義到結束的作用范圍

局部變量

循環(huán):

for(? )? ? ? ? ? //和數組相關肿孵,并且需要知道第幾次

執(zhí)行流程

? i=0

? I<10

? print

? i++

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

continue結束當前循環(huán)唠粥,繼續(xù)下次循環(huán)

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


while(? )? ? ? //不關心第幾次

應用實例2:

* * *****歡迎光臨* * *****請輸入密碼:123錯誤-> 密碼錯誤請重新輸入: 最多輸入4 -> 此卡已凍結 請聯系客服 -> 退出正確->1.取款請輸入取款金額:200-> 取款成功 當前余額為20->余額不足 是否繼續(xù)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元晤愧,是否繼續(xù)1/0(1繼續(xù),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元是否繼續(xù)1/0(1繼續(xù),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("密碼修改成功,是否繼續(xù)1/0(1繼續(xù)烙丛,0結束");

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結束");

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元媚值,是否繼續(xù)1/0(1繼續(xù)狠毯,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元是否繼續(xù)1/0(1繼續(xù)垃你,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("密碼修改成功,是否繼續(xù)1/0(1繼續(xù),0結束");

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結束");

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位系統(tǒng)中所占的字節(jié)。同時回憶了循環(huán)語句和條件語句的用法等乾翔。對編程的邏輯思維有了更進一步的認識爱葵,一切都在往好的方向發(fā)展。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末反浓,一起剝皮案震驚了整個濱河市萌丈,隨后出現的幾起案子,更是在濱河造成了極大的恐慌雷则,老刑警劉巖辆雾,帶你破解...
    沈念sama閱讀 212,294評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異月劈,居然都是意外死亡度迂,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 90,493評論 3 385
  • 文/潘曉璐 我一進店門猜揪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惭墓,“玉大人,你說我怎么就攤上這事湿右。” “怎么了罚勾?”我有些...
    開封第一講書人閱讀 157,790評論 0 348
  • 文/不壞的土叔 我叫張陵毅人,是天一觀的道長。 經常有香客問我尖殃,道長丈莺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,595評論 1 284
  • 正文 為了忘掉前任送丰,我火速辦了婚禮缔俄,結果婚禮上,老公的妹妹穿的比我還像新娘器躏。我一直安慰自己俐载,他們只是感情好,可當我...
    茶點故事閱讀 65,718評論 6 386
  • 文/花漫 我一把揭開白布登失。 她就那樣靜靜地躺著遏佣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪揽浙。 梳的紋絲不亂的頭發(fā)上状婶,一...
    開封第一講書人閱讀 49,906評論 1 290
  • 那天意敛,我揣著相機與錄音,去河邊找鬼膛虫。 笑死草姻,一個胖子當著我的面吹牛,可吹牛的內容都是我干的稍刀。 我是一名探鬼主播撩独,決...
    沈念sama閱讀 39,053評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼掉丽!你這毒婦竟也來了跌榔?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,797評論 0 268
  • 序言:老撾萬榮一對情侶失蹤捶障,失蹤者是張志新(化名)和其女友劉穎僧须,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體项炼,經...
    沈念sama閱讀 44,250評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡担平,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,570評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了锭部。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片暂论。...
    茶點故事閱讀 38,711評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拌禾,靈堂內的尸體忽然破棺而出取胎,到底是詐尸還是另有隱情,我是刑警寧澤湃窍,帶...
    沈念sama閱讀 34,388評論 4 332
  • 正文 年R本政府宣布闻蛀,位于F島的核電站,受9級特大地震影響您市,放射性物質發(fā)生泄漏觉痛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,018評論 3 316
  • 文/蒙蒙 一茵休、第九天 我趴在偏房一處隱蔽的房頂上張望薪棒。 院中可真熱鬧,春花似錦榕莺、人聲如沸俐芯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,796評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泼各。三九已至,卻和暖如春亏拉,著一層夾襖步出監(jiān)牢的瞬間扣蜻,已是汗流浹背逆巍。 一陣腳步聲響...
    開封第一講書人閱讀 32,023評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留莽使,地道東北人锐极。 一個月前我還...
    沈念sama閱讀 46,461評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像芳肌,于是被迫代替她去往敵國和親灵再。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,595評論 2 350

推薦閱讀更多精彩內容