04737_C++程序设计_第1章_认识C++的对象
例1.1
演示使用结构对象的示例程序。
//功能:将结构对象的两个域值相加,乘以2再加50
#include <iostream>//包含头文件 using namespace std;//使用命名空间 int result(int, int);//result函数的原型声明
const int k = ;//定义常量
struct Point//定义结构point
{
int x, y;//定义结构成员x和y
};
//空行
int main()//主程序
{//主程序开始
int z(), b();//初始化整数对象
Point a;//定义结构对象a cout << "输入两个整数(以空格区分):";//输出提示信息
cin >> a.x >> a.y;//接受输入数值 z = (a.x + a.y)*k;//计算结果
z = result(z, b);//计算结果 cout << "计算结果如下:" << endl;//输出信息并换行
cout << "((" << a.x << "+" << a.y//输出信息
<< ")*" << k << ")+" << b//输出信息
<< "=" << z//输出结果
<< endl;//换行 return ;//主函数main的返回值
}
//*********************
//函数:result
//参数:整型对象a和b
//返回值:整型对象
//*********************
int result(int a, int b)
{
return a + b;//返回a+b
}
例1.2
函数重载产生多态性的例子。
#include <iostream> using namespace std; int max(int, int);//2个整型参数的函数原型
int max(int, int, int);//3个整型参数的函数原型 int main()
{
cout << max(, ) << "," << max(, , ) << endl; system("pause");
} int max(int m1, int m2)
{
return (m1 > m2) ? m1 : m2;
} int max(int m1, int m2, int m3)
{
int t = max(m1, m2);
return max(t, m3);
}
例1.3
演示使用new和delete的例子。
#include <iostream> using namespace std; void main()
{
double *p;//声明double型指针 p = new double[];//分配3个double型数据的存储空间 for (int i = ; i < ; i++)//定义对象i的初值为0
{
cin >> *(p + i);//将输入数据存入指定地址
} for (int i = ; i < ; i++)
{
cout << *(p + i) << " ";//将地址里的内容输出
} delete p;
}
例1.4
演示引用的例子。
#include <iostream> using namespace std; void main()
{
int x = ;//定义并初始化x
int& a = x;//声明a是x的引用,a和x的地址相同
int& r = a;//声明r是x的引用,r和x的地址相同,即和x的地址也相同 cout << "x=" << x << ",&x=" << &x << ",a=" << a << ",&a=" << &a
<< ",r=" << r << ",&r=" << &r << endl; r = ;//改变r,则a和x都同步变化 cout << "x=" << x << ",&x=" << &x << ",a=" << a << ",&a=" << &a
<< ",r=" << r << ",&r=" << &r << endl;
}
例1.6
演示数组升幂排序、复制、逆向和输出等操作的例子。
#include <iostream>
#include <algorithm>
#include <iterator> using namespace std; void main()
{
double a[] = { 1.1,4.4,3.3,2.2 }, b[]; copy(a, a + , ostream_iterator<double>(cout, " "));//正向输出数组a,以空格隔开
cout << endl; reverse_copy(a, a + , ostream_iterator<double>(cout, " "));//逆向输出数组a,以空格隔开
cout << endl; copy(a, a + , b);//原样复制到数组b copy(b, b + , ostream_iterator<double>(cout, " "));//正向输出数组b,以空格隔开
cout << endl; sort(a, a + );//对数组a进行升幂排序 copy(a, a + , ostream_iterator<double>(cout, " "));//输出数组a
cout << endl; reverse_copy(a, a + , b);//将a的内容按逆向复制给数组b copy(b, b + , ostream_iterator<double>(cout, " "));//输出数组b
cout << endl;
}
例1.7
演示数组降幂排序、查找和输出等操作的例子。
#include <iostream>
#include <algorithm>
#include <functional>
#include <iterator> using namespace std; void main()
{
double a[] = { 1.1,4.4,3.3,2.2 }; sort(a, a + );//升幂排序 copy(a, a + , ostream_iterator<double>(cout, " "));
cout << endl; sort(a, a + , greater<double>());//降幂排序 copy(a, a + , ostream_iterator<double>(cout, " "));
cout << endl; double *x = find(a, a + , 4.4);//查找 if (x == a + )
{
cout << "没有值为4.4的数组元素";
}
else
{
cout << "有值为" << *x << "的数组元素";
} cout << endl; x = find(a, a + , );//x是double类型的指针 if (x == a + )
{
cout << "没有值为8的数组元素";
}
else
{
cout << "有值为" << *x << "的数组元素";
}
}
例1.8
演示对一维数组进行局部操作的例子。
#define _SCL_SECURE_NO_WARNINGS #include <iostream>
#include <algorithm>
#include <functional>
#include <iterator> using namespace std; void main()
{
double a[] = { 1.1,4.4,3.3,2.2 }, b[] = { }; copy(a + , a + , ostream_iterator<double>(cout, " "));//输出a[2]和a[3]
cout << endl; reverse_copy(a + , a + , ostream_iterator<double>(cout, " "));//输出a[3]~a[1]
cout << endl; copy(a, a + , &b[]);//将数组赋值到数组b的尾部 copy(b, b + , ostream_iterator<double>(cout, " "));//输出数组b
cout << endl; sort(a + , a + );//对部分数组元素升幂排序 copy(a, a + , ostream_iterator<double>(cout, " "));//输出数组a
cout << endl; sort(b, b + , greater<double>());//对部分数组元素降幂排序 copy(b, b + , ostream_iterator<double>(cout, " "));//输出数组a
cout << endl;
}
例1.9
演示对字符数组进行操作的例子。
#define _SCL_SECURE_NO_WARNINGS #include <iostream>
#include <algorithm>
#include <functional>
#include <iterator> using namespace std; void main()
{
char a[] = "wearehere!", b[]; reverse(a, a + );//数组元素逆向 copy(a, a + , ostream_iterator<char>(cout));//输出逆向后的数组内容
cout << endl; copy(a, a + , b);//原样复制到数组b sort(a, a + );//默认升幂排序 cout << a << endl;//输出排序结果
cout << b << endl;//输出数组b的内容 reverse_copy(a, a + , b);//逆向复制到数组b cout << b << endl;//输出逆向后的数组b的内容 reverse(b + , b + );//数组b部分逆向 copy(b + , b + , ostream_iterator<char>(cout));//输出数组b逆向后的部分内容
cout << endl; sort(a, a + , greater<char>());//降序排序 cout << a << endl;//输出排序后的数组a
cout << (*find(a, a + , 'e') == 'e') << " "
<< (*find(a, a + , 'O') == 'O') << endl;
}
例1.10
使用setw设置输出宽度的例子。
#define _SCL_SECURE_NO_WARNINGS #include <iostream>
#include <iomanip> using namespace std; void main()
{
int a = , b = ; cout << a << setw() << b << endl;
cout << setw() << a << b << endl;
}
例1.11
在下面的程序中,当要求输入时,均输入100,给出程序的输出结果。
#define _SCL_SECURE_NO_WARNINGS #include <iostream>
#include <iomanip> using namespace std;
const double PI = 3.141592; void main()
{
cout << PI << endl
<< setprecision() << PI << endl
<< setprecision() << PI << endl
<< setprecision() << PI << endl
<< setprecision() << PI << endl
<< setprecision() << PI << endl; int b = ; cout << "Dec:" << dec << b << endl
<< "Hex:" << hex << b << endl
<< "Oct:" << oct << b << endl; cout << b << endl
<< << endl
<< "Input b="; cin >> b; cout << b << endl;
cout << dec << setiosflags(ios_base::showpos) << b << endl;
cout << "Input b="; cin >> b; cout << b << endl;
cout << resetiosflags(ios_base::showpos);
cout << b << endl;
}
例1.12
分析下面程序的输出。
#define _SCL_SECURE_NO_WARNINGS #include <iostream>
#include <iomanip> using namespace std; void main()
{
cout << setfill('*')
<< setw() << << endl
<< setw() << << endl
<< setw() << << endl
<< setw() << << endl
<< setw() << << endl; cout << setw() << setfill('*') << " " << endl; cout << setiosflags(ios_base::right)
<< setw() <<
<< setw() <<
<< setw() << << endl; cout << resetiosflags(ios_base::right); cout << setiosflags(ios_base::left)
<< setw() <<
<< setw() <<
<< setw() << << endl;
}
04737_C++程序设计_第1章_认识C++的对象的更多相关文章
- ArcGIS for Desktop入门教程_第七章_使用ArcGIS进行空间分析 - ArcGIS知乎-新一代ArcGIS问答社区
原文:ArcGIS for Desktop入门教程_第七章_使用ArcGIS进行空间分析 - ArcGIS知乎-新一代ArcGIS问答社区 1 使用ArcGIS进行空间分析 1.1 GIS分析基础 G ...
- ArcGIS for Desktop入门教程_第六章_用ArcMap制作地图 - ArcGIS知乎-新一代ArcGIS问答社区
原文:ArcGIS for Desktop入门教程_第六章_用ArcMap制作地图 - ArcGIS知乎-新一代ArcGIS问答社区 1 用ArcMap制作地图 作为ArcGIS for Deskto ...
- ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区
原文:ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区 1 入门案例分析 在第一章里,我们已经对ArcGIS系列软件的体系结构有了一 ...
- 04737_C++程序设计_第4章_类和对象
例4.1 描述点的Point类. 例4.2 根据上面对Point类的定义,演示使用Point类的对象. #define _SCL_SECURE_NO_WARNINGS #include <ios ...
- 04737_C++程序设计_第3章_函数和函数模板
例3.1 传对象不会改变原来对象数据成员值的例子. #define _SCL_SECURE_NO_WARNINGS #include <iostream> #include <str ...
- 04737_C++程序设计_第2章_从结构到类的演变
例2.1 使用成员函数的实例. #define _SCL_SECURE_NO_WARNINGS #include <iostream> using namespace std; struc ...
- 04737_C++程序设计_第10章_面向对象设计实例
10.6.2 使用包含的参考程序及运行结果. 头文件cpp10.h 源文件cpp10.cpp 源文件Find10.cpp 头文件cpp10.h #if ! defined(CPP10_H) #defi ...
- 04737_C++程序设计_第9章_运算符重载及流类库
例9.1 完整实现str类的例子. #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> ...
- 04737_C++程序设计_第8章_多态性和虚函数
例8.1 分析下面程序的输出结果. 例8.2 分别使用指针和引用的display函数. #include <iostream> using namespace std; const dou ...
随机推荐
- nginx请求体读取
上节说到nginx核心本身不会主动读取请求体,这个工作是交给请求处理阶段的模块来做,但是nginx核心提供了ngx_http_read_client_request_body()接口来读取请求体,另外 ...
- EasyUI 使用
1.面板的使用 <div id="box" > <p>内容区域</p> </div> <div id="tt&quo ...
- 【stm32】实现STM32的串口数据发送和printf函数重定向
在调试电机驱动程序的时候,是不能随便利用中断来进行一些寄存器或数据的查看的,不然你在运行的时候突然来一下,如果占空比大的话那可能直接就把MOS管给烧了,所以我们很多情况下只能使用USART(串口)来进 ...
- JVM启动过程——JVM之一
JVM是Java程序运行的环境,同时是一个操作系统的一个应用程序进程,因此它有自己的生命周期,也有自己的代码和数据空间. JVM体系主要是两个JVM的内部体系结构分为三个子系统和两大组件,分别是:类装 ...
- 读<<代码整洁之道>>的感想
花去了近一周的时间浏览一下这本书.总体感觉这本书写得不错. 我发现自己以前写的代码时多么的糟糕.有很多改进之处... 同时我也发现写出优秀的代码不易.优秀的代码不仅仅易读,并且易修改,易维护,程序易维 ...
- 14.3.5.1 Interaction of Table Locking and Transactions 表锁和事务的相互作用
14.3.5.1 Interaction of Table Locking and Transactions 表锁和事务的相互作用 LOCK TABLES 和UNLOCK TABLES 交互实用事务如 ...
- (五)boost库之随机数random
(五)boost库之随机数random boost库为我们提供了许多的日常随机数生成器: 1.uniform_smallint:在小整数域内的均匀分布 2.uniform_int:在整数域上的均匀分布 ...
- Unix/Linux环境C编程入门教程(27) 内存那些事儿
calloc() free() getpagesize() malloc() mmap() munmap()函数介绍 calloc(配置内存空间) 相关函数 malloc,free,realloc,b ...
- 经典CSS颜色混合模式
转自:http://www.webhek.com/css-blend-mode/ 注意:只有使用最新版的谷歌浏览器.火狐浏览器,才能正确的显示本文中的演示. Photoshop里最没有用处的一种功能— ...
- 【LeetCode练习题】Multiply Strings
Multiply Strings Given two numbers represented as strings, return multiplication of the numbers as a ...