C程序设计谭浩强版实验指导书



《C程序设计谭浩强版实验指导书》由会员分享,可在线阅读,更多相关《C程序设计谭浩强版实验指导书(26页珍藏版)》请在装配图网上搜索。
1、- ?C++程序设计? 实 验 教 学 指 导 书 课程..... 撰写人:朱世华 审核人: 前言 程序设计是一门实践性很强的课程,通过实验可以稳固和加强课堂教学容,提高学生实际工作能力和动手能力,并为后续课程和从事实践技术工作奠定重要的根底。因此,学生在进展理论知识学习的同时,必须十分重视实践环节----上机。 上机实验时应该一人一组,独立上机。在上机过程中出现的问题,一般应自己独立处理,学生应在实验前将教师指定的题目编好程序,然后上机输入和调试。 上机前应事先作好准备工作,以提高上机实验的效率,准备工作至少应包括: (1) 复习和掌握与本实验有关的教学容。 (2) 准
2、备好上机所需的程序。 (3) 对运行中可能出现的问题应事先做出估计;对程序中有疑问的地方,应做上记号,以便上机时给予注意。 (4) 准备好调试和运行时所需的数据。 实验设备与环境: 1、硬件配置 PentiumⅡ以上PC兼容机或品牌机,配有彩色显示器、鼠标、键盘,存不小于32MB,硬盘自由空间不少于60MB。推荐配置为存256MB〔或以上〕,硬盘自由空间1GB以上。 2、软件配置 操作系统:Windows *P,Windows 2000以上版本 开发环境:Microsoft Visual C++ 2021以上版本。 目录 实验一 Visual C++ 2021的根本用法1
3、 实验二数据类型、运算符和表达式4 实验三三种根本构造的实现17 实验四三种根本构造的实现29 实验六指针13 实验七函数14 实验八构造和联合17 实验九类与对象20 实验十综合实验23 . z - 实验一 Visual C++ 2021的根本用法 一、实验目的 1. 熟悉Visual C++2021集成开发环境的根本命令和功能键。 2. 学习完整的C++ 程序开发过程。 3. 理解简单的C++ 程序构造。 二、实验容与步骤 本次实
4、验将学习有关Visual C++ 开发环境的一些知识,并尝试实现一个简单的DOS程序和Windows程序。通过本次实验,可以了解用Visual C++ 开发应用程序的全过程。 1、熟悉Visual C++ 开发环境 我们选择Visual C++那一项就可以了。以下列图是VS2021翻开后的画面,当然可能你的界面跟我的不一样,没关系,那只是设置问题。 菜单栏我们常用的是File,View和Debug菜单下的菜单项。工具栏各项其实在菜单栏都有与它们对应的菜单项,功能是一样的。左侧面板可以放多个视图,我这里放了解决方案浏览器、类视图和资源视图,解决方案浏览器中我们可以看到所有头文件和源文件构成
5、的树,头文件就是.h后缀的文件,源文件就是.cpp后缀的文件,类视图中显示了每个工程的每个类,也是树状构造,在解决方案浏览器或类视图中双击每一项,中间区域都会翻开相应的文件或者到类的位置。资源视图中显示了界面工程中使用的一些界面资源。中间区域默认是翻开start page,翻开一个工程后我们在左侧面板上双击*项时,中间区域会出现相应的界面。右侧面板上有个Toolbo*,是在界面工程中用来往界面资源模板上添加控件的,里面包含了各种控件,直接拖到模板上就行了。底侧还有几个标签,其中一个是output,这是输出视图,用来输出程序运行信息和我们程序中写的一些调试信息,还有一个Find Result视图
6、,用来显示我们搜索任何字母或单词的结果。 File->New->Project项可以创立一个工程,也可以在start page中点击New Project...,然后出现的New Project窗口中有多个工程类型可以选择, Win32 Console Application是Win32控制台程序,MFC Application是MFC应用程序,可以建立以开发界面程序,Win32 Project是Win32程序,Empty Project是空程序,MFC DLL用来建立生成动态库的工程,其它的不常用就不介绍了。我们要建立一个没有应用程序界面的只有Dos命令行界面的工程就选Wi
7、n32 Console Application项,我们学习C++根底知识用这个就可以了。它跟Win32 Project的区别是,它的入口是main函数,而Win32 Project的入口是WinMain函数。 File->Open->Project/Solution可以翻开以前建立的工程或者解决方案,一个解决方案中可以包含多个工程,你可以把它理解为多个有关系或者没关系的工程的集合,有时把多个工程放到一个解决方案里调试起来很方便。 在View下的菜单项我们就可以控制它。View->Solution E*plorer可以翻开或关闭解决方案浏览器视图,View->Class Vi
8、ew用来控制类视图的显示,View->Resource View控制资源视图的显示,当然只有界面工程的资源视图中才会有容。View->Output和View->FindResults等项大家应该也知道它们的含义了吧。 Debug->Start Debugging〔快捷键是F5〕用来开场调试,Debug->Toggle Breadpoint〔快捷键是F9〕用来设置断点,设置断点后然后开场调试,程序运行到断点时会停下来,我们用鼠标放到断点处的各个变量上时可以看到当时这些变量的值。Debug->Start Without Debugging表示不调试直接运行,也就是到断点处也不会停顿
9、运行。Debug->Step Into〔快捷键是F11〕用来单步执行,遇到子函数就进入并且继续单步执行;Debug->Step Over〔快捷键是F10〕也是单步执行,但在单步执行时,在函数遇到子函数时不会进入子函数单步执行,而是将子函数整个执行完而跳到下一步,也就是把子函数整个作为一步。 工具栏上有个下拉列表框,它包含有Debug、Release和Configuration Manager,选择Debug时为调试模式,生成的可执行程序中包含调试信息,我们可以调试并清楚的看到变量值,选择Release时生成的可执行程序中不含调试信息,在设置断点后看到的变量值可能不准确。
10、 msdn帮助可以点Help->View Help〔快捷键是F1〕,也可以点开场->Microsoft Visual Studio 2021->Microsoft Visual Studio 2021 Documentation翻开。 2、控制台应用程序的建立 用Appwizard建立一个控制台应用程序,在显示器上输出“Hello,World!〞。 〔1〕创立工程〔project〕 首先创立一个工程,用来管理用户的应用程序。创立工程的步骤为: ① 启动visual Studio 2021。 ② 从主菜单中选择菜单项“File〞→“New〞,翻开“New〞对话框。 ③ 选择
11、“Projects〞标签,从工程列表中单击“Win32 Console Application〞选项。 在“project name〞编辑框中键入工程的名字,如“hello〞,系统将自动为用户的工程分配一个默认的目录。也可以在“Location〞编辑框中重新输入工程存放路径。 单击“OK〞按钮继续。 〔2〕编辑源程序 在工程中添加一个文件: ① 从主菜单中选择菜单项“File〞→“New〞,翻开“New〞对话框。 ② 在“New〞对话框中选择“File〞标签,单击“C++ Source File〞选项,建立源文件〔扩展名为.cpp〕。选中“Add to Project〞复选框。在右
12、边的“File name〞编辑框中为文件指定一个名字,如“Hello〞,系统将自动加上后缀“.cpp〞。
这时在编辑窗口将自动翻开一个新的空白文件,在文件中输入源程序。
本例中输入以下容:
#include 13、,则,在屏幕下方的输出窗口将会显示:
hello.obj--0 error(s),0 warning(s)
如果在编译时得到错误或警告,则说明源文件出现错误,检查源文件,改正错误后再编译,直至无误。
〔5〕程序
选择菜单项“Build〞→“Build Hello.e*e〞程序,如果过程中没有错误,则在输出窗口会显示:
hello.e*e--0 error(s),0 warning(s)
如果有错误,应改正,然后重复〔4〕、〔5〕,直至无误。
〔6〕运行程序
选择菜单项“Build〞→“E*ecute Hello.e*e〞运行程序,将显示一个类似于DOS的窗口,在窗口中第一行 14、输出 “hello,world!〞,第二行输出“Press any key to continue〞,提示用户按任意键回到开发环境。
3、编写一个简单的C++ 程序
要求:输入圆的半径,计算圆的周长和面积。
步骤:
(1) 按照上面的步骤创立一个工程,名字为“Circle〞。
(2) 在工程中增加一个文件,命名为“Circle.cpp〞。
(3) 在文件中输入源程序如下:
*include 15、/ 定义半径
double perimeter, area ; // 定义周长和面积
cout<<"请输入圆的半径:";
cin>>radius;
perimeter=2*PI*radius; // 计算周长
area=PI*radius*radius; // 计算面积
cout<<"圆的周长为:"< 16、.5397
输入:7
输出:
圆的周长为: 43.9823
圆的面积为: 153.938
思考问题:
(1) 程序中为什么要包含头文件iostream.h.
(2) 建立控制台应用程序的一般步骤是怎样的.
实验二 数据类型、运算符和表达式
一、实验目的
1. 掌握Visual C++ 根本数据类型的字节宽度和围表示,熟悉如何定义一个整型、字符型和实型变量,以及对它们赋值的方法。
2. 掌握不同类型数据之间赋值的规律。
3. 学会使用C++的有关算术运算符,以及包含这些运算符的表达式,特别是自增〔++〕和自减〔――〕运算符的使用。
4. 进一步熟悉C++程序的编辑、编 17、译、连接和运行的过程。
二、实验容与步骤
1、根本数据类型的长度
编写一个程序,输出根本数据类型char、short、int、long、float、double和指针类型void*、char*、short*、int*、long*、float*、double*的数据类型的长度。
要求:
弄清所使用的系统上运行的C++编译器中每个根本数据类型的长度。
提示:
利用运算符sizeof(数据类型名)来得到各个数据类型的长度。
思考问题:
为什么所有的指针长度都一样.
2、整型、字符型变量的定义及赋值
(1) 输入并调试运行下面的程序
*include 18、 void main( )
{
char c1, c2;
c1=’a’;
c2=’b’;
cout< 19、、3行改为:
c1=〞a〞; // 用双撇号
c2=〞b〞;
再使之运行,分析其运行结果。
⑥ 将第2、3行改为:
c1=300; //用大于127的整数
c2=400;
再使之运行,分析其运行结果。
(2) 输入并调试运行下面的程序
*include 20、b〞< 21、++y;
再运行。
③ 将程序改为:
*include 22、
int *, y, m=0, n=0;
* = 8;
y = 10;
m += *++:
n -= --y;
cout<<*< 23、m.h>
void main()
{
int a,b,c,ma*; //定义四个整型变量
cin>>a>>b>>c;
if(a>= b)
ma* = a; //a>=b
else
ma* = b; //ama*)
ma* = c; //c是最大值
cout<<"ma*="< 24、*学生的成绩,经处理后给出学生的等级,等级分类如下:
90分以上〔包括90〕:A
80至90〔包括80〕:B
70至80〔包括70〕:C
60至70〔包括60〕D
60分以下:E
输入以下程序并调试运行。
*include 25、tch( int〔score〕/10 )
{
case10:
case9: grade = 'A';break;
case8: grade = 'B';break;
case7: grade = 'C';break;
case6: grade = 'D';break;
default: grade = 'E';
}
cout<<"the student scort:"<< grade < 26、 * ( *<1 )
y = 2*-1 ( 1≤*<10 )
3*-11 ( *≥10 )
用cin语句输入*的值,求y值。
运行程序,输入*的值〔分别为*<1、1≤*<10、*≥10三种情况〕,检查输出的y值是否正确。
思考问题:
(1) if语句和switch语句适合于什么情况.
(2) 能否用switch语句完成对输入值的判断.
实验四 三种根本构造的实现2
一、实验目的
1、学会正确使用逻辑运算符和逻辑表达式。 27、
2、理解并掌握程序的循环构造。
3、熟练掌握用while语句、do—while语句和for语句实现循环的方法。
4、 掌握在程序设计中用循环的方法实现一些常用算法〔如穷举、迭代、递推等〕。
5、 进一步学习调试程序。
二、实验容与步骤
1、打印500以的“水仙花数〞。“水仙花数〞是一个3位数,其各位数立方和等于该数本身。
输入以下程序并调试运行
*include 28、 n/10-i*10;
k = n%10;
if ( n==i*i*i+j*j*j+k*k*k)
cout< 29、 s=s+j;
if ( s==n )
cout< 30、过50的局部按原工资的3倍的加班工资来计算。而40到50小时的工资仍按照原工资的1.5倍的加班工资来计算。
要求:
〔1〕分别用三种循环〔for、while、do--while〕完成程序要求。
〔2〕要求有输入提示和输出提示,如要输入雇员的工作时间和每小时的工资值时,可以提示: “请输入雇员的工作时间和小时工资:〞
输出时,提示: “雇员工资为:〞
〔3〕循环在用户输入的工作时间为0时完毕。
测试数据:
输入:30 4
输出:120
输入:45 4.5
输出:213.75
输入:60 5
输出:425
输入:0 0
程序完毕
思考问题:
(1) 三种循环语 31、句都适合于什么情况.如果已经知道要计算的雇员的数目〔如10个〕,用哪种循环更方便.
(2) while、do—while的区别.实验五 数 组
一、实验目的
1、 掌握一维数组和二维数组的定义、赋值和输入输出的方法。
2、 掌握字符数组和字符串函数的使用。
3、 掌握与数组有关的算法〔特别是排序算法和查找算法〕。
二、实验容与步骤
1、输入一串字符,计算其中*字符的个数。
输入以下程序并调试运行。
*include 32、 cin>>setw(30)>>c;
for ( i=0; c[i]!=’\0’; i++ )
if (c[i] == ‘*‘)
sum=sum + 1;
cout << c < 33、要求:用一个数组存放各个整数,用cin 语句输入。
提示:选择排序法的算法如下:
(1) 从n个数中选择最小的一个,把它和第一个数组元素交换;
(2) 从剩下的n – 1个数中选择最小的一个,把它和第二个数组元素交换;
(3) 依此类推,直到从最后两个元素中选出倒数第二小的元素并把它和倒数第二个元素交换为止。
测试数据:
程序先输出:请输入数据个数::
用户输入: 5
程序再输出:请输入全部数据:
用户输入: 31 75 63 45 58
程序输出: 31 45 58 63 75
4、有假设干个数存放在一个数组中,输入一个数,要求用 34、折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数〞。
要求:假设干个数用赋初值的方法在程序中给出,要找的数用 cin语句输入。
提示:折半查找法:
折半查找的思想为:在有序表中,取中间元素作为比较对象,假设给定值与中间元素的关键码相等,则查找成功;假设给定值小于中间元素的关键码,则在中间元素的左半区继续查找;假设给定值大于中间元素的关键码,则在中间元素的右半区继续查找。不断重复上述查找过程,直到查找成功,或所查找的区域无数据元素,查找失败。
〔1〕low=0;high=length-1; //设置初始区间
〔2〕当 35、low>high时,返回查找失败信息 //表空,查找失败
〔3〕low<=high,mid=〔low+high〕/2; //取中间
① 假设k* 36、 72
程序则应输出: 数据72在有序表中的位置下标是10。
用户输入: 35
程序则应输出: 在有序表中无此数!
5、将两个字符串起来。
要求:不使用strcat函数。
提示:定义两个字符型数组,找到第一个串的最后一个字符位置,将第二个串的字符依次放入。注意串的完毕标志“\0〞。
6、找出一个二维数组的“鞍点〞,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。
提示:
用cin语句从键盘输入数组各个元素的值,检查结果是否正确。题目并未指定二维数组的行数和列数,程序应能处理任意行数和列数的数组。因此,从理论上来说,应当准备许多种不同行数和列数的数组数据 37、,但这样的工作量太大,一般来说不需要这样做,只需要准备典型的数据即可。
如果已指定了数组的行数和列数,可以在程序中对数组元素赋初值,而不必用cin语句。请同学们修改程序以实现之。
测试数据:〔至少应当准备两组测试数据〕
〔1〕二维数组有鞍点
9 80 205 40
90 -60 96 1
210 -3 101 89
〔2〕二维数组没有鞍点
9 80 105 40
90 -60 196 1
38、 210 -3 101 89
实验六 指 针
一、实验目的
1、 掌握指针的概念,会定义和使用指针变量。
2、 能正确使用数组的指针和指向数组的指针变量。
3、 能正确使用字符串的指针和指向字符串的指针变量。
4、 了解二级指针的概念及其使用方法。
二、实验容与步骤
1、输入两个整数,按由大到小的顺序输出。
输入以下程序并调试运行。
*include 39、 ( a
40、使用指针数组处理。
5、使用动态存分配技术设计一个计算学生平均成绩的程序,学生个数和课程门数是任意的,使用二维数组,程序按平均成绩从大到小输出每个学生的成绩。
实验七 函数
一、实验目的
1、掌握函数的定义和调用方法。
2、掌握函数实参与形参的对应关系以及C++的三种函数参数传递机制。
3、掌握函数嵌套调用和递归调用的方法。
4、掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法。
二、实验容与步骤
1、写一个判断素数的函数,在主函数中输入一个整数,输出是否是素数的信息。
输入以下程序并调试运行。
*include 41、ath.h>
*include
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。