總覽:
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
? 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ā)展。