已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+面向对象程序设计课程实验教学大纲一、学时数: 学时二、授课对象:计算机科学与技术专业(本科)三、内容提要:1 本实验内容作为C+面向对象程序设计理论联系实际,培养增强学生动手能力。2 实验内容主要包括在VISUAL C+环境下调试C+程序,熟悉C+语言特点。四、考试方式:实验报告及成绩五、教材及参考书:1C+程序设计语言教程(语言基础) 麦中凡 编著 北京航空航天大学出版社,1995年7月第一版2面向对象程序设计高级教程 陈奇 编著 高等教育出版社 2001.63C+编程思想 (美)Bruce Eckel 著, 机械工业出版社 2000.7六、实验内容安排实验一、Visual C+集成编程环境的使用一、 实验目的与要求使学生了解Visual c+6.0集成编程环境(VC IDE)及其基本功能,初步学会应用Visual c+6.0集成编程环境进行c+程序的编辑、编译、连接、调试、运行。本实验为验证性实验。二、 实验内容1. Visual c+6.0的启动;2. Visual c+6.0集成编程环境的组成及基本功能;3. 程序的编辑、编译、语法错误的排除、连接、调试、运行。三、实验时数:4学时四、相关内容:Visual c+6.0集成编程环境的使用方法简介(1)Visual c+6.0集成编程环境的功能非常强大,我们仅要求学生了解其中的几项基本功能,包括:(1)C+ source file的处理。(2)调试器Debugger的使用。(3)用MFC AppWizard(Exe)创建应用项目。本实验先简单介绍C+ source file的编辑、编译、连接、调试、运行。其它功能将在后继实验中陆续介绍。1上机方法和步骤1) 1)启动Visual C+,启动方法见图1-1: 图1-1 通过程序菜单启动Visual C+2)创建一个新的C+ Source File(见图1-2)在VC的主窗口中打开“文件”菜单,单击“New”命令选项,进入“New”对话框,选择该对话框的“File”页,在该页的File功能列表中双击“C+ Source”项,则进入到程序文件编辑窗中。图1-2 选择“C+ Source”功能3)编辑C+ Source File进入“程序文件编辑“窗中(见图1-3),即可用Windows提供的文本编辑的一般方法编辑程序,所谓一般方法包括文字或文字块的输入、修改,文字或文字块的删除、复制、粘贴等。图1-3 VC 的程序编辑器4)保存C+文件程序编辑完毕(或者程序部分编辑完成),可以执行文件保存命令(Save或Save As)以保存文件,“Save As“命令所对应的对话框如图1-4所示,源程序文件(C+ Source File)的扩展名为cpp。图1-4 “Save As” 对话框5)源程序文件的编译执行“Build”菜单上“Compile”命令,即可对已打开的源程序文件进行编译,编译结果(含出错信息)显示在主窗口下部的“编译结果信息”输出框中(图1-5的红框部分)。 图1-5 编译结果信息输出6) 如果程序有语法错,可参照“输出窗中给出的提示进行修改,然后重复5)6),直至出错提示全部消除,生成目标文件(*.obj)以及其他相关文件。7)生成可执行文件(程序的链接)执行“Build”菜单上“Build”命令,即可对已生成的的目标文件进行链接,生成可执行文件(*.exe),Build结果(含出错信息)显示在主窗口下部的输出框中(图1-6的红框部分)。图1-6 链接结果信息输出8)程序的执行执行“Build”菜单上“Excute”命令,即可执行步骤7)所生成的可执行文件,并显示如图1-7所示的Dos窗口。 图1-7 执行C+ Source程序所显示的窗口 2注意事项(1) 应建立专用的文件夹来保存源程序文件并且要记住该文件夹的准确路径。(2) 程序如有语法错误,编译程序会以语句行为单位在输出框中给出详细的出错信息,只要双击输出框中的某条出错信息,光标即自动定位到包含该错误的语句行上(编辑窗中)。(3)一个语法错误可能导致出现多个相关语法成分出现语法错误,排除主要的语法错误后,相关的语法错误则同时自行排除。实验二、C+的基本i/o流控制一、实验目的与要求本实验为证性实验,旨在使学生加深对i/o流及i/o操作的理解,学会运用i/o流类提供的基本操作符和各种格式控制符实现程序中的简单的输入、输出处理。二、实验内容1编制简单的程序,对插入运算符往输出流(cout和clog)中输出各种数据的功能进行验证(输出项必须包括:常量、变量、函数调用和表达式等)。2编制简单的程序,对提取运算符从输入流(cin)中提取键盘键入的字符串,并转换成各种数据赋予指定变量的功能进行验证。(输入项必须包括各种类型的变量)。3常用的格式控制符的功能和输出格式验证,包括设置浮点数格式、设置输出域宽、设置填充字符、设置和输出16进制数据等,可以自行编制程序也可以利用教材和讲义中的对应的程序实例进行验证。三、实验时数:4学时四、相关内容:、i/o流的常用格式控制符控制符作用Dec10进制输出格式 Hex16进制输出格式Oct8进制输出格式Setfill( c )设置填充字符为c(c表示任意字符)Setprecision(n)设置浮点数的数字位数Set(w)设置输出域宽为n(n个字符)Setiosflags(ios:fiexde)设置固定的浮点表示格式Setiosflags(ios:scientific)设置指数表示格式Setiosflags(ios:left)设置左对齐Setiosflags(ios:right)设置右对齐Setiosflags(ios:skipws)忽略前导空白Setiosflags(ios:uppercase)设置16进制数大写输出(A-F)Setiosflags(ios:lowercase)设置16进制数小写输出(a-f)实验三、语句与简单的程序设计一、实验目的与要求使学生加深对C+各种语句的语法、语义及语用环境的理解,初步学会综合运用各种基本数据类型各种语句(if语句、switch语句、各种循环语句等),编写含有选择结构、重复结构的c+程序。初步掌握程序的调试方法。二、实验时数:4学时三、实验内容本实验与课堂教学中的程序结构、 if语句、switch语句、循环语句等三个阶段同步进行,包括以下三个实验:1编写计算生日是星期几的程序 程序功能:输入生日的日期(年、月、日),输出星期几。 测试数据:请分别输入三个同学的饿生日日期进行验证。2编写“乘法口诀”表的程序 程序功能: 在屏幕上输出以下二种格式的乘法口诀表 乘法口诀表(1) *1234567891123456789224681012141618336912151821242744812162024283236551015202530354045661218243036424854771421283542495663881624324048566472991827364554637281 乘法口诀表(2) *123456789112243369448121655101520256612182430367714212835424988162432404856649918273645546372813编写程序用字符组成各种图案 程序功能: 在屏幕上输出以字符组成的三角形(金字塔)和梯形(可参照图3-1和图3-2所示的图例)。 * * * * * * * * 图 3-1 用“*”组成的三角形 # # # # # 图 3-2 用“#”组成的梯形 要求:组成图形的字符和图形的行数通过键盘输入。 测试数据:请分别输入三组数据进行测试。实验四、函数、程序结构、递归程序设计一、实验目的与要求使学生掌握函数声明、函数调用的语法,学会应用c+的各类系统函数,学会编写多文件结构的程序,了解递归程序的运行机制和运行过程。二、实验时数:4学时三、实验内容本实验与课堂教学中的函数、程序结构等教学内容同步进行,包括以下二个实验:1“hanno”塔问题中盘子的移动过程可视化 程序功能:实现模拟“hanno”塔问题的递归函数及其调用,显示递归函数的调用和执行情况,显示盘子的模拟移动情况,例如当盘子数为3时,对应的显示序列为:A-C A-B C-B A-C B-A B-C A-C 测试数据:输入不同的盘子数,观察程序的执行情况。2简单的表格框线自动生成程序 程序功能:提示输入行数、列数、列宽以及表格标题等参数,根据用户输入的上述参数在屏幕上显示对应的表格框线。 具体要求:(1) (1) 将各主要功能设计函数,分别编写成多函数的程序和包含多个源程序文件的多文件结构程序。(2) (2) 独立完成程序设计、调试和测试(3) (3) 提交实验报告(设计报告)实验报告的主要内容包括:实验目的,程序功能分析,算法(流程图),源程序,若干组测试数据和测试结果等。实验五、数组、结构、指针的综合应用一、实验目的与要求使学生进一步理解数组、结构、指针这些构造数据类型的概念、用途,熟悉上述各种数据类型定义的语法,学会应用数组、结构、指针等构造数据类型编写数据处理序。二、实验时数:4学时三、实验内容本实验与课堂教学中的数组、结构、指针等教学内容同步进行,强调三者的综合应用,包括以下二个实验:1字符串的输入与排序 程序功能:输入n行文本(字符串),将它们排序后逐行输出。 具体要求1) 1) n行文本的保存可以分别采用以下方法(1)用二维字符数组来保存所输入的字符串(2)用一维字符指针数组来保存字符串首地址的程序,对两种保存和表示方法进行比较比较。2) 2) 排序方法自选。3) 3) 对程序功能进行分解,每一个子功能,例如输入、排序、输出等,请用函数实现。4) 4) 提交实验报告(设计报告)实验报告的主要内容包括:实验目的,程序功能分析,算法(流程图),源程序,若干组测试数据和测试结果等。2用链表实现学生花名册管理 程序功能(1) (1) 创建一个包含n个学生结点的链表(n值自定),动态构成学生花名册,学生数据包括:学号、姓名、性别、专业、宿舍号。(2) (2) 对所创建的学生花名册(链表)按学号的增序方式排序(调整结点位置)。(3) (3) 按学号在链表中查询,并输出查询结果。 具体要求:提交实验报告(设计报告)实验报告的主要内容包括:实验目的,程序功能分析,算法(流程图),源程序,若干组测试数据和测试结果等。实验六、面向对象程序设计基础一、实验目的与要求使学生掌握类的概念和语法;了解面向对象程序设计的方法和特点;学会应用c+的文件流类进行文件操作,包括创建、打开文件,读文件,写文件等。二、实验时数:4学时三、实验内容本实验与课堂教学中的类与数据抽象,文件等章节同步进行,包括以下二个实验:1日期类的设计 日期类的基本属性:请自行描述。 日期类的功能(行为)(1) (1) 设置日期。(2) 能按dd/mm/yyyy、yyyy-mm-dd、yyyy.mm,dd等多种格式显示日期。(3) 输出对当前日期加上一天后的日期。(4) 输入日期,显示该日是星期几。 具体要求(1) (1) 用所设计的类定义日期对象,并进行测试。(2) (2) 提交实验报告(设计报告)2文件的基本操作 程序功能:读取t1.txt文件,并将所读到的各行在行首加上行号后,逐行输出到t2.txt文件中。t1.txt文件 t2.txt文件aaaaaaaaaaaaaabbbbbbbbbbbbbccccccccccccccccccdddddddddeeeeeeeeeeeeeeee1:aaaaaaaaaaaaaa2:bbbbbbbbbbbbb3:cccccccccccccccccc4:ddddddddd5:eeeeeeeeeeeeeeee 要求(1) 按上述所给功能设计程序,并进行测试;(2) 将只能处理t1.txt文件,改为能处理任意的文本文件,源文件名和目标文件名通过键盘输入,对改进的程序提供若干组数据进行测试。(3) 提交实验报告。实验七、VC项目设计(用MFC AppWizard创建应用项目)一、实验目的与要求使学生熟悉用AppWizard创建应用项目的基本操作,了解VC应用程序的结构和特点,了解VC控件的应用。二、实验时数:4学时三、实验内容1. 实验1用MFC AppWizard(Exe)创建应用程序框架(窗口) 要求:创建多文档界面的应用程序框架并在客户区显示:“欢迎进入本系统!”(如图7-1所示) 图7-1 多文档界面的应用程序窗口 操作步骤:1)创建一个项目(1)打开“文件“菜单”,单击“New”命令选项,弹出“new”对话框;(2)单击“new”对话框的“projects”页标签,进入“projects ”页。(3) 在该页的右侧输入项目名,项目文件夹名等,然后单击“OK”按纽,进入MFC AppWizard。2)指定应用项目的类型并选择语言(向导步骤1)项目类型包括:单文本(Single document),多文本(Multiple documents)以及对话框(Dialog based)等。 图7-2 MFC AppWizard步骤13)选择数据库支持方式(向导步骤2)图7-3 MFC AppWizard步骤24)选择复合文档支持方式(向导步骤3)图7-4 MFC AppWizard步骤35)指定窗口特征及工具条的风格等(向导步骤4)图7-5 MFC AppWizard步骤46)指定项目风格等(向导步骤5)图7-6 MFC AppWizard步骤57)列出新项目的框架规格说明信息(向导步骤6)单击“OK”按纽后,向导将自动创建项目,并进入编辑状态。图7-7 MFC AppWizard提示信息8)项目的编辑我们可以在vc的集成编程环境中,对组成项目的各个类进行编辑,使项目得以完善(参见图7-8)。下面以在项目的主窗口中显示文字在一操作为例,给出编辑方法。(1)单击Projiect View窗口中的Class View标签,进入Class View ,该页显示了组成项目的所有的类;(2)展开其中的cp1View节点(打开cp1View类);(3)双击该类的onDraw()成员函数,在代码编辑窗中显示该函数的代码;(4)在代码编辑窗中修改该函数的代码,在该函数的ASSERT_VALID(pDoc行下面输入以下行:/TRACE(This was printed during debuggingn);pDC-TextOut(20,20,欢迎进入本系统!); 图7-8 项目编辑窗(源程序)9) 建造项目(Build)以生成可执行文件。10)运行应用程序,观察程序运行效果。2. 实验2创建口令对话框对话框是实现人机交互的重要工具,Visual C+的对话框类似于VB或Delphi的form,对话框和各种控件的结合使用,可以建立形形色色的功能十分强大的应用程序窗口界面,这就是所谓的对话框编程技术。应用程序中需要各种各样的对话框,例如:消息对话框、口令对话框、进度条对话框,属性页对话框,表单对话框以及各种通用对话框(文件对话框、字体对话框、颜色对话框等)。从执行方式又可将对话框分为模态和非模态两大类,模态对话框执行期间独占系统资源,只有在关闭之后,才可以执行程序的其它部分;非模态对话框执行期间,允许程序的其它部分同时执行。 要求:创建一个多文档工程项目,在该项目中添加一个口令对话框(图7-9),以防止非法用户侵入。 图7-9 口令对话框 实现步骤1建立多文档应用程序框架(工程)操作过程略2编辑对话框资源(1)在IDE的工作区中选择Resource View标签,可以在该标签页中查阅、编辑项目的各种资源;(2)选择Dialog条目,单击鼠标右键,弹出快捷菜单,执行Insert Dialog命令,此时在Dialog条目下自动增加一个标识号(id)为IDD_DIALOG1 的条目,同时在客户区中显示对话框资源的框架。(3)移动鼠标到对话框资源上,单击鼠标右键,在弹出的快捷菜单上执行“Properties”命令,弹出“Dialog Properties”对话框。(4)利用“Dialog Properties”对话框进行对话框属性、风格等的设置:a. 将默认的对话框资源标识号IDD_DIALOG1改为IDD_PASSWORD_DIALOG;b. 将对话框的标题改为口令。(5)调整对话框上各个控件的布局并编辑各个控件的属性a. 利用鼠标拖动操作将两个按纽控件移动到对话框的底部。b. 在“Push Button Properties”对话框的“General”标签页中将两个按纽的Caption属性分别改为确认和取消。(在选中的按纽上单击右键并所弹出的快捷菜单上执行“Properties”命令即可进入该对话框)。(6)在对话框资源上增加新的控件需要增加的控件有:显示“请输入口令”的Static Text控件,对口令内容作简要说明的Static Text控件,口令输入框Edit Box控件。 增加控件的操作:l l 在Control工具栏中对应的控件上单击左键,表示选中该控件;l l 在对话框的对应位置上拖动鼠标以确定控件放置位置和控件大小;l l 修改Static Text控件的Caption属性值,例如改为请输入口令;l l 将作为口令输入框的Edit Box控件的ID标识改为IDC_PASSWORD_EDIT,并在Styles标签中选中Password属性,以将输入风格设置为口令风格(用*代替所输入的字符)。注意:进入控件属性对话框的“Extended Styles“标签页,可以进一步设置控件的风格,例如对Static Text Clientedge、Static edge和Modal frame等属性,达到如下图所示的效果:(7)执行Layout菜单上的Tab Order命令以调整对话框上各个控件的激活顺序。调整时只须按需要的顺序单击对话框上的各个控件即可,控件左上角所显示的数字即表示激活顺序。(8)单击“Dialog工具栏(在IDE窗口的下方)中的Test按纽进行对话框效果测试。3创建对话框类并添加代码1)创建对话框类cPasswordDialog操作步骤如下:(1)在对话框资源上单击右键,在弹出的快捷菜单上选择并执行“Class Wizard”命令(也可直接View| Class Wizard),弹出“MFC Class Wizard”对话框,并紧接着弹出“Adding Class”对话框(仅当系统检测到有新建的对话框资源、菜单资源等,并且该资源尚未与相应的类建立关联,系统就会自动弹出时“Adding Class”对话框,询问是否建立新类)。(2)在“Adding Class”对话框中直接单击“OK”按钮(确认默认选择Create anew class),进入“New Class”对话框,在New编辑框中输入类名:cPasswordDialog,其它设置均为默认值。单击“OK”按钮后进入“MFC Class Wizard”对话框(该对话框中Projects项的值为Diaolg、Class name项的值为cPasswordDialog均无须改变)。(3)进入“MFC Class Wizard”对话框的“Member Variablee”标签页,选中Control IDs框中的IDC_PASSWORD_EDIT条目,单击“Add Variable”按钮,弹出“Add Variable”对话框。(4)在“Add Variable”对话框中添加cPasswordDialog类的数据成员m_Password,并将该成员与Edit box控件(用作口令输入框)建立关联,该变量用来保存用户输入的口令,所以数据类型int。(5)单击“OK”按钮,返回“MFC Class Wizard”对话框,在“Member Variablee”标签页下部新增的Minimum value、和Maximun value两个项目中分别设置口令的最小值(0)和最大值(9999),单击“OK”按钮。至此,cPasswordDialog类创建完毕,一旦创建了该类的对象后,就可以使用口令对话框了。2)添加代码该段代码用来创建口令对话框对象并处理用户的各种交互(例如单击“确认”按钮或“取消”按钮,输入正确的口令或输入不正确的口令,对话框对象所必须进行的处理)。由于口令输入和验证一般都程序开始时执行,也即该对话框必须在程序窗口出现之前就提前出现,所以必须在应用程序类(CDialogApp)的InitInstance()函数中添加完成上述处理的代码:BOOL CDialogApp:InitInstance()pMainFrame-UpdateWindow();cPasswordDialog cDlg;/声明CPasswordDialog类的一个对象if (cDlg.DoModal ()=IDOK) /用户按下确认按钮 if (cDlg.m_Password!=1925 ) /口令为整数1925 /如果口令不对,则显示出错信息,然后程序结束 AfxMessageBox(口令错误,确定后将退出程序。);return FALSE; else /如果按下取消按钮,程序也将结束 return FALSE;return TRUE;具体操作步骤如下:() ()在工作区的Class View标签中选中Dialog|CDiaologApp|InitInstance()函数并双击左键,客户区中显示InitInstance()函数的代码;() ()在InitInstance()函数中增加新的代码;() ()在文件Dialog.cpp的头部加入下面的命令行:#include “cPasswordDialog.h” 可以直接打开Dialog.cpp文件进行添加,也可以双击Globals中的The App,即可打开Dialog.cpp文件。4 编译、链接Dialog项目(Build Dialog)。5 运行Dialog项目。四、相前内容:消息对话框简介1消息对话框的作用消息对话框用来向用户显示一些询问和选择、警告和错误提示等信息,也可以在程序调试时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 混凝土强度检测与质量控制报告
- 公司股份合作协议样本模板下载
- 原料车间安全操作指南
- 桥梁施工方法及技术要点说明
- 一年级语文猜字谜活动教学反思
- 班主任管理工作规范与实施细则
- 城市公共交通服务质量提升报告
- 工业安全风险评估报告模板
- 初中物理电学知识点视频教学设计
- 建筑工程质量标准员工作指南
- 70岁以上老人考驾照,三力测试题库(含答案)
- 合理用药培训课件内容
- 室内装修工程监理实施细则
- 个体工商户设立章程模板及编写指南
- DB15T 1969-2020 绵羊人工授精及同期发情技术操作规程
- 产房医院感染管理培训
- 晕倒紧急救护方法
- 辽宁移动笔试题目及答案
- 注塑厂生产安全培训课件
- 广东深圳光明区光明街道办事处一般类岗位专干招聘笔试真题2024
- 秋冬季安全行车培训
评论
0/150
提交评论