![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++程序设计学习
文章平均质量分 57
孙化龙
这个作者很懒,什么都没留下…
展开
-
第14周项目2-用文件保存的学生名单
问题描述:文件score.dat中保存的是若干名学生的姓名和C++课、高数和英语成绩。(1)定义学生类,其中包含姓名、C++课、高数和英语成绩及总分数据成员。[cpp] view plaincopyprint?1. //定义学生类 2. class Student{ 3. public: 4. //声明必要的成员函数原创 2015-06-17 22:46:54 · 396 阅读 · 0 评论 -
第14周项目1-小玩文件(2)
问题描述:下面程序的功能是将文本文件abc.txt中的所有行加上行号后写到newabc.txt文件中,请填空将程序补充完整。#include #include #include using namespace std;int main(){ fstream outfile,infile; infile.open("abc.txt",_______原创 2015-06-10 08:30:38 · 335 阅读 · 0 评论 -
第14周项目1-小玩文件(1)
问题描述:面程序的功能是统计文本文件abc.txt中的字符个数,请填空将程序补充完整。#include #include #include _____________ // (1)using namespace std;int main(){ fstream file; file.open("abc.txt", _________); // (2原创 2015-06-10 08:23:18 · 308 阅读 · 0 评论 -
第13周项目3-立体类族共有的抽象类
问题描述:设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。代码:#include using namespace原创 2015-06-06 12:37:42 · 361 阅读 · 0 评论 -
第13周项目2-形状类族的中的纯虚函数
问题描述:写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形)、Rectangle(矩形)、Triangle(三角形)。用如下的main()函数,求出定义的几个几何体的面积和。 int main(){ Circle c1(12.6),c2(4.9);//建立Circle类对象c1,c2,参数为圆半径 Rectangle r1(4.5,8原创 2015-06-06 12:34:30 · 347 阅读 · 0 评论 -
第13周项目1-动物这样叫(3)
问题描述:每一个Animal的派生类都有一个“名字”数据成员,这个成员设置为基类Animal的成员更好。改造上面的程序,将“名字”成员作为抽象类Animal数据成员被各派生类使用。代码:#include #include using namespace std;class Animal{protected: string name;public:原创 2015-06-06 12:33:04 · 416 阅读 · 0 评论 -
第13周项目1-动物这样叫(2)
问题描述:显然,Animal设计为抽象类更合适,Animal不需要能够实例化,是专门作基类使用的。改造程序,使Animal设计为抽象类,这时main()函数中p = new Animal();将出错,将此行删除。代码:#include #include using namespace std;class Animal{public: virtual voi原创 2015-06-06 12:30:55 · 314 阅读 · 0 评论 -
第13周项目1-动物这样叫(1)
问题描述:根据给出的main()函数和运行结果的提示,设计出相关的各个类,注意观察运行结果,提取出每个类中需要的数据成员,并匹配上需要的成员函数。下面是给出的基类Animal声明和main()函数。class Animal{public: virtual void cry() { cout<<"不知哪种动物,让我如何学叫?"<<endl;原创 2015-06-06 12:27:07 · 383 阅读 · 0 评论 -
第13周-程序阅读(4)
阅读、修改和运行关于交通工具类的程序,回答问题,以理解相关技术方法(1)请写出程序的执行结果,并在上机时对照理解#include using namespace std;class Vehicle //交通工具{public: void run() const { cout << "run a vehicle. "<<endl; }};cla原创 2015-06-03 08:51:53 · 362 阅读 · 0 评论 -
第13周-程序阅读(3)
代码:#include using namespace std;class Base{public: virtual void Who() =0;};class FirstDerived:public Base{public: void Who() { cout<<"F"; }};class SecondDerived:public原创 2015-06-03 08:29:55 · 661 阅读 · 1 评论 -
第13周-程序阅读(1)
代码:#includeusing namespace std;class A {int a;public: A():a(5){} virtual void print()const { cout<<a;}};class B: public A { char b;public: B() { b='E'; } void pri原创 2015-06-03 07:54:49 · 372 阅读 · 0 评论 -
第11周项目4-点、圆的关系(3)
问题描述:与圆心相连的直线:给定一点p,其与圆心相连成的直线,会和圆有两个交点,如图。在上面定义的Point(点)类和Circle(圆)类基础上,设计一种方案,输出这两点的坐标。提示:代码:#include #include using namespace std;class Circle;class Point{protected: dou原创 2015-05-29 17:55:27 · 356 阅读 · 0 评论 -
第11周项目4-点、圆的关系(2)
问题描述:在圆类上重载关系运算符(6种),使之能够按圆的面积比较两个圆的大小。自编main函数完成测试。代码:#include #include using namespace std;class Point{protected: double x,y;public: Point(double a=0,double b=0):x(a),y(b){}原创 2015-05-29 17:44:42 · 363 阅读 · 0 评论 -
第11周项目4-点、圆的关系(1)
问题描述:(1)先建立一个Point(点)类,包含数据成员x,y(坐标点);(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员(半径),基类的成员表示圆心;(3)编写上述两类中的构造、析构函数及必要运算符重载函数(本项目主要是输入输出);代码:#include #include using namespace std;class Point原创 2015-05-29 12:56:04 · 360 阅读 · 0 评论 -
第11周项目3-日期时间类
问题描述:定义一个日期类Date,数据成员包括年、月、日,SetDate(int y,int m,int d)和PrintDate()函数分别用于设置日期和显示日期;再定义一个时间类Time,数据成员包括时、分、秒,SetTime(int h,int m,int s)和PrintTime()函数分别用于设置时间和显示时间,在此基础上再定义一个日期时间类TimeDate,充分利用已有的两个类中提原创 2015-05-29 12:53:07 · 449 阅读 · 0 评论 -
第11周项目2-摩托车继承自行车和机动车
问题描述:在下面一段类的定义中,自行车类的虚基类为车辆类,机动车类的虚基类也为车辆类,摩托车类的基类为自行车类和机动车类,类之间均为公有继承,如图所示。下载可执行文件链接motorcar.exe.(1)根据上面各类间关系的描述,补全下面程序段中空缺的代码;(2)实现程序中声明的成员函数,注意相应操作中的动作发生的条件不能满足时应给出提示。(3)运行程序,享受开摩托的过程。(原创 2015-05-29 12:47:01 · 411 阅读 · 0 评论 -
第11周项目1-教师兼干部类
问题描述:分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求: (1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。 (2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre类中还包含数据成员wages(工资原创 2015-05-27 08:45:31 · 379 阅读 · 0 评论 -
第10周项目4-类族的设计
问题描述:按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积、体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试; (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的原创 2015-05-23 22:40:08 · 391 阅读 · 0 评论 -
第10周项目3-点类派生直线类
问题描述:定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点。请阅读下面的代码,并将缺少的部分写出来。#include#includeusing namespace std;class Point //定义坐标点类{public: Point():x(0),y(0) {}; Point(double x0, doub原创 2015-05-23 20:41:47 · 330 阅读 · 0 评论 -
第10周项目2-职员有薪水了(2)
问题描述:字符串除了用C++扩充的string类型外,按C语言的传统,还可以用char *表示。请将类声明中的string全部改为char *后,重新写一遍程序(此时的区别是,类中有指针成员,构造和析构函数需要考虑深复制的问题了。代码:#include #include #include using namespace std;class CPerson{protec原创 2015-05-21 16:56:01 · 346 阅读 · 0 评论 -
第10周项目2-职员有薪水了(1)
问题描述:定义一个名为CPerson的类,有以下私有成员:姓名、身份证号、性别和年龄,成员函数:构造函数、析构函数、输出信息的函数。并在此基础上派生出CEmployee类,派生类CEmployee增加了两个新的数据成员,分别用于表示部门和薪水。要求派生类CEmployee的构造函数显示调用基类CPerson的构造函数,并为派生类CEmployee定义析构函数,定义输出信息的函数。代码:原创 2015-05-20 09:19:25 · 313 阅读 · 0 评论 -
第10周项目1-存储班长信息的学生类(2)
问题描述:将Stu类的数据成员的访问权限改为private,你的程序是否能完成要求的功能?如果不行,请修改程序。请不要修改给出的代码,只能修改自己写的代码。 代码:#include #include using namespace std;class Stu //声明基类{public: Stu(int n, string nam ); //原创 2015-05-20 08:39:03 · 332 阅读 · 0 评论 -
第10周项目1-存储班长信息的学生类(1)
问题描述:class Stu //声明基类{public: Stu(int n, string nam ); //基类构造函数 void display( ); //成员函数,输出基类数据成员protected: //(*)访问权限为保护型的数据成员 int num; //学生学号 string原创 2015-05-20 08:34:00 · 316 阅读 · 0 评论 -
第10周项目0-是春哥啊
问题描述:请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为:Name: 春哥Grade: 19#include #include using namespace std;class Person{public: Person(char* s){ strcpy(name,s); } void disp原创 2015-05-20 08:19:21 · 331 阅读 · 0 评论 -
第9周项目5-方程也是类
问题描述:设计一元一次方程类,求形如ax+b=0的方程的解。例如:输入3x-8=0时,输出的方程的解为x=2.66667;再如:输入5s+18=0时,输出的方程的解为s=-3.6; 代码:#include using namespace std;class CEquation{private: double a; // 未知数系数 dou原创 2015-05-18 17:37:18 · 296 阅读 · 0 评论 -
第9周项目4-我的向量类
问题描述:建立一个向量类MyVector,声明如下,请完成类的定义class MyVector //定义向量类{public: MyVector(int m); //构造函数,共有m个元素的向量,元素值预置为0 MyVector(const MyVector &v); //复制构造函数 ~MyVector(); //析构函数:释放动态数原创 2015-05-18 17:32:17 · 341 阅读 · 0 评论 -
第9周项目3-分数类中的运算符重载(续)
问题描述:在分数类中的运算符重载基础上(1)定义分数的一目运算+和-,分别代表分数取正和求反,将“按位取反运算符”~重载为分数的求倒数运算。(2)定义分数类中>运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。代码:#include #include using namespace std;class CFraction{p原创 2015-05-16 11:57:16 · 352 阅读 · 0 评论 -
第9周项目2-Time类中的运算符重载(续)
问题描述:在Time类中的运算符重载基础上(1)定义对时间对象的自增和自减一目运算符(2)定义Time类中的>运算符重载,实现时间的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。代码:#include using namespace std;class CTime{private: short int hour; // 时原创 2015-05-13 09:17:07 · 364 阅读 · 0 评论 -
第9周项目1-复数类中的运算符重载(续)
问题描述:在复数类中的运算符重载基础上(1)再定义一目运算符 -,-c相当于0-c。(2)定义Complex类中的>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然。代码:#include using namespace std;class Complex{public: Complex(){real=0;i原创 2015-05-13 08:33:59 · 380 阅读 · 0 评论 -
第8周项目4-String类的构造
问题描述:代码:运行结果:学习心得:原创 2015-05-02 12:50:23 · 369 阅读 · 0 评论 -
第8周项目3-分数类中的运算符重载
问题描述:实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算。代码:#include #include using namespace std;class CFraction{private: int nume; int deno;public: CFraction(int n=0原创 2015-04-29 09:24:52 · 372 阅读 · 0 评论 -
第8周项目2-Time类中的运算符重载
问题描述: 实现Time类中的运算符重载。代码:#include using namespace std;class CTime{private: short int hour; // 时 short int minute; // 分 short int second; // 秒public: CTime(int原创 2015-04-27 16:33:37 · 376 阅读 · 0 评论 -
第8周项目1-实现复数类中的运算符重载(3)
问题描述:定义一个定义完整的类(是可以当作独立的产品发布,成为众多项目中的“基础工程”)。这样的类在(2)的基础上,扩展+、-、*、/运算符的功能,使之能与double型数据进行运算。设Complex c; double d; c+d和d+c的结果为“将d视为实部为d的复数同c相加”,其他-、*、/运算符类似。代码:#include using namespace std;原创 2015-04-27 14:24:30 · 374 阅读 · 0 评论 -
第8周项目1-实现复数类中的运算符重载(2)
问题描述: 用类的友元函数,而不是成员函数,再次完成上面提及的运算符的重载代码:#include using namespace std;class Complex{public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r; imag=i;} frien原创 2015-04-27 14:11:39 · 318 阅读 · 0 评论 -
第8周项目1-实现复数类中的运算符重载(1)
问题描述: 用类的成员函数,定义复数类重载运算符+、-、*、/,使之能用于复数的加减乘除代码:#include using namespace std;class Complex{public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r; imag=i;}原创 2015-04-27 14:01:12 · 331 阅读 · 0 评论 -
第6周项目6-复数模板类(2)
问题描述: 友元函数提供了一种非成员函数访问私有数据成员的途径,模板类使类中的数据成员的类型变得灵活,这两种技术可以结合起来用。要求在前面方案的基础上支持用友员函数实现的加法。代码:#include using namespace std;templateclass Complex{public: Complex( ) {原创 2015-04-20 17:29:54 · 361 阅读 · 0 评论 -
第6周项目6-复数模板类(1)
问题描述:阅读教材例10.1。该例实现了一个复数类,但是美中不足的是,复数类的实部和虚部都固定只能是double型的。可以通过模板类的技术手段,设计Complex,使实部和虚部的类型为定义对象时指定的实际类型。 (1)要求类成员函数在类外定义。 (2)在此基础上,再实现减法、乘法和除法代码: #include using namespace std;原创 2015-04-20 16:56:43 · 426 阅读 · 0 评论 -
第6周项目5-友元类
问题描述: 定义下面两个类的成员函数(为体验友元类,实际上本例并不一定是一个好的设计,将两个类的合并为一个DateTime,日期、时间都处理更好)class Date; //对Date类的提前引用声明class Time{public: Time(int,int,int); void add_a_second(Date &); //增加1秒,1秒后可原创 2015-04-17 17:18:54 · 346 阅读 · 0 评论 -
第6周项目4-成员函数、友元函数和一般函数有区别
问题描述: 完成求点类中距离的任务。你需要实现求距离函数的三种版本:分别利用成员函数、友元函数和一般函数求两点间距离的函数,并设计main()函数完成测试。代码:#include#includeusing namespace std;class CPoint{private: double x; double y; public:原创 2015-04-17 12:51:11 · 346 阅读 · 0 评论 -
第6周项目3-人数不定的工资类
问题描述: 设计一个工资类(Salary),其中的数据成员包括职工人数(number,人数不定)和number个职工的工资salary,要求输入职工工资并逐个输出。提示:用固定大小的数组存储number个职工的工资,可能造成空间的浪费,也可能会由于空间不够而不能处理职工人数过多的应用。将salary声明为指针类型的成员,通过动态分配空间,分配正好大小的空间存储数据。代码:#in原创 2015-04-15 09:14:10 · 650 阅读 · 1 评论