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

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++实验报告 - 《面向对象程序设计》课程设计报告 2015 / 2016 学年第 二 学期 系部:计算机科学系 专业:计算机科学系(网络工程方向) 班级:应本 141 姓名:齐...
C++实验报告
***大学 C++实验报告 学院:*** 班级:*** 姓名:*** 学号:*** 指导老师:*** 日期:*** 类的定义和使用一.实验目的 1.掌握类的概念、类的定义格式、类...
C++实验报告
C++实验报告_理学_高等教育_教育专区。3/6/2015 林子扬 1340601119 C++课程实验报告 1340601119 林子扬 1.试定义一个类 STR,实现求两个字符串的交集。两个字符...
c++综合实验
c++综合实验 - c++实验桂林电子科技大学数学与计算科学院... c++综合实验_解决方案_计划/解决方案_实用文档。c++实验桂林电子科技大学数学与计算科学院 ...
C++实验报告
C++实验报告_实习总结_总结/汇报_实用文档。实验 1-1 过程化编程【实验目的】 理解、掌握过程化编程程序设计思想。 【实验内容】 1. 程序填空,练习类、对象、...
C++实验报告
C++实验报告 - 实 验 报 告 课程名称 专业班级 姓学名号 C++程序设计 电子 1542 董孝凯 15 电气与信息学院 和谐 勤奋 求是 创新 实验教学考核和成绩评...
c++实验报告
c++实验报告_实习总结_总结/汇报_实用文档。课程实验报告课 程名称姓名实验名称实验目的及要求实验环境实验内容 面向对象程序 设计 班级 软件 153 实验日期 2016.5....
c++实验报告
c++实验报告_调查/报告_表格/模板_实用文档。实验报告( 2014 / 2015 学年 第二 学期)? ? ? ? 课程名称 实验名称 面向对象程序设计及 C++ 实验一: 类和对象...
c++实验报告
c++实验报告_调查/报告_表格/模板_实用文档。南京信息工程大学C++实验报告,C++课程设计报告 学号: 班级: 13 级计科二班 姓名: 指导教师: 王定成 个人银行综合实例...
C++实验答案
C++实验答案_理学_高等教育_教育专区。实验编程题答案实验一 1、输入日期的年份和月份,求该月有多少天。提示:对于月份为 1、3、5、7、8、10、 12 的月份天数...
更多相关标签: