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 ...
随机推荐
- 山寨QQ音乐的布局(一)
学了两天IOS趁着还没忘光,巩固一下所学知识想做点东西,由于自己的设计能力有限,所以就山寨一下吧,说到山寨怎么能忘了腾讯呢,今天发现QQ音乐的设计风格是扁平化的,小清新风格,所以就山寨一下它吧.. 由 ...
- 几种MEMS陀螺仪(gyroscope)的设计和性能比较
现在市场上的MEMS陀螺仪主要有SYSTRON.BOSCH和INVENSENSE设计和生产.前两者设计的陀螺仪属高端产品,主要用于汽车.后者的属低端产品,主要用于消费类电子,象任天堂的Wii.ADI2 ...
- 蜂鸟A20开发板刷 cubietruck 的 SD 卡固件
美睿视讯 为蜂鸟A20准备的 MerriiLinux 功能非常简陋.所以能用上主流的 debian 或者 LUbuntu 就可以说是非常迫切的需求了.蜂鸟A20(Merrii Hummingbird ...
- VC++6.0下通过opencv读入图像并反色
第一个opencv测试程序: 不多说,直接上代码,代码注释很详尽: ////////////////////////////////////////////////////////////////// ...
- 【UVA 10307 Killing Aliens in Borg Maze】最小生成树, kruscal, bfs
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=20846 POJ 3026是同样的题,但是内存要求比较严格,并是没有 ...
- leetcode 326. Power of Three(不用循环或递归)
leetcode 326. Power of Three(不用循环或递归) Given an integer, write a function to determine if it is a pow ...
- 区间dp-hdu-4745-Two Rabbits
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4745 题目意思: 给n个环状的数,A.B两人沿相反的方向走,每单位时间走一步,要求相同时间两人到达相 ...
- UVA 489-- Hangman Judge(暴力串处理)
Hangman Judge In ``Hangman Judge,'' you are to write a program that judges a series of Hangman gam ...
- 【概率DP入门】
http://www.cnblogs.com/kuangbin/archive/2012/10/02/2710606.html 有关概率和期望问题的研究 摘要 在各类信息学竞赛中(尤其是ACM竞赛中) ...
- Ext布局篇
EXT标准布局类 收藏 面板相当于一张干净的白纸,如果直接在上面添加内容,将很难控制面板中内容的显示位置,面板元素越多就越显得凌乱,所以需要在面板上划分不同的区域,将面板内容展示到希望的位置上.E ...