面向对象的程序设计课程设计报告
姓 名:
学 号:
班 级:
院 系: 数学与计算机学院
日 期:
1.课程题目
题目1:通过组合和派生构成新的类
本设计题目的任务是使用Point类产生Line类。分别通过组合类及派生类两种方法实现,并要求分别给出使用类模板实现的程序。
本设计题的目的是使学生掌握在不同的实现方法中,如何设计相应的构造函数和拷贝构造函数,
进一步理解程序调用它们及析构函数的执行顺序,掌握组合类和派生类。另外本设计题目要让学生进一步掌握和理解类模板的技术及其实现方法。
题目2:成绩管理系统
输入一个班级的学生基本信息(包括学号,姓名,性别,科目),对N门考试的成绩进行管理(例N=5)
要求
● 用户录入每个学生每门课程的分数;
● 能够计算每个学生的各门功课总分和平均分,并按总分将成绩排序,显示每个学生的总分和排名;
● 计算全班各门功课的平均分,显示每门课程中低于平均分的每一个学生的学号,姓名,性别,科目,成绩等信息;
● 显示每门科目中,成绩在90分以上的学生信息。另外还输出每门科目中不及格的学生信
息;
● 能按姓名或者学号查,增加,删除和保存各个学生的信息。
2.设计分析
题目1:
point1,point2 作为point类的对象,两个点确定一条直线。
题目2:
3.代码设计
题目一:
A:组合类
#include<iostream>
#include<math.h>
using namespace std;
template <class T>
class Point
{ protected:
T x;
T y;
public :
Point();
Point(T,T);
Point(Point<T> &);
~Point();
void setX(T);
T getX();
void setY(T);
T getY();
void displayPoint(); };
template <class T>
Point<T>::Point()
{ x=0; y=0;
cout<<"Point 类默认构造函数!"<<endl; }
template <class T>
Point<T>::Point(T x,T y)
{ this->x=x; this->y=y;
cout<<"Point 类带参构造函数!"<<endl; }
template <class T>
什么编程课比较好Point<T>::Point(Point<T> &newPoint)
{ this->x=newPoint.x; this->y=newPoint.y;
cout<<"Point 类拷贝构造函数!"<<endl; }
template <class T>
Point<T>::~Point()
{ cout<<"Point 类析构函数!"<<endl; }
template <class T>
void Point<T>::setX(T x)
{ this->x=x; }
template <class T>
T Point<T>::getX()
{ return this->x; }
template <class T>
void Point<T>::setY(T y)
{ this->y=y; }
template <class T>
T Point<T>::getY()
{ return this->y; }
template <class T>
void Point<T>::displayPoint()
{ cout<<" ("<<x<<","<<y<<")"<<endl; }
template <class T>
class Line
{ private:
Point<T> point1;
Point<T> point2;
public: Line();
Line(Point<T>,Point<T>);
Line(T,T,T,T);
Line(Line<T> &);
~Line();
void setPoint1(Point<T>);
Point<T> getPoint1();
void setPoint2(Point<T>);
Point<T> getPoint2();
void displayLine();
T length(); };
template <class T>
Line<T>::Line()
{ cout<<"Line类默认构造函数!"<<endl; }
template <class T>
Line<T>::Line(Point<T> p1,Point<T> p2)
{ this->point1=p1;
this->point2=p2;
cout<<"Line类带参构造函数!"<<endl; }
template <class T>
Line<T>::Line(T x1,T y1,T x2,T y2):point1(x1,y1),point2(x2,y2)
{ cout<<"Line类构造函数!"<<endl; }
template <class T>
Line<T>::Line(Line<T> &line):point1(line.point1),point2(line.point2)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论