OOP 实验汇总及课程设计

26
OOP 实实实实实实实实实

description

OOP 实验汇总及课程设计. 大纲. 实验报告:撰写 8 个报告 主要实验: 14 个 课程设计: 多媒体同学地图系统: MCMS. 面向对象程序设计 - 实验实习. 第 1 章 c++ 基础知识 ——2 : P16,1-5 1 第 2 章 类和对象 ——4 : P43,2-5 第 3 章 运算符重载 ——2 : P56,3-6 2 第 4 章 继承与派生 ——4 : P73,4-6 3 第 5 章 多态性与虚函数 ——4 : P82,5-6 第 6 章 mfc 编程 ——3 : P110,6-11,6-12 - PowerPoint PPT Presentation

Transcript of OOP 实验汇总及课程设计

Page 1: OOP 实验汇总及课程设计

OOP实验汇总及课程设计

Page 2: OOP 实验汇总及课程设计

大纲• 实验报告:撰写 8 个报告• 主要实验: 14 个• 课程设计:多媒体同学地图系统: MCMS

Page 3: OOP 实验汇总及课程设计

面向对象程序设计 - 实验实习第 1 章 c++ 基础知识—— 2 : P16,1-51 第 2 章 类和对象—— 4 : P43,2-5第 3 章 运算符重载—— 2 : P56,3-62 第 4 章 继承与派生—— 4 : P73,4-63 第 5 章 多态性与虚函数—— 4 : P82,5-6第 6 章 mfc 编程—— 3 : P110,6-11,6-124 第 7 章 屏幕绘图及文本显示—— 3 : P132,7-9,10,115 第 8 章 键盘与鼠标—— 3 : P152,8-7,8,9,10第 9 章 windows 控件—— 2 : P212,9-10,11,12,13,14,15,16第 10 章 资源—— 2 : P238,10-12,13,14,15第 11 章 单文档与多文档—— 3 : P265,11-11,12,136 第 12 章 数据库编程—— 2 : P288,12-8,97 第 13 章 多媒体编程—— 2 : P298,13-38 第 14 章 internet 编程—— 2 : P306,14-2

红色为要撰写实验报告的

Page 4: OOP 实验汇总及课程设计

实验 1

• P16,1-5 分解质因数算法:• step1: 获得分解质因数 n;• step2: 先找 n 最小的质数 k;• step3: 如果 k 等于 n ,则说明分解质因数的过程

已经结束,打印出即可 ;• step4: 如果 n<>k ,但 n 能被 k 整除,则应打印

出 k 的值,并用 n 除以 k 的商 , 作为新的 n, 重复执行第二步 ;

• step5: 如果 n 不能被 k 整除,则用 k+1 作为 k 的值 , 重复执行第二步 ;

Page 5: OOP 实验汇总及课程设计

Prime 演示

Page 6: OOP 实验汇总及课程设计

实验 2

• P43,2-5 Circle 类设计class Circle{

public:• float perimeter();• float area();

private:• float radius;• };

Page 7: OOP 实验汇总及课程设计

Circle 演示

Page 8: OOP 实验汇总及课程设计

实验 3• P56,3-6 运算符重载( Complex 类设计)• class Complex{• public:• Complex(){i='i';}• Complex(double x, double y):a(x),b(y){i='i';}•• void input();• void output();• void add(const Complex c);• void subtraction(const Complex c);

• friend ostream& operator<<(ostream&, Complex&);• friend istream& operator>>(istream&, Complex&);

• private:• double a;//real numbers • double b;//real numbers• char i;//imaginary unit• };

Page 9: OOP 实验汇总及课程设计

Complex 演示

Page 10: OOP 实验汇总及课程设计

实验 4• P73-6 ,设计 Worker 类, Teacher 类和 M

echanic 类

Page 11: OOP 实验汇总及课程设计

实验 5

• P82,5-6 多态

Page 12: OOP 实验汇总及课程设计

Shape 类、 Triangle 类class Shape{public:

virtual float area()=0;};

class Triangle: public Shape{public:

Triangle(float x, float y, float z):a(x),b(y),c(z){}virtual float area(){

float s;s=(a+b+c)/2;s=s*(s-a)*(s-b)*(s-c);s=sqrt(s);return s;

}private:

float a,b,c;};

Page 13: OOP 实验汇总及课程设计

Circle 类、 Rectangle 类class Circle: public Shape{public:

Circle(float x):r(x){}virtual float area(){ return 3.14*r*r;}

private:float r;

};

class Rectangle: public Shape{public:

Rectangle(float x, float y):a(x),b(y){}virtual float area(){ return a*b;}

private:float a;float b;

};

Page 14: OOP 实验汇总及课程设计

演示Shape *sPtr;Circle c(10);Rectangle r(10,10);Triangle t(3,4,5);

sPtr=&c;cout<<"Cirle area:"<<sPtr->area()<<endl;

sPtr=&r;cout<<"Rectangle area:"<<sPtr->area()<<endl;

sPtr=&t;cout<<"Triangle area:"<<sPtr->area()<<endl;

Page 15: OOP 实验汇总及课程设计

实验 6

• 函数指针• 静态库• 动态库

– 装入时链接 : #pragma comment(lib,”XXXlib.lib”)– 执行时链接 : LoadLibrary,GetProcAddree,FreeLi

brary 函数• 插件框架• 插件开发

Page 16: OOP 实验汇总及课程设计

实验 7

• P132:7-9,7-10,7-11

• 综合设计:中国地图。点( Pie )状城市用圆符号;线( Polyline )状河流用线符号;面( Polygon 、 FloodFill )数据状省市用多边形符号。各层考虑合理的分级,分色。所需数据自己解决并参考 OGC SFS进行简单的地图数据结构设计(数组或向量存储)。

Page 17: OOP 实验汇总及课程设计

• 同学数据– 姓名 性别 生日 邮箱 经度 纬度 籍贯…

• 类设计– CFriends 、 CCity 、 CRoad 、 CProvince

• 坐标变换– 经纬度到屏幕坐标变换– 屏幕到经纬度坐标变换

• 地图绘显– 点、线、面图层(中国城市,道路,省区)

中国(同学)地图

Page 18: OOP 实验汇总及课程设计

实验 8

• 实现中国地图操作功能– +,- 键缩放地图,→←↑↓键移动地图– 鼠标调用 Polyline, polygon 绘制河流、省区

及鼠标光标的地理坐标(屏幕到经纬度坐标变换)

– 添加地图的边框、图例和经纬网格及刻度。

Page 19: OOP 实验汇总及课程设计

实验 9• 将教材 9-1 至 9-13 实例综合为一个基于对话

框的应用程序,以学友为例设计类,必要的属性,并将输入数据保存在数组或向量中。

• 完成“多媒体同学地图系统”的同学基本信息管理功能模块。– 同学基本信息– 通用对话框:地图着色

Page 20: OOP 实验汇总及课程设计

实验 10

• 将 10 章实例增加到“多媒体同学地图系统”,使其具备商业软件的品质。– 菜单、加速键、工具栏、状态条、图标、位图、对话框和字符串提示等

Page 21: OOP 实验汇总及课程设计

实验 11

• 利用 MDI 重新设计“多媒体同学地图系统”,使其初步具备分为同学基本信息管理、图形表达等功能模块。并能实现空间和属性数据的串行化。

Page 22: OOP 实验汇总及课程设计

• P12-8 , 12-9

• 将“多媒体同学地图系统”修改为基于数据库的系统,尝试利用数据库或空间数据库 Spatialite 存储数据。– 利用 C++stream 实现数据的内部存储: cin 、

cout 以及 ifstream,ofstream读写数据;–直接对数据库操作: MCMS启动从数据库中读取数据, MCMS退出将数据保存到数据库

– 通用数据库如 access 或 sql server 或 sqlite– 空间数据库 Spatialite

实验 12

Page 23: OOP 实验汇总及课程设计

• P13-3. 编写一个基于单文档的应用程序,双击用户区时可以播放声频和视频文件。

• 实现“多媒体同学地图系统”多媒体功能模块。– 照片– 视频自我介绍– 网站(微博) URL– …

实验 13

Page 24: OOP 实验汇总及课程设计

• 编写支持网络聊天的 “多媒体同学地图系统” –浏览网页– 网络聊天– 在线好友– 网游踪迹– 时空分析(统计:上网时间,地点,内容)

实验 14

Page 25: OOP 实验汇总及课程设计

OOP课程设计说明

• “ 多媒体同学地图系统”,分为同学基本信息管理、图形表达、多媒体和网络聊天等功能模块(插件)。

– 模块一:地图。图层分为中国城市、道路和省份等基础图层(注意空间数据满足拓扑关系);

– 模块二:同学。学生( OOP 课程的每位学生)信息及其同学、好友信息(至少 10条)

– 模块三:多媒体。照片、视频和网址(各一条)– 模块四:网络。支持聊天和冲浪轨迹的统计、地图显

示。

Page 26: OOP 实验汇总及课程设计

OOP课程设计要求

• 在完成教材实例和习题的基础上,完成“多媒体同学地图系统” MCMS ( Multimedia classmate Map system : MCMS )系统的设计;

• 文档模式;数据存储;模块设计(类)和插件框架的使用迭代进行;

• 系统开放设计不拘泥于形式,只要体现 OOA ,OOD 和 OOP 即可;

• 每位学生必须提交课程设计 MCMS ,否则实验成绩为 0 分计!

• 资源网站: http://code.google.com/p/osgis/– 全部课件和书中项目以及实验代码