预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共26页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

面向对象的程序设计课程设计报告姓名:学号:班级:院系:日期:一、设计目的课程设计是课程教学中的一项重要内容,是完成教学计划达到教学目标的重要环节,是教学计划中综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。本次课程设计通过设计和实现几个应用程序,达到以下目标:1.使学生能够比较熟练地掌握C++语言的基本语法规则;2.熟练掌握基本的面向对象的程序设计方法,如类的实现、创建类的实例—对象、实现类的继承等;3.掌握各种面向对象的程序设计技术,如继承和派生,虚继承、虚函数、抽象类、多态的实现、运算符重载、使用C++标准库等。4.掌握在VC++平台上进行程序设计和调试的方法。题目1:通过组合和派生构成新的类本设计题目的任务是使用Point类产生Line类。分别通过组合类及派生类两种方法实现,并要求分别给出使用类模板实现的程序。本设计题的目的是使学生掌握在不同的实现方法中,如何设计相应的构造函数和拷贝构造函数,进一步理解程序调用它们及析构函数的执行顺序,掌握组合类和派生类。另外本设计题目要让学生进一步掌握和理解类模板的技术及其实现方法。题目3:成绩管理系统输入一个班级的学生基本信息(包括学号,姓名,性别,科目),对N门考试的成绩进行管理(例N=5)要求:用户录入每个学生每门课程的分数;能够计算每个学生的各门功课总分和平均分,并按总分将成绩排序,显示每个学生的总分和排名;计算全班各门功课的平均分,显示每门课程中低于平均分的每一个学生的学号,姓名,性别,科目,成绩等信息;显示每门科目中,成绩在90分以上的学生信息。另外还输出每门科目中不及格的学生信息;能按姓名或者学号查找,增加,删除和保存各个学生的信息。题目1:通过组合和派生构成新的类组合类:#include<iostream>usingnamespacestd;classPoint{public:Point(){cout<<"Point的默认构造函数被调用!"<<endl;}Point(intx,inty){cout<<"Point的构造函数被调用!"<<endl;}Point(Point&p){cout<<"Point的拷贝构造函数被调用!"<<endl;}~Point(){cout<<"Point的析构函数被调用!"<<endl;}voidset(intx1,inty1){x=x1;y=y1;}intgetx(){returnx;}intgety(){returny;}voiddisplay(){cout<<"("<<x<<","<<y<<")"<<endl;}private:intx,y;};classLine{public:Line(){cout<<"Line的默认构造函数被调用!"<<endl;}Line(Point&a,Point&b){BeginPoint=a;EndPoint=b;cout<<"Line的构造函数被调用!"<<endl;}Line(Line&l){cout<<"Line的拷贝构造函数被调用!"<<endl;}~Line(){cout<<"Line的析构函数被调用!"<<endl;}voidsetBeginPoint(Point&p){x1=p.getx();y1=p.gety();}voidsetEndPoint(Point&p1){x2=p1.getx();y2=p1.gety();}PointgetBeginPoint(){returnBeginPoint;}PointgetEndPoint(){returnEndPoint;}voiddisplay(){cout<<"直线的起点坐标为:";BeginPoint.display();cout<<"直线的终点坐标为:";EndPoint.display();cout<<endl;}private:intx1,x2,y1,y2;PointBeginPoint;PointEndPoint;};voidmain(){Pointp,p1;p.set(1,2);p.display();p1.set(3,4);p1.display();Lineline(p,p1);line.setBeginPoint(p);line.setEndPoint(p1);line.display();