报告范文工作报告

c++实践报告书范文2篇

2023-01-29 本文已影响 2.2W人 

【c++实践报告书例一】

c++实践报告书范文2篇

本科生课程设计(实践)设计报告

(程序设计基础)

题 目

学生学号 学生姓名

指导教师 学 院 专业班级 MFC课程设计

计算机基础教学实验中心

2015年 06月 14 日

一、引言

MFC(Microsoft Foundation Class Library, 微软基础类库)是微软基

Windows平台下的C++类库集合。MFC包含了所有与系统相关的类,其中封装了大多数的API(Application Program Interface)函数,提供了应用程序框架和开发应用程序的工具,如应用程序向导、类向导、可视化资源设计等高效工具,用消息映射处理消息响应,大大简化了Windows应用程序的开发工作,使程序员可以从繁重的编程工作中解脱出来,提高了工作效率。

程序设计实践旨在课堂学习的基础上帮助学生掌握C++应用系统的开发方法和技巧。在系统学习完《C++程序设计》这门课程后,通过实践对几个小型C++应用程序实例设计与实现过程分析,帮助学生利用C++开发应用系统的一般方法和步骤,掌握MFC的基本知识。

这次实践采用学生上机与老师集体辅导的方式,以完成老师下发的《C++语言课程设计任务书》为要求和目的,运用课堂上学习的C++基础知识,采用Visual C++ MFC编程系统,以全新的角度和感知去认识C++语言在编程方面的优越性。在实践过程中,基于对话框的MFC应用程序,达到了解基本控件,如静态文本框、命令按钮、编辑框、列表框、组合框等的使用的目的。还有理解Windows应用程序采用“消息传递、事件驱动”的运行机制。

本次实践的任务主要分为两个部分:

(一) 使用Visual C++ MFC编程实现以下功能:

1. 输入一元二次方程ax2+bx+c=0 的系数a、b、c,计算并输出两个根x1、x2.

2. 编写一个能对列表框进行项目添加、修改和删除操作的应用程序。

3. 编写一个程序,绘制-2π~2π之间的sin曲线。

4. 用定时器控制蝴蝶在窗口中飞舞。等共10道。

(二) 将第一部分中选择3~5题,做一个综合程序,要求有登陆界面和调

用各部分的功能。

二、总体设计

本次实践的主要目的就是了解和掌握运用MFC编程的一般思想和具体的操作步骤。实践主要是基于MFC的多文档对话框和单文档视图,通过实践完成第一大部分的任务之后,还要完成第二部分的综合题目。第二部分的任务由学生自主发挥,自主找资料,询问同学和老师。

第一部分的任务比较简单,具体的就不再描述。关于第二部分,我做了一个基于对文档对话框。首页为一个登陆页面,需要输入用户名和密码才能登陆,登陆后的页面是把第一大部分的几个题目连接起来。达到预览的目的。

三、详细设计

实践前首先要认识AppWizard的工作环境。其项目工作区一共有三个选项卡分别为“ResourceView”“ClassView”“FileView”,中间是对话框设计界面,右边是控件工具栏。

实践过程中,我们是先完成第一大部分的任务。虽然在第一次上机实践前,我仔细地阅读了老师给我们下发的资料,并且结合《C++程序设计实践教程》了

解相关知识,但是在实践时结果不理想。主要是对创建对话框程序的步骤没有掌握。在经过几次尝试失败后,总结其一般步骤为:(1)建立基于对话框的MFC应用程序框架;(2)放置控件;(3)设置控件属性;(4)为控件连接变量,即为控件命名;(5)添加并且编写消息处理函数。

基于对话框的MFC程序设计,对各种控件的了解和使用显得特别重要。这里就不一一详细介绍它们的功能。控件控制栏一个有26个控件图标,每一个图标都可以看做一个对象,消息便是通过函数对它们进行操作。每一个控件都有两个重要而且必不可少的基本属性:ID和标题。ID便是该控件的标识,某些函数需要通过ID对控件进行操作。

了解一定相关知识后,对课程实践有了很大的帮助。其中“输入一元二次方程ax2+bx+c=0 的系数a、b、c,计算并输出两个根x1、x2”这个题目比较复杂,而且与C++连续很紧密。其中的有这样的语句m_x1=(-b+sqrt(b*b-4*a*c))/(2*a); m_x2=(-b-sqrt(b*b-4*a*c))/(2*a),这就是我们在课堂上学习的C++基本语句,在实践过程中考验学生的灵活运用能力。完成这个题目的关键是把每个编辑框(控件)连接好变量和选的数据类型,接下来的就是编写消息处理函数。这道题很全面地体现了MFC的“消息传递、事件驱动”的思想,在操作步骤方面也在很多地方得到了实践。

MFC编程除了基于多文本对话框以外,还有很重要的一部分是基于单文档界面的应用程序,如Windows自带的Notepad程序。在本次实践的第一大部分的后5个小题就是基于单文档的。那么首先要对其有一定的了解:文档/视图结构的思想是将数据的管理与显示分离,其中文档用于管理应用程序的数据,而视图是用户界面,用于显示、打印文档中的数据,并管理与用户的交互。SDI具有文档/视图结构的应用程序框架,该框架包括应用程序类、窗口框架类、文档类和视图类,编程的任务是在文档类和视图类中添加适当的代码。其中文档类中一个重要的成员函数是OnNewDocument(),用户在此添加代码完成对数据的初始化;而视图类中最重要的成员函数是OnDraw(),通过在该函数中添加代码实现窗口内容的输出。

本次实践是对单文档的典型实例,包括:

? 利用画笔、画刷等工具及位图处理的方法实现文字和图形的输出。

? 利用定时器控件制作动画程序。

? 对鼠标和键盘进行编程的基本方法。

? 文件、字体、颜色等几种通用对话框的使用方法及自定义对话框的设计、调用方法。 ? 菜单的设计方法。

虽然进行充分的准备,实践中还是遇到了很多的困难和问题。在完成题目“用定时器控制蝴蝶在窗口中飞舞”时,主要的问题就是在插入蝴蝶图片的,尝试了几次都没有编译成功。最终再询问同学后,才知道是要把GIF格式的图片分割成一帧一帧,然后才能插入。最后用定时器控制,达到动态的效果。

在完成了第一大部分的任务后,第二部分的综合题是一个不小的挑战对我来说。要靠自己去网上或者图书馆查找资料。在经过一番准备后,最终决定做一个相对简单的基于多文档对话框的登陆界面,把几个原来的程序文件连接起来。但是在这个过程中,完全要靠自己一步一步去探索,当然也遇到了各种各样的困难和挑战。

关键是在连接各部分对话框,经过不断的实验,不断的调试程序,总结的操作步骤如下:(1)创建工程,MFC Application(exe),工程命名按要求命名;(2)工程建立后有如图对话框,将途中的静态文本框和按钮都删掉,留下空白,再使用静

态文本,编辑框,按钮和静态图片重新排版,并进行命名。注意静态图框应该第一个布置,不然运行时图片会将其他控件覆盖;(3)右击密码对应的编辑框,选择属性,选样式中的密码;(4)在Dialog上右击选择插入DIG,重复插入4个,依次作为菜单,题目1,题目2和题目3的对话框,并对其分别创建类,以菜单对话框为例,改一下表头为“菜单”,在对话框空白处双击,点OK创建类,并对其命名(假如命名为MyMenu);(5)回到登录界面的对话框,双击登录控件,出现如图按钮,点击OK,在顶端添加#include”MyMenu.h”,并OnButton1下添加以下代码CString c_user,c_password;

m_indowText(c_user);

m_indowText(c_password);

if(c_pty()||c_pty())

{

MessageBox("用户名或密码不能为空","用户登录信息");

return;

}

if(c_user=="123"&&c_password=="123")

{

CMyMenu dlg;

dal();//这两段代码是用于调用菜单对话框

}

else

{

MessageBox("用户名或密码不正确","提示",MB_ICONINFORMATION); return;

(6)对对话框添加背景图片。在如下图文件上右击,选择引入,然后导入已准备好的bmp格式的图片,然后选择登录界面的静态图框右击,进行如图操作,这样图片就加入了,它会改掉按钮和编辑框,这没关系,运行后会显示出来的;

(7)通过以上操作,已经做好了登录界面和实现和登录界面与菜单对话框的连接,现在进行菜单对话框的编辑。将原有的按钮删除,自己加入按钮并命名;(8)双击题目1,点OK,在代码页的顶端加入如图代码,并在OnButton1下加入以下代码 CT1 dlg; dal();其他的按相同操作。

四、设计总结

为期为两周的课程实践中,我体会颇多,学到的东西也很多。我懂得了如何运用MFC编写可视化界面的应用程序,加强了对C++的认识,复习了以前的知识,自己的逻辑思考能力,解决问题的能力也提高了不少。从而对Microsoft Visual C++有了更加深刻的认识和体会!在这次课程设计实践过程中我还懂得了一些程序开发的重要步骤,总之,在这次课程设计实践中,我收获颇丰。

对于对任务的完成情况,第一部分主要按老师的步骤完成。第二部分,由学生自主选题,自主设计完成。总的来说,我个人对自己的完成情况感觉良好。当然,老师的悉心指导和同学的帮助是不能忽视的,在此感谢所有在本次课程设计实践过程中对我细心指导的老师和不断鼓励和帮助我的同学们。

总之,此次课程实践是对学生动手动脑的一次很好的锻炼,为学生的今后发展奠定基础。

【c++实践报告书例二】

本科生课程设计(实践)任务书、设计报告

(C++程序设计)

题 目 科学计算器应用程序系统 学生姓名

指导教师

学 院

专业班级 学生学号 吴金星 严晖 材料科学与工程学院 1206 0607120610

计算机基础教学实验中心

2013年 7 月 3 日

科学计算器管理信息系统

摘要:本设计是简单计算器,日常计算机使用中,常常涉及到一些有关计算的问题,一个小型的计算器软件变得非常有用,该校型计算器需要空间资源较少,对电脑其他程序的.应用影响较小。它的设计按软件工程的方法进行,系统具有良好的界面、必要的交互信息和较好的健壮性;醒目美观的软件封面。使用人员能快捷简单地进行操作。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

关键词:程序设计;计算器;MFC;按钮控件

1. 计算器系统开发设计思想

⑴实验目的

①通过实践加强对程序设计语言课程知识点的理解和掌握,培养对课程知识综合运用能力、实际分析问题能力及编程能力,养成良好的编程习惯。

②通过实践进一步领会程序设计的特点和应用,提高运用C++ 以及面向对象知识解决实际问题的能力。

③通过实践掌握用C++ 编写面向对象的实用程序的设计方法,对面向对象方法和思想增加感性的认识;学会利用C++程序设计语言编写出一些短小、可靠的Windows实用程序,切实提高面向对象的程序设计能力。为后续的相关课程的学习打下基础。

⑵实验要求

①二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算

②科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行

③以角度、弧度两种方式实现上述部分函数

④具备历史计算的记忆功能

⑤对不正确的表达式能指出其错误原因

⑥整理上机步骤,完成实验报告、提交可运行的程序,给出实验数据和实验结果

2、计算器系统功能及系统设计介绍

⑴功能说明

它的设计按软件工程的方法进行,系统具有良好的界面;必要的交互信息;简约美观的效果。使用人员能快捷简单地进行操作。即可单机按钮进行操作,也可直接通过键盘直接输入。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

①包含的功能有:加、减、乘、除运算,开方、求倒数等功能。②计算器上数字09为一个控件数组,加、减、乘、除为一个控件数组,其余为单一的控件。③给对话框添加菜单。④计算功能基本上是用系统内部函数。⑤程序可以能自动判断输入数据的正确性,保证不出现多于一个小数点、以0开头等不正常现象。⑥“C”按钮可以清除所有已输入的数据从头计算。

⑵设计思路

①算法基本流程,数值计算及功能:②主要部分为按键后的接受处理

③键入为数字则检查和增长操作数,有前算符则增长操作数1,否则增长操作数

2。计算器基本按:键入操作数1,键入运算符(若为单目算符即直接运算),键入操作数2,再键入算符即运算前算符,若为当前键入为单目算符即再运算,结果保留在操作数1中,并返回在界面显示。

④在每次运算前将操作数进行进制转为十进制,在运算结束后操作数还原进制。 ⑤其中键入特殊算符和功能键作特殊处理,如:退格,进制选键和”=”,”CE”,”C”等。显示键入的相关信息,如果键入不合法即提示错误。 ⑶算法流程图

⑷关键功能实现

①操作数的输入,编辑框所关联的变量为m_num,程序开始时为零。每按下一个数字键按钮,就把它累加到m_num里并刷新显示。BOOL型变量ele来判断是否有小数点和一个整型数dint来表示小数点后的数据的位数。当ele=TRUE时,表示有小数点,否则则表示无小数点。按下小数点按钮后执行ele=TRUE。当按下一个数字键时,首先根据ele判断是否按下小数点,若有则把小数点后数的位数加1,dint则为此次键入的数所处的位数,将键入的数除以dint个10然后累加到编辑框所关联的变量m_num上,若没有则把m_num乘以10,然后累加到编辑框所关联的变量m_num上。

②单目运算符功能的实现,由于单目运算符中必须有执行运算的函数,因而头文件中要加入math.h,如m_num=sqrt(m_num).按下按钮即可实现其功能。为实现连续运算,程序有所改动。

③双目运算符功能的实现,双目运算符需要两个操作数才能运算,所以在执行双目运算符按钮的函数代码中,要把m_num中的值保存到变量num2中,然后把m_num清零。这样即可保存第一个操作数。另外先定义了一个整形变量addt,在不同的双目运算符中给addt赋不同的值,然后在等号中用switch语句来匹配addt值来判断需要执行何种双目运算。为实现连续运算,程序有所改动。 ④退格键功能的实现,当按下一次退格按钮时,若m_num为整数,只需对其中数据除以10再取整即可,若按下一次退格按钮为小数,则根据小数点后数据的位数dint进行操作,先对m_num执行(dint-1)次乘以10运算,然后取整,接着执行(dint-1)次除以10的运算即可。完成后需要把dint将减小1。

⑤正负号功能的实现,在头文件中定义一个BOOL型变量ele2来判断m_num的正负。ele2=TRUE时表示为正。在键入操作数时需要用到ele2。在正负号按钮的消息响应函数内容为m_num=-m_num;ele2=!ele2。

3.计算器系统开发的体会

实践是获取知识的一个极其重要的途径,无论是过去还是现在抑或是将来,我都坚信这一点。在这个实验中,我坚持以实践为导向,虽然,我没有对CLR与的系统的学习,理论理解并不多,但是在实际摸索应用的过程中,我还是学到很多东西,特别是理解了一个功能的使用方法之后,这种快乐的心情是无法描述的。现在可以灵活运用一些常用的属性,进行一些基本操作,以实现预期目标。

实现该计算器,当时的想法是尽量向Windows计算器靠拢。可以看到,这个计算器有很多Windows计算器的影子。虽然这个计算器还有很多不足,比如表达式的处理。 这个计算器的代码都是自己思考过后写出来的,特别是错误排除部分,经历了很多Bug的时期。由于时间限制,可视化计算器的基本实现告一段落,在时间允许的以后再进一步完善计算器功能。


上一篇 下一篇

猜你喜欢

热点阅读

最新文章

推荐阅读