ImageVerifierCode 换一换
格式:DOCX , 页数:76 ,大小:473.73KB ,
资源ID:27692590      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27692590.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高级程序设计语言实验指导书面向过程部分.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

高级程序设计语言实验指导书面向过程部分.docx

1、高级程序设计语言实验指导书面向过程部分高级程序设计语言实 验 指 导 书(面向过程部分)电信学院计算机系、上机实验的指导思想和要求1.1 上机实验的目的学习C+程序设计不能满足于“懂得了”,满足于了解了语法和能看懂书上的程序,而应当掌握程序设计的全过程,即能独立编写出源程序,独立上机调试程序,独立运行程序和分析结果。设计C+的初衷是为方便开发大型程序,虽然在学校中初学C+时还没有机会接触到大型程序,更不可能编写出能供实际应用的大型程序,而只能接触到比较简单的程序。但是应当通过学习C+课程,对C+有比较全面的、然而是初步的认识,为今后进一步学习和应用C+打下良好的基础。程序设计是一门实践性很强的

2、课程,必须十分重视实践环节。许多实际的知识不是靠听课和看书学到手的,而是通过长时间的实践积累的。要提倡通过实践去掌握知识的方法。必须保证有足够的上机实验时间,除了学校规定的上机实验以外,建议学生自己课余抽时间多上机实践。上机实验的目的,绝不仅是为了验证教材和讲课的内容,或者验证自己所编的程序正确与否。学习程序设计,上机实验的目的是:(1)加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,但它们是很重要的,初学者的程序出错往往错在语法上。通过多次上机,就能自然地、熟练地掌握。通过上机来掌握语法规则是行之有效的方法。(2)熟悉所用的计算机系统的操作方法,也就是了解和熟悉

3、C+程序开发的环境。一个程序必须在一定的外部环境下才能运行,所谓“环境”,就是指所用的计算机系统的硬件和软件条件,或者说是工作平台。使用者应该了解为了运行一个C+程序需要哪些必要的外部条件(例如硬件配置、软件配置),可以利用哪些系统的功能来帮助自己开发程序。每一种计算机系统的功能和操作方法不完全相同,但只要熟练掌握一两种计算机系统的使用,再遇到其他系统时便会触类旁通,很快地学会。(3)学会上机调试程序。也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行。经验丰富的人,在编译连接过程中出现“出错信息”时,一般能很快地判断出错误所在,并改正之。而缺乏经验的人即使在明确的“出错提

4、示”下也往往找不出错误而求助于别人。要真正掌握计算机应用技术,就不仅应当了解和熟悉有关理论和方法,还要求自己动手实现。对程序设计来说,则要求会编程序并上机调试通过。因此调试程序不仅是得到正确程序的一种手段,而且它本身就是程序设计课程的一个重要的内容和基本要求,应给予充分的重视。调试程序固然可以借鉴他人的现成经验,但更重要的是通过自己的直接实践来累积经验,而且有些经验是只能“会意”难以“言传”。别人的经验不能代替自己的经验。调试程序的能力是每个程序设计人员应当掌握的一项基本功。因此,在做实验时千万不要在程序通过后就认为万事大吉、完成任务了,而应当在已通过的程序基础上作一些改动(例如修改一些参数、

5、增加程序一些功能、改变某些语句等),再进行编译、连接和运行。甚至于“自设障碍”,即把正确的程序改为有错的(例如语句漏写分号;比较符“=” 错写为赋值号“=”;使数组下标出界;使整数溢出等),观察和分析所出现的情况。这样的学习才会有真正的收获,是灵活主动的学习而不是呆板被动的学习。1.2 上机实验前的准备工作在上机实验前应事先做好准备工作,以提高上机实验的效率,准备工作至少应包括:(1)了解所用的计算机系统(包括C+编译系统和工作平台)的性能和使用方法;(2)复习和掌握与本实验有关的教学内容;(3)准备好上机所需的程序。手编程序应书写整齐,并经人工检查无误后才能上机,以提高上机效率。初学者切忌不

6、编程序或抄袭别人程序去上机,应从一开始就养成严谨的科学作风;(4)对运行中可能出现的问题事先做出估计,对程序中自己有疑问的地方,应作出记号,以便在上机时给予注意:(5)准备好调试和运行时所需的数据。1.3 实验报告实验后,应整理出实验报告,实验报告应包括以下内容: (1)题目; (2)程序清单(可以采用计算机打印出的程序清单): (3)运行结果(程序清单所对应打印输出的结果); (4)对运行情况所作的分析以及本次调试程序所取得的经验。如果程序未能通过应分析其原因。二、实验内容实验一 顺序结构设计【实验类型】验证性 【实验要求】必做【实验目的】1、熟悉Visual C+的集成开发环境。2、掌握C

7、+程序的书写格式、及程序的执行过程。3、根据题目要求,学会用顺序结构进行程序设计。4、掌握顺序结构程序设计与调试的基本方法。【实验内容】1、从键盘输入三个数,求这三个数的平均值,并输出结果。2、验证教材p2_2.cpp ,p2_3.cpp 和p2_4.cpp 的程序结果。【参考程序】1、#include using namespace std;void main( ) float num1, num2, num3; /定义三个数 cout num1 num2num3; cout The average of num1, num2 and num3; cout is: (num1+num2+nu

8、m3)/3 endl;2、/* p2_2.cpp * 演示算术运算表达式 */#includeusing namespace std;void main() int a; a=7*2+-3%5-4/3; float b; b=510+3.2e3-5.6/0.03; coutatbendl; int m(3),n(4); a=m+- -n; coutatmtnendl;3、/* p2_3.cpp * 演示逻辑运算表达式 */#includeusing namespace std;void main() int x,y,z; x = y = z = 1; -x & +y & +z; coutxty

9、tzendl; +x & +y & +z; coutxtytzendl; +x & y- | +z; coutxtytzendl; 4、/* p2_4.cpp * 演示条件表达式 */#includeusing namespace std;void main() int i=10, j=20, k; k=(ij) ? i : j; coutitjtkendl; k=i-j ? i+j : i-3 ? j : i; coutitjtkendl; 实验二 选择结构设计【实验类型】验证性 【实验要求】必做【实验目的】1、掌握if语句的书写格式、功能及执行过程。2、掌握switch语句的书写格式、功能

10、及执行过程。3、根据题目要求,学会用if语句、switch语句进行选择结构的程序设计。4、掌握选择结构程序设计与调试的基本方法。【实验内容】1、根据以下函数关系,对输入的每个x值,求y值。y=x*(x+2) 2x=10y=2*x -1x=2y=x-1 x=-1【指导】 y是一个分段表达式,要根据x的不同区间计算y的值,所以应使用if语句。 2、验证书中的相关的例题和自己有兴趣习题。3、编程实现输入一个整数,判断其能否被3,5,7整除,并输出以下信息之一:(1)能同时被3,5,7整除;(2)能被其中两数(要指出哪两个)整除;(3)能被其中一个数(要指出哪一个)整除;(4)不能被3,5,7任一个整

11、除。【指导】要判断输入的整数能否被3,5,7整除,可以用if语句来实现,这就需要考虑到7种情况,逐个判断。这里可以将if和switch结合来实现,步骤如下:(1)定义三个整型变量c1,c2,c3,并且初始化为0;(2)判断如果可以被3整除,则将c1赋值为1;(3)判断如果可以被5整除,则将c2赋值为2;(4)判断如果可以被7整除,则将c3赋值为4;(5)Switch语句的条件表达式为c1c2c3(6)Switch语句的常量表达式依次为0 表示不能被3,5,7任一个整除1 表示能被3整除2表示能被5整除3表示能被3,5整除4表示能被7整除5表示能被3,7整除6表示能被5,7整除7 表示能同时被3

12、,5,7整除【参考程序】1、#include void main() double x,y; cout x; if (x10) cout2) y=x*(x+2); else if (x-1) y=2*x; else y=x-1; couty=yendl; 3、#include void main() int a; cout a; int c1 = a%3 =0; int c2 = a%5 =0; int c3 = a%7 =0; / 7 5 3 switch(c32)+(c21)+c1) / c3c2c1 case 0: cout 不能被3,5,7整除.n; break; / 0 0 0 ca

13、se 1: cout 只能被3整除.n; break; / 0 0 1 case 2: cout 只能被5整除.n; break; / 0 1 0 case 3: cout 可以被3,5整除.n; break; / 0 1 1 case 4: cout 只能被7整除.n; break; / 1 0 0 case 5: cout 可以被3,7整除.n; break; / 1 0 1 case 6: cout 可以被5,7整除.n; break; / 1 1 0 case 7: cout 可以被3,5,7整除.n; break; / 1 1 1 / 4 2 1实验三 过程化语句1【实验类型】验证性

14、 【实验要求】必做【实验目的】1、加深理解循环的概念,掌握while语句、do-while语句和for语句的使用形式及执行过程。2、练习用C+的循环语句编写循环程序,掌握循环结构程序的设计和调试方法。【实验内容】1编程求1!+2!+3!+ +15!【指导】这道题目注意最后所求的和的范围。应将所求得的和定义为double型,而不是int型,否则会出现结果错误。2编程求“水仙花数”。【指导】“水仙花数”是指一个三位数,其各位的立方和等于该数本身。例如,153是“水仙花数”。求出一个三位数data的个位、十位和百位的方法是:(1) 求三位数data的个位:data%10(2) 求三位数data的十位

15、:data/10%10(3) 求三位数data的百位:data/1003猴子吃桃问题。【指导】猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天又将剩下的桃子吃了一半,又多吃一个,以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少个桃子?采取逆向思维得方法,从后向前推算:第一天得桃子数是第二天桃子数加1后得2倍。【参考程序】1、#include void main() double sum=0,t=1; for (int i=1 ;i15;i+) t *= i; sum += t; cout1!+2!+3!+ +15!=s

16、umendl;2、#include void main() int data; for (data=100; data1000; data+) int i=data/100; int j=data/10%10; int k=data%10; if (data=i*i*i + j*j*j + k*k*k) coutdataendl; 3、#include void main() int sum=1; for (int i=9; i0; i-) sum=(sum+1)*2; coutsum=sumendl;【思考题】比较while语句和for语句的异同,在什么情况下用什么形式的循环。实验四 过程化

17、语句2【实验类型】验证性 【实验要求】必做【实验目的】1、加深理解循环的概念,掌握while语句、do-while语句和for语句的使用形式及执行过程。2、掌握循环嵌套的规则及多重循环的程序设计方法。3、掌握break语句和continue语句的使用方法。【实验内容】1、编程打印如下图案。 # # # # # # #【指导】注意行号与数目和空格数目的对应关系,每一行都应先输出空格,然后输出。2、编程打印九九表。1*1=11*2=2 2*2=21*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*

18、9=9 . 9*9=81【指导】注意格式的控制,可以在输出一项后用t来控制间隔。【参考程序】1、#include void main() int i,j; for (i=1;i=4;i+) for (j=1;ji;j+) cout ; for (j=1;j10-2*i;j+) cout#; cout0;i-) for (j=1;ji;j+) cout ; for (j=1;j10-2*i;j+) cout#; coutendl; 2、#include void main() int i,j; for (i=1;i=9;i+) for (j=1;j=i;j+) cout i*j=i*j; if

19、(i*j10) cout ; coutendl; 【思考题】1、双重for循环中应注意什么问题2、break语句和continue语句有什么不同,各在什么情况下使用。实验五 函数【实验类型】验证性 【实验要求】必做【实验目的】1、掌握函数的定义。2、了解函数原型(函数声明)与函数定义的区别与联系。3、掌握函数调用的基本方法和返回值的用法。4、弄清值调用和引用调用在传递参数时的区别。5、掌握用递归函数解决实际问题。【实验内容】1设计一个函数,这个函数有两个形参,一个表示年份,一个表示月份,这个函数返回这个月的天数。【指导】闰年的判断方法是符合下列两个条件之一:(1)年数可以被4整除,但是不能被1

20、00整除;(2)年数可以被4整除,又可以被400整除(因为能被400整除,一定能够被4整除,所以这个条件可以简化为能被400整除)。条件表达式为:(year%4=0&year%100!=0|year%400=0)2设计一个函数,从键盘接受10个整数,求出10个整数中的最大值和最小值,并在调用函数中输出结果(引用传递)。【指导】这个函数要求返回两个值,所以不能使用值传递,应采用引用传递。注意体会值传递和引用传递的区别。3编程求解问题。若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n年时有多少头母牛。(用递归函数方法求解)【指导】先写出函数表达式:f(n)=f(n-1)+f(n-

21、3);f(1)=f(2)=f(3)=1。因为第n年要比n-1年多的牛,都是大于三岁的牛生的小牛,而f(n-3)正是那些在n年大于三岁的牛,然后它们在第n年生下相同数量的小牛。【参考程序】1、#include int days(int year, int month);void main() int yy,mm,dd; cout yy; cout mm; dd=days(yy,mm); cout the days is ddendl;int days(int year,int month) int day; if (month12) coutmonth is error data!endl; d

22、ay=0; else if (month=1 | month=3 | month=5 | month=7 | month=8 | month=10 |month=12) day=31; else if (month=2) if (year%4=0 & year%100!=0 | year%400=0) day=29; else day=28; else day=30; return day;2、#include void func(int &max, int &min);void main() int max,min; func(max,min); cout The max is maxend

23、l; cout The min is minendl;void func(int &max,int &min) int temp; coutPlease intput 10 integers temp; max=min=temp; for (int i=1;itemp; if (tempmax) max=temp; else if (tempmin) min=temp; 3、#include int cownum(int n);void main() int num,n; coutn; num=cownum(n); coutthe numbers of cow is numendl;int c

24、ownum(int n) if (n4) return 1; else return (cownum(n-1)+cownum(n-3);【思考题】1、什么叫函数嵌套调用,画图说明嵌套调用时函数的调用与返回执行流程。2、为什么要使用函数声明,函数声明与函数定义有何区别。实验六 数组1【实验类型】验证性 【实验要求】必做【实验目的】1、掌握数组的概念,并弄清数组的存储结构。2、掌握一维数组的定义、赋值和输入/输出的方法。3、学会与数组有关的算法。【实验内容】1、在一个10个整数的数组中找出最小数和其下标,并在主函数中打印最小数和下标。2、验证教材P102页例5-2 学生成绩排序。【参考程序】1、#

25、include void find(int arr, int len,int &min, int &index);void main() int arr10,min,index,i; coutplease intput 10 integersendl; for (i=0;iarri; find(arr,10,min,index); coutthe min is minendl; coutthe index of min is indexendl;void find(int arr, int len, int &min, int &index) index=0; for (int i=1;ilen;i+) if (arriarrindex) index=i; min=arrindex;2、参考程序见P102页例5-2。实验七 数组2【实验类型】验证性 【实验要求】必做【实验目的】1、掌握数组的概念,并弄清数组的存储结构。2、掌握二维数组的定义、赋值和输入/输出的方法。3、学会与数组有关的算法。【实验内容】1、输入一个n*n的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1