Vc++课程设计报告
- 格式:doc
- 大小:40.50 KB
- 文档页数:11
VC++程序设计课程设计报告书题目:绘图软件设计班级:学号:姓名:指导教师:周期:成绩:一、课程设计的目的与要求(一)课程设计目的与任务目的:根据自身对visual c++ 的学习,通过此次上机实践,加深对visual c++ 各类控件的知识。
充分了解各个控件之间的使用及数据的传递方法,根据所学习的类、变量、函数来完成一项简单的课程设计,实现画图软件的功能任务:使用visual c++.net完成所选择的课程设计的题目以及题目中所要求实现的相关功能与要求,并且通过本次的课程设计,让自己对visualc++ 有进一步的理(二)题目要求单文档应用程序,能够选择图形的类型(圆,矩形,直线,画笔),能够选择图形的颜色,能够对绘制的图形进行颜色填充,能够选择图形的线型(如实线,虚线),能够选择画线的颜色和线的宽度。
二、设计正文1 、系统分析对需要用到的变量进行初始化,选择相应的图形之后就响应相应的消息处理函数,赋对应的值。
选择不同的线宽,线色与填充色,鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,得到绘制图形。
2、功能详细描述及框图3、主要功能逻辑过程绘制图形: 鼠标左键按下,则捕获鼠标此时的位置坐标为画图的起点,此时在OnLButtonDown() 函数里,将捕获的坐标值赋给定义作为起点的变量;按下鼠标左键拖动鼠标时,捕捉鼠标当前位置坐标值为终点坐标值,此时在OnMouseMove()函数里,把捕获的坐标值赋给定义作为终点的变量,绘图代码中的坐标都得到了,进行绘图;鼠标左键弹起时,此时绘图结束,鼠标弹起时所在位置就是画图的最终终点位置,此时执行的是OnLButtonUp()函数主要算法:int CMy1109113112View::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CView::OnCreate(lpCreateStruct) == -1)return -1;pdc=new CClientDC(this);color=RGB(0,0,0);tccolor=RGB(255,255,255);width=1;style=0;tcstyle=5;type=4;a=false;tc=false;return 0;}void CMy1109113112View::OnLButtonDown(UINT nFlags, CPoint point){p1=p2=point;pen.CreatePen(style,width,color);pdc->SelectObject(&pen);if(tc){bsh.CreateHatchBrush(6,tccolor);pdc->SelectObject(&bsh);}else{pdc->SelectStockObject(NULL_BRUSH);}pdc->SetROP2(R2_NOTXORPEN);a=true;CView::OnLButtonDown(nFlags, point);}void CMy1109113112View::OnLButtonUp(UINT nFlags, CPoint point) {pdc->SetROP2(R2_COPYPEN);if(type==1){pdc->MoveTo(p1.x,p1.y);pdc->LineTo(point.x,point.y);}else if(type==2){pdc->Ellipse(p1.x,p1.y,point.x,point.y);}else if(type==3){pdc->Rectangle(p1.x,p1.y,point.x,point.y);}else if(type==4){pdc->MoveTo(p1.x,p1.y);pdc->LineTo(point.x,point.y);}a=false;pen.DeleteObject();bsh.DeleteObject();}void CMy1109113112View::OnMouseMove(UINT nFlags, CPoint point) {if(!a)return;if(type==1){pdc->MoveTo(p1.x,p1.y);pdc->LineTo(p2.x,p2.y);p2=point;pdc->MoveTo(p1.x,p1.y);pdc->LineTo(p2.x,p2.y);}else if(type==2){pdc->Ellipse(p1.x,p1.y,p2.x,p2.y);p2=point;pdc->Ellipse(p1.x,p1.y,p2.x,p2.y);}else if(type==3){pdc->Rectangle(p1.x,p1.y,p2.x,p2.y);p2=point;pdc->Rectangle(p1.x,p1.y,p2.x,p2.y);}else if(type==4){p2=point;pdc->MoveTo(p1.x,p1.y);pdc->LineTo(p2.x,p2.y);p1=point;}CMainFrame *pFrame=(CMainFrame *)AfxGetApp()->m_pMainWnd;CStatusBar *pStatus=&pFrame->m_wndStatusBar;CString str;if(pStatus){str.Format(_T("X=%d"),point.x);pStatus->SetPaneText(4,str);str.Format(_T("Y=%d"),point.y);pStatus->SetPaneText(pStatus->CommandToIndex(IDS_Y),str);}CView::OnMouseMove(nFlags, point);}4、界面设计图一绘图类型菜单图二填充颜色菜单图三选择线型菜单图四工具栏菜单图五画图后界面5、系统测试进行非正常操作的模拟时,如鼠标乱点、乱画,绘制大量的图形等,会出现窗口,提示“Debug Asserttion Failled“,应操作慢一点或者在客户区进行。
v c 课程设计一、课程目标知识目标:1. 学生能够掌握维生素C的基本概念,了解其在人体健康中的作用及其食物来源。
2. 学生能够描述维生素C的化学性质,理解其在储存和烹饪过程中的变化。
3. 学生能够对比不同食物中维生素C含量的差异,并解释相关因素。
技能目标:1. 学生能够运用批判性思维,分析日常饮食中维生素C的摄入情况,提出合理搭配建议。
2. 学生通过实验操作,掌握测定食物中维生素C含量的基本方法,培养实验操作能力。
3. 学生能够运用所学知识,设计健康饮食宣传资料,提升信息整合与传达能力。
情感态度价值观目标:1. 学生培养对健康饮食的关注,认识到合理摄入维生素C的重要性,形成良好的饮食习惯。
2. 学生在小组合作中,学会倾听他人意见,尊重团队成果,培养合作精神。
3. 学生通过课程学习,增强关爱自己及他人健康的责任感,树立正确的健康观念。
本课程针对五年级学生设计,结合学科特点,以生活实际为切入点,注重知识与实践的结合。
通过课程学习,使学生不仅掌握维生素C的相关知识,还能将所学应用于实际生活中,提高学生的健康素养。
同时,关注学生个体差异,激发学习兴趣,培养科学精神和团队合作能力。
二、教学内容1. 维生素C的基本概念及其生理功能- 维生素C的化学性质与结构- 维生素C在人体内的作用机理- 维生素C的食物来源及其生物利用率2. 维生素C的食物含量与储存烹饪变化- 不同食物中维生素C含量的比较- 维生素C在储存和烹饪过程中的变化及影响因素- 如何减少维生素C的损失,保持食物营养价值3. 维生素C的摄入与评估- 评估学生日常饮食中维生素C的摄入情况- 提出合理搭配建议,优化饮食结构- 实验教学:测定食物中维生素C含量的基本方法4. 健康饮食宣传与教育- 设计健康饮食宣传资料,传播维生素C相关知识- 课堂讨论:如何提高公众对维生素C的认识和重视- 案例分析:探讨不良饮食习惯对健康的影响教学内容依据课程目标,结合教材相关章节进行编排。
《VC++课程设计》题目一:计算器学院:XXXXXXX班级:XXXXXXX学号:XXXXXXX姓名:XXXXXXX设计时间:XXXXXXX目录:1.需求分析--------------------------------------------- 12.课题设计内容--------------------------------------- 1(1)课程设计基本流程------------------------------------------ 1(2)详细设计说明------------------------------------------------ 2(3)设计流程图--------------------------------------------------- 13(4)主要程序------------------------------------------------------ 14(5)运行结果截图-----------------------------------------------3.得意之处--------------------------------------------- 144.设计实践过程中的收获与体会------------------ 145.设计目前存在的问题-------------------------- 156.主要参考文献--------------------------------------一、需求分析本课程主要是完成一个简单计算器的设计,要求用户在使用时可以准确显示整数及小数,并准确进行加、减、乘、除、幂运算,最后实现清零和退出。
二、课程设计内容1、课程设计基本流程:首先是进行MFC基本对话框的创建,然后设计界面,界面上包括数字按钮、等号按钮、小数点按钮、运算按钮、退出按钮、清零按钮和编辑框。
并对各个按钮和编辑框的地址、标题进行更改,绑定变量。
VisualC++课程设计报告圆心沿正弦曲线轨迹移动的实心圆设计一、设计任务※.选题意义此题选择意义在于设计一个MFC程序Visual C++环境中运行, 在在运行时屏幕上出现一个圆心沿一个正弦曲线轨迹移动的实心圆, 并且每隔1/8个圆周期, 圆的填充色和圆的周边颜色都发生变化, 颜色有我自己选取。
※.设计目标二、在Visual C++程序编写一个程序, 在程序运行时屏幕上出现一个圆沿正弦曲线移动, 并且当每隔1/8个圆周期时圆的填充色和周边颜色改变一次。
三、程序设计与实现※程序结构本课程设计的结构如图1:※.数据和函数功能描述——变量类型定义等说明变色功能圆心移动功能● 1.程序中的重要的函数和语句:OnDraw():●在它中添加了COLORRE颜色类型, CPoin点, CBrush Brush画刷, CPen pen画笔等。
两个for循环定义了正弦曲线。
●SetTimer(100,90,NULL)是时间函数的调用函数来控制圆在沿正弦曲线移动是圆中的颜色变化快慢。
●函数OnTimer():●For循环——实现实心圆移动●if语句——实现实心圆及其周边颜色变化●Invalidate()——刷新函数。
● 2.函数功能进行描述:OnDraw()——函数包括了坐标, 画正弦曲线, 画笔画刷画, 实心圆OnTimer()——函数定义一个变量进而使实心圆的移动, 定义另一个变量实现实心圆颜色每个1/8圆周期发生变化。
系统总体流程图如下:OnDraw()函数的流程图2:OnTimer()函数的流程图3:※.设计难点与解决方法设计难点:◆圆心需要沿着正弦曲线轨迹移动, 实心圆每隔1/8个圆周期, 圆的填充色和周边颜色都要变化。
◆关键是把圆沿正弦曲线运动时留下的影印阴影去掉如图4:◆去掉阴影后但无法使圆沿正弦曲线运动时圆内的颜色变化速率如图5:解决策略:通过定义一个变量将圆心定义在正弦曲线上, 定义时间函数使圆心移动, 定义画笔画圆, 画刷填充, 定义一个颜色数组使实心圆以及周边颜色每隔1/8圆周期发生变化。
vc课程设计一、教学目标本课程的教学目标是使学生掌握VC编程的基本概念、语法和编程技巧,培养学生独立编写简单程序的能力。
具体目标如下:1.知识目标:–掌握C++的基本语法和数据类型。
–理解函数的定义和调用。
–学习面向对象编程的基本概念,如类和对象、继承和多态。
–熟悉VC编程环境,了解常用的编译器和调试工具。
2.技能目标:–能够使用VC编写简单的输入输出程序。
–掌握函数的定义和调用,能编写含有多个函数的程序。
–能够使用面向对象编程的方法,编写简单的类和对象程序。
–熟练使用VC编译器和调试工具,能独立调试程序。
3.情感态度价值观目标:–培养学生对计算机科学的兴趣和热情,提高学生独立思考和解决问题的能力。
–培养学生团队合作的精神,学会与他人分享和交流学习经验。
二、教学内容本课程的教学内容主要包括VC编程的基本概念、语法和编程技巧。
具体安排如下:1.VC编程环境:介绍VC的安装和配置,熟悉VC集成开发环境的界面和功能。
2.C++基本语法:数据类型、变量、运算符、表达式、语句等。
3.函数:函数的定义、声明和调用,递归函数,内联函数等。
4.面向对象编程:类和对象、继承和多态、封装和抽象等。
5.输入输出操作:文件操作、屏幕输出和输入等。
6.调试技巧:编译和调试程序的方法,常见错误分析和解决。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:通过讲解和示范,使学生掌握VC编程的基本概念和语法。
2.案例分析法:通过分析典型案例,使学生理解和掌握面向对象编程的方法。
3.实验法:让学生动手编写程序,培养学生的实际编程能力和调试技巧。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用《VC编程入门》作为主要教材,辅助以相关参考书籍。
2.参考书:提供《C++ Primer》等参考书籍,供学生深入学习。
3.多媒体资料:制作PPT课件,演示程序实例和调试过程。
4.实验设备:配置计算机实验室,提供VC编译器和调试工具。
VC++课程设计报告一、课程设计的目的和要求:1、计算机科学与技术专业所开设的windows课程设计是教学实践环节中一项重要内容,进行此课程设计的旨在:提高和加强学生的计算机应用与软件开发能力,使生由初学者向专业的程序员过渡。
培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月异发展的形势。
学习和掌握windows程序设计方法以及上机调试技巧,为今后学习其它专业课程打好基础。
本次课程设计是以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,作出设计报告。
2、本课设题目及意义1、在现代社会中,我们会接触到很多的人,会和很多人联系。
亲人,同学,朋友,老师,同事等等……他们的联系方式会很难记忆,尤其是各种通讯方式和手段高度发达的今天,手机,qq邮箱,工作单位,等基本信息量大大增加。
通讯方式的多样性尤其增加儿了记忆的难度。
所以通讯录便在这种情况下在人们的日常生活中发挥着中要作用。
2、通讯录得功能如下:向前或向后浏览通讯录信息增加、修改和删除通讯录信息通过文件导入到出通讯录信息二、系统功能设计通讯录的功能要求中要用到对数据信息的操作:将通讯录得数据以某种形式存放,当需要时,可以通过载入来恢复数据。
目前数据存放主要有两种形式:文件和数据库。
两种方式各有特色:文件建档,容易操作,但安全性不高。
数据库相对来说操作及运行较为复杂,但安全性较高,较大型的信息管理系统一般都适用于这种数据存放方式。
本通讯录是基于单文档的采用文件的应用程序。
文档/视图结构是MFC中专门用于开发基于文档的应用程序的框架,在这个框架中,数据的维护及显示分别是由两个不同又彼此紧密相关的对象——文档和视图负责的。
另外,本程序的一大特色就是通过屏蔽当前无效的界面和信息提示来实现的了减少使用者的错误操作,提高了程序的可实用性。
三、文本档和视图及数据联系概况说明MFC应用程序中,文档视图结构用来将数据本身与数据的显示以及用户对数据的相互处理互相隔离。
vc 课程设计报告一、课程目标知识目标:1. 学生能理解并掌握维生素C的基本概念,包括其化学性质、生理功能以及在人体健康中的作用。
2. 学生能描述维生素C的食物来源,了解不同食物中维生素C的含量及保存方法。
3. 学生能解释维生素C缺乏症及其对人体健康的影响。
技能目标:1. 学生能够运用所学知识,分析日常饮食中维生素C的摄入情况,并提出合理膳食建议。
2. 学生能够运用实验方法,检测食物中维生素C的含量,掌握基本的实验操作技能。
3. 学生能够通过小组合作,收集资料、分析数据,形成对维生素C的科学认识。
情感态度价值观目标:1. 学生能够增强健康饮食意识,关注营养均衡,培养良好的饮食习惯。
2. 学生能够认识到科学探究的方法和重要性,培养科学思维和探究精神。
3. 学生能够关注食品安全问题,提高社会责任感和环保意识。
课程性质:本课程为自然科学类课程,结合学生实际生活,以维生素C为主题,开展跨学科教学。
学生特点:四年级学生具备一定的观察、分析和动手能力,对新鲜事物充满好奇心,喜欢探究性学习。
教学要求:注重理论与实践相结合,引导学生主动探究,培养其观察、分析和解决问题的能力。
在教学过程中,关注学生的个体差异,激发学生的学习兴趣,提高其科学素养。
通过本课程的学习,使学生形成对维生素C的科学认识,并将其应用于实际生活中。
二、教学内容1. 维生素C的基本概念:介绍维生素C的化学名称、分子结构、性质和分类。
- 教材章节:第三章第二节“维生素与矿物质”2. 维生素C的生理功能:讲解维生素C在人体内的作用,如抗氧化、促进铁吸收、合成胶原蛋白等。
- 教材章节:第三章第二节“维生素与矿物质”3. 维生素C的食物来源及含量:介绍富含维生素C的食物,以及不同食物中维生素C的含量和保存方法。
- 教材章节:第三章第三节“食物中的维生素与矿物质”4. 维生素C缺乏症及预防:讲解维生素C缺乏症的症状、原因和预防方法。
- 教材章节:第三章第四节“维生素与矿物质的缺乏与过量”5. 实验教学:开展维生素C含量检测实验,让学生了解实验原理、操作步骤和结果分析。
VC程序设计课程实验报告实验题目:使用几种常用资源班级生物医学08(1)班姓名张春香学号日期2011年6月19日一、需求分析(一)实验目的1.了解学会VC++ 6。
0 集成环境操作界面的使用2.使用MFC进行可视化的编程3.理解文档/视程序的结构,MFC消息映射机制,理解发送给窗口的消息是如何被MFC框架通过窗口句柄映射表和消息映射表来用窗口类的函数进行响应的。
4.了解CDocument类的串行化存储功能保存与加载数据和MFC框架程序的文档类和视类的关系5. 学会使用ClassWizard添加成员变量创建新的类和删除一个类和添加消息(二)实验内容和要求1. 如图编写一个对话框应用程序,a)单击按钮1时,按钮上的文字“Show1”现就变成“Show2”;参照书本实例228页例题9-5)。
如下图所示编写一个单文档(SDI)应用程序,对SDI的四个类CxxxApp,CxxxDoc,CxxxView,CMainFrame分别添加一个消息,模拟一下SDI的消息传递过程。
2. 编写一个单文档应用程序,点击菜单项增加硬币,则硬币增加,点击菜单项减少硬币,则硬币减少.如下图所示:1)首先如下图所示建立一个单文档应用程序:2)然后在已有的菜单上添加菜单项,“增加硬币”,“减少硬币”菜单条目3)然后类向导(ClassWizard),鼠标移动到到菜单条目“增加硬币”,然后点击鼠标右键,点击类对类向导(ClassWizard),添加菜单项的消息响应,在类向导中,Class Name选择文档类(如:CCoinShowDoc),Object IDs中选中 ID号为“增加硬币”的ID号(如IDM_ADDCOIN),Message选择COMMAND消息,然后点击按钮Add Function,然后点击Edit Code。
按照上述方法同样添加“减少硬币”菜单条目消息的响应4)然后在CCoinShowDoc类的头文件和源文件中添加下列代码.5)然后在类CCoinShowView中添加代码6)程序编译,运行。
VC++课程设计报告一、设计时间2010年12月 27日----12月31日二、设计地点三、设计目的《VC++程序设计》是计算机科学与技术专业的必修专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
VC程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
要求学生在设计指导教师的帮助下自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。
要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握VC++程序设计的基本技能和面向对象的概念和方法;了解菜单、视图/文档、数据库等编程技术。
同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。
四、设计小组成员五、指导老师六、设计课题派生、多态编程设计内容:依照书p33-40内容,创建一个应用了的窗口和应用程序派生类地完整实例。
设计要求:1)掌握虚函数的使用。
2)改变窗口的背景颜色和窗口的图标。
七、基本思路及关键问题的解决方法仔细审题理解题目要求,整理思路思考出一个系统总体开发,总体设计、总体实现的完整过程,参照书本,按思路编写程序。
遇到问题先独立思考,翻阅教材或上网查找解决,实在无法自己解决的问题可以向老师或同学求助。
八、算法及流程图九、调试过程中出现的问题及相应解决办法问题1:missing ';' before identifier 'InvalidateRect'解决办法:将该中文下的分号改为英文下的分号。
问题2:LINK : fatal error LNK1168: cannot open Debug/0000.exe for writing解决办法:将前一次的运行后的窗口关闭改变图标十、课程设计心得体会Visual C++是Microsofe公司开发的基于C和C++语言的集成开发工具,同其他的可视化编程工具一样,Visual C++6.0集代码编辑,编译,链接,调试等功能于一体,并提供多种有用的辅助开发工具。
vc 课程设计小游戏报告一、教学目标本课程旨在让学生掌握VC编程的基础知识,学会使用VC进行小游戏的开发。
通过本课程的学习,学生将能够:1.掌握VC的基本语法和数据结构。
2.学会使用VC进行程序设计的基本方法。
3.独立开发完成一个小游戏。
4.培养学生的编程思维和解决问题的能力。
二、教学内容本课程的教学内容主要包括:1.VC的基本语法和数据结构。
2.VC的程序设计方法。
3.小游戏的开发流程。
4.常见小游戏的算法和实现。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:讲解VC的基本语法和数据结构,程序设计方法。
2.案例分析法:通过分析典型的小游戏案例,让学生掌握小游戏的开发流程和算法。
3.实验法:让学生动手实践,独立开发小游戏,巩固所学知识。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《VC程序设计》。
2.参考书:《VC高级编程》。
3.多媒体资料:VC编程教程视频。
4.实验设备:计算机。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过课堂表现、参与讨论和团队合作等情况,评估学生的学习态度和积极性。
2.作业:布置适量的作业,评估学生对知识点的掌握程度和应用能力。
3.考试:定期进行考试,全面评估学生的知识水平和编程能力。
评估方式应客观、公正,能够全面反映学生的学习成果。
同时,注重鼓励学生,激发他们的学习兴趣和自信心。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节顺序,逐步讲解知识点,确保学生扎实掌握。
2.教学时间:合理安排课堂时间,保证教学内容的充分讲解和实践。
3.教学地点:选择合适的教室进行教学,提供良好的学习环境。
教学安排应合理、紧凑,确保在有限的时间内完成教学任务。
同时,教学安排还应考虑学生的实际情况和需要,如学生的作息时间、兴趣爱好等。
七、差异化教学根据学生的不同学习风格、兴趣和能力水平,我们将设计差异化的教学活动和评估方式,以满足不同学生的学习需求。
本文由牵祢ㄖㄅ佐手贡献 doc1。
课程设计任务书 …… 2 课程设计题目 1: : 设计一个简单的学生信息管理应用 程序 …… 2 一、设计目标与内容: …… 2 二、设计要求: …… 2 三、基本思路 …… 3 四、主要步骤 …… 3 五、设计心得 …… 24 六、参考文献 …… 25 课程设计题目 3:设计一个简单的计算器应用程序.. 25 一、设计目标与内容: …… 25 二、设计要求: …… 25 三、基本思路 …… 25 四、基本步骤 …… 26 五、设计心得 …… 31 六、参考文献 …… 32 课程设计任务书 课程设计题目 1:设计一个简单的学生信息管理应用 : 程序 一、设计目标与内容: 设计目标与内容: 1. 了解 Windows 编程的基础知识, 掌握 MFC 应用程序的基本知识; 2. 基本掌握面向对象程序设计的基本思路和方法; 3. 掌握用 VC++开发应用程序的的一般步骤和方法; 4. 能够利用所学的基本知识, 设计一个简单的学生信息管理应用 程序,具有以下功能:①实现学生信息的存储,可以用文件来实现。
②编程实现学生信息的添加、删除、修改、浏览和查询等功能(必 须实现的功能)。
二、设计要求: 设计要求: 1. 用 VC++进行编码,实现应用程序的功能。
注重编码质量,代码 要有适当的注释; 2. 采用单文档多视图方式,左边为树视图,右边为列表视图,左边 一级节点为中原工学院,二级节点为计算机学院和软件学院,三级 节点为计算机学院的三个专业。
要求可以动态增加节点。
楼便为列 表视图,包含学生的学号、性别、姓名各科成绩等。
右边也可以实 现动态增加 3.当选中节点时,显示对应的学生信息。
如当选中”中原工学院”时 选中所用的学生信息,选中“计算机学院”时,显示所有计算机学院学 生信息 4.采用序列化方式保存和读取学生信息; 提交设计报告一份(课 程设计任务书、目录、设计的基本思路、设计的步骤及主要代码、心得 体会、参考文献)。
南京理工大学紫金学院VC++课程设计报告课程:VC++课程设计系别:***系班级:***************班学号:*********姓名:***选题名称:电话簿管理选题难易级别:A级起止时间:****年**月指导教师:******年 ** 月目录1 课题目标程序基本功能:一个基本的电话簿管理程序,具有插入、删除、显示、修改和查询联系人电话号码的功能。
课程设计要求:(1)增加记录修改功能(姓名和电话号码)。
(2)增加显示功能(对链表提供逐屏显示选择而且可以由用户确定每屏显示数目)。
(3)汉化菜单和帮助。
(4)程序的结构改写,采用双链表结构,用类和对象重建系统。
评定难易级别: A级2 程序具体实现原理2.1 总体方案(1)程序采用双向链表数据结构实现。
(2)用类来实现数据的封装。
(3)使用文件的输入输出流实现对记录的保存与读取。
2.1.1开发平台操作系统:Win7开发软件:Mirosoft Visual C++ 6.02.2 程序各个功能说明2.2.1 程序结构1.类的封装:class Friend_node{public:char name[35];char phone_number[15];Friend_node *next;void write_list_to_file();void load_list_from_file();void add_record();void delete_record();void change_record();void add_change_record(Friend_node *new_record_ptr);void search_record();void display_all_records();void help();void main_menu();void help_menu();void insert_node(Friend_node *new_record_ptr);void make_node_new_head(Friend_node *new_record_ptr);void add_node_to_end(Friend_node *new_record_ptr);void move_current_to_end();void delete_node(Friend_node *previous_ptr);void delete_head_of_list();void delete_end_of_list(Friend_node *previous_ptr);void delete_from_middle_of_list(Friend_node *previous_ptr);int verify_delete();void delete_list();};2.2.2 课程设计要求的实现1.用类Friend_node重建系统;2.增加了函数change_record()用于修改联系人资料,利用了原来的删除功能delete_record()和添加功能add_record()进行对原有资料的修改;//修改联系人资料//void Friend_node::add_change_record(Friend_node *new_record_ptr){Friend_node *previous_ptr;previous_ptr=NULL;delete_node(previous_ptr);cout<<"输入新姓名:"<<endl;cin>>new_record_ptr->name;cout<<"输入新电话号码:"<<endl;cin>>new_record_ptr->phone_number;insert_node(new_record_ptr);}void Friend_node::change_record(){Friend_node *new_record_ptr;new_record_ptr=new Friend_node;system("cls");char search_string[35];current_ptr=head_ptr;cout<<"输入你想要修改的联系人姓名:"<<endl;cin>>search_string;while((current_ptr!=NULL)&&(strcmp(current_ptr->name,search_string)!=0)) {current_ptr=current_ptr->next;}if(current_ptr!=NULL){cout<<"\n找到联系人!\n";cout<<"姓名"<<" "<<"联系电话"<<endl;cout<<"****************************************"<<endl;cout<<current_ptr->name<<""<<current_ptr->phone_number<<endl;add_change_record(new_record_ptr);}else{cout<<"联系人不存在"<<endl;}cout<<"按下回车键回到主菜单"<<endl;getchar();system("cls");main_menu();}3.在原有的显示功能的基础上添加了一个计数器person_count来实现逐屏显示的功能并可以设定显示数目;//显示联系人//void Friend_node::display_all_records(){int person_count;int temp_person_count=0;char fullname[36];current_ptr=head_ptr;cout<<"每屏显示多少联系人?"<<endl;cin>>person_count;if(current_ptr!=NULL){display:cout<<"姓名"<<" "<<"联系电话"<<endl;cout<<"********************************************"<<endl;for(temp_person_count=0;current_ptr!=NULL&&temp_person_count<person_count;){temp_person_count++;strcpy(fullname,"");strcat(fullname,current_ptr->name);cout.setf(ios::left);cout<<setw(12)<<fullname;cout.unsetf(ios::left);cout.setf(ios::right);cout<<setw(24)<<current_ptr->phone_number<<endl;current_ptr=current_ptr->next;cout<<endl;}for(;current_ptr!=NULL;){cout<<"按下回车键进入下一页"<<endl;getchar();system("cls");goto display;}}else{cout<<"没有联系人!"<<endl;}cout<<"按下回车键回到主菜单"<<endl;current_ptr=head_ptr;getchar();system("cls");main_menu();}4.菜单和帮助的汉化;//主菜单//void Friend_node::main_menu(){main_menu:int choice;cout<<"********************主菜单********************"<<endl;cout<<"**********************************************"<<endl;cout<<"1 - 添加联系人;"<<endl;cout<<"2 - 删除联系人;"<<endl;cout<<"3 - 修改联系人资料;"<<endl;cout<<"4 - 显示所有联系人;"<<endl;cout<<"5 - 按姓名查找联系人;"<<endl;cout<<"6 - 帮助;"<<endl;cout<<"7 - 保存记录并退出程序。
一、实践的目的和要求加深对《C语言》课程所学知识的理解,进一步巩固C语言语法规则。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力。
二、实践内容在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。
进一步掌握各种函数的应用,包括时间函数、绘图函数,以及文件的读写操作等。
三、实践任务1.欢迎画面2.学生成绩管理系统(自己设计界面)3.异或加密与解密(1)文件加密(2)文件解密说明:将某一已知文件的内容以字符形式读出,与密钥(用户从键盘输入)的对应字符进行异或操作即可,解密同样如此。
如:设原文为ab1234,密钥为56,则有ab1234565656按二进制进行异或操作即可得到密文(乱码)。
4.移位加密与解密(1)文件加密(2)文件解密说明:将某一已知文件的内容(限于英文字母)以字符形式读出,根据密钥k(用户从键盘输入)将对应字符进行移位操作即可,解密时移动方向相反。
如:设原文为abcdef,密钥为5,则有abcdef 每个字母按字母表向后移动位(注:z后接a)fghijkl 可得到密文(乱码)。
5.辅助运算(1)整数N模m的乘法逆t要求:输入整数N和m,求出t,若t不存在,给出信息。
提示:这三个数满足:N*t%m=1,使用穷举法。
例如:当N为11,m为26时,由于(11×19)%26=1,所以11模26的乘法逆为19。
(2)统计字母个数要求:输入一段英文字母,统计各个字母的个数,并按个数从大到小排序输出。
提示:字母大小写等价。
输出格式为:字母:个数。
(3)OTP加密要求:输入同等长度的原文x和密钥k(英文字母),根据公式c=(x+k) %26 得到密文,并输出。
提示:将26个字母按0~25编号,将原文字母和对应位置的密钥字母的编号按上述公式进行计算后得到一个新的字母。
计算机网络课程设计报告题目:设计一个类CStudent一.课程设计的题目/封面课程设计题目:设计一个类CStudent二.设计目的设计目的:这次课程设计旨在让我熟练掌握C++语言的基本语法规则;深刻理解基本的面向对象的程序设计方法,如类的实现,创建类等;全面熟悉各种面向对象的程序设计技术,如输出运算符“<<”重载。
在加深我对理论教学内容的理解和掌握的同时,也培养了我分析问题、解决问题的能力,提高了我将课本知识运用到实际生活问题中的实践能力。
三.设计思路设计思路:先定义一个类CStudent的对象,然后每次从键盘输入要存入的学生信息,将这些输入的信息保存在这个对象里面,再把这个对象写入二进制文件中,接着再读取下一个学生的信息,存入到文件中,同时利用for循环结构来实现循环,直到存入所有学生信息后终止。
整个程序中须定义多个成员函数,分别实现不同功能。
在程序执行的过程中,运用switch选择语句,通过选择数字0-4,来调用不同函数,以执行不同功能,达到最终目的。
程序中用到的多个成员函数各自功能的说明如下:1.void getdata():从键盘按规定的数据类型输入学生的编号、姓名、性别、年龄、数学成绩、计算机成绩和外语成绩等信息,并算出总成绩。
2.void outdate():从“stud.dat”文件中取出学生的数学成绩、计算机成绩、外语成绩等信息,凭借其算出总成绩和平均成绩,再将其存入到“stud.dat”文件中,并确定在屏幕上显示的学生信息间的间隔。
3.void get():通过for循环和调用getdata()函数,从键盘输入所有同学的相关信息,并将其存入“stud.dat”文件中。
4.void shaixuan():从键盘输入要筛选学生的性别Sex和总成绩超过n分,按回车键后,被筛选的学生的相关信息就会显示在屏幕上。
5.void xingming():从键盘输入要筛选学生的姓名,按回车键后,被筛选的学生的相关信息就会显示在屏幕上。
vc做的课程设计一、课程目标知识目标:1. 学生能够掌握维生素C的基本概念,了解其在人体健康中的作用和重要性。
2. 学生能够描述维生素C的来源、摄入建议以及缺乏维生素C可能导致的健康问题。
3. 学生能够解释维生素C与其他营养素之间的相互作用。
技能目标:1. 学生能够运用图表、数据等方式,分析日常饮食中维生素C的摄入情况,并提出相应的改善建议。
2. 学生能够设计一份富含维生素C的食谱,提高生活实践能力。
3. 学生能够运用所学知识,评估自身及家庭维生素C的摄入状况,并进行合理调整。
情感态度价值观目标:1. 学生能够认识到均衡饮食、合理摄入营养素的重要性,培养良好的饮食习惯。
2. 学生能够关注家人和朋友的健康状况,传播营养知识,提升生活品质。
3. 学生能够增强对科学探究的兴趣,养成主动学习、合作分享的良好品质。
本课程针对五年级学生设计,结合学生好奇心强、求知欲旺盛的特点,以实用性为导向,注重培养学生的实践能力和综合素质。
通过本课程的学习,使学生能够明确维生素C在健康饮食中的关键作用,提高自身及家庭的生活质量。
同时,课程目标具体、可衡量,便于教学设计和评估,确保学生能够达到预期的学习成果。
二、教学内容1. 维生素C的基本概念:介绍维生素C的化学性质、分类和在自然界中的分布。
教材章节:第三章第二节“维生素C的认识”2. 维生素C在人体中的作用:讲解维生素C在生理功能、生长发育、免疫等方面的作用。
教材章节:第三章第三节“维生素C的生理功能”3. 维生素C的食物来源和摄入建议:分析富含维生素C的食物,介绍不同年龄段人群的摄入建议。
教材章节:第三章第四节“维生素C的食物来源和推荐摄入量”4. 维生素C缺乏与相关疾病:探讨维生素C缺乏可能导致的不良影响及疾病。
教材章节:第三章第五节“维生素C缺乏症及其预防”5. 维生素C与其他营养素的相互作用:讲解维生素C与其他营养素之间的相互影响。
教材章节:第三章第六节“维生素C与其他营养素的相互作用”6. 维生素C的饮食实践:设计富含维生素C的食谱,培养学生的生活实践能力。
V C++计算器课程设计报告一、作品名称:计算器二、本次课程设计的目的在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。
三、主要功能实现计算器的功能。
用户根据程序提示,输入数字或字符,选择要进行的运算,可以进行正弦、余弦、正切、开方、对数、加、减、乘、除、华氏温度与摄氏度之间的换算以及平方根的运算。
四、具体内容释解1.初始运行界面如下:2.进行正弦运算3.进行混合运算4.求平方根运算,根据用户输入与系统提示,运行过程依次如下:5.进行华氏温度和摄氏度间的转化,运行如下:6.进行测试7.选择6键,回到菜单界面,运行如下:五、备注:1. #include为编译预处理命令,其作用是将源程序文件中的预处理命令进行处理,生成一个中间文件,编译系统再对此文件进行编译并生成目标代码,最后生成的代码中并不包含预处理命令。
2.#define MAX 100 为宏定义,以后程序中再出现100,都用MAX代替。
3. exit()为库函数,其功能是终止程序运行,将流程控制返回给操作系统。
exit(表达式)通常把表达式的值作为终止程序的原因。
用0表示正常退出,其他整数值作为异常处理。
使用它时,要包含头文件stdlib.h。
4. void test();测试函数。
测试程序是由计算机出题、用户运算,计算机判断对错并给出分数,计算机用随机数发生器给出两个操作数。
六、附录(源程序)计算器(calculator)--源代码及关键源代码注解如下:#include <process.h>#include<time.h>//用以产生随机数#define MAX 100//宏定义#include <iostream.h>#include <conio.h>#include <stdlib.h>#include <math.h>doublenumber1,number2,answer,number3,num[10000];//定义全局变量int n,k=1;char input,val;//定义输入的运算符号class oopcalc {private:double x,y;//私有变量X和Ydouble fartocel(double number1);//华氏温度转化为摄氏温度的函数声明double celtofar(double number1);//摄氏温度转化为华氏温度的函数声明double sqroot(double number1);//void calcsqr();void calccos();void calctan();void calcsin();void calclog();public:double getX(){return x;}double getY(){return y;}double set(){x=number1;y=number2;}double calcadd(double number1,double number2);//加法运算的函数声明double calcsub(double number1,double number2);//减法运算的函数声明double calcdiv(double number1,double number2);//除法运算的函数声明double calcmult(double number1,double number2);//乘法运算的函数声明void calcfartocel();void calcceltofar();void calcsroot();void exitprog();void menu();//主菜单函数void caculate();//混合运算函数的函数声明void test();//测试函数的函数声明void badinput();};void oopcalc::calcsin()//类体外函数,定义正弦函数{cout<<"The Sin Function\n";cout<<"Enter a number:";cin>>number1;answer=sin(number1);cout<<"The sin of "<<number1<<" is "<<answer<<endl;cout<<"Press any key to continue\n";getch();menu();}void oopcalc::calccos()//类体外函数,定义余弦函数{cout<<"The Cos Function\n";cout<<"Enter a number:";cin>>number1;answer=cos(number1);cout<<"The cos of "<<number1<<" is "<<answer<<endl;cout<<"Press any key to continue\n";getch();menu();}void oopcalc::calctan()//类体外函数,定义正切函数{cout<<"The Tan Function\n";cout<<"Enter a number:";cin>>number1;answer=tan(number1);cout<<"The tan of "<<number1<<" is "<<answer<<endl;cout<<"Press any key to continue\n";getch();menu();}void oopcalc::calcsqr()//求平方的函数{cout<<"The sqr Function\n";cout<<"Enter a number:";cin>>number1;answer=(number1*number1);cout<<"The sqr of "<<number1<<" is "<<answer<<endl;cout<<"Press any key to continue\n";getch();menu();}void oopcalc::calclog()//对数函数{cout<<"The Log Function\n";cout<<"Enter a number:";cin>>number1;if(number1<=0){cout<<"Bad input!\n";cout<<"Press any key to continue\n";getch();menu();}elseanswer=log(number1);cout<<"The log of "<<number1<<" is "<<answer<<endl;cout<<"Press any key to continue\n";getch();menu();}double oopcalc::calcadd(double number1,double number2)//加法运算{answer=number1+number2;return(answer);}double oopcalc::calcsub(double number1,double number2)//减法运算{answer = number1-number2;return(answer);}double oopcalc::calcdiv(double number1,doublenumber2)//除法运算{if(number2==0){getch();//排除除数为零的情况menu();}elseanswer = number1/number2;return(answer);}double oopcalc::calcmult(double number1,double number2)//乘法运算{answer = number1*number2;return(answer);}void oopcalc::calcfartocel()//华氏温度转化为摄氏温度{cout << "The Farenheit to Celsius Function\n";cout << "Enter a tempature in Farenheit: ";cin >> number1;answer =((number1 - 32) * 5) / 9;cout << "The tempature in Celsius is " << answer << endl;cout << "Press any key to continue\n";getch();menu();}void oopcalc::calcceltofar()//摄氏温度转化为华氏温度{cout << "The Celsius to Farenheit Function\n";cout << "Enter a tempature in Celsius: ";cin >> number1;answer =number1 * 9 / 5 + 32;cout << "The tempature in Farenheit is " << answer << endl;cout << "Press any key to continue\n";getch();menu();}void oopcalc::calcsroot()//求平方根的函数{cout << "The Square Root Function\n";cout << "First number: ";cin >> number1;if(number1<0){//排除负数开平方根cout<<"your enter is incorrect,please enter a new number\n";getch();menu();}elseanswer = sqrt(number1);cout << "The square root of " << number1 << " is " << answer << endl;cout << "Press any key to continue\n";getch();menu();}void oopcalc::exitprog(){exit(-1);}void oopcalc::menu(){oopcalc a;system("cls"); //执行系统命令:cls-清屏cout <<"==================MENU===============\n ";cout <<"s:选择s进行正弦运算\n";cout <<"c:选择c进行余弦运算\n";cout <<"t:选择t进行正切运算\n";cout <<"g:选择g进行对数运算\n";cout <<"n:选择n进行求平方运算\n";cout << "1: 选择1进行混合运算\n";cout << "2: 选择2进行华氏温度转化为摄氏温度的运算\n";cout << "3: 选择3进行摄氏温度转化为华氏温度的运算\n";cout << "4: 选择4进行求平方根运算\n";cout << "5: 选择5进行测试\n";cout << "6:选择6退出运算\n";cout << "请选择: ";cin >> input;cout << "=====================================\n"; switch (input){case 's':case 'S':a.calcsin();break;case 'c': case 'C':a.calccos();break;case 't':case 'T':a.calctan();break;case 'g':case 'G':a.calclog();break;case 'n':case 'N':a.calcsqr();break;case '1': a.caculate(); break;case '2': a.calcfartocel(); break;case '3': a.calcceltofar(); break;case '4': a.calcsroot(); break;case '5': a.test();break;case '6': a.exitprog();break;default : a.badinput();}}void oopcalc::caculate(){oopcalc a;cout<<"The Multifunction(混合四则运算)\n";for(int n=1;;n++){cout<<"Number"<<n<<"(Enter 0 to end entering):"; cin>>num[n];//输入要运算的数if(num[n]==0){//遇到0为止c out<<"Press any key to continue\n";g etch();m enu();}switch(k){case 1:if(n==1){answer=num[1];break;}//如果第一个数则不进行运算else {answer=a.calcadd(answer,num[n]);//如果不是第一个数进行运算cout<<"The answer is "<<answer<<endl; break;}case 2:if(n==1){answer=num[1];break;}//如果第一个数则不进行运算else {answer=a.calcsub(answer,num[n]);//如果不是第一个数进行运算cout<<"The answer is "<<answer<<endl;break;} case 3:if(n==1){answer=num[1];break;}//如果第一个数则不进行运算else {answer=a.calcmult(answer,num[n]);//如果不是第一个数进行运算cout<<"The answer is "<<answer<<endl;break;} case 4:if(n==1){answer=num[1];break;}//如果第一个数则不进行运算else {answer=a.calcdiv(answer,num[n]);//如果不是第一个数进行运算cout<<"The answer is "<<answer<<endl;break;}}label1:cout<<"Please choose the function you want(+ or - or * or /):\n";cin>>val;switch(val){case'+':k=1;break;case'-':k=2;break;case'*':k=3;break;case'/':k=4;break;default:cout<<"Bad input!\n";goto label1;}}}void oopcalc::test()//测试函数{cout<<"The Test Function\n";int s;float p;s=rand()%4+1;//随机给出题目的+或-或*或/srand ( time (NULL) );number1=rand()%MAX+1;//在1~100之间随机给出数字number2=rand()%MAX+1;switch(s){case 1:cout<<number1<<'+'<<number2<<'=';answer=calcadd(number1,number2);b reak;case 2: cout<<number1<<'-'<<number2<<'=';answer=calcsub(number1,number2);b reak;case 3: cout<<number1<<'/'<<number2<<'=';a nswer=calcdiv(number1,number2);b reak;case 4: cout<<number1<<'*'<<number2<<'=';a nswer=calcmult(number1,number2);b reak;}cin>>p;if(answer==p){cout<<"Correct!You are very clever!\n";}else{cout<<"NO!The correct answer is "<<answer<<",You should have more practise.\n";}cout<<"Press any key to continue\n"; cout<<flush;getch();menu();}void oopcalc::badinput(){cout << "BAD INPUT!\n";cout << "Press any key to continue\n"; getch();menu();}void main(){oopcalc s;s.menu();}七、心得体会这个程序其实并不是由我一人独立完成的,在程序的设计和编译过程当中,我得到了许多学长学姐以及同学们的帮助和辅导,整个完成过程既单调又精彩。
vc的课程设计一、课程目标知识目标:1. 学生能理解并掌握维生素C(以下简称“VC”)的基本概念、功能和食物来源。
2. 学生能了解VC在人体健康中的作用,如提高免疫力、促进铁吸收等。
3. 学生能掌握如何通过食物搭配和合理安排饮食来保证日常VC的摄入。
技能目标:1. 学生能够运用所学知识,分析日常饮食中VC的摄入状况,并提出改进措施。
2. 学生能够设计一份富含VC的饮食菜单,提升实际操作能力。
情感态度价值观目标:1. 培养学生对健康饮食的重视,增强自我保健意识。
2. 培养学生关爱家人健康,乐于分享健康知识,形成良好的家庭饮食习惯。
3. 增强学生环境保护意识,关注绿色、有机食品,倡导健康生活方式。
课程性质分析:本课程为自然科学类课程,以生物学、营养学为基础,结合实际生活,培养学生的科学素养和健康意识。
学生特点分析:本课程针对的学生群体为五年级学生,他们对新鲜事物充满好奇心,有一定的求知欲和自主学习能力,但注意力容易分散,需要结合生活实际,采用生动有趣的教学方法。
教学要求:1. 注重理论与实践相结合,提高学生的实际操作能力。
2. 教学过程中充分调动学生的积极性,鼓励提问、讨论,培养学生的创新思维能力。
3. 关注学生个体差异,因材施教,使每个学生都能在原有基础上得到提高。
二、教学内容1._VC的概念与功能- VC的基本概念- VC在人体中的作用- VC的食物来源2._VC的生理作用- 提高免疫力- 促进铁的吸收- 抗氧化功能- 对皮肤、牙龈、血管等的作用3._VC的摄入与需求- 人体对VC的需求量- 不同年龄、性别、生理状态下VC的需求差异- VC缺乏与过量的危害4._VC的食物搭配与摄入- 常见富含VC的食物- 食物搭配原则,提高VC的生物利用率- 日常饮食中如何保证VC的摄入5. 实践活动:设计富含VC的饮食菜单- 指导学生如何设计饮食菜单- 学生分组讨论、设计菜单- 分享、评价各组设计的饮食菜单教学内容依据课本相关章节,结合课程目标进行选择和组织。
湖南农业大学信息科学技术学院VisualC++程序设计实验报告题目简单计算器和霓虹灯效果学号专业及班级计算机专业姓名起止日期指导教师霓虹灯效果与简单计算器1.基本功能描述要求使用MFC框架在Visual Studio 6.0环境下编写一个简易的计算器,能实现简单的加、减、乘、除四则运算。
还有霓虹灯效果,实现红,蓝,绿三种颜色在一定时间间隔内轮流变换。
2.设计思路首先建立一个单文档,在单文档中实现霓虹灯效果。
再在单文档中建立一个对话框,编辑对话框实现计算器的功能。
其中要实现在类中添加函数,添加变量等过程。
关键利用到OnTimer函数,SetTimer函数设定定时器,UpdateData函数实现数据的赋值和显示。
3.软件设计3.1设计步骤3.1.1输出霓虹灯效果的文本(1)打开Visual C++6.0,选择“文件/新建”命令。
(2)打开“新建”对话框,选择“工程”选项中的MFC AppWizard(exe)选项,在文本框中输入文本名字,如:“Myprogram”。
之后选择单文档(3)在ClassView选项卡中,在CMyprogramView选项中,添加成员变量,分别填好类型和名称。
变量1的Type是“CFont”,Name 是“font”,用来保存定义的字体输出属性。
变量2的Type是“COLORREF”,Name输入“color[3]”,数组color[3]用来保存文本中进行颜色变换的所有颜色。
变量3的Type是“int”,Name是“i”。
i是用作颜色标识,用来对数组中的数据进行选择。
(4)编辑代码:CMyprogramView::CMyprogramView(){// TODO: add construction code herei=0;font.CreatePointFont(500,"楷体",NULL);color[0]=RGB(255,0,0);color[1]=RGB(0,255,0);color[2]=RGB(0,0,255);}(5)按Ctrl+W,打开MFC ClassWizard对话框。
在Class name 下拉菜单中选择CMyprogramView,在Object IDs下拉菜单中选择CMyprogramView,在Message中选择WM_TIMER。
这样就出现了W OnTimer成员函数。
(6)双击OnDraw(CDC*pDC)函数。
编辑代码:void CFfffView::OnDraw(CDC* pDC){CFfffDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereSetTimer(1,500,NULL);//设置时间间隔为500毫秒}(7)双击OnTimer(UINT nIDEvent)成员函数,编辑代码:void CFfffView::OnTimer(UINT nIDEvent){// TODO: Add your message handler code here and/or call defaultCDC*pDC=GetDC();//获得当前设备指针CFont*oldfont=pDC->SelectObject(&font);//选中当前设置的字体属性if(i<3){pDC->SetTextColor(color[i]);pDC->TextOut(0,0,"小计算器!");i++;}elsei=0;pDC->SelectObject(oldfont);//选回以前的字体属性CView::OnTimer(nIDEvent);}(8)运行程序,可以看到每隔0.5秒“小计算器”的颜色在红色,绿色和蓝色之间变换。
3.1.2计算器对话框的创建和控件编辑(1)在单文档方式下,选择项目工作区中窗口中的Resource View 选项卡中,展开Dialog选项,手动添加用户自定义对话框(2)可根据个人喜好设计计算机对话框。
3.1.3对话框的编辑(1)打开工程文件“Myprogram”(2)选择项目工作区窗口中ResourceView选项卡并展开其选项,展开Menu选项,双击IDR_MAINFRAME选项。
(3)在右侧编辑区中,手动添加新菜单项“显示对话框”(4)在建立一个名为“显示”的子菜单项,其ID定义为ID_SHOWDIALOG。
(5)回到项目工作窗口,展开Dialog文件夹,双击IDD_DAILOG1(在对话框创建时)打开前面已经建好的对话框,在对话框的非控件区域双击鼠标,打开MFC ClassWizard对话框和Adding a class对话框,选中其中的Create a new class。
(6)打开New Class对话框,在Name文本框中输入“CMydialog”。
然后单击OK按钮。
(7)打开MFC ClassWizard对话框,在Class name下拉列表中出现了CMydialog类。
(8)在Class name下拉菜单中选择CMyprogramView,在Object IDs下拉菜单中选择ID_SHOWDIALOG类,在Message中选择COMMAND 选项。
此时在Member functions列表中将出现OnShowdialog ON_ID_SHOWDIALOG:COMMAND成员函数。
(9)在项目工作区自动出现了OnShowdialog成员函数。
(10)用鼠标右键单击CMydialogView选项,在弹出的快捷菜单中选择Add Member Variable命令,打开Add Member Variable对话框,在Variable Type文本框中输入“CMydialog”,在VaribleName文本框中输入“Mydialog”,单击OK按钮。
这样就建立了一个名为Mydialog的CMydialog类保护型对象。
(11)展开CMydialogView选项,双击OnShowdialog选项,光标移到该函数体起始位置,将其函数体内容修改为:void CFfffView::OnShowdialog(){// TODO: Add your command handler code heremydialog.DoModal();//显示对话框}(12)运行该程序,选择“显示对话框/显示”。
3.2界面设计打开对话框资源,为各个控件添加ID,进行属性设计;在计算器中要添加的有加减乘除四个成员函数,还有添加num1、num2和result这三个成员变量。
打开ClassWizard,针对IDD_MYDIALOG_DIALOG所指向的类CMydialogDlg,为该类添加成员变量。
(1)打开对话框资源IDD_ MYDIALOG _DIALOG,该对话框是程序运行时的主界面,按要求完成控件的添加。
例如,组框的添加。
首先,点击控件工具条上的‘组框’按钮,在对话框上画出组框,并适当地调整其大小。
然后右键单击组框,选择‘属性’,分别改为“ID_JIA”、“ID_JIAN”、“ID_CHENG”、“ID_CHU”。
按照这样的步骤,完成所有控件的添加。
其中包括按钮、静态文本框、编辑框、组合框。
(2)通过类向导为CMydialogDlg类添加成员变量。
单击菜单栏的‘查看’中的‘建立类向导’,打开‘MFC ClassWizard’对话框。
然后,选择‘Member V ariables’选项,选择要添加成员变量的类,再选择要添加成员变量的控制ID,单击‘添加变量’按钮,输入变量名,选择变量类型,如:float型的num1,float型的num2,float型的result。
单击确定即可。
然后按照同样的方法为所有的控件添加成员变量。
3.3关键功能的实现(1)给控件绑定变量:利用类向导给三个编辑框绑定三个float 型的变量。
Ctrl+W打开类向导,在Project里选择Myprogram,Class name中选择CMydialog,在Control IDs选择IDC_FIRNUM,然后选择Add V ariavle,在打开第二个选型卡Member Variable成员变量。
为IDC_FIRNUM添加一个变量。
在Member V ariable Name中m_num1,Category中选择value。
在V ariable Type中选择float。
Ctrl+W打开类向导,在Project里选择Myprogram,Class name中选择CMydialog,在Control IDs选择IDC_SECNUM,然后选择Add V ariavle,在打开第二个选型卡Member Variable成员变量。
为IDC_SECNUM添加一个变量。
在Member Variable Name中m_num2,Category中选择value。
在V ariable Type中选择float。
这样就完成了控件与变量的绑定。
(2)对按钮控件的事件响应函数的添加。
1.加法的实现右键建立类向导,从IDs中选择ID_JIA,即加这个按钮。
从Message 中选择BN_CLICKEO,即别单击时,点Add Function为其添加函数。
然后弹出对话框中,为函数命名,默认值即可。
点击OK。
然后会在Member Function中,添加了一个函数OnJia,选中,然后点击Edit Code,编辑代码。
void CMydialog::Onjia(){// TODO: Add your control notification handler code hereUpdateData(true);//刷新数据,刷新控件的值到变量m_result=m_num1+m_num2;UpdateData(false);//刷新数据到控件显示}2.减法的实现右键建立类向导,从IDs中选择ID_JIAN,即加这个按钮。
从Message中选择BN_CLICKEO,即别单击时,点Add Function为其添加函数。
然后弹出对话框中,为函数命名,默认值即可。
点击OK。
然后会在Member Function中,添加了一个函数OnJian,选中,然后点击Edit Code,编辑代码。
void CMydialog::Onjian(){// TODO: Add your control notification handler code hereUpdateData(true);//刷新数据,刷新控件的值到变量m_result=m_num1-m_num2;UpdateData(false);//刷新数据到控件显示}3.乘法的实现右键建立类向导,从IDs中选择ID_CHENG,即加这个按钮。