一 程序基本原理
1.什么是計算機語言?
計算機程序設計語言是計算機可以識別的語言,用于描述解決問題的方法,供計算機閱讀和執行。
2.什么是指令?
所謂指令,是計算機可以識別的命令。
3.什么是面向對象?
面向對象的編輯語言將客觀事務看作具有屬性和行為(或稱為服務)的對象,通過抽象找出同一類的共同屬性(靜態特征)和行為(動態特征),形成類。對象也就是一組屬性和一組行為的構成
4.是么是面向對象的方法?
首先將數據和對數據的操作方法放在一起,作為一個相互依存,不可分離的整體--對象。對同類型的對象抽象出其共性,形成類。類中大多數數據,智能用本類方法進行處理。類通過一個簡單的外部接口與外界發生關系。對象與對象之間通過消息進行通訊。
5.什么是類》
具有相同屬性和服務一組對象的集合
6.面向對象的軟件開發
面向對象的分析(OOA) 面向對象設計(OOD) 面向對象編程(OOP) 面向對象測試(OOT) 面向對象的軟件維護(OOSM)
7.程序類型
翻譯程序有三種不同的類型
匯編程序 編譯程序 解釋程序
二:C/C++基礎
2.1一個簡單的C/C++程序:
#include<iostream.h>
void main()
{ cout<<"hello world!"<<endl;
cout<<"welcome to our c++ \n";
}
2.2字符集
字符集是構成C++的基本元素。
英文字母A-Z,a-z;
數字字符0-9;
特殊字符
空格 ! # % ^&*()+=-<>/\" 等
標識符
以大寫字母和小寫字母以及下劃線開始
可以有大寫字母小寫字母以及數字組成
大寫字母和小寫字母代表不同標識符
不能是C++關鍵字
2.3 C++的注釋
/* */ 段落間的注釋
// 一行一行的注釋
常量:整型常量 (十進制 八進制 十六進制)
十進制 【0-9】
八進制 【0/0--9 】
十六進制 【0x/0-9】
實型常量 一般形式 12.5 -12.5
指數形式 0.34E+2 -34.53e-4 實型常量 默認為double 如果后綴為F 則是float
字符常量
'A','a','d','?','$' \nnn 八進制形式 '\X61'='a' 十六進制 \xnnn
字符串常量
"this is a string"
布爾常量
只有兩個 false(假) true(真)
變量 變量在使用之前一定要聲明。
數據類型 變量名1,變量名2,變量名3,…………變量名N;
例如
int a,b;
folat v,r h;
在聲明一個變量時也可以給它賦初值 : int a=3;
double f=4.55;
char c='3';
int a(4);
變量存儲了行, 變量除具有數據類型外,還具有存儲類型。
auto: 采用堆棧方式分配內存空間,屬于暫時性存儲。其存儲空間可被若干變量多次覆蓋
register:存放在通用寄存器內
extern: 在所有函數和程序段都可以引用
static: 在內存中以固定地址存放,整個程序運行期均有用
符號常量
符號常量在使用前一定要聲明
const 類型說明符 常量名=常量值;
數據類型說明符 const 常量名 =常量值;
const float pi=3.1415926;
符號常量在聲明時一定要賦初值,否則時錯誤的
以下聲明就是錯誤的
const float pi;
pi=3.1415926; // 這是錯誤的。
計算
C=i++; 現把i值賦給C
B=++i; 現使i +1 之后賦值給B
a+=3 等價 a=a+3
a+=a-=a*a 等價于 a=a+(a=a-(a*a))
逗號表達式
int a;
a=3*5,a*4 //最終結果是60;
條件運算符
表達式1?表達式2:表達式3
cout<<(score>=60?"pass":"fail");
sizeof(類型名)
或者sizeof(表達式)
計算某種類型的對象在內存所占的字節數
數據的輸入和輸出
C++中,將數據從一個對象到令一個對象的流動抽象為"流"
C++ I/O 流類庫 iomanip.h
dec 數值數據采用十進制
Hex 數值采用16進制
Oct 數值采用8進制
Ws 取空白符
endl 換行符,刷新流
ENDS 插入空白符
setprecision(INT) 設置浮點數的小數位數
setw(int) 設置域寬
算法基本結構
順序 選擇 循環
1.用IF語句實現選擇結構
if(表達式) 語句1
else 語句2
例如
if(x>y) cout<<x;
else
cout<<y;
if(表達式) 語句 例如 if(x>y) cout<<x;
判斷一個年份是否為閏年
分析:
閏年年份被4整除不能被100整除,或者能被400整除。因此
isleapyear((year%4= =0&& year%100 !=0)||(year%400==0) );
if(isleapyear)
{cout<<"this year is leapyear"<<year;}
else
{cout<<"this year is not leapyear"<<year;}
多重選擇結構
if(表達式1)
if(表達式2) 語句1
esle 語句2
else
if(表達式3)語句3
else
語句4
例如
cin>>x>>y;
if(x!=y)
if(x>y)
cout<<x;
else cout<<y;
else
cout<<"x=y"<<endl;
if else if 語句
if(表達式) 語句1
else if (2) 語句2
esle if(3) 語句3
esle 語句N;
switch 語句
switch( 表達式)
{ case 常量表達式1:語句1
break;
case 常量表達式n: 語句N
break;
default:語句N+1
break;
}
例如:
#include<iostream.h>
void main()
{ int day;
cout<<"Please input day"<<endl;
cin>>day;
switch(day)
{ case 0: cout<<"sunday"<<end;
break;
case 1: cout<<"monday"<<endl;
break;
case 6: cout<<"saturday"<<endl;
break;
default: cout<<"the error day!";
break;
}
}
循環結構
while(i<10)
{ sum+=i[
i++
}
do
{ sum=sum+i;
i++;
} while(i<=10);
輸入一個整數,將各位數字翻轉后輸出。。。
#include<iostram.h>
void main()
{ int n; right_digit;
cout<<"enter the number";
cin>>n;
do
{ right_digit=n%10;
cout<<right_digit;
n=n/10;
} while(n!=0);
cout<<endl;
}
for yu語句
1..for(i=1;i<10;i++) sum=sum+i;
2..i=1;
for(;i<10;i++) sum=sum+i;
3..for(i=0,j=0;i<=j;i++,j--) k=i+j;
4..for(i=0;i<10;)sum=sum+i;i++;
用FOR可以解決所有循環問題
求出一個數的所有因子
#include<iostream.h>
void main()
{ int n,k;
for(k=1;k<=n;k++)
{ if(n%k==0)
cout<<k<<"";
cout<<endl;
}
}
自定義類型
typedef
typedef int natural;
natural t1,t2;
定義natural可以為整型變量
枚舉類型 enum
enum 枚舉類型名 {變量值列表}
enum weekday{sun,mon,tue,wed, thu,sat};
對枚舉類型按照常量處理,但不能賦初值
枚舉類型具有默認值 依次分別為0,1,2,3,4,…………等
也可在聲明時另行指定枚舉元素的值 如
enum weekday{sun=7,mon=1,………………};
整數值不能直接賦予枚舉類型。若需將整數值賦給枚舉變量,應進行強制類型轉換
枚舉可進行關系運算
例如
#include<iostream.h>
enum game_result(win lose tie cancel);
int main()
{ game_result result;
emum game_result omit=cancel;
int count;
for(count=win;count<=cancel;count++)
{ result=(game_result)count;
if(result=omit)
{cout<<"the game is cancelled";}
else
{ cout<<"the game was played";
if(result=win)
cout<<"and won";
if (result=lose)
cout<<"and lost"
}
}
return 0;
}
五個顏色不同的彩球,每次取三個,三個顏色均不相同。問有多少種取法。
5×4×3=60
enmu color {red,yellow,blue,white,black}
int i,j,k;
int n=0;
for(i=red;i<=black;i++)
for(j=red;j<=black;j++)
if(i!=j)
{ for(k=red;k<=black;k++)
if((k!=i)&&(k!=j))
{ n=n+1 }
cout<<n;
for(loop=1;loop<=3;loop++)
{ switch(loop)
{ case 1:pr1=(enum color)i;break;
case 2:pr1=(enum color)j;break;
case 3:pr1=(enum color)k;break;
default:break; }
switch(pr1)
{ case red: cout<<"red"; break;
case blue :^………………
……………………
default:break;}
}}
cout<<n; }
結構體變量
struct student
{ int num;
char name[20];
char sex;
}
student student1;
studen1.name="zhang san"
聯合體
有時需要幾個不同類型的變量共用一組內存單元,這時可以聲明一個聯合體類型
union uarea
{ char c_data;
long i_data; }
聯合體可以不聲明名稱,稱之為無名聯合體