• 04737_C++程序设计_第1章_认识C++的对象


    例1.1

    演示使用结构对象的示例程序。

     1 //功能:将结构对象的两个域值相加,乘以2再加50
     2 #include <iostream>//包含头文件
     3 
     4 using namespace std;//使用命名空间
     5 
     6 int result(int, int);//result函数的原型声明
     7 const int k = 2;//定义常量
     8 struct Point//定义结构point
     9 {
    10     int x, y;//定义结构成员x和y
    11 };
    12 //空行
    13 int main()//主程序
    14 {//主程序开始
    15     int z(0), b(50);//初始化整数对象
    16     Point a;//定义结构对象a
    17 
    18     cout << "输入两个整数(以空格区分):";//输出提示信息
    19     cin >> a.x >> a.y;//接受输入数值
    20 
    21     z = (a.x + a.y)*k;//计算结果
    22     z = result(z, b);//计算结果
    23 
    24     cout << "计算结果如下:" << endl;//输出信息并换行
    25     cout << "((" << a.x << "+" << a.y//输出信息
    26         << ")*" << k << ")+" << b//输出信息
    27         << "=" << z//输出结果
    28         << endl;//换行
    29 
    30     return 0;//主函数main的返回值
    31 }
    32 //*********************
    33 //函数:result
    34 //参数:整型对象a和b
    35 //返回值:整型对象
    36 //*********************
    37 int result(int a, int b)
    38 {
    39     return a + b;//返回a+b
    40 }

    例1.2

    函数重载产生多态性的例子。

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 int max(int, int);//2个整型参数的函数原型
     6 int max(int, int, int);//3个整型参数的函数原型
     7 
     8 int main()
     9 {
    10     cout << max(35, 25) << "," << max(25, 39, 35) << endl;
    11 
    12     system("pause");
    13 }
    14 
    15 int max(int m1, int m2)
    16 {
    17     return (m1 > m2) ? m1 : m2;
    18 }
    19 
    20 int max(int m1, int m2, int m3)
    21 {
    22     int t = max(m1, m2);
    23     return max(t, m3);
    24 }

    例1.3

    演示使用new和delete的例子。

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 void main()
     6 {
     7     double *p;//声明double型指针
     8     
     9     p = new double[3];//分配3个double型数据的存储空间
    10 
    11     for (int i = 0; i < 3; i++)//定义对象i的初值为0
    12     {
    13         cin >> *(p + i);//将输入数据存入指定地址
    14     }
    15 
    16     for (int i = 0; i < 3; i++)
    17     {
    18         cout << *(p + i) << " ";//将地址里的内容输出
    19     }
    20 
    21     delete p;
    22 }

    例1.4

    演示引用的例子。

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 void main()
     6 {
     7     int x = 56;//定义并初始化x
     8     int& a = x;//声明a是x的引用,a和x的地址相同
     9     int& r = a;//声明r是x的引用,r和x的地址相同,即和x的地址也相同
    10 
    11     cout << "x=" << x << ",&x=" << &x << ",a=" << a << ",&a=" << &a
    12         << ",r=" << r << ",&r=" << &r << endl;
    13 
    14     r = 25;//改变r,则a和x都同步变化
    15 
    16     cout << "x=" << x << ",&x=" << &x << ",a=" << a << ",&a=" << &a
    17         << ",r=" << r << ",&r=" << &r << endl;
    18 }

    例1.6

    演示数组升幂排序、复制、逆向和输出等操作的例子。

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <iterator>
     4 
     5 using namespace std;
     6 
     7 void main()
     8 {
     9     double a[] = { 1.1,4.4,3.3,2.2 }, b[4];
    10 
    11     copy(a, a + 4, ostream_iterator<double>(cout, " "));//正向输出数组a,以空格隔开
    12     cout << endl;
    13 
    14     reverse_copy(a, a + 4, ostream_iterator<double>(cout, " "));//逆向输出数组a,以空格隔开
    15     cout << endl;
    16 
    17     copy(a, a + 4, b);//原样复制到数组b
    18 
    19     copy(b, b + 4, ostream_iterator<double>(cout, " "));//正向输出数组b,以空格隔开
    20     cout << endl;
    21 
    22     sort(a, a + 4);//对数组a进行升幂排序
    23 
    24     copy(a, a + 4, ostream_iterator<double>(cout, " "));//输出数组a
    25     cout << endl;
    26 
    27     reverse_copy(a, a + 4, b);//将a的内容按逆向复制给数组b
    28 
    29     copy(b, b + 4, ostream_iterator<double>(cout, " "));//输出数组b
    30     cout << endl;
    31 }

    例1.7

    演示数组降幂排序、查找和输出等操作的例子。

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <functional>
     4 #include <iterator>
     5 
     6 using namespace std;
     7 
     8 void main()
     9 {
    10     double a[] = { 1.1,4.4,3.3,2.2 };
    11 
    12     sort(a, a + 4);//升幂排序
    13 
    14     copy(a, a + 4, ostream_iterator<double>(cout, " "));
    15     cout << endl;
    16 
    17     sort(a, a + 4, greater<double>());//降幂排序
    18 
    19     copy(a, a + 4, ostream_iterator<double>(cout, " "));
    20     cout << endl;
    21 
    22     double *x = find(a, a + 4, 4.4);//查找
    23 
    24     if (x == a + 4)
    25     {
    26         cout << "没有值为4.4的数组元素";
    27     }
    28     else
    29     {
    30         cout << "有值为" << *x << "的数组元素";
    31     }
    32 
    33     cout << endl;
    34 
    35     x = find(a, a + 4, 8);//x是double类型的指针
    36 
    37     if (x == a + 4)
    38     {
    39         cout << "没有值为8的数组元素";
    40     }
    41     else
    42     {
    43         cout << "有值为" << *x << "的数组元素";
    44     }
    45 }

    例1.8

    演示对一维数组进行局部操作的例子。

     1 #define _SCL_SECURE_NO_WARNINGS
     2 
     3 #include <iostream>
     4 #include <algorithm>
     5 #include <functional>
     6 #include <iterator>
     7 
     8 using namespace std;
     9 
    10 void main()
    11 {
    12     double a[] = { 1.1,4.4,3.3,2.2 }, b[8] = { 8 };
    13 
    14     copy(a + 2, a + 4, ostream_iterator<double>(cout, " "));//输出a[2]和a[3]
    15     cout << endl;
    16     
    17     reverse_copy(a + 1, a + 4, ostream_iterator<double>(cout, " "));//输出a[3]~a[1]
    18     cout << endl;
    19 
    20     copy(a, a + 4, &b[4]);//将数组赋值到数组b的尾部
    21 
    22     copy(b, b + 8, ostream_iterator<double>(cout, " "));//输出数组b
    23     cout << endl;
    24 
    25     sort(a + 1, a + 3);//对部分数组元素升幂排序
    26 
    27     copy(a, a + 4, ostream_iterator<double>(cout, " "));//输出数组a
    28     cout << endl;
    29 
    30     sort(b, b + 6, greater<double>());//对部分数组元素降幂排序
    31 
    32     copy(b, b + 8, ostream_iterator<double>(cout, " "));//输出数组a
    33     cout << endl;
    34 }

    例1.9

    演示对字符数组进行操作的例子。

     1 #define _SCL_SECURE_NO_WARNINGS
     2 
     3 #include <iostream>
     4 #include <algorithm>
     5 #include <functional>
     6 #include <iterator>
     7 
     8 using namespace std;
     9 
    10 void main()
    11 {
    12     char a[] = "wearehere!", b[11];
    13 
    14     reverse(a, a + 10);//数组元素逆向
    15 
    16     copy(a, a + 10, ostream_iterator<char>(cout));//输出逆向后的数组内容
    17     cout << endl;
    18 
    19     copy(a, a + 11, b);//原样复制到数组b
    20 
    21     sort(a, a + 10);//默认升幂排序
    22 
    23     cout << a << endl;//输出排序结果
    24     cout << b << endl;//输出数组b的内容
    25 
    26     reverse_copy(a, a + 10, b);//逆向复制到数组b
    27 
    28     cout << b << endl;//输出逆向后的数组b的内容
    29 
    30     reverse(b + 2, b + 8);//数组b部分逆向
    31 
    32     copy(b + 2, b + 8, ostream_iterator<char>(cout));//输出数组b逆向后的部分内容
    33     cout << endl;
    34 
    35     sort(a, a + 10, greater<char>());//降序排序
    36 
    37     cout << a << endl;//输出排序后的数组a
    38     cout << (*find(a, a + 10, 'e') == 'e') << " "
    39         << (*find(a, a + 10, 'O') == 'O') << endl;
    40 }

    例1.10

    使用setw设置输出宽度的例子。

     1 #define _SCL_SECURE_NO_WARNINGS
     2 
     3 #include <iostream>
     4 #include <iomanip>
     5 
     6 using namespace std;
     7 
     8 void main()
     9 {
    10     int a = 29, b = 1001;
    11 
    12     cout << a << setw(6) << b << endl;
    13     cout << setw(6) << a << b << endl;
    14 }

    例1.11

    在下面的程序中,当要求输入时,均输入100,给出程序的输出结果。

     1 #define _SCL_SECURE_NO_WARNINGS
     2 
     3 #include <iostream>
     4 #include <iomanip>
     5 
     6 using namespace std;
     7 const double PI = 3.141592;
     8 
     9 void main()
    10 {
    11     cout << PI << endl
    12         << setprecision(0) << PI << endl
    13         << setprecision(1) << PI << endl
    14         << setprecision(2) << PI << endl
    15         << setprecision(3) << PI << endl
    16         << setprecision(7) << PI << endl;
    17 
    18     int b = 100;
    19 
    20     cout << "Dec:" << dec << b << endl
    21         << "Hex:" << hex << b << endl
    22         << "Oct:" << oct << b << endl;
    23 
    24     cout << b << endl
    25         << 100 << endl
    26         << "Input b=";
    27 
    28     cin >> b;
    29 
    30     cout << b << endl;
    31     cout << dec << setiosflags(ios_base::showpos) << b << endl;
    32     cout << "Input b=";
    33     
    34     cin >> b;
    35 
    36     cout << b << endl;
    37     cout << resetiosflags(ios_base::showpos);
    38     cout << b << endl;
    39 }

    例1.12

    分析下面程序的输出。

     1 #define _SCL_SECURE_NO_WARNINGS
     2 
     3 #include <iostream>
     4 #include <iomanip>
     5 
     6 using namespace std;
     7 
     8 void main()
     9 {
    10     cout << setfill('*')
    11         << setw(0) << 15 << endl
    12         << setw(1) << 15 << endl
    13         << setw(2) << 15 << endl
    14         << setw(3) << 15 << endl
    15         << setw(4) << 15 << endl;
    16 
    17     cout << setw(16) << setfill('*') << " " << endl;
    18 
    19     cout << setiosflags(ios_base::right)
    20         << setw(5) << 1
    21         << setw(5) << 2
    22         << setw(5) << 3 << endl;
    23 
    24     cout << resetiosflags(ios_base::right);
    25 
    26     cout << setiosflags(ios_base::left)
    27         << setw(5) << 1
    28         << setw(5) << 2
    29         << setw(5) << 3 << endl;
    30 }
  • 相关阅读:
    JS中Text节点总结
    JS中Document节点总结
    HTML5 Geolocation位置信息定位总结
    HTML5form表单的相关知识总结
    HTML5文档的各个组成部分分类
    JS中Node节点总结
    vue.js指令总结
    javascript string对象方法总结
    php 接口文档自动生产方式
    python使用
  • 原文地址:https://www.cnblogs.com/denggelin/p/5542345.html
Copyright © 2020-2023  润新知