华中科技大学C++实验总结报告(图形编辑器)

时间:2024.4.20

C++ 实验总结报告

研究课题:图形编辑器 学 校:华中科技大学 院 系: 班 级: 姓 名: 指导老师:

一、 实验目的

1. 熟悉C++的一些重要性质,利用封装、继承、虚

函数和多态性等特性,通过实验学习如何对各类图元的属性和方法进行合理的封装

2. 学习Microsoft的Visual C++编程工具

3. 掌握MFC的相关知识

4. 掌握基本的文件保存、读取以及操作封装技术

二、 实验目的

设计一个简单的图形编辑器

三、 实验所用仪器、设备

计算机:PentiumIII 800 以上

256M内存

操作系统:Windows 20xx/XP

开发集成环境:Visual C++ 6.0

四、 软件功能简介

(注:此软件是从网上下载得来)

该软件具有汉化的菜单界面(仿Windows自带画图软件),具有文件打开、编辑、保存等功能。编辑部分包括可以在编辑区域画直线、圆、矩形、曲线等矢量图

形,可插入文字,可以修改线条的线型、颜色等基本属性。

五、 部分代码分析

1.直线类代码:

class CCreateLine : public CCommand

{

private:

Position m_begin; // 直线的起点

Position m_end;// 直线的终点

public:

CCreateLine() ;

~CCreateLine() ;

int GetType();

int OnLButtonDown(UINT nFlags, const Position& pos) ; int OnMouseMove(UINT nFlags, const Position& pos) ; int OnRButtonDown(UINT nFlags, const Position& pos) ;

int Cancel() ;

} ;

学习C++我们最需要理解的就是它面向对象的设计思想。这种思想可以在类和对象上得到充分的体现。

类是面向对象程序设计的核心,它实际上是由用户定义的一种新的复杂数据类型。它是通过抽象数据类型ADT方法来实现的一种数据类型,将不同类型的数据和与这些数据相关的操作封装在一起形成一个集合体。因此,它具有更高的抽象性,实现了信息的隐藏和封装。

对象是某种类的一个实例,是类的具体体现。一个类可以有多个对象。

分析这一段代码,编程者将直线的起始点和终止点设置为私有成员,这样做就对整条直线实现了隐藏和保护,是面向对象中封装特性的一个具体体现;另外,此函数中还包含了构造函数与析构函数,构造函数完成对新对象的初始化工作,析构函数是构造函数的配对物,它实现与构造函数相反的功能。另外的几个成员函数名称形参返回值都与class Ccommand 中的几个公有函数相同,而在class Ccommand中,这几个函数都是虚函数,这是函数重载,也是多态性的具体体现。

由这段代码我们可以了解关于类和对象的一些知识,为我们进一步了

解面向对象程序设计的思想精髓奠定了基础。

2.对构造函数和解析函数的分析

构造函数

CCreateLine::CCreateLine()

: m_begin(0,0), m_end(0,0)

{

m_nStep = 0; // 初始化操作步为 0

}

此构造函数用初始化列表的方式对直线类的私有成员进行初始化,同时记下操作步m_nStep是直线类从指令类中继承来的成员,它在指令类中属于保护成员,在直线类中则成为私有成员。这是数据共享与数据保护两者兼顾时的一种处理方法。

析构函数

CCreateLine::~CCreateLine()

{

}

此析构函数中没有任何操作语句,但它并非没有任何操作。在任何一个对象消失时都要调用本类的析构函数进行扫尾工作。在构造对象时,构造函数分配资源给程序,在对象作用结束后,这些资源的释放就要靠析构函数。当然析构函数中也是可以有语句的,当需要在对象消失之前执行某种操作时,可以把语句写在里边。

3.

BOOL Cline::Pick(const Position&pos,const double pick_radius)

{

Position objPos=pos;

BOX2D sourceBox,desBOX;

GetBox(&sourceBox);

desBox.min[0]=sourceBox.min[0]-pick_radius;

desBox.min[1]=sourceBox.min[1]-pick_radius;

desBox.max[0]=sourceBox.max[0]+pick_radius;

desBox.max[1]=sourceBox.min[1]+pick_radius;

if(!objPos.lslnBox(desBox))

return FALSE;

double angle=::GetAngleToXAxis(m_begin,m_end);

Position dp =objPos-m_begin;

Double dist = fabs(dp.x*cos(angle)+dp.y*sin(angle)-objPos.Distance(m_begin));

if(dist<=pick_radius)

return TRUE;

return FALSE;

}

在阅读此函数的源代码过程中,我感觉到对类创建的合理划分对整个程序具有着十分重要的意义。正如上段代码,它的前提是对类进行了合理的划分,只有在对类进行了合理的划分后,我们才能更加高效地处理对象。所以,我感觉到在学习面向对象程序设计时,应当尤为注意类的创建与划分。

六、个人学习体会

在学习C++以前,我认为C++只是在C语言的基础上的一种延伸,认为只要学过C语言,就可以用C语言的那种设计思想来学习C++、设计C++程序。正是由于抱了这种错误的思想,使我在一开始学习C++的时候遇到了很大的困难,我没有办法体会面向对象的设计思想,我在学习这门课的时候老是想着实现这个函数功能的具体过程,而没太注意对象分类的重要性。

随着课程学习的深入,我感觉到了利用类和对象、继承、封装等一系列知识可以把我们程序中很多繁杂、重复的部分省略掉,还可以解决一些利用面向过程的设计思想无法解决的问题,我自己也试着编写一些小的C++程序,当然在这个过程中遇到了很多困难,其中调试带来的困难让我无法忘记,在调试程序的同时,我也总结出来了一些调试的小技巧,让我在C语言课程设计中也受用匪浅。

在学习这门课的过程中,我感受到了自己亲自动手编程序、调程序的重要性,我们要熟悉C++的语法、体会调试的思想,最好的一个手段就是自己动手编程、调试,这会比我们一味的看书效果好得多。

另外,我还感觉到一个好的程序编出来需要很多人的团结合作。我在检查自己编写的程序是否有BUG未被找出的时候,我会让我的同学作为一个程序使用者来找出未发现的BUG并提出改进意见,这让我们的工作更加高效。

很高兴能够了解到C++的神奇魅力和面向对象程序设计的独特思想,它为我今后的程序设计奠定了基础。感谢老师对我们的悉心教授!


第二篇:重庆科技学院实习总结报告(学生)


重庆科技学院

实习总结报告

院(系):_________________ 班 级:_____ _____ 学生姓名:_________________ 学 号:___ _______ 实习地点(单位)____________ ______________ 报告题目:____________________________________ 报告日期:年月日

指导教师评语: _______________________________________ ____________________________________________________________________________________________________________________________________________________________________________________________________________________

成绩(五级记分制):______ __________

教师签名:

实习总结报告的写法及基本要求

一、实习报告一般由标题和正文两部分组成

1.标题:标题可以采取规范化的标题格式,基本格式为,“关于××××的实习报告”。

2.正文:正文一般分前言,主体,结尾三部分。

(1)前言:主要描述本次实习的目的意义、大纲的要求及接受实习任务等情况。

(2)主体:实习报告最主要的部分,详述实习的基本情况,包括:项目、内容、安排、组织、做法,以及分析通过实习经历了哪些环节?接受了哪些实践锻炼?搜集到哪些资料?并从中得出一些具体认识、观点和基本结论。

(3)结尾:可写出自己的收获、感受、体会和建议,也可就发现的问题提出解决问题的方法、对策;或总结全文的主要观点,进一步深化主题;或提出问题,引发人们的进一步思考;或展望前景,发出鼓舞和号召等。

二、对实习报告的要求

1.按照大纲要求在规定的时间完成实习报告,报告内容必须真实,不得抄袭。学生应结合自己所在工作岗位的工作实际写出本行业及本专业(或课程)有关的实习报告。

2.实习报告字数要求:不少于1000字每周,累计实习3周及以上的不少于3000字。用A4纸书写或打印 (正文使用小四号宋体、行距1.5倍。其余排版要求以美观整洁为准)。

3.实习报告撰写过程中需接受指导教师的指导,学生应在实习结束之前将成稿交实习指导教师。

三、实习考核的主要内容

1.平时表现:实习出勤和实习纪律的遵守情况;实习现场的表现和实习笔记的记录情况、笔记的完整性。

2.实习报告:实习报告的完整性和准确性;实习的收获和体会。

3.答辩:在生产现场随机口试;实习结束时抽题口试

更多相关推荐:
ERP实验报告 总结

ERP实验报告总结通过这次的实战演练,我真的是学到了很多。企业的发展其实就是在求生存,为了生存,为了能在高手林立,变幻莫测的商场中有一席之地,就得不断地拼搏,拼搏,再拼搏。我自己有一条座右铭:任何事,只要做了,…

实验报告总结

实验报告书姓名:学号:专业:系部:指导教师:20xx年x月x日一、实验时间:20xx年x月—5月二、实验地点:三、实验目的:1、通过本次模拟实验提高我们现代大学生实践能力缩短理论知识与实际工作的差距,为将理论…

无机实验报告总结

无机化学实验总结通过对传统无机化学中化合物的性质、合成、反应、分析等方面的接触,学习了很多相关内容,如热力学、动力学、波谱学等。同时本实验课的内容既有合成,又有表征,是一个完全的实验过程,训练了我们的综合实验能…

审计实验报告总结

审计作为应用性很强的一门学科、一项重要的经济管理工作,是加强经济管理,提高经济效益的重要手段,经济管理离不开审计,经济越发展审计工作就显得越重要。经过一学期审计实验课程的学习,在过去的一学期中老师组织我们审计(…

实 验 报 告 总 结

——在低年级加强写字指导的研究龙村镇第二小学温珺人类步入信息时代,文化的传播与交流方式产生了翻天覆地的变化。随着键盘敲击的速度越来越快,学生的字却越来越难看。字如其人的观念已经越来越无所为。写字意识的淡化,教学…

ERP实验报告总结

在这个学期,围绕本专业所提出的知识要求和能力要求,我参加了《ERP原理与应用》的专业实践课程学习。市场营销专业作为应用性很强的一门学科、一项重要的经济管理工作,是加强经济管理,提高经济效益的重要手段,经济管理离…

实验报告总结

太原理工大学现代科技学院实验报告……………………………………装………………………………………订…………………………………………线………………………………………实验名称定向耦合器的测量同组人邢艳龙专业班级信息09…

实验报告要求及范文

滁州市政府组织退耕还林(黑体,小二,1.5倍行距,段前段后0.5行)——5060451007范雪花(学号,TimesNewRoman,四号)(姓名,宋体,四号,单倍行距)一、实验目的(宋体,四号,单倍行距,段前…

实验总结报告

实验报告专业:______姓名:______学号:______日期:______桌号:______________课程名称:模拟电子技术基础实验指导老师:成绩:________________实验名称:实验总结…

国际贸易实务实验报告和总结

一、前言在大三的上学期我们通过理论课程学习了国际贸易理论与实务,在学习过程中我们虽然对国际贸易有了一些基本的理论上的理解,但是对于实务的具体操作流程理解还不是那么的明了清晰。在大三快要结束的最后两周,马上就要步…

经济管理综合实验总结报告

经济管理系统仿真综合实验个人报告专业年级公司/机构名称云岩区人民政府学生学号、姓名20xx年x月x日经济管理系统仿真综合实验个人报告一、基本信息(一)时间:20xx年x月x日——20xx年x月x日(二…

java上机实验心得体会报告

北京联合大学信息学院“面向对象程序设计”课程上机实验报告题目:JAVA上机实验心得体会姓名(学号):专业:计算机科学与技术编制时间:20xx年x月x日版本:1.0.0指导教师:北京联合大学-信息学院编制实验…

实验报告总结(56篇)