当前位置:首页 >> 计算机软件及应用 >>

C++实验


实验一
4-9 设计并测试一个名为 Rectangle 的矩形类,其属性为矩形的左下角与右上角两个点的坐 标,能计算矩形的面积。 解: 源程序: #include <iostream.h> class Rectangle { public: Rectangle (int top, int left, int bottom, int right); ~Rectangle () {} int GetTop() const { return itsTop; } int GetLeft() const { return itsLeft; } int GetBottom() const { return itsBottom; } int GetRight() const { return itsRight; } void SetTop(int top) { itsTop = top; } void SetLeft (int left) { itsLeft = left; } void SetBottom (int bottom) { itsBottom = bottom; } void SetRight (int right) { itsRight = right; } int GetArea() const; private: int itsTop; int itsLeft; int itsBottom; int itsRight; }; Rectangle::Rectangle(int top, int left, int bottom, int right) { itsTop = top; itsLeft = left; itsBottom = bottom; itsRight = right; } int Rectangle::GetArea() const {

int Width = itsRight-itsLeft; int Height = itsTop - itsBottom; return (Width * Height); } int main() { Rectangle MyRectangle (100, 20, 50, 80 ); int Area = MyRectangle.GetArea(); cout << "Area: " << Area << "\n"; return 0; } 程序运行输出:

Area: 3000

实验二
4-20 定义一个复数类 Complex,使得下面的代码能够工作。 Complex c1(3,5) ; //用复数 3+5i 初始化 c1 Complex c2=4.5; //用实数 4.5 初始化 c2 C1.add(c2); //将 c1 与 c2 相加,结果保存在 c1 中 C1.show(); //将 c1 输出(这时的结果应该是 7.5+5i) #include<iostream> using namespace std; class Complex { public: Complex(float r1,float i1); Complex(float r1); void add(Complex &c); void show(); private: float r; float i; }; //类的实现 //构造函数初始化数据成员人 r,i //声明定义类 Complex 及其数据和方法 //外部接口 //构造函数 //相加 //输出 //私有数据成员

Complex::Complex(float r1,float i1) { r=r1; i=i1; } //实部与虚部分别相加 void Complex::add(Complex &c) { r+=c.r; i+=c.i; } //输出 void Complex::show() { cout<<r<<(i>0 ? '+':'-')<<i<<'i'<<endl; } Complex::Complex(float r1) { r=r1; i=0; } //主函数实现 int main() { Complex c1(3,5); Complex c2=4.5; c1.add(c2); c1.show(); return 0; } 程序运行输出: 7.5+5i

//将 c1 赋初值(3,5) //将 c2 赋初值 4.5 //将 c1 与 c2 相加,结果保存在 c1 中 //将 c1 输出(这时的结果应该是 7.5+5i)

实验三
5-14 定义 Boat 与 Car 两个类, 二者都有 weight 属性, 定义二者的一个友元函数 totalWeight(), 计算二者的重量和。

解: 源程序:

#include <iostream.h> class Boat; class Car { private: int weight; public: Car(int j){weight = j;} friend int totalWeight(Car &aCar, Boat &aBoat); }; class Boat { private: int weight; public: Boat(int j){weight = j;} friend int totalWeight(Car &aCar, Boat &aBoat); }; int totalWeight(Car &aCar, Boat &aBoat) { return aCar.weight + aBoat.weight; } void main() { Car c1(4); Boat b1(5); cout << totalWeight(c1, b1) << endl; } 程序运行输出: 9

实验四
有一个汽车类 vehicle,将它作为基类派生小车类 car,卡车类 truck 和轮胎类 boat, 定义这些类并定义一个虚函数来显示各类信息(输出相应类的创建信息) #include<iostream.h> class vehicle //声明定义类 vehicle

{public: virtual void output() { cout<<"vehicle"<<endl; } }; class car :public vehicle { public: virtual void output() { cout<<"car"<<endl; } }; class truck :public vehicle {public: virtual void output() { cout<<"truck"<<endl; } }; class boat :public vehicle {public: virtual void output() { cout<<"boat"<<endl; } }; //主函数的实现 void main() { vehicle v; v.output(); car c; c.output(); truck t; t.output(); boat b; b.output(); } 程序运行输出: vehicle Car Truck

//外部接口 //构造虚函数来显示信息

Boat

实验五
实现一个名为 SimpleCircle 的简单圆类, 其数据成员 int *itsRadius 为一个指向其半径值的 指针,设计对数据成员的各种操作,给出这个类的完整实现并测试这个类。

解: 源程序: #include <iostream.h> class SimpleCircle { public: SimpleCircle(); SimpleCircle(int); SimpleCircle(const SimpleCircle &); ~SimpleCircle() {} void SetRadius(int); int GetRadius()const; private: int *itsRadius; }; SimpleCircle::SimpleCircle() { itsRadius = new int(5); } SimpleCircle::SimpleCircle(int radius) { itsRadius = new int(radius); } SimpleCircle::SimpleCircle(const SimpleCircle & rhs) { int val = rhs.GetRadius(); itsRadius = new int(val); }

int SimpleCircle::GetRadius() const { return *itsRadius; } int main() { SimpleCircle CircleOne, CircleTwo(9); cout << "CircleOne: " << CircleOne.GetRadius() << endl; cout << "CircleTwo: " << CircleTwo.GetRadius() << endl; return 0; } 程序运行输出: CircleOne: 5 CircleTwo: 9

实验六
6-27 定义一个 Employee 类,其中包括表示姓名、街道地址、城市和邮编等属性,包括 chage_name()和 display()等函数;display()使用 cout 语句显示姓名、街道地址、城市和邮编 等属性,函数 change_name()改变对象的姓名属性,实现并测试这个类。

解: 源程序: #include <iostream.h> #include <string.h> class Employee { private: char name[30]; char street[30]; char city[18]; char zip[6]; public: Employee(char *n, char *str, char *ct, char *z); void change_name(char *n); void display(); }; Employee::Employee (char *n,char *str,char *ct, char *z) { strcpy(name, n); strcpy(street, str);

strcpy(city, ct); strcpy(zip, z); } void Employee::change_name (char *n) { strcpy(name, n); } void Employee::display () { cout << name << " " << street << " "; cout << city << " "<< zip; } void main(void) { Employee e1("张三","平安大街 3 号", "北京", "100000"); e1.display(); cout << endl; e1.change_name("李四"); e1.display(); cout << endl; } 程序运行输出: 张三 平安大街 3 号 北京 100000 李四 平安大街 3 号 北京 100000

实验七:
9-6 通过对从本章的链表类模板 linkedlist 进行组合,编写有序链表类模板 orderlist,添加 成员函数 insert 实现链表元素的有序插入。声明两个 int 类型有序链表 a 和 b,分别插入 5 个元素,然后把 b 重的元素插入 a 中。 #include <iostream.h> #include "link.h" template <class T> class Link:public LinkedList<T> { public: void InsertOrder(const T& item); };

template <class T> void Link<T>::InsertOrder(const T& item) { Reset(); while (!EndOfList()) { if (item < Data()) break; Next(); } InsertAt(item); }

void main(void) {

int i, item;

cout << "请输入加入链表 A 的五个整数:"; for ( i=0; i<5; i++ ) { cin >> item; A.InsertOrder(item); }

cout << "请输入加入链表 B 的五个整数: "; for ( i=0; i<5; i++ ) { cin >> item; B.InsertOrder(item); }

cout << endl << "有序链表 A 中的元素为:"; A.Reset(); while(!A.EndOfList()) { cout << A.Data() << " "; A.Next(); }

cout << endl << "有序链表 B 中的元素为: "; B.Reset(); while(!B.EndOfList()) { A.InsertOrder(B.Data()); cout << B.Data() << " "; B.Next(); }

cout << endl << "加入链表 B 中元素后,链表 A 中的元素为:"; A.Reset(); while(!A.EndOfList()) { cout << A.Data() << " "; A.Next(); } }

实验八


相关文章:
C++实验报告.doc
C++实验报告 - 实 验 报 告 课程名称 专业班级 姓学名号 C++程序设计
C++实验一.doc
C++实验一_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档C++实验一_计算机软件及应用_IT/计算机_专业资料。实验一 类和对象 实验课程...
C++实验报告范例.doc
C++实验报告范例 - 实验一 C 语言开发环境与程序设计步骤 一、实验目的和要
c++的实验一。.doc
c++实验一。 - 《C++面向对象程序设计》实验报告 实验 1 C++基础 班级 计-15-3 学号 15151010322 姓名 叶玮 序号: 68 [实验目的] 1、了解和使用 V...
C++实验一.doc
C++实验一 - 实验 一.实验目的及要求 一 ___ 类与对象___ 1) 掌
c++实验报告.doc
c++实验报告 - 一、基础题: 1、P298 8-4 定义计数器 Counte
C++实验.doc
C++实验_计算机软件及应用_IT/计算机_专业资料。C C++实验,包含完整的
C++上机实验.doc
C++上机实验 - 实验项目名称:多态性实现 实验项目编号:实验 3 学号: 组
C++程序设计实验报告.doc
C++程序设计实验报告 - 一、 实验项目名称 Visual C++实验环境熟悉
C++实验一.doc
C++实验一 - C++程序设计 实验报告 课程名称: 实验名称: 任课教师:
C++ 实验题整理.doc
C++ 实验题整理 - HZAU-公共 C++实验5-工管1301、1302 程
C++实验答案.txt
C++实验答案 - 2-29 编写一个完整的程序,运行时向用户提问你考试考了多少
C++实验一.doc
C++实验一 - 高级程序设计语言 C++(实验一) 姓名:XXX 班级:XXX
C++实验.doc
C++实验 - 河南财经政法大学计算机与信息工程学院 实验报告 2013 年--
c++实验.doc
c++实验 - 第四章课后练习题 2: 定义一个类 CTollBooth 来描述
C++实验二 复杂形式的对象.doc
C++实验二 复杂形式的对象 - 天津理工大学实验报告 学院(系)名称:计算机与
C++实验报告.doc
C++实验报告 - 本科实验报告 课程名称: C++面向对象程序设计 实验项目:
c++实验答案(参考).doc
c++实验答案(参考) - 实验__7__实验报告 实验__7__实验报告 __
四川师范大学C++实验报告(含截图).doc
四川师范大学C++实验报告(含截图)_理学_高等教育_教育专区。实验编号: 四川
C++实验报告.doc
C++实验报告 - 计算机程序设计基础 (C++) 实验报告 软件学院 二 O
更多相关标签: