C++ Primer 学习笔记_2_快速入门(续)



P15习题

[cpp] view plaincopyprint?

  1. //题1.14: 试分析如果v1 == v2的情况下,该程序的输出结果
  2. #include <iostream>
  3. int main()
  4. {
  5. std::cout << "Enter two numbers:" << std::endl;
  6. int v1,v2;
  7. std::cin >> v1 >> v2;
  8. int lower,upper;
  9. if (v1 <= v2)
  10. {
  11. lower = v1;
  12. upper = v2;
  13. }
  14. else
  15. {
  16. lower = v2;
  17. upper = v1;
  18. }
  19. int sum = 0;
  20. for (int i = lower; i <= upper; ++i)
  21. {
  22. sum += i;
  23. }
  24. std::cout << "Sum of " << lower
  25. << " to " << upper
  26. << " inclusive is "
  27. << sum << std::endl;
  28. return 0;
  29. }
//题1.14: 试分析如果v1 == v2的情况下,该程序的输出结果
#include <iostream>

int main()
{
    std::cout << "Enter two numbers:" << std::endl;
    int v1,v2;
    std::cin >> v1 >> v2;

    int lower,upper;
    if (v1 <= v2)
    {
        lower = v1;
        upper = v2;
    }
    else
    {
        lower = v2;
        upper = v1;
    }

    int sum = 0;
    for (int i = lower; i <= upper; ++i)
    {
        sum += i;
    }

    std::cout << "Sum of " << lower
              << " to " << upper
              << " inclusive is "
              << sum << std::endl;

    return 0;
}

[cpp] view plaincopyprint?

  1. //1.16
  2. #include <iostream>
  3. int main()
  4. {
  5. std::cout << "Please input a sequence of numbers:" << std::endl;
  6. int val;
  7. int count = 0;
  8. //为判断条件,先执行输入操作
  9. while (std::cin >> val)
  10. {
  11. if (val < 0)
  12. {
  13. ++ count;
  14. }
  15. }
  16. std::cout << "There is " << count << " negatives" << std::endl;
  17. return 0;
  18. }
//1.16
#include <iostream>

int main()
{
	std::cout << "Please input a sequence of numbers:" << std::endl;
	int val;
	int count = 0;
	//为判断条件,先执行输入操作
	while (std::cin >> val)
	{
		if (val < 0)
		{
			++ count;
		}
	}

	std::cout << "There is " << count << " negatives" << std::endl;
	return 0;
}

[cpp] view plaincopyprint?

  1. //题1.19
  2. #include <iostream>
  3. int main()
  4. {
  5. std::cout << "Please input two numbers:" << std::endl;
  6. int v1,v2;
  7. int count = 1;
  8. std::cin >> v1 >> v2;
  9. for (int i = v1 ; i <= v2; ++i)
  10. {
  11. std::cout << i << ‘ ‘;
  12. if (count % 10 == 0)
  13. {
  14. std::cout << std::endl;
  15. }
  16. ++ count;
  17. }
  18. return 0;
  19. }
//题1.19
#include <iostream>

int main()
{
    std::cout << "Please input two numbers:" << std::endl;
    int v1,v2;
    int count = 1;
    std::cin >> v1 >> v2;
    for (int i = v1 ; i <= v2; ++i)
    {
        std::cout << i << ' ';
        if (count % 10 == 0)
        {
            std::cout << std::endl;
        }
        ++ count;
    }

    return 0;
}

五、类的简介

1、C++中,我们通过定义类来定义自己的数据结构

实际上,C++设计的主要焦点就是使所定义的类类型的行为可以像内置类型一样自然!!!

2、使用类的时候,我们不需要指定哦啊这个类是怎样实现的,相反,我们需要知道的是:这个类能够提供什么样的操作!

3、对于自定义的类,必须使得编译器可以访问和类相关的定义。

4、通常文件名和定义在头文件中的类名是一样的。通常后缀名是.h,但是有些IDE会挑剔头文件的后缀名!

5、当使用自定义头文件时,我们采用双引号(””)把头文件包含进来。

6、当调用成员函数的时候,(通常)指定函数要操作的对象,语法是使用点操作符(”.”),左操作符必须是类类型,右操作符必须指定该类型的成员。

P19

[cpp] view plaincopyprint?

  1. //习题1.21
  2. #include <iostream>
  3. #include <fstream>
  4. #include "Sales_item.h"
  5. int main()
  6. {
  7. freopen("book_sales","r",stdin);
  8. Sales_item item;
  9. while (std::cin >> item)
  10. {
  11. std::cout << item << std::endl;
  12. }
  13. return 0;
  14. }
//习题1.21
#include <iostream>
#include <fstream>
#include "Sales_item.h"

int main()
{
	freopen("book_sales","r",stdin);
	Sales_item item;
	while (std::cin >> item)
	{
		std::cout << item << std::endl;
	}

	return 0;
}

[cpp] view plaincopyprint?

  1. //习题1.22
  2. #include <iostream>
  3. #include <fstream>
  4. #include "Sales_item.h"
  5. int main()
  6. {
  7. freopen("book_sales","r",stdin);
  8. Sales_item item1;
  9. Sales_item item2;
  10. while (std::cin >> item1 >> item2)
  11. {
  12. if (item1.same_isbn(item2))
  13. {
  14. std::cout << item1 + item2 << std::endl;
  15. }
  16. }
  17. return 0;
  18. }
//习题1.22
#include <iostream>
#include <fstream>
#include "Sales_item.h"

int main()
{
	freopen("book_sales","r",stdin);
	Sales_item item1;
	Sales_item item2;
	while (std::cin >> item1 >> item2)
	{
		if (item1.same_isbn(item2))
		{
			std::cout << item1 + item2 << std::endl;
		}
	}

	return 0;
}

六、C++程序

[cpp] view plaincopyprint?

  1. #include <iostream>
  2. #include <fstream>
  3. #include "Sales_item.h"
  4. int main()
  5. {
  6. //freopen("book_sales.","r",stdin);
  7. Sales_item total,trans;
  8. if (std::cin >> total)
  9. {
  10. while (std::cin >> trans)
  11. {
  12. if (total.same_isbn(trans))
  13. {
  14. total += trans;
  15. }
  16. else
  17. {
  18. std::cout << total << std::endl;
  19. total = trans;
  20. }
  21. }
  22. std::cout << total << std::endl;
  23. }
  24. else
  25. {
  26. std::cout << "No Data?!" << std::endl;
  27. return -1;
  28. }
  29. return 0;
  30. }
#include <iostream>
#include <fstream>
#include "Sales_item.h"

int main()
{
    //freopen("book_sales.","r",stdin);

    Sales_item total,trans;

    if (std::cin >> total)
    {
        while (std::cin >> trans)
        {
            if (total.same_isbn(trans))
            {
                total += trans;
            }
            else
            {
                std::cout << total << std::endl;
                total = trans;
            }
        }
        std::cout << total << std::endl;
    }
    else
    {
        std::cout << "No Data?!" << std::endl;
        return -1;
    }
    return 0;
}

【说明:Sales_item类需要到图灵网站上下载并引用:http://www.ituring.com.cn/book/656

时间: 2024-10-09 04:21:26

C++ Primer 学习笔记_2_快速入门(续)的相关文章

C++ Primer 学习笔记_1_快速入门

 C++快速入门 --这个月的第一篇博客,献给我最爱的C++程序设计语言! 一.编写简单的C++程序 [cpp] view plaincopyprint? //main函数是唯一一个被操作系统显式调用的函数. int main() { /* *该返回值作为状态指示器,需要返回给操作系统! *以echo $?命令可以查看该返回值 *通常非零返回值表示有错误出现,由操作系统定义 */ return 0; } //main函数是唯一一个被操作系统显式调用的函数. int main() { /* *

C++ Primer 学习笔记_2_高速入口(继续)

 P15习题 [cpp] view plaincopyprint? //题1.14: 试分析假设v1 == v2的情况下,该程序的输出结果 #include <iostream> int main() { std::cout << "Enter two numbers:" << std::endl; int v1,v2; std::cin >> v1 >> v2; int lower,upper; if (v1 <=

C++ Primer 学习笔记_74_面向对象编程 --再谈文本查询示例[续/习题]

面向对象编程 --再谈文本查询示例[续/习题] //P522 习题15.41 //1 in TextQuery.h #ifndef TEXTQUERY_H_INCLUDED #define TEXTQUERY_H_INCLUDED #include <iostream> #include <fstream> #include <sstream> #include <vector> #include <set> #include <map&g

C++ Primer 学习笔记_102_特殊工具与技术 --运行时类型识别[续]

特殊工具与技术 --运行时类型识别[续] 三.RTTI的使用 当比较两个派生类对象的时候,我们希望比较可能特定于派生类的数据成员.如果形参是基类引用,就只能比较基类中出现的成员,我们不能访问在派生类中但不在基类中出现的成员. 因此我们可以使用RTTI,在试图比较不同类型的对象时返回假(false). 我们将定义单个相等操作符.每个类定义一个虚函数 equal,该函数首先将操作数强制转换为正确的类型.如果转换成功,就进行真正的比较:如果转换失败,equal 操作就返回 false. 1.类层次 c

C++ Primer 学习笔记_99_特殊工具与技术 --优化内存分配[续1]

特殊工具与技术 --优化内存分配[续1] 三.operator new函数和operator delete 函数 – 分配但不初始化内存 首先,需要对new和delete表达式怎样工作有更多的理解.当使用new表达式 string *sp = new string("initialized"); 的时候,实际上发生三个步骤: 1)首先,表达式调用名为operator new 的标准库函数,分配足够大的原始的未类型化的内存,以保存指定类型的一个对象; 2)接下来,运行该类型的一个构造函数

C++ Primer 学习笔记_81_模板与泛型编程 --类模板成员[续1]

模板与泛型编程 --类模板成员[续1] 二.非类型形参的模板实参 template <int hi,int wid> class Screen { public: Screen():screen(hi * wid,'#'), cursor(hi * wid),height(hi),width(wid) {} //.. private: std::string screen; std::string::size_type cursor; std::string::size_type height

C++ Primer 学习笔记_82_模板与泛型编程 --类模板成员[续2]

模板与泛型编程 --类模板成员[续2] 六.完整的Queue类 Queue的完整定义: template <typename Type> class Queue; template <typename Type> ostream &operator<<(ostream &,const Queue<Type> &); template <typename Type> class QueueItem { friend clas

C++ Primer 学习笔记_66_面向对象编程 --定义基类和派生类[续]

算法旨在用尽可能简单的思路解决问题,理解算法也应该是一个越看越简单的过程,当你看到算法里的一串概念,或者一大坨代码,第一感觉是复杂,此时不妨从例子入手,通过一个简单的例子,并编程实现,这个过程其实就可以理解清楚算法里的最重要的思想,之后扩展,对算法的引理或者更复杂的情况,对算法进行改进.最后,再考虑时间和空间复杂度的问题. 了解这个算法是源于在Network Alignment问题中,图论算法用得比较多,而对于alignment,特别是pairwise alignment, 又经常遇到maxim

C++ Primer 学习笔记_89_用于大型程序的工具 --异常处理[续2]

用于大型程序的工具 --异常处理[续2] 八.自动资源释放 考虑下面函数: void f() { vector<string> v; string s; while (cin >> s) { v.push_back(s); } string *p = new string[v.size()]; //... delete p; } 在正常情况下,数组和vector都在退出函数之前被撤销,函数中最后一个语句释放数组,在函数结束时自动撤销vector. 但是,如果在函数内部发生异常,则将