《 面向对象程序设计》课程设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《面向对象程序设计》课程设计
实
验
报
告
指导教师
小组成员:
专业班级: 2010级计算机科学与技术专业
开设时间:2011-2012(一)
目录
1.任务1 (2)
1.1 任务介绍 (2)
1.2 小组成员任务分配 (2)
1.3.1设计思想及主要流程图 (2)
1.3.1主要程序清单 (2)
1.3.1 运行结果及分析 (4)
1.3.2设计思想及主要流程图 (2)
1.3.2主要程序清单 (2)
1.3.2 运行结果及分析 (4)
1.3.3设计思想及主要流程图 (2)
1.3.3主要程序清单 (2)
1.3.3 运行结果及分析 (4)
2.任务2 (2)
2.1 任务介绍 (2)
2.2 小组成员任务分配 (2)
2.3设计思想及主要流程图 (2)
2.3主要程序清单 (2)
2.3 运行结果及分析 (4)
3收获、体会和建议 (4)
任务1.按照要求设计类 1.根据输出设计类
设计类就是根据数据封装的要求,抽象出适合的类。
有如下测试程序和测试程序的输出结果,要求设计类Welcome 。 void main() { Welcome we; Welcome you(we); you.Display();
you.Set(“Thank you.”);
cout< } 测试程序的输出结果如右: 设计类Welcome 的原则 1)在头文件Cpp1.h 中声明类 2)在Cpp1.cpp 中实现类 3)使用内联函数定义Display()函数 2.使用类改写程序 编写一个求方程02=++c bx ax 的根的程序,用三个函数分别求当ac b 42 +大于零、等于零和小于零时方程的根。要求从主函数输入a 、b 、c 的值并输出结果。使用面向过程的解法一般是把变量设为double 型,适用库函数cmath 进行计算。 请注意:使用面向对象的方法解决这个问题,首先要从解一元二次方程出发,抽象一个代表一元二次方程的类。为了使用这个类,必须根据要结局的问题,为这个类设计合适的数据成员和成员函数。 3.使用包含(聚合)和派生设计新类 (1)使用包含的方法,编写一个点类Point 和线段类Line ,演示构造函数、复制构造函数、析构函数作用及其调用顺序; (2)使用派生的方法,编写一个点类Point ,然后由它派生线段类,并演示构造函数、复制构造函数、析构函数作用及其调用顺序。 任务1:小组成员任务分配: 李小拉:任务一中的第一个任务(包括设计思想,流程图,程序编写) 胡海薇:任务一中的第二个任务(包括设计思想,流程图,程序编写) 周子研:任务一中的第三个任务(包括设计思想,流程图,程序编写) 最后的结果分析大家一起分析与总结 设计思想: 1.根据所给的主函数及运行结果来分析,类welcome包含成员函数和数据成员,输入数据和输出数据都将会显示出来,当输入OK时结束输出数据,最后调用析构函数。 2.根据题意求二元一次方程的跟,并且要用成员函数和数据成员,应该首先判断是否是二元一次方程,然后再判断有无根,利用选择函数分别调用1个,0个,2个根的函数并将其输出。每输出一个方程的跟后再选择是否要继续。 3. 1) 2)先定义一个point类,再由point类派生出line类,利用构造函数,复制构造函数和析构函数来计算出点点之间的距离也就是线的长度。 任务1:1 //Cpp1.h #include #include using namespace std; class Welcome { private: char str[100]; public: Welcome(char s[]="Welcome!"); Welcome (Welcome &); void Set(char []); void Display(); char *Get(); void talk(); ~Welcome(); }; //Cpp1.cpp #include #include #include"Cpp1.h" using namespace std; Welcome::Welcome(char s[]) {strcpy(str,s);}//把字符串数组s中的所有字符,拷贝到字符串数组str中Welcome::Welcome(Welcome &c)//拷贝构造函数 {strcpy(str,c.str);} void Welcome::Set(char s[]) {strcpy(str,s);} inline void Welcome::Display() { cout< } char* Welcome::Get() { return str; } Welcome::~Welcome() {