【C++】怎样读取TXT文件里的数据并且建立异质链表?
一厮倾城 2015-08-28 08:29:43 /*实验三 异质链表及其应用(12学时)
具体要求:
1.完成图形类及其派生类的定义
(1) 设计一个计算图形面积的类库。它的顶层是一个抽象类,并且提供三个纯虚函数:显示数据成员、返回面积和返回体积。
class Shape
{public:
virtual void showData()=0;
virtual double reArea()=0;
virtual double reVolume()=0;
};
第二层有Shape类派生TwoDimShape(二维图形)和ThreeShape(三维图形)类。他们增加了有关的数据成员,但没有成员函数的实现。
第三层派生具体的图形类。TwoDimShape类派生Circle(圆)、Elipse(椭圆)、Rectangle(矩形)和Triangle(三角形)等类。ThreeShape类派生Ball(球体)、Cylider(圆柱体)和RectangularParallelepiped(长方体)等类。
(2) 设计一个测试程序,全面测试你的设计,要求使用基类指针引用派生类对象的三个函数。
(3) 在按要求进行以上工作的同时,完成以下思考。
思考并验证
(1) 去掉类Shape中的第一个virtual和=0;,加上{},其余不变,输出结果会如何变化,为什么?
(2) 去掉类Shape中的第一个=0,其余不变,会产生什么问题,为什么?
(3) 如果执意不把类Shape中的showData()定义成纯虚函数或虚函数,应如何修改,使程序保持原来的效果不变?
(4)在你的程序中,多态性是如何体现的?
2.用异质链表组织上述各类图形对象。
(1) 实现单链表:将结点数据域定义为int,链表具有插入结点、删除结点、反转、遍历等功能,并测试其正确性。
(2) 将结点数据域定义修改为Shape *,用链表中的每个结点表示一个具体的图形对象,创建图形对象链表,并测试其正确性。
(3) 将所建单链表中的内容写到一个文本文件中,反转单链表并再次将其内容追加到同一文本文件中,查阅其正确性。
思考并验证
如果不采用虚函数和多态性,本题会如何?
实验三评分标准:
完成所有要求,符合软件工程要求,则最高可得100分;每缺少一个功能或存在一个运行错误,则扣除10分,不符合软件工程要求的扣20分。
注意:本题中,上述各个步骤只是建议这样做,最终只检查一个统一的完整的程序实现。
注意:完成作业的时间也在评分体系中有考虑,查的早则相对分数会高些。
*/