吹泡泡课程设计

上传人:小** 文档编号:91607429 上传时间:2019-06-30 格式:DOC 页数:16 大小:338.50KB
返回 下载 相关 举报
吹泡泡课程设计_第1页
第1页 / 共16页
吹泡泡课程设计_第2页
第2页 / 共16页
吹泡泡课程设计_第3页
第3页 / 共16页
吹泡泡课程设计_第4页
第4页 / 共16页
吹泡泡课程设计_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《吹泡泡课程设计》由会员分享,可在线阅读,更多相关《吹泡泡课程设计(16页珍藏版)》请在金锄头文库上搜索。

1、 青岛理工大学C+面向对象课程设计报告院(系): 计算机工程学院 专业: 网络工程专业 学生姓名: abc 班级:123学号: 000 题目: 吹泡泡课程设计 起迄日期: 2011-7-3到2011-7-16设计地点: 学院机房 指 导 教 师: 源程序 qq:793572097完成日期: 2011 年 7 月 14号一需求分析: 1.要求与功能:世界经济的快速发展和计算机技术的日益成熟,计算机被应用到人类生活的各个领域,各种应用软件相继问世,严峻的形势在提醒我们要跟上时代的步伐,不断的去创新和完善。所以,我们必须学习更多的知识和编程工具来提高自身的能力。要求用鼠标左键随机在客户区任何地方单击

2、,可产生一个圆形的泡泡(泡泡的大小随机产生);可通过颜色对话框选择不同的颜色,绘出不同颜色的泡泡;可以保存文档,并能打开文档。程序属于一个简单的小游戏,需要用到画图,文档等的操作,更考验了对MFC对程序的封装性及内联函数的掌握与应用。当代社会,目前Windows已成为微机上的主流操作系统,几乎成为大家离不开的必要需求,在Windows平台上进行软件开发也已成为程序设计的主流,所以熟悉并掌握初级的可视化编程方法对我们未来的发展有直观重要的作用,也帮助我们把握了现代化使用工具的流行趋势。程序使用的MFC应用程序必须有且只能有一个从WinApp类派生的全局应用程序对象,此对象在运行时刻控制应用程序中

3、所有其他对象的活动。通过此项设计,了解C+编程的基本工作原理和思想,培养分析,解决问题的能力。2. 程序功能分析:能够在客户区任意地方点击即产生一个圆形的泡泡;利用基于框架窗口的应用程序使编程更加简单清晰。能够对产生的文档进行保存,打印,打印预览等一些的功能;并可以在窗口区新建文档或者关闭,打开新文档。程序运行过程中须保证不因操作频繁而产生系统错误,系统安全,可靠,功能齐全,操作方便,界面友好,容易对程序的不足之处进行修改,在程序已有的功能上利用修改,或添加一些数据成员或函数来增加更多的功能,保证程序有良好的移植性和可扩充性。例如可以改善文档的打印预览效果,进一步可以添加函数使得在泡泡窗口可以

4、画出矩形或其他图形并录入字符,且对字符可是进行各种增删,修改操作。程序应用了对话框,程序利用它可以和用户进行交互式操作,对话框是应用程序,用于显示或提示并等待用户输入一个或多个控件,利用这些控件,用户可以输入文本,选择选项,并完成某一些特定命令。二.设计内容1.程序模块图 文档保存新建打开打印预览打印视图初始化消息响应打印参数画图框架窗口CMainFrame应用程序建立文档登记模板据初始化 吹泡泡程序设计程序流程图 开始 设置数组,数据成员及函数建立文档,画出泡泡,修改视图关闭?打开?保存?新建? 是 否 更新视图数据,登记模板结束3.程序代码/ 文档类 /class CMyDoc : pub

5、lic CDocumentDECLARE_DYNCREATE(CMyDoc)CArray m_rectBubble;public:CMyDoc();intGetListSize()return m_rectBubble.GetSize();CRectGetBubble(int index)return m_rectBubbleindex;voidAddBubble(CRect rect)m_rectBubble.Add(rect);virtual BOOL OnNewDocument();virtual void DeleteContents();virtual void Serialize(

6、CArchive& ar);IMPLEMENT_DYNCREATE(CMyDoc, CDocument)/ 构造函数:调用SDI,做初始化工作.SDI为单文档界面程序CMyDoc:CMyDoc()m_rectBubble.SetSize(256, 256);/ 设置数组参数/ 打开新文档时调用,做初始化工作BOOL CMyDoc:OnNewDocument()if (!CDocument:OnNewDocument() return FALSE;srand(unsigned)time(NULL); / 初始化随机数发生器return TRUE;/ 关闭文档、建立新文档前调用void CMyDo

7、c:DeleteContents() m_rectBubble.RemoveAll(); / 泡泡数组清零CDocument:DeleteContents();/读写文档时自动调用void CMyDoc:Serialize(CArchive &ar) m_rectBubble.Serialize(ar);/ 视图类 / class CMyView : public CViewDECLARE_DYNCREATE(CMyView)public:CMyDoc* GetDocument()return (CMyDoc*)m_pDocument;virtual void OnInitialUpdate(

8、);virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);virtual void OnDraw(CDC* pDC);afx_msg void OnLButtonDown(UINT nFlags, CPoint point); /afx_msg标记的消息处理成员函数DECLARE_MESSAGE_MAP();IMPLEMENT_DYNCREATE(CMyView, CView)BEGIN_MESSAGE_MAP(CMyView, CView)ON_WM_LBUTTONDOWN()ON_COMMAND(ID_FILE_PRINT, CView:OnF

9、ilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview)END_MESSAGE_MAP()/ 建立新文档,打开文档时调用void CMyView:OnInitialUpdate()CView:OnInitialUpdate();Invalidate(); void CMyView:OnDraw(CDC* pDC)CMyDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);pDC-

10、SelectStockObject(LTGRAY_BRUSH); for(int i=0; iGetListSize(); i+) pDC-Ellipse(pDoc-GetBubble(i);/ 消息响应函数void CMyView:OnLButtonDown(UINT nFlags, CPoint point) CMyDoc* pDoc = GetDocument();/ 取文档指针 ASSERT_VALID(pDoc); int r = rand()%50+5; CRect rectBubble(point.x-r, point.y-r, point.x+r, point.y+r); pD

11、oc-AddBubble(rectBubble);/ 修改文档数据 pDoc-SetModifiedFlag(); InvalidateRect(rectBubble, FALSE);/文档数据产生变更后,要更新试图数据/ 设置打印参数BOOL CMyView:OnPreparePrinting(CPrintInfo* pInfo)pInfo-SetMaxPage(1); return DoPreparePrinting(pInfo);/ 框架窗口类 / class CMainFrame : public CFrameWndDECLARE_DYNCREATE(CMainFrame);IMPLE

12、MENT_DYNCREATE(CMainFrame, CFrameWnd)/ 应用程序类 / #define IDR_MAINFRAME128class CMyApp : public CWinApppublic:virtual BOOL InitInstance();DECLARE_MESSAGE_MAP();BEGIN_MESSAGE_MAP(CMyApp, CWinApp)ON_COMMAND(ID_FILE_NEW, CWinApp:OnFileNew)ON_COMMAND(ID_FILE_OPEN, CWinApp:OnFileOpen)ON_COMMAND(ID_FILE_PRIN

13、T_SETUP, CWinApp:OnFilePrintSetup)END_MESSAGE_MAP()/ 建立,登记文档BOOL CMyApp:InitInstance()CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate( / 登记文档模板 IDR_MAINFRAME, RUNTIME_CLASS(CMyDoc), RUNTIME_CLASS(CMainFrame), RUNTIME_CLASS(CMyView);AddDocTemplate(pDocTemplate);CCommandLineInfo cmdInfo; / 创建及处理命令行信息 S

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

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号