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

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++实验一
C++实验一_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 C++实验一_计算机软件及应用_IT/计算机_专业资料。C++程序设计 实验报告 ...
C++实验二
C++实验二_计算机软件及应用_IT/计算机_专业资料。实验 2 继承与派生 实验课程名:面向对象程序设计(C++方向) 专业班级: 学号: 姓名: 实验时间: 实验地点: 指导...
C++实验一
C++实验一_工学_高等教育_教育专区。c++上机实验,类与对象 实验一.实验目的及要求 一 ___ 类与对象___ 1) 掌握类的定义和使用;掌握类对象的声明;练习具有不...
c++实验报告
c++实验报告_调查/报告_表格/模板_实用文档。实验报告( 2014 / 2015 学年 第二 学期)? ? ? ? 课程名称 实验名称 面向对象程序设计及 C++ 实验一: 类和对象...
c++实验五_图文
c++实验五_计算机软件及应用_IT/计算机_专业资料。? 实验目的: 1) 掌握纯文本文件的写操作。 2) 掌握纯文本文件的读操作 3) 掌握二进制文件的使用。 ? 实验...
C++实验报告
C++实验报告_IT/计算机_专业资料。《C++面向对象程序设计实验》 实验报告指导老师:李盘林 专业: 信息安全 班级: 0441001 学号: 2010212136 姓名: 范磊 日期:2012-05...
C++实验一
C++实验一_计算机软件及应用_IT/计算机_专业资料。c++实验一 C++程序设计 实验报告 课程名称: 实验名称: 任课教师: 指导教师: C++程序设计 C++面向对象程序设计 ...
C++实验总结报告
C++实验总结报告_IT/计算机_专业资料。计算机C++C++ 实验总结报告 实验总结报告 研究课题: 研究课题:图形编辑器 一、实验目的 1. C++的一些重要性质 利用封装、继承...
C++实验二
C++实验二_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档C++实验二_计算机软件及应用_IT/计算机_专业资料。实验二 继承与派生 实验...
C++实验1-4
C++实验1-4 C++编程试题及详细答案C++编程试题及详细答案隐藏>> 实验一 熟悉 Visual C++编程环境 编程环境一、实验目的 1.掌握 Visual C++6.0 集成开发环境的使用...
更多相关标签: