一 程序基本原理
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; }
联合体可以不声明名称,称之为无名联合体