第1章 用最简单的案例讲述C++
(本资料qq讨论群112133686)
若要学会一门程序设计语言,必须得多动手、多实践。本书就是一本用案例的方式帮助读者理解C++技术的入门书。说它入门,是因为本书的案例都是从最基本的C++语法入手,这样会让读者学得更轻松、理解更深刻。
在编写C++程序之前,读者必须了解C++的一些基本特征,如定义变量、实现输入和输出、定义数据结构来保存要处理的数据。不同的对象定义不同的变量,如整数变量、浮点数变量或字符串变量。定义变量后才能对变量进行处理,处理过程中可能涉及变量之间的转换。
本章从最简单的数学计算开始,讲解C++语言支持的5种数学运算符:加(+)、减(-)、乘(*)、除(/)和取模(%)。
1.1 C++程序的结构
C++程序编排按照“缩进”方式,程序的注释以符合“//”引出 。一个C++程序中必须有一个主程序。标识函数“()”.,函数体语句大致由变量定义、执行语句和返回语句三部分组成。C++程序基本元素有:字符集、标识符、基本数据类型和变量定义。C++有丰富的运算符,运行表达式用来说明一个计算过程,由操作符和操作数组成,其中操作数包含常量、变量或函数调用。
案例1-1显示“Hello World!”
【案例描述】
下面介绍第一个程序,其功能是在屏幕上显示“Hello World!”。虽然这个程序非常简单,但它展示了每个C++程序的基本组成结构。本例效果如图1-1所示。
图1-1 在屏幕上显示欢迎界面(cout)
【实现过程】
(1)包含本例代码需要用到的两个头文件;
(2)显示提示性字符串;
(3)暂停,等待用户的输入;
(4)用户输入任意键退出程序。
详细代码如下:
#include<iostream.h> //包含头文件
#include<iostream>
int main() //主函数
{
cout << "Hello World!" << endl; //标准输出流
cout << "Welcome to C++ Programming" << endl;
system("pause");
return 0; //返回语句
}
【案例分析】
(1)每个C++程序都包含一个或多个函数,而且必须有一个命名为main的函数,main()是所有程序运行的起始点,不管它是在代码的开头、结尾还是中间。程序由执行函数功能的语句组成。以两个斜线符号(//)开始的程序行都被认为是注释行。以#标志开始的句子是预处理器的指示语句,如#include<iostream.h>告诉编译器的预处理器将输入/输出流的标准头文件包含在本程序中。
(2)cout <<把一串字符串插入到输出流(控制台输出)中,cout的声明在头文件iostream.h中。return 0;是返回语句,表示main()函数执行完毕。
提示:在C++中,语句的分隔是以分号(;)为分隔符隔开的。并不是程序中所有的行都会被执行,如程序中的注释行(以//开头)、编译器预处理器的指示行(以#开头)、函数的声明(本例中的main函数)等,这些行都不会被执行。
1.2 常量
所谓的常量是指其值在程序的运行中不允许改变的量,分为字面常量和符号常量。包括整形常量、实型常量、字符常量、字符串常量和布尔常量。
案例1-2 各类常量的使用例子
【案例描述】
一个常量(constant)是一个有固定值的表达式。C++语言中的字用来在程序源码中表达特定的值,即用来给变量赋予特定的值。本例详细介绍了各种常量的定义,效果如图1-2所示。
图1-2 各类常量的使用例子
【实现过程】
该程序用预处理器指令#define定义常量和用const前缀定义指定类型的常量,然后分别定义整数、浮点数、字符、字符串和布尔型数据类型的常量。其代码如下:
#include <iostream>
#include <iostream.h>
#define PI 3.14159265
#define NEWLINE '\n' //换行符newline
#define WIDTH 100
double circle;
void main()
{
int r=2.2;
circle = 2 * PI * r;
std::cout <<"预处理器指令#define输出演示:"<<circle<<NEWLINE;
system("pause");
const int width = 100;
const char tab = '\t'; //跳跃符tabulation
const zip = 12440; //整数
std::cout <<"const前缀定义常量输出演示:"<< width<<tab<<zip<<NEWLINE;
system("pause");
int i1=75; //十进制 decimal
int i2=0113; //八进制 octal
int i3=0x4b; //十六进制 hexadecimal
std::cout<<"进制输出演示:"<<i1<<i2<<i3<<NEWLINE;
system("pause");
int j1=75; //整型
unsigned int j2=75u ; //无符号整型
long j3=75l; //长整型
unsigned long j4=75ul ; //无符号长整型
std::cout<<"常数数据类型输出演示:"<<j1<<j2<<j3<<j4<<NEWLINE;
system("pause");
float f1=3.14159; // 3.14159
float f2=6.02e23; // 6.02 x 10^1023
float f3=1.6e-19; // 1.6 x 10^-19
float f4=3.0 ; // 3.0
std::cout<<"浮点数输出演示:"<<f1<<f2<<f3<<f4<<NEWLINE;
system("pause");
//字符和字符串
char a1='\n';
char a2='\t'; //回车
char *a3="Left \t Right" ;
char *a4="one\ntwo\nthree" ; //定义字符串
std::cout<<"字符和字符串常量输出演示:"<<a1<<a2<<a3<<a4<<NEWLINE;
system("pause");
//布尔型常量
bool b1=true;
bool b2=false;
std::cout<<"布尔型常量输出演示:"<<b1<<b2<<NEWLINE;
system("pause");
return;
}
【案例分析】
(1)C++常量有:整数(Integer Numbers)、浮点数(Floating-Point Numbers)、字符(Characters)、字符串(Strings)和布尔型常量(Boolean Literals)。整型常数表示十进制整数值。除十进制整数外,C++还允许使用八进制(octal numbers)和十六进制(hexadecimal numbers)的字常量(literal constants)。浮点数以小数(decimals)和指数幂( exponents)的形式表示。C++程序中还有表示特殊的字符,例如,换行符newline (\n)或跳跃符tab (\t),所有这些符号的前面要加一个反斜杠(\)。布尔型只有两个有效的值:true和false,其数据类型为bool。
(2)使用预处理器指令#define,可以将那些经常使用的常量定义为自己取的名字,而不需要借助于变量。格式是:#define identifier token-stringopt,如代码中的#define PI 3.14159265。通过使用const前缀,可以定义指定类型的常量,就像定义一个变量一样,如代码中的const int width = 100。
提示:字用来在程序源码中表达特定的值,在代码中已经用了很多字来给变量赋予特定的值。例如:j1=75,其中的75就是一个字常量。
1.3 变量与基本类型
与常量相反,变量是程序的执行过程中其值可以变化的量。它的标识是用名字,是程序中最活跃的基本元素。变量的声明形式:数据类型 变量名1,变量名2,…,变量名n,如:int num,;等。变量必须先定义,定义的同时可以给它赋以初值。
案例1-3取之不尽的箱子
【案例描述】
变量代表了一个值,这个值是不固定的。使用变量可以处理各种数据,并通过一定的控制程序来完成指定的功能。在编程中怎么定义变量,怎么给变量赋值,怎么使用控制程序来操作变量,都是初学者需要掌握的基础知识。下面演示一个用变量进行加法、减法的案例,效果如图1-2所示。
图1-3 取之不尽的箱子
【实现过程】
(1)首先会提示用户输入自己的选择;
(2)根据用户的选择获取输入的值;
(3)开始做相应的加法或减法运算,当while条件满足时程序会重复执行,其中switch语句会根据输入的值来执行相应的代码。
详细代码如下:
#include <iostream>
#include <iostream.h>
int main()
{
int inputnum, outputnum,sum=0;
int sel;
do
{
cout<<"选择(1:输入箱子数据