window课程设计的心得体会
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
window课程设计的心得体会
竭诚为您提供优质文档/双击可除window课程设计的心得体会
篇一:windows程序设计期中画板项目总结及感想
windows程序设计期中画板项目总结及感想说实话,现在松了一口气,终于把作业写完了,免得一直牵挂在心里。
因为之前一直没有接触过windows的设计,所以在老师布置了作业之后就一直担心着,到底要怎样完整这次的作业。
而之前学习的c++也不是很熟练,暑假过后也是忘得差不多了。
能完成这次作业,首先是要说说一本书,那是一位同学介绍的,其实我是拿他的书复印了一下,因为老师推荐的windows 程序设计第五版是在太厚,所以一直没有买那本书看。
这本书名叫《windows下的c/c++高级编程》,是他从图书馆借来的,页数不是很多,但是内容的覆盖面还是挺广的。
接着就是把那本书看完,然后平时积极去上课,不懂的问题记下来,也不好去问老师就回来之后问问同学。
感想颇多,也不说那么多吧,接下来写写在完成项目中遇到的问题以及如何解决这些问题的
项目说明
1、进入程序之后,点击画图,然后有四个选择分别对应画直线、矩形、椭圆和多边形,其中画多边形时,完成最后一个点需要点击鼠标右键,而我的程序有点问题就是需要另外再点击左键完成绘制,同时也是下一个多边形的第一个点。
2、点击编辑键之后,有放大缩小和选中颜色选择以及删除操作(选中操作其实只需双击便可)。
放大之后有滚动条的出现,只是在缩小到最小图片时不能再放大。
且不能选中和删除多边形(可能双击多边形直接删除多边形)。
3、选中颜色是指在双击图形时候,图形出现ps_DAshDoT 型线条的颜色,然后可以进行删除操作
4、文件菜单下有打开和另存为功能。
这里将图形的坐标保存在txt文件中,只是打开之后不能读取进行重绘图形的功能。
另外点击退
出结束应用程序。
5、帮助(help)菜单下有关于和说明。
6、屏幕有闪烁问题,可能电击菜单需要重新电击一次。
7、进程间通信为完成。
作业过程中遇到的问题
一用什么存储图形数据
开始写这个程序时,想到的是用vector或者用一个class来存储图形的信息,因为windows的编程和c++还是有很大的联系的。
但是在写的过程中发现,自己对c++的内
容不是很熟悉,要完成图形数据的判断以及读写有些麻烦。
尤其是用到了容器vector之后,像指向、内置函数等操作
很是不熟悉,所以最后用了数组来储存图形信息。
但是用了数组来储存之后又发现,实现画线(Line)、
矩形(Rectangle)和椭圆等(circle)等操作时还好,因
为都只有四个数据的储存、读取以及判断。
若实现多边形(polygon)的操作时,遇到了一定的困难,因为多边形存储的内容无法预知,所以定义了关于多边形的3个参数iptcount (记录每个多边形的边数)、ipolycount(记录绘
制多边形的个数)和iptcurrent(记录当前多边形的边数),程序实现过程中,通过判断每点击鼠标左键一次增加iptcurrent的值,每点击鼠标右键之后增加iptcout和ipolycount的值,最后完成多边形的绘制。
所以,最后总结出来的一个问题就是用数组存储时画图会相对简单,但是后面的相关判断会有些难度。
二如何选中图形进行相关的操作
因为用的是数组存储结构,所以在判断双击选中的时候,相关判断很是复杂。
尤其是在判断多边形的时候,因为多边形的不确定性,运用sqrt和pow函数时要有很多重的判断。
这个问题写了很久还是遇到了一定的问题,所以一直很难再进行下去其他的操作。
迫在眉睫的时候看到了有同学和我一样用数组存储
结构,所以参考了他的程序进行了相应的
修改,最后完成了选中的操作。
只是这多边形的选中还是出了相应的问题,在选中其他图形(如矩形和直线)的时候,会把已经绘制的多边形删除,而且要选中多边形也是很难办到,只在极少的情况下选中过多边形。
但是因为要进行删除、放大和缩小等操作,所以暂时就没有解决这个问题。
到后来因为时间紧急,所以最后也没能完成这个选中多边形的功能,当然没有选中也肯定不能删除了。
不过,通过这个问题,学习到一个知识点,那便是如何细心仔细的判断。
像选中的判断,真是繁琐,看着一个if
后面接了一个四行的判断,实在是有些吓人。
但是慢慢思考和计算还是可以计算出来的。
三画板缩放功能的实现以及放大之后滚动条的功能。
这里画板缩放功能的实现是通过画布大小改变来实现的,开始没有任何的眉目。
不知道怎样在画完了图之后将图形放大缩小,更要命的是后来看到了还要实现放大之后滚动条的实现。
而图形放大之后,滚动条的大小也要进行相关的改变,一直困扰在我。
一开始,我是设置了一个bool类型的参数值,记录是
否有放大缩小的要求,在点击了放大缩小的子菜单时候,将bool 值设为define为放大缩小的常量,而后将放大缩小的
参数进行相应的赋值。
而后发现出现的问题是要在点击了放大子菜单时候双击图形才能进行放大操作,而且放大缩小的
范围有限。
这样写了之后,对于滚动条的实现更是望而兴叹。
后来发现其实只需要定义一个窗口的大小规模的一个int参数scale,放大缩小的时候改变scale的值,然后再重画图
形便可以了。
而后,在书本上和实例程序中法相,只要将窗口大小和滚动条的设置联系起来便可以实现滚动条的功能。
将scale
的值传给setscrollInfo函数,便可以随时更改水平和垂直滚动条的大小。
就这样,最终还是将滚动条的功能实现了。
完成了这一功能之后,得到一个总结,那就是,其实有时候程序的强大功能只要稍微
增加和改变一点代码便可以的…
四文件的打开和保存问题。
还是一样,这个问题开始很是棘手。
看着要出现一个打开和保存文件的对话框,我开始挠头,这要多少行代码才能完成啊?看完了那本同学给我的书之后,我恍然大悟,原来这两个对话框是windows的通用对话框…
所以,我写了一个File.h的头文件,将文件的打开和
保存通用对话框通过这里实现,而在cpp文件中调用。
发现这些代码其实都是差不多的…一段兴奋过后,又开始头大了,原来这本些根没有用,只是出现对话框,会有一个文件被保存而
已。
怎样将图形信息写入文件啊?
真是潮起潮落,因为自己用的是数组保存画图之后的坐。