- 博客(19)
- 收藏
- 关注
原创 C++(标准模板库)未完成
标准模板库(STL)标准模板库(STL),即Standard Template Library,是惠普实验室开发的一系列软件的总称。STL提供了一组表示容器、迭代器、函数对象和算法的模板。本篇文章目录:标准模板库(STL)容器序列容器存储方式vector(向量)(==连续存储==)声明算法迭代器容器容器是一个与数组类似的组件,可以存储若干个值,并提供对所存储数据的若干操作。序列容器也叫顺序性容器,容器中的元素按照线性顺序排列。存在第一个元素、最后一个元素,有头有尾。元素的位置和元素本
2020-12-16 10:54:27 391
原创 C++(函数模板、类模板详解)
文章中有以下内容模板模板在前面我们学过了类的继承,多态的思想,这些思想的目的都是让我们的程序设计变得简单和清晰,试想一下当我们在写一个函数重载的时候是不是就非常复杂。例如一个swap函数,用来交换两个相同类型的量。如果我们要重载的话,int类型要重载一个,string类型要重载一个,自定义类型Student也需要重载一个,这样就大大增加了代码的复杂度,为了解决这种问题,即实现代码重用,C++引入了模板如:template<typename T>void Swap(T& x,T&
2020-05-24 09:26:41 747
原创 PTA 习题:7-5 师生信息管理 (10分) C++实现
7-5 师生信息管理 (10分)给出下面的一个基类框架class Person{protected:int NO;//编号public:virtual void display()=0;//输出相关信息}以Person为基类,构建出Student、Teacher两个类。生成上述类并编写主函数,要求主函数中有一个基类Person指针数组,数组元素不超过10个。Person *pp[10];主函数根据输入的信息,相应建立Student, Teacher类对象,对于Student给出期
2020-05-17 21:08:41 2288
原创 PTA 习题:7-3 饮料的价格 (10分) C++实现
7-3 饮料的价格 (10分)一个茶吧提供三类饮料:茶、咖啡和牛奶。其中本地茶要另加50%的服务费,其它茶要加20%的服务费;现磨咖啡要加100%的服务费,其它咖啡加20%的服务费;牛奶不加服务费,服务费精确到小数点一位。给出下面的基类框架:Class Drink { protected:int NO; //编号int amount; //数量float price; //单价public:virtual void display()=0;//输出费用}以Drink为基类,
2020-05-17 19:34:47 3254
原创 PTA 习题:7-4 期刊收费 (10分) C++实现
7-4 期刊收费 (10分)邮局提供两种期刊的订阅:杂志和报纸。 给出下面基类的框架:class Periodical {protected: string title; //名称public: virtual void display()=0;//打印收费}以Periodical为基类,构建Magazine和Newspaper类。生成上述类并编写主函数,要求主函数中有一个基类Periodical指针数组,数组元素不超过10个。Periodical *pp[10];主函数根据输入的
2020-05-17 19:29:56 1415
原创 PTA 习题:7-1 汽车收费 (10分) C++实现
7-1 汽车收费 (10分)(应用虚函数实现多态)现在要开发一个系统,管理对多种汽车的收费工作。 给出下面的一个基类框架class Vehicle{ protected: string NO;//编号public: virtual void display()=0;//输出应收费用 }以Vehicle为基类,构建出Car、Truck和Bus三个类。Car的收费公式为: 载客数8+重量2Truck的收费公式为:重量*5Bus的收费公式为: 载客数*3生成上述类并编写主函数,要求主
2020-05-17 16:52:38 3810
原创 PTA 习题:6-1 表彰优秀学生(多态)C++
6-1 表彰优秀学生(多态) (15分)学期结束,班主任决定表彰一批学生,已知该班学生数在6至50人之间,有三类学生:普通生,特招运动员,学科专长生,其中学科专长生不超过5人。主函数根据输入的信息,相应建立GroupA, GroupB, GroupC类对象。GroupA类是普通生,有2门课程的成绩(均为不超过100的非负整数);GroupB类是特招运动员,有2门课程的成绩(均为不超过100的非负整数),1次运动会的表现分,表现分有:A、B、C、D共4等。GroupC类是学科专长生,有5门课程的成绩
2020-05-15 17:05:25 1963
原创 C++(多态、虚函数、纯虚函数、抽象类详解)
多态多态分为静态多态和动态多态(看完这篇文章,可能会不认识态这个字)静态多态:体现在运算符重载,函数重载等方面,即程序再编译的时候编译器来确定使用哪个函数,所以也称为编译时多态。动态多态:程序在编译阶段无法确定调用哪个函数,只能在程序运行的时候选择一个正确的参数,这种多态被称为动态多态。由于动态多态的基础是虚函数(在后面),所以我们一点一点的看。指针和引用的兼容性指向基类的指针和引用,可以指向或引用派生类对象,而不需要进行强制类型转换。举个例子:B是A的派生类,那么可以这样写:B b;
2020-05-15 08:44:36 547
原创 C++ (类继承,虚基类,多重继承)
类继承类继承这种方式使我们的代码更为简洁和高效先回顾一下三种访问控制关键字public: public所修饰的成员变量可以在类内(包括子类)和类外进行访问。protected: protected所修饰的成员变量只能在类内(包括子类)进行访问。private: private所修饰的成员变量只能在类内访问(不包括子类)。继承的方式公有继承class 派生类(子类)名 :public 基类(父类)名{ 派生类(子类)新增成员;};公有继承对基类成员访问权限的控制:
2020-05-13 12:26:14 373
原创 PTA 习题:时间相加 C++
时间相加设计一个时间类,用来保存时、分、秒等私有数据成员,通过重载操作符“+”实现2个时间的相加。要求: (1)小时的时间范围限制在大于等于0;(2)分的时间范围为0-59分;(3)秒的时间范围为0-59秒。#include <iostream>using namespace std;class Time {private: int hours,minutes, seconds;public: Time(int h=0, int m=0, int s=0); Time oper
2020-05-11 17:25:40 3540
原创 PTA 习题:使用成员函数重载复数类的运算符+
使用成员函数重载复数类的运算符+类Complex声明了一个复数类,有两个数据成员realPart(代表复数的实部)和imgPart(代表复数的虚部),并定义了成员函数实现了重载运算符“+”以实现两个复数对象的相加操作。成员函数Show用来输出复数的实部和虚部。请完成对运算符“+”的重载操作。函数接口定义:Complex& Complex::operator+(Complex& com);参数com为复数类Complex的对象的引用,函数的返回值为当前对象与com对象相加后的值。裁判
2020-05-11 17:22:56 3701
原创 PTA 习题:时钟模拟
6-2 时钟模拟 (30分)一个Time类,数据成员有时、分、秒。要求模拟秒表,每次走一秒,满60秒进位,秒又从零开始计数。满60分进位,分又从零开始计数。输出时、分和秒的值。(使用重载++运算符实现)时间类定义:class MyTime测试程序样例:/* 请在这里填写答案 */int main(){ MyTime t1,t2(23,59,59),t3; cin>>t3; ++t1; cout<<t1<<endl; ++t2; cout<
2020-05-11 17:19:14 1620
原创 PTA习题:复数类的操作
7-8 复数类的操作 20point(s)1、声明一个复数类Complex(类私有数据成员为double型的real和image)2、定义构造函数,用于指定复数的实部与虚部。3、定义取反成员函数,调用时能返回该复数的相反数(实部、虚部分别是原数的相反数)。4、定义成员函数Print(),调用该函数时,以格式(real, image)输出当前对象。5、编写加法友元函数,以复数对象c1,c...
2020-04-23 21:54:08 3824 1
原创 C++(运算符重载,运算符重载的两种方式详解)
运算符重载基础知识固定用法:类内声明:bool operator>=(const Student&) const;初始化:bool Student::operator>=(const Student& stu) const{//常成员函数,功能:比较两个对象的数据成员dScore大小 return this->dScore >= stu...
2020-04-22 14:31:53 5407
原创 PTA 习题:客户机类
实现客户机(Client)类。定义字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户机数量;定义静态函数ChangeServerName()改变服务器名称。完成程序,使得提供的测试程序可以运行并得到要求的结果。下面是答案,二十分钟搞出来的,有点舒服。#include <iostream>#include <stri...
2020-04-16 23:04:56 3348 2
原创 C++(拷贝构造函数、对象数组(指针)、static、const、友元)
拷贝构造函数如果已经声明了一个类的对象如Student类Student s1;Student s2{s1};//以下三种方法均可定义与s1相同的对象s2Student s2(s1);Student s2=s1;//s1与s2有独立的内存空间;如果没有自定义拷贝构造函数,编译器会提供默认的拷贝构造函数,那么,我们什么时候要自定义拷贝构造函数呢?当默认的拷贝构造函数不能完全胜任对象的拷...
2020-04-16 18:08:50 1609
原创 C++(构造函数、对象成员、析构函数、this指针)
通过对成员函数的调用来体会this指针的使用#include <iostream>using namespace std;class Student{public: int getAge() const {//getAge成员函数,隐含了this指针 return this-> nAge; return nAge; } void setAge(int ...
2020-04-12 12:33:29 350
原创 PTA 习题:类的定义和使用
请定义一个Point类,有两个数据成员:x和y, 分别代表x坐标和y坐标,并有若干构造函数和一个移动的成员函数,可输出移动后新的坐标值。输入:第一行的两个数 分别表示 点的x坐标和y坐标。 第二行的两个数 分别表示 x和y方向移动的距离。输出:移动后的点的x坐标和y坐标。输入样例:1 52 5输出样例:3 10C++代码如下:#include <iostream&g...
2020-04-01 21:53:24 3345 1
原创 PTA 习题:游泳池改造预算(面向对象) C++实现
7-2 例4-3游泳池改造预算 (20分)圆形游泳池需在其周围建一圆形过道,并在其四周围上栅栏。栅栏价格为35元/米,过道造价为20元/平方米。过道宽度为3米,游泳池半径由键盘输入。要求编程计算并输出过道和栅栏的造价。输入格式:输入一个整数或小数。输出格式:分两行输出:在第一行中输出栅栏的造价。在第二行输出过道的造价。输入样例:10输出样例:Fencing Cost is $28...
2020-04-01 21:47:58 5419 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人