终极目标 ------->数据处理
4.1用运算符对数据进行计算
4.1.1用表达式表达设计意图
4.1.2算数运算符
1.+ - * /:加减乘除
2.%:取余
3.前置运算符的效率优于后置运算符
3.前置运算符不易产生误解
4.1.3赋值操作符
1.算数运算符与赋值操作符复合:
+=/-=/*=//=/%=
4.1.4关系运算符
1.==,>= , <= , !=
2.浮点数不要使用“==”
3.条件运算符:
条件判断表达式 ?true表达式:false表达式
4.1.5逻辑运算符
1.!:逻辑非
2.&&:逻辑与
3.||:逻辑或
4.1.6运算符之间的优先顺序
1.与优先于或
2.关系运算符优先于加减
4.1.7将表达式组织成语句
4.2条件选择语句
4.2.1 if语句
1.if 语句中的else部分可以省略
2.if语句可以实现嵌套
3.if语句可以并列
// learn4.4.1.2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"请输入两个整数:"<<endl;
int v1,v2;
//获取用户输入的数字
cin>>v1>>v2;
if( v1 != v2 )//判断v1和v2是否相等,如果不相等,则继续判断大小
{
//第二级if语句
//如果不相等,则继续判断v1是否大于v2
if( v1 > v2 )
{
cout<<" v1 > v2 "<<endl;
}
else
{
cout<<" v1 < v2 "<<endl;
}
}
else //v1与v2相等
{
cout<<" v1 = v2 "<<endl;
}
return 0;
}
// learn4.4.1.2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"请输入两个整数:"<<endl;
int v1,v2;
//获取用户输入的数字
cin>>v1>>v2;
if( v1 != v2 )//判断v1和v2是否相等,如果不相等,则继续判断大小
{
//第二级if语句
//如果不相等,则继续判断v1是否大于v2
if( v1 > v2 )
{
cout<<" v1 > v2 "<<endl;
}
else
{
cout<<" v1 < v2 "<<endl;
}
}
else //v1与v2相等
{
cout<<" v1 = v2 "<<endl;
}
int v3, v4;
cin>>v3>>v4;
if( v3 < v4 )//判断v3是否小于v4
{
cout<<" v3 < v4 "<<endl;
}
else if( v1 > v2 )
{
cout<<" v3 > v4 "<<endl;
}
else
{
cout<<" v3 = v4 "<<endl;
}
return 0;
}
4.2.2并列选择的switch语句
// learner4.2.2.3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
//显示提示信息,提示用户进行选择
cout<<"感谢您购买本书!、请输入序号,选择您从何种途径得知本书。"<<endl;
cout<<"1、通过搜索引擎"<<endl;
cout<<"2、通过朋友介绍"<<endl;
cout<<"3、通过书店"<<endl;
cout<<"4、通过其他途径"<<endl;
//接受用户输入的选项
int nWay;
cin>>nWay;
//使用switch选择结构,比对用户输入的选项,输出相应的信息
switch(nWay)
{
case 1:
cout<<"您是通过搜索引擎得知本书的。"<<endl;
break;
case 2:
cout<<"您是通过朋友介绍得知本书的"<<endl;
break;
case 3:
cout<<"您是通过书店得知本书的。"<<endl;
break;
case 4:
cout<<"您是通过其他途径得知这本书的"<<endl;
break;
default:
cout<<"错误的选择!请输入数字1~4做出选择"<<endl;
}
//显示提示信息,提示用户进行选择
cout<<"欢迎点餐,请选择您要的套餐"<<endl;
cout<<"1.鸡翅套餐"<<endl;
cout<<"2.可乐套餐"<<endl;
//接受用户输入选项
int nOrder;
cin>>nOrder;
//使用switch选择结构
switch(nOrder)
{
case 1:
cout<<"一个鸡翅"<<endl;
case 2:
cout<<"一杯可乐+一包薯片"<<endl;
default :
cout<<"餐巾纸"<<endl;
cout<<"您的餐齐了"<<endl;
}
return 0;
}
4.3循环控制语句
4.3.1while 循环
1.只要…就一直…
// learn4.3.1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"=====每月收支统计程序====="<<endl;
cout<<"请输入你本月的收入(正数)和支出(负数),0表示输入结束"<<endl;
int nInput = 1;
int nTotal = 0;
//判断用户的输入
//如果用户输入不为0,则继续执行循环
//如果用户输入为0,则结束循环
while( 0 != nInput )
{
cout<<"请输入你的收入或支出"<<endl;
cin>>nInput;
//对收支进行统计
nTotal += nInput;
}
//输出统计结果
cout<<"你本月的结余是:"<<nTotal<<endl;
return 0;
}
4.3.2 do…while 循环
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"=====每月收支统计程序====="<<endl;
cout<<"请输入你本月的收入(正数)和支出(负数),0表示输入结束"<<endl;
int nInput = 1;
int nTotal = 0;
//判断用户的输入
//如果用户输入不为0,则继续执行循环
//如果用户输入为0,则结束循环
while( 0 != nInput )
{
cout<<"请输入你的收入或支出"<<endl;
cin>>nInput;
//对收支进行统计
nTotal += nInput;
}
//输出统计结果
cout<<"你本月的结余是:"<<nTotal<<endl;
int mInput = 0;
int mTotal = 0;
do
{
cout<<"请输入你的收入或支出"<<endl;
cin>>mInput;
mTotal += mInput;
}while( 0 != mInput );
return 0;
}
4.3.3 for循环
1.初始化语句
2.表达式语句
3.更变语句
// learn4.3.3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
//计算从1到100之间所有的整数的和
//记录和值
int nTotal = 0;
//使用for循环,逐个将1到100之间的整数跟nTotal相加
for( int i = 1 ; i <= 100 ; i++ )
{
//将整数相加
nTotal += i;
}
cout<<"1到100之间所有整数之间之和"<<endl;
return 0;
}
4.3.4循环控制:break和continue
4.4从语句到程序
4.4.1程序是控制语句串联起来的语句
4.4.2豪华工资统计程序
int _tmain(int argc, _TCHAR* argv[])
{
//定义一个常量,表示总员工数
const int MAX_NUM = 1000;
//保存所有工资数据的数据
int nSalary[MAX_NUM];
//输入每位员工的工资
int nTemp = 0; //临时变量,暂存用户输入的数据
int nIndex = 0; //输入的序号
//使用循环控制语句接受用户的多次输入
do
{
cout<<"请输入员工"<<nIndex<<"的工资:"<<endl;
cin>>nTemp;
//只要员工不是卖身为奴,他就不可能欠你钱
//所以输入的工资不能为负值,使用条件控制语句
//对输入错误进行处理,提示重新输入
if ( nTemp < 0 )
{
cout<<"你开玩笑?这位员工欠你钱?请重新输入"<<endl;
continue;
}
//将合法的数据保存到数组中,开始下一次输入
nSalary[nIndex] = nTemp;
++nIndex;
}while( nIndex < MAX_NUM );
//计算平均工资
float fAverageSalary;
int nTotal = 0; //工资总和
//使用循环控制结构对遍历数组中的数据进行统计
for( int i = 0; i < MAX_NUM; ++i )
{
nTotal += nSalary[i];
}
//平均工资 = 工资总和 / 员工数
fAverageSalary = (float)nTotal / MAX_NUM;
cout<<MAX_NUM<<"位员工的平均工资是"<<fAverageSalary<<endl;
//计算最高工资和最低工资
return 0;
}