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

上传人:d**** 文档编号:50852121 上传时间:2022-01-22 格式:DOC 页数:28 大小:175.50KB
返回 下载 相关 举报
《C程序设计》谭浩强版实验指导书_第1页
第1页 / 共28页
《C程序设计》谭浩强版实验指导书_第2页
第2页 / 共28页
《C程序设计》谭浩强版实验指导书_第3页
第3页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C+ 程序设计实验教学指导书课程编号:撰写人:朱世华审核人:前言程序设计是一门实践性很强的课程,通过实验可以巩固和加强课堂教学内容,提高学生实际工作能力和动手能力,并为后续课程和从事实践技术工作奠定重要的基础。因此,学生在进行理论知识学习的同时,必须十分重视实践环节 - 上机。上机实验时应该一人一组,独立上机。在上机过程中出现的问题,一般应自己独立处理,学生应在实验前将教师指定的题目编好程序,然后上机输入和调试。上机前应事先作好准备工作,以提高上机实验的效率,准备工作至少应包括:(1)复习和掌握与本实验有关的教学内容。(2)准备好上机所需的程序。(3)对运行中可能出现的问题应事先做出估计;对程序中有疑问的地方, 应做上记号,以便上机时给予注意。(4)准备好调试和运行时所需的数据。实验设备与环境:1、硬件配置Pentium以上 PC兼容机或品牌机, 配有彩色显示器、 鼠标、键盘,内存不小于 32MB,硬盘自由空间不少于 60MB。推荐配置为内存 256MB(或以上),硬盘自由空间 1GB以上。2、软件配置操作系统: Windows XP,Windows 2000 以上版本开发环境: Microsoft Visual C+ 2010以上版本。目录实验一Visual C+ 2010的基本用法 . .1实验二数据类型、运算符和表达式4实验三 三种基本结构的实现 1. .7实验四 三种基本结构的实现 2. .9实验六指 针13实验七函数14实验八结构和联合17实验九类与对象20实验十综合实验23实验一Visual C+ 2010的基本用法一、实验目的1 熟悉 Visual C+2010集成开发环境的基本命令和功能键。2 学习完整的 C+ 程序开发过程。3 理解简单的 C+ 程序结构。二、实验内容与步骤单的本次实验将学习有关VisualC+ 开发环境的一些知识,并尝试实现一个简DOS程序和 Windows程序。通过本次实验,可以了解用VisualC+ 开发应用程序的全过程。1、熟悉 Visual C+开发环境我们选择 Visual C+那一项就可以了。下图是 VS2010打开后的画面,当然可能你的界面跟我的不一样,没关系,那只是设置问题。菜单栏我们常用的是 File ,View 和 Debug菜单下的菜单项。工具栏各项其实在菜单栏都有与它们对应的菜单项,功能是一样的。左侧面板可以放多个视图,我这里放了解决方案浏览器、类视图和资源视图,解决方案浏览器中我们可以看到所有头文件和源文件构成的树, 头文件就是 .h 后缀的文件,源文件就是 .cpp 后缀的文件,类视图中显示了每个工程的每个类,也是树状结构,在解决方案浏览器或类视图中双击每一项,中间区域都会打开相应的文件或者到类的位置。资源视图中显示了界面工程中使用的一些界面资源。 中间区域默认是打开 start page,打开一个工程后我们在左侧面板上双击某项时,中间区域会出现相应的界面。右侧面板上有个Toolbox ,是在界面工程中用来往界面资源模板上添加控件的,里面包含了各种控件,直接拖到模板上就行了。底侧还有几个标签,其中一个是output ,这是输出视图,用来输出程序运行信息和我们程序中写的一些调试信息,还有一个Find Result视图,用来显示我们搜索任何字母或单词的结果。File-New-Project项可以创建一个工程,也可以在startpage 中点击 NewProject. ,然后出现的 New Project 窗口中有多个工程类型可以选择,Win32 Console Application是 Win32 控制台程序, MFC Application是 MFC应用程序,可以建立以开发界面程序, Win32 Project是 Win32 程序,Empty Project是空程序, MFCDLL用来建立生成动态链接库的工程,其它的不常用就不介绍了。我们要建立一个没有应用程序界面的只有Dos命令行界面的工程就选Win32Console Application项,我们学习C+基础知识用这个就可以了。它跟Win32Project 的区别是,它的入口是 main 函数,而 Win32 Project 的入口是 WinMain 函数。File-Open-Project/Solution可以打开以前建立的工程或者解决方案,一个解决方案中可以包含多个工程,你可以把它理解为多个有关系或者没关系的工程的集合,有时把多个工程放到一个解决方案里调试起来很方便。在 View 下的菜单项我们就可以控制它。View-Solution Explorer可以打开或关闭解 决方案 浏 览器视 图 , View-Class View 用来控制类 视图的 显示, View-Resource View 控制资源视图的显示,当然只有界面工程的资源视图中才会有内容。 View-Output 和 View-FindResults 等项大家应该也知道它们的含义了吧。Debug-StartDebugging(快捷键是 F5)用来开始调试, Debug-ToggleBreadpoint (快捷键是F9)用来设置断点,设置断点后然后开始调试,程序运行到断点时会停下来,我们用鼠标放到断点处的各个变量上时可以看到当时这些变量的值。 Debug-Start Without Debugging 表示不调试直接运行,也就是到断点处也不会停止运行。 Debug-Step Into (快捷键是 F11)用来单步执行,遇到子函数就进入并且继续单步执行; Debug-Step Over(快捷键是 F10)也是单步执行,但在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完而跳到下一步,也就是把子函数整个作为一步。工具栏上有个下拉列表框, 它包含有 Debug、Release 和 Configuration Manager,选择 Debug时为调试模式,生成的可执行程序中包含调试信息,我们可以调试并清楚的看到变量值,选择 Release 时生成的可执行程序中不含调试信息,在设置断点后看到的变量值可能不准确。msdn帮助可以点Help-View Help (快捷键是F1),也可以点开始-MicrosoftVisualStudio2010-MicrosoftVisualStudio2010Documentation 打开。2、控制台应用程序的建立用 Appwizard 建立一个控制台应用程序, 在显示器上输出 “Hello ,World !”。(1)创建项目( project )首先创建一个项目,用来管理用户的应用程序。创建项目的步骤为:启动 visual Studio 2010。从主菜单中选择菜单项“File ” “ New”,打开“ New”对话框。选 择 “ Projects ” 标 签 , 从 项 目 列 表 中 单 击 “ Win32 ConsoleApplication”选项。在“ project name”编辑框中键入项目的名字,如“ hello ”,系统将自动为用户的项目分配一个默认的目录。也可以在“ Location ”编辑框中重新输入项目存放路径。单击“ OK”按钮继续。(2)编辑源程序在项目中添加一个文件:从主菜单中选择菜单项“File ”“ New”,打开“ New”对话框。在“ New”对话框中选择“ File ”标签,单击“ + Source File ”选项,建立源文件(扩展名为 .cpp )。选中“ Add to Project ”复选框。在右边的“ File name”编辑框中为文件指定一个名字,如“ Hello ”,系统将自动加上后缀“ .cpp ”。这时在编辑窗口将自动打开一个新的空白文件,在文件中输入源程序。本例中输入以下内容: include void main()cout hello,world!endl;仔细检查输入的内容,确保内容正确。(3)保存源文件单击工具栏中的“ save”图标,或选择菜单项“ File ”“ Save”保存源文件。(4)编译源文件选择菜单项 “ Build ”“ Compile”来编译源文件, 如果输入的内容没有错误,那么,在屏幕下方的输出窗口将会显示:error(s),0 warning(s)如果在编译时得到错误或警告, 则表明源文件出现错误, 检查源文件, 改正错误后再编译,直至无误。(5)链接程序选择菜单项“ Build ”“ Build ”链接程序,如果链接过程中没有错误,则在输出窗口会显示:error(s),0 warning(s)如果有错误,应改正,然后重复(4)、(5),直至无误。(6)运行程序选择菜单项“ Build ”“ Execute ”运行程序,将显示一个类似于 DOS 的窗口,在窗口中第一行输出 “hello,world! ”,第二行输出 “Press any key to continue ”,提示用户按任意键回到开发环境。3、编写一个简单的C+ 程序要求:输入圆的半径,计算圆的周长和面积。步骤:( 1) 按照上面的步骤创建一个项目,名字为“ Circle ”。( 2) 在项目中增加一个文件,命名为“” 。( 3) 在文件中输入源程序如下:#includeconst double PI = ;endl;elsecoutnumber不是素数 .endl;判断素数的算法, 在以前学习循环的时候已经学过了, 在这里只是把这个算法用函数的形式表示出来 。这里要注意函数的定义 声明的方法和格式。2、分析程序的运行结果输入下列程序,运行它,分析得到的结果。#includeint n=0;int func( int x=10 );void main()int a, b;a=5;b=func(a);cout ” nlocal a=” aendl”local b=” bendl” global n= ”nendl;a+;b=func(a);cout ”nlocal a=”aendl”local b=”bendl” global n= ”nendl;func();int func( int x )int a=1;static int b=10;a+;b+;x+;n+;cout ” nlocal a=” aendl”local b=” bendl” parameter x= ”x=1 并且 n=r;(4)注意整数能存放的数据范围有限,如何解决提示:( 1) 可以用 double 数据类型来存放函数的计算结果。( 2) 递归结束条件:如果 r=0 ,则 C(n,r)=1;如果 r=1,则 C(n,r)=n 。测试数据:输入:53输出: 10输入: 10 20输出: Iput Invalid1输入: 50 3输出: 1.#IND输入:00Iput Invalid1程序结束思考问题:( 1) 对各种数据类型的字长是否有了新的认识( 2) 递归函数的书写要点是什么( 3) 递归和非递归函数各有哪些好处1、 求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数,用另一个函数求最小公倍数。(提示:可以用下面的方法求:一、利用辗除法或其它方法求得最大公约数;二、最小公倍数等于两数之积除以最大公约数。)要求:两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再和两个整数一起作为实参传递给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。实验八结构和联合一、实验目的1、 掌握结构体类型变量的定义和使用。2、 掌握结构数组的概念和使用。3、 掌握链表的概念,初步学会对链表进行操作。4、 掌握联合体的概念与应用。二、试验内容与步骤1、输入和运行以下程序。#includeunion datashort int s2;float a;int b;char c4;u;void main()cin01;couts0=0 s1=1endla=b=endlc0=0c1=1endlc2=2c3=3 ;输入 60000 给 b, 分析运行结果。2、打印学生成绩单,内容包括学号、姓名、三门课(数学 MT、英语 EN、计算机COMPU)的成绩。计算每个学生三门课程的总分 SUM和平均分 AVER。若三门课成绩都在 90 分以上者,输出“ Y”;否则输出“ N”,并打印学生成绩单,格式如下:NUMNAMEMTENCOMPSUMAVER=909501Liufan9598Y9502Zhanghua9582N9503Liming688985242N输入以下程序并调试运行。#include struct studentint num;char name15;float score3;float sum;float aver;char ch;void main()student stu3;int i,j;for ( i=0; i stui.num;cin stui.name;for ( j=0; j stui.scorej;for ( i=0; i3; i+ )stui.sum=0;stui.ch=Y;for ( j=0; j3; j+ )stui.sum +=stui.scorej;if (stui.scorej90)stui.ch=N;stui.aver=stui.sum/3;cout=90endl;for (i=0;i3;i+)coutstui.numsetw(8)stui.namesetw(8)stui.score0setw(8)stui.score1setw(8)stui.score2setw(8)stui.sumsetw(8)stui.aver setw(5)stui.chendl;3、设计一个单向链表。从标准输入读取若干整数,建立链表,每次读入的数放入链表结尾。 当用户输入 0 时,结束链表的建立工作。 然后从前往后依次输出链表结点中的内容。提示:( 1)( 2)( 3)链表结点空间动态申请。因为每次新结点插入在表尾, 所以应设一个指针总是指向当前的表尾。处理申请不到空间的情况。测试数据:程序输出:请输入若干整数建立链表(输入0 结束):用户输入:12345670程序输出:1234567思考问题:如果是双向链表,程序要做哪些改动4、有 10 个学生,每个学生的数据包括学号、姓名、3 门课的成绩,从键盘输入10 个学生数据,要求打印出 3 门课的平均成绩, 以及最高分学生的数据 (包括学号、姓名、 3 门课的成绩、平均分数) 。要求:用 input 函数输入 10 个学生的数据; 用 average 函数求平均分; 用 max函数找出最高分的学生数据;平均分和最高分学生的数据都在主函数中输出。5、建立一个链表,每个结点包括:学号、姓名、性别、年龄、。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。实验九类与对象一、实验目的1、 掌握类和对象的定义和使用。2、 理解构造函数和析构函数的作用。3、 学习使用静态成员和内联成员函数。4、 掌握从现有类派生出新类的方式。5、 了解基类成员在派生类中的访问控制。6、 了解虚函数对多态性的支持。二、实验内容与步骤1、构造函数和析构函数的调用。输入和运行以下程序。#includeclass Aint *a;public:A(int x)a=new int(x);cout” Constructor:” *aendl;A() cout” Destructor:” *a endl; delete a; ;void main()A x(3),*p; p=new A(5); delete p;2、派生类构造函数和析构函数的调用。输入以下程序并调试运行。#includeclass Aint a;public:A(int aa=0):a(aa)cout”Constructor A:”aendl; A()cout” Destructor A:”aendl; ;class B:public Aint b;public:B(int aa,int bb):A(aa),b(bb)cout ” Constructor B:”bendl; B()cout” Destructor B:”bendl; ;void main()B x(2,3),y(4,5);3、多态性的实现。( 1)输入以下程序并调试运行,分析其执行结果。#includepromote(3 );ay( );m1 .displayStatus( );coutn这是一个兼职技术人员:;technician t1;(2);ay( );t1 .displayStatus( );coutn这是一个销售经理: ;salesmanager sm1;sm1. promote(2);ay( );sm1 .displayStatus( );coutn这是一个兼职推销员: ;salesman s1;s1 .pay( );s1 .displayStatus( );撰稿人:2009-9-26
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!