c++课程设计

1 C++面向对象程序设计基础

【实验简介】学会用算法语言C++描述抽象数据类型,使用模板建立数据结构。理解数据

结构的组成分为两部分,第一部分是数据集(数据元素),第二部分是在此数据集上的操作。从面向对象的观点看,这两部分代表了对象的属性和方法。掌握用C++描述数据结构的基本方法,即通过建立类来描述抽象数据类型。类的数据成员提供对象属性,成员函数提供操作方法,方法是公共接口,用户通过调用方法实现对属性的访问。

【实验内容】

1. 定义三维空间的坐标点TPoint

2. 描述三维空间的球TBall,实现其主要操作(如计算体积和表面积,输出空间坐标

等)。

【主要代码】

#include

using namespace std;

#define PI 3.1415926 //定义PI的值 template //定义一个点的模板类 class Tpoint //空间直角坐标系中的点 {

private: T x,y,z; //虚拟类型的坐标值X,Y,Z public: Tpoint() {x=0;y=0;z=0;} //缺省构造函数 Tpoint(T a,T b,T c) {x=a;y=b;z=c;} //带参数的构造函数 Tpoint(Tpoint &a); T getx(){return x;} //返回坐标点的x值 T gety(){return y;} //返回坐标点的y值 T getz(){return z;} //返回坐标点的z值 T Tpointmove(T mx,T my,T mz) {x+=mx; y+=my; z+=mz; //移动位置(修改坐标值) } void input() {cout<<\请分别输入点的坐标x,y,z的值:\ cin>>x>>y>>z; //输入球面上一点的坐标值 } void output() { cout<<\ } Tpoint operator=(Tpoint &p1); };

template

Tpoint::Tpoint(Tpoint &p1) { x=p1.getx(); y=p1.getx(); z=p1.getz(); //取坐标值 }

template

Tpoint Tpoint::operator =(Tpoint &p2) { x=p2.getx(); y=p2.getx(); z=p2.getz(); return *this; }

template class Tball {

private: Tpoint m; double radius; public: Tball() { radius=0;} Tball(Tpoint & zx,T zy) { m=zx; radius=zy;} T volume() {return (4.0/3)*PI*radius*radius*radius; } T area() {return 4*PI*radius*radius;} void setradius() { cout<<\请输入球的半径:\ cin>>radius; } void setTpoint() { cout<<\请输入球的圆心坐标\ m.input(); } void output() { cout<<\球的圆心坐标为\

m.output(); cout<<\球的半径为\ } void Tballmove(T mx,T my,T mz) { m.Tpointmove(mx,my,mz);} };

void main() {

Tball x1; x1.setradius(); x1.setTpoint();

cout<<\球的表面积为\cout<<\球的体积为\x1.output();

system(\}

【实验过程】

【实验体会】

先熟悉老师给的定义点坐标的平面类,然后利用模板类定义球面点坐标类,定义PI的值,根据类实现函数的重载等操作。在定义了球类后,设置一个点作为球的球心,并初始化球心坐标。然后,根据要求,分别设计球体面积和体积的算法公式。虽然这是一个比较简单的程序设计,但刚开始时,我基本上是无从下手,再看了模板类后,我照着编了一个,然后经过不断的调试,我终于完成了第一个程序,自豪感油然而生。

3 通讯簿管理(顺序表的应用)

【问题描述】通讯簿是一个线性表,可以存储一定数量的联系人记录,提供查找、插入、

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4