1 / 26

OOP 实验汇总及课程设计

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

Download Presentation

OOP 实验汇总及课程设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OOP实验汇总及课程设计

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

  3. 面向对象程序设计-实验实习 第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 4第7章 屏幕绘图及文本显示——3 :P132,7-9,10,11 5第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,13 6第12章 数据库编程——2 :P288,12-8,9 7第13章 多媒体编程——2 :P298,13-3 8第14章 internet编程——2 :P306,14-2 红色为要撰写实验报告的

  4. 实验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的值,重复执行第二步;

  5. Prime演示

  6. 实验2 • P43,2-5 Circle类设计 class Circle{ public: • float perimeter(); • float area(); private: • float radius; • };

  7. Circle演示

  8. 实验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 • };

  9. Complex演示

  10. 实验4 • P73-6,设计Worker类,Teacher类和Mechanic类

  11. 实验5 • P82,5-6 多态

  12. 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; };

  13. 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; };

  14. 演示 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;

  15. 实验6 • 函数指针 • 静态库 • 动态库 • 装入时链接: #pragma comment(lib,”XXXlib.lib”) • 执行时链接: LoadLibrary,GetProcAddree,FreeLibrary函数 • 插件框架 • 插件开发

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

  17. 中国(同学)地图 • 同学数据 • 姓名 性别 生日 邮箱 经度 纬度 籍贯… • 类设计 • CFriends、CCity、CRoad、CProvince • 坐标变换 • 经纬度到屏幕坐标变换 • 屏幕到经纬度坐标变换 • 地图绘显 • 点、线、面图层(中国城市,道路,省区)

  18. 实验8 • 实现中国地图操作功能 • +,-键缩放地图,→←↑↓键移动地图 • 鼠标调用Polyline, polygon绘制河流、省区及鼠标光标的地理坐标(屏幕到经纬度坐标变换) • 添加地图的边框、图例和经纬网格及刻度。

  19. 实验9 • 将教材9-1至9-13实例综合为一个基于对话框的应用程序,以学友为例设计类,必要的属性,并将输入数据保存在数组或向量中。 • 完成“多媒体同学地图系统”的同学基本信息管理功能模块。 • 同学基本信息 • 通用对话框:地图着色

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

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

  22. 实验12 • P12-8,12-9 • 将“多媒体同学地图系统”修改为基于数据库的系统,尝试利用数据库或空间数据库Spatialite存储数据。 • 利用C++stream实现数据的内部存储:cin、cout以及ifstream,ofstream读写数据; • 直接对数据库操作:MCMS启动从数据库中读取数据, MCMS退出将数据保存到数据库 • 通用数据库如access或sql server或sqlite • 空间数据库Spatialite

  23. 实验13 • P13-3.编写一个基于单文档的应用程序,双击用户区时可以播放声频和视频文件。 • 实现“多媒体同学地图系统”多媒体功能模块。 • 照片 • 视频自我介绍 • 网站(微博)URL • …

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

  25. OOP课程设计说明 • “多媒体同学地图系统”,分为同学基本信息管理、图形表达、多媒体和网络聊天等功能模块(插件)。 • 模块一:地图。图层分为中国城市、道路和省份等基础图层(注意空间数据满足拓扑关系); • 模块二:同学。学生(OOP课程的每位学生)信息及其同学、好友信息(至少10条) • 模块三:多媒体。照片、视频和网址(各一条) • 模块四:网络。支持聊天和冲浪轨迹的统计、地图显示。

  26. OOP课程设计要求 • 在完成教材实例和习题的基础上,完成“多媒体同学地图系统” MCMS(Multimedia classmate Map system:MCMS)系统的设计; • 文档模式;数据存储;模块设计(类)和插件框架的使用迭代进行; • 系统开放设计不拘泥于形式,只要体现OOA,OOD和OOP即可; • 每位学生必须提交课程设计MCMS,否则实验成绩为0分计! • 资源网站:http://code.google.com/p/osgis/ • 全部课件和书中项目以及实验代码

More Related