




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C程序设计谭浩强版实验指导书The document was prepared on January 2, 2021C+程序设计实验教学指导书课程编号:撰写人:朱世华审核人:前言程序设计是一门实践性很强的课程,通过实验可以巩固和加强课堂教学内容,提高学 生实际工作能力和动手能力,并为后续课程和从事实践技术工作奠定重要的基础。因此, 学生在进行理论知识学习的同时,必须十分重视实践环节一一上机。上机实验时应该一人一组,独立上机。在上机过程中出现的问题,一般应自己独立处 理,学生应在实验前将教师指定的题目编好程序,然后上机输入和调试。上机前应事先作好准备工作,以提高上机实验的效率,准备工作至少应包括
2、:(1)复习和掌握与本实验有关的教学内容。(2)准备好上机所需的程序。(3)对运行中可能出现的问题应事先做出估计;对程序中有疑问的地方,应做上记 号,以便上机时给予注意。(4)准备好调试和运行时所需的数据。实验设备与环境:1、硬件配置Pentium II以上PC兼容机或品牌机,配有彩色显示器、鼠标、键盘,内存不小于 32MB,硬盘自由空间不少于60MB。推荐配置为内存256MB (或以上),硬盘自由空间1GB 以上。2、软件配置操作系统:Windows XP, Windows 2000以上版本开发环境:Microsoft Visual C+ 2010以上版本。目录实验一Visual C+ 20
3、10的基本用法1实验二数据类型、运算符和表达式4实验三三种基本结构的实现17实验四三种基本结构的实现29实验六指针13实验七函数14实验八结构和联合17实验九类与对象20实验十综合实验23实验一 Visual C+ 2010的基本用法一、实验目的1 .熟悉Visual C+2010集成开发环境的基本命令和功能键。2 .学习完整的C+程序开发过程。3 .理解简单的C+程序结构。二、实验内容与步骤本次实验将学习有关Visual C+开发环境的一些知识,并尝试实现一个 简单的DOS程序和Windows程序。通过本次实验,可以了解用Visual C+开 发应用程序的全过程。1、熟悉Visual C+开
4、发环境我们选择Visual C+那一项就可以了。下图是VS2010打开后的画面,当然可 能你的界面跟我的不一样,没关系,那只是设置问题。菜单栏我们常用的是File, View和Debug菜单下的菜单项。工具栏各项其实 在菜单栏都有与它们对应的菜单项,功能是一样的。左侧面板可以放多个视 图,我这里放了解决方案浏览器、类视图和资源视图,解决方案浏览器中我们 可以看到所有头文件和源文件构成的树,头文件就是.h后缀的文件,源文件就 是.cpp后缀的文件,类视图中显示了每个工程的每个类,也是树状结构,在解 决方案浏览器或类视图中双击每一项,中间区域都会打开相应的文件或者到类 的位置。资源视图中显示了界面
5、工程中使用的一些界面资源。中间区域默认是 打开start page,打开一个工程后我们在左侧面板上双击某项时,中间区域会 出现相应的界面。右侧面板上有个Toolbox,是在界面工程中用来往界面资源 模板上添加控件的,里面包含了各种控件,直接拖到模板上就行了。底侧还有 几个标签,其中一个是output,这是输出视图,用来输出程序运行信息和我们 程序中写的一些调试信息,还有一个Find Result视图,用来显示我们搜索任 何字母或单词的结果。File->New->Project项可以创建一个工程,也可以在start page中 点击New Project.,然后出现的New Proj
6、ect窗口中有多个工程类型可以选 择,Win32 Console Application 是 Win32 控制台程序,MFC Application 是 MFC应用程序,可以建立以开发界面程序,Win32 Project是甲in32程序, Empty Project是空程序,MFC DLL用来建立生成动态链接库的工程,其它的 不常用就不介绍了。我们要建立一个没有应用程序界面的只有Dos命令行界面 的工程就选用in32 Console Application项,我们学习C+基础知识用这个就 可以了。它跟Win32 Project的区别是,它的入口是main函数,而Win32 Project 的入
7、口是 WinMain 函数。File->Open->Project/Solution可以打开以前建立的工程或者解决方 案,一个解决方案中可以包含多个工程,你可以把它理解为多个有关系或者没 关系的工程的集合,有时把多个工程放到一个解决方案里调试起来很方便。在View下的菜单项我们就可以控制它。View->Solution Explorer可以打开或 关闭解决方案浏览器视图,View->Class View用来控制类视图的显示,View- >Resource View控制资源视图的显示,当然只有界面工程的资源视图中才会有 内容。View->Output和View
8、->FindResults等项大家应该也知道它们的含义了吧。Debug->Start Debugging (快捷键是 F5)用来开始调试,Debug- >Toggle Breadpoint (快捷键是F9)用来设置断点,设置断点后然后开始调 试,程序运行到断点时会停下来,我们用鼠标放到断点处的各个变量上时可以 看到当时这些变量的值。Debug->Start Without Debugging表示不调试直接运 行,也就是到断点处也不会停止运行。Debug->Step Into (快捷键是F1D用 来单步执行,遇到子函数就进入并且继续单步执行;Debug->St
9、ep Over (快捷 键是F10)也是单步执行,但在单步执行时,在函数内遇到子函数时不会进入 子函数内单步执行,而是将子函数整个执行完而跳到下一步,也就是把子函数 整个作为一步。工具栏上有个下拉列表框,它包含有Debug、Release和 Configuration Manager,选择Debug时为调试模式,生成的可执行程序中包 含调试信息,我们可以调试并清楚的看到变量值,选择Release时生成的可执 行程序中不含调试信息,在设置断点后看到的变量值可能不准确。msdn帮助可以点Help->View Help (快捷键是Fl),也可以点开始一 >Microsoft Visual
10、 Studio 2010->Microsoft Visual Studio 2010 Documentation 打开。2、控制台应用程序的建立用Appwizard建立一个控制台应用程序,在显示器上输出“Hello, World! ” 。(1)创建项目(project)首先创建一个项目,用来管理用户的应用程序。创建项目的步骤为:启动 visual Studio 2010。从主菜单中选择菜单项“File” 一 “New” ,打开“New”对话框。 选择"Projects”标签,从项目列表中单击“Win32 ConsoleApplication” 选项。在"project
11、 namen编辑框中键入项目的名字,如“hello”,系统将 自动为用户的项目分配一个默认的目录。也可以在“Location”编辑框中 重新输入项目存放路径。单击“0K”按钮继续。(2)编辑源程序在项目中添加一个文件:从主菜单中选择菜单项“File” 一 “New”,打开“New”对话框。 在“New”对话框中选择“File”标签,单击“C+ Source File"选 项,建立源文件(扩展名为.cpp)。选中“Add to Project M复选框。在右边的“File name”编辑框中为文件指定一个名字,如“Hello”,系统将自动加上后缀“.cpp”。这时在编辑窗口将自动打开一
12、个新的空白文件,在文件中输入源程序。本例中输入以下内容:# include <>void main()cout«,z hello, world!«endl;)仔细检查输入的内容,确保内容正确。(3)保存源文件单击工具栏中的“save”图标,或选择菜单项“File” 一 “Save”保存源 文件。(4)编译源文件选择菜单项“Build” 一 “Compile ”来编译源文件,如果输入的内容没 有错误,那么,在屏幕下方的输出窗口将会显示:error(s), 0 warning(s)如果在编译时得到错误或警告,则表明源文件出现错误,检查源文件,改 正错误后再编译,直至
13、无误。(5)链接程序选择菜单项“Build” 一 “Build ”链接程序,如果链接过程中没有错 误,则在输出窗口会显示:error(s), 0 warning(s)如果有错误,应改正,然后重复(4)、(5),直至无误。(6)运行程序选择菜单项“Build" 一 "Execute ”运行程序,将显示一个类似于DOS 的窗口,在窗口中第一行输出“hello, world! ”,第二行输出“Press any key to continuen ,提示用户按任意键回到开发环境。3、编写一个简单的C+程序要求:输入圆的半径,计算圆的周长和面积。步骤:(1)按照上面的步骤创建一个项目
14、,名字为“Circle”。(2)在项目中增加一个文件,命名为。(3)在文件中输入源程序如下:SincludeOconst double PI =; «endl;elsecoutnumber<"不是素数.”<<endl;判断素数的算法,在以前学习循环的时候已经学过了,在这里只是把这个算法用函数的形式表示出来。这里要注意函数的定义声明的方法和格式。2、分析程序的运行结果输入下列程序,运行它,分析得到的结果。#include<>int n=0;int func ( int x=10 );void main()(int a, b;a=5;b=func(
15、a);cout«w nlocal a=w «a«endl«w local b=w «b«endl«w global n=n «n«endl;a+;b=func(a);cout«M nlocal a=M «a«endl«M local b=M «b«endl«n global n=M «n«endl;func ();)int func ( int x )(int a=l;static int b=10;a+;b+;x+
16、;n+;cout«,> nlocal a二" «a«endl«n local b二" «b«endl «n parameter x=" «x«endl;return a+b;运行该程序,得到执行结果。分析得到的结果,说明为什么得到这样的结果。3、递归函数与非递归函数。编写一个函数,求从n个不同的数中取r个数的所有选择的个数。其个数 值为:n!C >r! * (n-r) !其中:n! =n* (n-l) * (n-2) * *1<»要求:(1)分别用
17、递归和非递归两种方式完成程序设计;(2)主程序中设计一个循环,不断从输入接收n和r的值,计算结果 并输出,当用户输入0 0时.,程序结束;(3)能检查输入数据的合法性,要求n二l并且n二r;(4)注意整数能存放的数据范围有限,如何解决提示:(1)可以用double数据类型来存放函数的计算结果。(2)递归结束条件:如果尸0,则C(n,r)=l;如果1,则C(n,r)=n。测试数据:输入: 3输出:10输入:10 20输出:Iput Invalidl输入:50 3输出:1.SIND输入:0 0Iput Invalidl程序结束思考问题:(1)对各种数据类型的字长是否有了新的认识(2)递归函数的书写
18、要点是什么(3)递归和非递归函数各有哪些好处1、求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数,用另一个函数求最小公倍数。(提示:可以用下面的方法求:一、利用辗除法或其它方法求得最大公约数:二、最小公倍数等于两数之积除以最大公约数。)要求:两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主 函数,然后再和两个整数一起作为实参传递给函数2,以求出最小公倍数, 再返回到主函数输出最大公约数和最小公倍数。实验八结构和联合一、实验目的1、掌握结构体类型变量的定义和使用。2、掌握结构数组的概念和使用。3、掌握链表的概念,初步学会对链表进行操作。4、掌握联合体的概念与应用。二、试验
19、内容与步骤1、输入和运行以下程序。itincludeOunion data(short int s2;float a;int b;char c4;u;void main()cin»0»l;cout«,zs 0 =,«s 1 =,« 1 «endlb««endl<<"c 0="«0<Ccl="«l«endl<<"c 2 ="«2<C c 3="«3«endl;输入
20、两个整数10000、20000给0和1,分析运行结果。然后将cin语句改为:cin»;输入60000给b,分析运行结果。2、打印学生成绩单,内容包括学号、姓名、三门课(数学MT、英语EN、计算 机COMPU)的成绩。计算每个学生三门课程的总分SUM和平均分AVER。若 三门课成绩都在90分以上者,输出“Y” ;否则输出“N”,并打印学生成 绩单,格式如下:NUM NAME MTENCOMP SUMAVER >=909501Liufan9598int i, j;for ( i=0; i<3; i+ )(cin» stuij. num;cin» stuij
21、. name;for ( j=0; j<3; j+ )cin» stui. scoretj;)for ( i=0; i<3; i+ )(stuLi. sum=0;stuil. ch='Y'for ( j=0; j<3; j+ )stui. sum +=stui. scorej;if (stui. scorej<90)stuiL aver=stui. sum/3;coutVNUM NAME MT EN COMP SUMAVER >=90"«endl;for (i=0;i<3;i+)(cout«stuil.
22、 num«setw(8) «stui. name«setw(8)«stuiL scoreLOZ«setw(8)«stui. score1«setw(8) «stui. score2«setw(8)«stuiZ. sum«setw(8)«stuiJ. aver« setw(5) «stui. ch«endl;)3、设计一个单向链表。从标准输入读取若干整数,建立链表,每次读入的数放入链表结尾。当用户输入0时,结束链表的建立工作。然后从前往后依次输出链
23、表结点中的内容。提示:(1)链表结点空间动态申请。(2)因为每次新结点插入在表尾,所以应设一个指针总是指向当前的 表尾。(3)处理申请不到空间的情况。测试数据:程序输出:请输入若干整数建立链表(输入0结束):用户输入:1 2 3 4 5 6 7 0程序输出:1 2 3 4 5 6 7思考问题:如果是双向链表,程序要做哪些改动4、有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课的平均成绩,以及最高分学生的数据 (包括学号、姓名、3门课的成绩、平均分数)。要求:用input函数输入10个学生的数据;用average函数求平均分;用 max函数找出最高分的学生数据;平均分和最高分学生的数据都在主函数中输出。5、建立一个链表,每个结点包括:学号、姓名、性别、年龄、。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。实验九类与对象一、实验目的1、掌握类和对象的定义和使用。2、理解构造函数和析构函数的作用。3、学习使用静态成员和内联成员函数。4、掌握从现有类派生出新类的方式。5、了解基类成员在派生类中的访问控制。6、了解虚函数对多态性的支持。二、实验内容与步骤1、构造函数和析构函数的调用。输入和运行以下程序。ttincludeOclass A int *a;public
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 发展新质生产力的时代价值
- 医患关系论文精要2000字
- 青年在新质生产力发展中的行动路径
- 劳模工匠讲新质生产力
- 2025年输血学ABO血型配型技术应用模拟测试卷答案及解析
- 2025年耳鼻喉科常见耳疾诊治知识竞赛试卷答案及解析
- 2025年眼科常见疾病的诊断与治疗综合测试卷答案及解析
- 2025年康复医学评估工具运用考试答案及解析
- 乏燃料后处理新质生产力
- 关于感恩节的幼儿园主题活动方案
- 餐厅包场合同协议书范本
- 上门服务项目创业计划书
- 2025年鸡爪市场调研报告
- 景区廉洁管理制度
- 四川地区病历质量评分规范标准
- 土方开挖工程安全监理细则
- 药品效期和近效期药品管理
- 2022年医疗器械临床试验GCP考试题及答案
- 《诊断学意识障碍》课件
- 小学数学课程标准解读
- 培训主管技能展示
评论
0/150
提交评论