最新VisualC++课程设计报告123456.doc

上传人:1595****071 文档编号:47526135 上传时间:2022-10-02 格式:DOC 页数:14 大小:531KB
返回 下载 相关 举报
最新VisualC++课程设计报告123456.doc_第1页
第1页 / 共14页
最新VisualC++课程设计报告123456.doc_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《最新VisualC++课程设计报告123456.doc》由会员分享,可在线阅读,更多相关《最新VisualC++课程设计报告123456.doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateVisualC+课程设计报告123456VisualC+课程设计报告123456 VisualC+课程设计报告圆心沿正弦曲线轨迹移动的实心圆设计-一、 设计任务.选题意义此题选择意义在于设计一个MFC程序Visual C+环境中运行,在在运行时屏幕上出现一个圆心沿一个正弦曲线轨迹移动的实心圆,并且每隔1/8个圆周期,圆的填充色和圆的周边颜色都发生变化,颜色有我自己选取

2、。.设计目标在Visual C+程序编写一个程序,在程序运行时屏幕上出现一个圆沿正弦曲线移动,并且当每隔1/8个圆周期时圆的填充色和周边颜色改变一次。二、 程序设计与实现 程序结构 本课程设计的结构如图1: 圆心沿正弦曲线移动的实心圆正弦曲线实心圆起点终点定义坐标画笔画刷定义坐标画实心圆1/8周期变色.数据和函数功能描述变量类型定义等说明变色功能圆心移动功能1.程序中的重要的函数和语句:l OnDraw():在它中添加了 COLORRE颜色类型,CPoin点, CBrush Brush画刷 ,CPen pen画笔等。两个for循环定义了正弦曲线。l SetTimer(100,90,NULL)是

3、时间函数的调用函数来控制圆在沿正弦曲线移动是圆中的颜色变化快慢。l 函数OnTimer():l For循环 实现实心圆移动l if语句实现实心圆及其周边颜色变化l Invalidate()刷新函数。2.函数功能进行描述:l OnDraw()函数包括了坐标,画正弦曲线,画笔画刷画,实心圆l OnTimer()函数定义一个变量进而使实心圆的移动,定义另一个变量实现实心圆颜色每个1/8圆周期发生变化。系统总体流程图如下:OnDraw()函数的流程图2:开始吃输入int i1 ii720 ; j+j+=1;j%45=0否是k+=1k8k=0刷 新结 束.设计难点与解决方法l 设计难点:圆心需要沿着正弦

4、曲线轨迹移动,实心圆每隔1/8个圆周期,圆的填充色和周边颜色都要变化。关键是把圆沿正弦曲线运动时留下的影印阴影去掉如图4: 去掉阴影后但无法使圆沿正弦曲线运动时圆内的颜色变化速率如图5:l 解决策略:通过定义一个变量将圆心定义在正弦曲线上,定义时间函数使圆心移动,定义画笔画圆,画刷填充,定义一个颜色数组使实心圆以及周边颜色每隔1/8圆周期发生变化。把程序的那些if语句和for语句进行调整同时添加了Invalidate()刷新函数。对if语句进行处理后就可以正常运行了。例如: j+=1; if(j%45=0) k+=1; if(k8) k=0; .设计效果与不足之处程序在编译连接运行后效果如图6

5、: 不足之处:实心圆不能沿正弦曲线反向返回,正弦曲线也状态栏不能显示圆心移动的坐标. 学习体会 经过本实验的操作使我感觉到课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着我国的计算机技术的发展使我感觉到学好VC+的重要性。从选题到编写程序,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,如图4如何去掉阴影,可以说去掉这阴影我是花了九牛二虎之力,老天不负有心人终于还是把那阴影去掉了。在修改的过程中学到很多的的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计

6、使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到困难很多,在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说画刷,画笔的操作以及一些语句掌握得不好。所以只有反复的看书做题才能够学好VC+这门课程,所以说学好课程的关键是要有学习的兴趣以及持之以恒的学习态度。只有顽强,不怕输的学习态度是做好课程设计、学习以及任何事情关键。附录1:程序使用说明为了使用者能够获得正确的程序运行结果,防止未按设计者要求输入,导致程序退出,现在说明内容如下:(1)

7、程序运行环境: Visual VC+环境(2) 文件组成说明:文件由一个VC单文档程序组成,运行时直接运行即可。附录2:源程序如下:/ VC设计View.cpp : implementation of the CVCView class/#include stdafx.h#include VC设计.h#include VC设计Doc.h#include VC设计View.h#include math.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CVCViewI

8、MPLEMENT_DYNCREATE(CVCView, CView)BEGIN_MESSAGE_MAP(CVCView, CView)/AFX_MSG_MAP(CVCView)ON_WM_TIMER()/AFX_MSG_MAP/ Standard printing commandsON_COMMAND(ID_FILE_PRINT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview)END_M

9、ESSAGE_MAP()/ CVCView construction/destructionCVCView:CVCView()/ TODO: add construction code here k=0; j=0; CVCView:CVCView()BOOL CVCView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: Modify the Window class or styles here by modifying/ the CREATESTRUCT csreturn CView:PreCreateWindow(cs);/ CVCView drawin

10、gvoid CVCView:OnDraw(CDC* pDC)CVCDoc* pDoc = GetDocument();ASSERT_VALID(pDoc); COLORREF BrushClr=RGB(0,0,0),RGB(128,255,255),RGB(0,0,255),RGB(0,255,0),RGB(0,128,255),RGB(255,0,0),RGB(128,128,128),RGB(255,255,0); COLORREF PenClr=RGB(255,255,0),RGB(128,128,128),RGB(255,0,0),RGB(0,128,255),RGB(0,255,0)

11、,RGB(0,0,255),RGB(128,255,255),RGB(0,0,0); double y800; CPoint point800;for(int i=1;i722;i+)pointi.x=i;yi=sin(pointi.x*3.1415/180);pointi.y=250-(int)(yi/0.01);for(i=1;iMoveTo(pointi);pDC-LineTo(pointi+1); CBrush Brush; Brush.CreateSolidBrush(BrushClrk); pDC-SelectObject(&Brush); pDC-Ellipse(pointj.x

12、-25,pointj.y+25,pointj.x+25,pointj.y-25); pDC-SelectObject(Brush); Brush.DeleteObject(); CPen pen; pen.CreatePen(PS_SOLID,2,PenClrk); pDC-SelectObject(&pen); pDC-Ellipse(pointj.x-25,pointj.y+25,pointj.x+25,pointj.y-25); SetTimer(100,90,NULL); pDC-SelectObject(pen); pen.DeleteObject();/ CVCView print

13、ingBOOL CVCView:OnPreparePrinting(CPrintInfo* pInfo)/ default preparationreturn DoPreparePrinting(pInfo);void CVCView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add extra initialization before printingvoid CVCView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add cleanup

14、 after printing/ CVCView diagnostics#ifdef _DEBUGvoid CVCView:AssertValid() constCView:AssertValid();void CVCView:Dump(CDumpContext& dc) constCView:Dump(dc);CVCDoc* CVCView:GetDocument() / non-debug version is inlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CVCDoc);return (CVCDoc*)m_pDocument;#endif /_DEBUG/ CVCView message handlersvoid CVCView:OnTimer(UINT nIDEvent) j+=1;if(j%45=0) k+=1; if(k8) k=0; if(j=719) j=0; Invalidate(); CView:OnTimer(nIDEvent);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁