1、一、 实验项目名称Visual C+实验环境熟悉及C+语言初步二、 实验目的1了解Visual C+的安装与使用2熟悉Visual C+程序的编辑、编译、运行及调试3熟悉简单 C/C+ 程序的基本组成。 4掌握 C/C+ 程序中输入输出数据的基本方法。 5掌握编译预处理命令的使用。 6写出实验步骤 ,分析调试中出现的问题及解决方法,给出改进方案,写出程序文档和调试数据。三、实验基本原理四、主要仪器设备及耗材PC微机Windows 操作系统Microsoft Visual C+6.0 程序集成环境五、实验步骤、源程序及实验结果1下列程序是从键盘输入一个整数,然后计算它的平方并以十六进制的形式输出
2、。请在 Visual C+ 输出、调试该程序。#include iostream.h void main( ) int x; cinx; int y=x*x; coutx*x=hexyendl; 程序运行结果:2编写一个计算梯形面积的程序。 要求 梯形的上底、下底和高在变量初始化时直接赋值。 源程序:#include void main( ) float a,b,c,s; a=3.0;b=4.0;c=5.0;s=0.5*(a+b)*c;couts=sendl; 程序运行结果:3编写 一个计算一个学生三门课平均成绩的程序。要求学生成绩从键盘输入。 源程序:#include void main(
3、) int a,b,c,d;cinabc;d=(a+b+c)/3;coutd=dendl;程序运行结果:4编写一个计算和估计地球重量的程序,并测试它。地球的半径为 6356.91 千 米,平均密度为每立方 米 5.52 吨。要求地球半径从键盘输入,地球密度定义成符号常量。源程序:#include #define PI 3.14159#define P 5.52e3void main( ) float r,m; cinr;m=P*4/3*PI*r*r*r;coutm=mendl; 程序运行结果:七、思考讨论题或体会或对改进实验的建议八、参考资料C+程序设计杨长兴、刘卫国主编中国铁道出版社一、 实
4、验项目名称顺序结构程序二、 实验目的1掌握Visual C+中的基本数据类型及常量、变量、运算符和表达式的使用;2学会运用已经学过的内容,设计简单的程序;3能阅读、分析、调试简单的程序。 4写出实验步骤 ,分析调试中出现的问题及解决方法,给出改进方案,写出程序文档和调试数据。三、实验基本原理四、主要仪器设备及耗材PC微机Windows 操作系统Microsoft Visual C+6.0 程序集成环境五、实验步骤、源程序及实验结果1分析、调试下面的程序,并体会强制数据类型转换的意义。 本程序求 3位学生的平均成绩,并对第三位小数四舍五入后保留二位小数。 程序:#includeiostream.
5、h void main() float s1,s2,s3; double aver; cout 输入三个数据: :s1s2s3; aver=(s1+s2+s3)/3; aver=aver*100+0.5;aver=(int)aver; aver=aver/100; cout 平均值 =averendl;程序运行结果:2输入直角三角形的两条直角边长,调用平方根库函数sqrt求斜边的长度。源程序:#include #include void main ()float a,b,c;cinab;c=sqrt(a*a+b*b);coutc=cendl;程序运行结果:3输入直角坐标系中点P的坐标(x,y)
6、,若P点落在图2.2.2中的阴影区域内,输出阴影部分面积,否则输出数据0。 源程序:#include #include #define PI 3.14159using namespace std;int main ()float x,y,z,s;z=sqrt(x*x+y*y);coutxy; s=PI*4*4-PI*2*2; if(z2) couts=sendl; else couts=0endl;return 0;程序运行结果:4任意输入 3 个数据,输出它们的平均值和最小的一个数。源程序:#include using namespace std;int main ()float s1,s2
7、,s3;double aver,min; couts1s2s3; aver=(s1+s2+s3)/3;coutavers2&s1s3)if(s2s3)coutmin=s3endl;elsecoutmin=s2endl; else cout不存在endl;return 0;程序运行结果:5将 fly 译成密码 iob 。编码规律:将字母 a变成字母d,即变成其后的第3个字母,x变成a,y变成b, z变成c。 (提示:用赋初值的方法使 c1、c2、c3的值分别为 f 、 l 、 y ,按编码规则改变 c1、c2、c3后,将结果输出。)源程序:#include using namespace std
8、;void main()char c1,c2,c3;c1=f;c2=l;c3=y;c1=c1+3;c2=c2+3;c3=c3-23;coutc1c2c3xy; if(x=0|y=0) cout ” input error ” y) r1=x/y; r2=x%y; else r1=y/x; r2=y%x; cout ” 商 = ” r1 ” 余数= ” r2xy; if(x=0|y=0) cout input error y) r1=x/y; r2=x%y; else r1=y/x; r2=y%x; cout 商 = r1 余数= r2endl;return 0; 程序运行结果:2编一程序输入上
9、网的时间计算上网费用,计算的方法如下: 同时为了鼓励多上网,每月收费最多不超过 130 元。 提示: 先按照上述公式求,然后判断求得的钱若超出 130元,就按130元计算。 源程序:#include using namespace std;int main()float x,y; coutx;if(x10)cout y=30 endl; else if(x=50)y=2*x;if(y=130)couty=yendl;elsecouty=130endl;return 0;程序运行结果:3在购买某物品时,若所花的的钱 x 在下述范围内,所付钱 y 按对应折扣支付: 分别利用 if 和 switch
10、 两种多分支结构来完成。 提示: 注意计算公式和条件表达式的正确书写。源程序:#include using namespace std;int main()float x,m;coutx;if(x100) m=x;else if(x=500)m=0.7*x;coutm=mendl;return 0;程序运行结果:七、思考讨论题或体会或对改进实验的建议八、参考资料C+程序设计杨长兴、刘卫国主编中国铁道出版社一、 实验项目名称循环控制结构二、 实验目的1了解for循环、当型循环和直到型循环的执行机理。 2熟练掌握三种循环语句:while语句、do_while语句和for语句的使用。 3了解brea
11、k和continue语句在循环中的辅助控制作用。 4掌握利用循环语句求解一些常用算法的方法5写出实验步骤 ,分析调试中出现的问题及解决方法,给出改进方案,写出程序文档三、实验基本原理四、主要仪器设备及耗材PC微机Windows 操作系统Microsoft Visual C+6.0 程序集成环境五、实验步骤、源程序及实验结果1以下程序求20以内的奇数和。程序有几处错误,试找出它们加以修改,并上机验证修改结果。 #include “ iostream.h ” void main() int n,sum; for(n=1; ;n+=2); if(n=20) break; cout ” sum= ”
12、sumendl; 修改后源程序:#include void main() int n,sum=0; for(n=1;n20 ;n+=2)sum+=n;cout sum= sumendl; 程序运行结果:2编写程序将一个十进制整数按倒序形式输出。即若输入156,则输出651。 提示:实现的方法是将一个十进制数不断除以十取余,并马上输出该余数。 源程序:#include void main() int n,r;coutn;dor=n%10;n/=10;cout0);coutendl;程序运行结果:3计算 的近似值, 的计算公式为: 源程序:#include using namespace std;
13、int main()int n=2;double t(4.00000/3),pi(2);while(t=1.001)pi=pi*t;t=(2*n)*(2*n)*1.0/(2*n-1)*(2*n+1);n+;coutpi:piendl;return 0;程序运行结果:七、思考讨论题或体会或对改进实验的建议八、参考资料C+程序设计杨长兴、刘卫国主编中国铁道出版社一、 实验项目名称函数二、 实验目的1掌握函数声明、定义和使用的方法;2掌握函数递归调用的方法;3掌握“传值调用”、“传址调用”和“引用调用”的区别;4掌握重载函数、内联函数、带有默认参数的函数及模板函数的定义和使用。5掌握自动变量、静态局
14、部变量与全局变量之间的联系与区别。6学习使用指针和引用给函数传递参数;7掌握给函数传递数组参数的方法;8掌握定义头文件的方法,学会建立和调试多文件程序;9写出实验步骤,分析调试中出现的问题及解决方法,给出改进方案,写出程序文档和调试数据。三、实验基本原理四、主要仪器设备及耗材PC微机Windows 操作系统Microsoft Visual C+6.0 程序集成环境五、实验步骤、源程序及实验结果1编一函数,求级数 的部分和,当第 n 项的精度小于 eps 时结束。设 eps 的默认值为 10 -6 。 函数形式为:double fun(doubl x, double eps=1e-6); 源程序
15、: #include #include using namespace std;double fun(double x, double eps=1e-6);void main()double x,s;coutx;s=fun(x);coutx=x s= s=eps)s+=t;t=-t*x*x/(n+1)*(n+2);n+=2;return(s);程序运行结果:2编一判断 m 是否为素数的函数,在主函数中输出十对最小的孪生素数。所谓孪生素数是指两个相差为 2 的素数,如 3 和 5 、 11 和 13 。函数形式为:bool isprime(int m)源程序:#include using nam
16、espace std;bool isprime(int m)int i;for(i=2;m%i!=0;i+);return(i=m);void main()int x,count=0;x=2;while(1)if(isprime(x)&isprime(x+2)count+;cout(x,x+2)=10)break;x+;程序运行结果七、思考讨论题或体会或对改进实验的建议八、参考资料C+程序设计杨长兴、刘卫国主编中国铁道出版社一、 实验项目名称数组二、 实验目的1掌握一维数组和二维数组的定义、赋值和输入输出方法;2掌握字符数组和字符串的使用;3掌握给函数传递数组参数的方法;4掌握与数组有关的简单
17、数据结构和算法;5写出实验步骤,分析调试中出现的问题及解决方法,给出改进方案,写出程序文档和调试数据。三、实验基本原理四、主要仪器设备及耗材PC微机Windows 操作系统Microsoft Visual C+6.0 程序集成环境五、实验步骤、源程序及实验结果1编一个程序,将一串字符倒序存放后输出。例如原数组 a的内容为“VISUAL C+PROGRAM ” ,倒许序后数组 a中的内容为“MAGORP+C LASUIV”。源程序: #include #include #define N 10using namespace std;int main()int i,j=0;char aN,bN;f
18、or(i=0;iai;for(i=0;iN;i+)bj=aN-i-1;j+;for(j=0;jN;j+)coutsetw(2)bj;coutendl; return 0; 程序运行结果:2输出输入一个小于 10的正整数n,显示具有n行的杨辉三角形,见图2.5.1。 提示:解该题有两个关键: 形成满足杨辉三角形各项值的数组。首先定义二维数组 a1010,杨辉三角形的形成特点是第1列(下标为0)和主对角线均为1,其余各项有如下关系: aij= ai-1j-1+ ai-1j i=2,3,n-1 j=1,2,i-1 按规定的形式显示,用到 setw(n),表示每一个元素占n位,使用setw(n)函数,
19、必须加#include “ iomanip.h ” 。进一步要求,若要显示图 2.5.2结果,程序要进行如何改进?提示:只要在输出每一行元素前,利用如下语句确定每行的起始位:coutsetw(n-i)*3 ” “ ; /3表示每个元素占6位 源程序;#include #include using namespace std;void main()int a1010,i,j,n;cinn;for(i=0;in;i+)ai0=1;aii=1;for(i=2;in;i+)for(j=1;ji;j+)aij=ai-1j+ai-1j-1;for(i=0;in;i+)for(j=0;j=i;j+)cout
20、setw(6)aij;coutendl;程序运行结果:源程序:#include #include using namespace std;void main()int a1010,i,j,n;cinn;for(i=0;in;i+) ai0=1;aii=1;for(i=2;in;i+)for(j=1;ji;j+)aij=ai-1j+ai-1j-1;for(i=0;in;i+)coutsetw(n-i)*3) ;for(j=0;j=i;j+)coutaijsetw(6);coutendl; 程序运行结果:七、思考讨论题或体会或对改进实验的建议八、参考资料C+程序设计杨长兴、刘卫国主编中国铁道出版社
21、一、 实验项目名称指针和排序二、 实验目的1掌握指针的概念、学会定义和使用指针变量;2掌握引用型变量的概念、学会定义和使用引用型变量;3学习使用指针数组和指向数组的指针;4学习使用指向字符串的指针变量;5. 掌握常用的排序算法6写出实验步骤,分析调试中出现的问题及解决方法,给出改进方案,写出程序文档和调试数据。三、实验基本原理四、主要仪器设备及耗材PC微机Windows 操作系统Microsoft Visual C+6.0 程序集成环境五、实验步骤、源程序及实验结果1输入一串字符,分别利用字符数组、指针变量两种种方式,将字符串中的大写字母转换成小写字母,并分别显示。源程序1(字符数组方式):#
22、include#includeusing namespace std;void main() char a100; int i,j; coutplease input chars:; cin.getline(a,100); for(j=0;j=strlen(a)-1;j+) i=aj; if(i=65) aj=(char)i+32; for(j=0;j=strlen(a);j+) coutaj; coutendl; 程序运行结果:源程序2(指针变量):#include#includeusing namespace std;void main() char a100; char *p=a; in
23、t i,j; coutplease input chars:; cin.getline(a,100); for(j=0;j=strlen(a)-1;j+) i=aj; if(i=65) aj=(char)i+32; for(j=0;j=strlen(a);j+) cout*(a+j); coutendl; 程序运行结果:2.输入20个学生的计算机课程的成绩(0100),按照从大到小的顺序排序,分别显示排序前和排序后的结果。源程序:#include #include using namespace std;#define N 20void px(int *p,int n) int i,j,t;
24、for(i=0;in-1;i+) for(j=0;jn-i-1;j+) if(*(p+j)*(p+j+1) t=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=t; void main() int i; int aN;coutplease input numbers; for(i=0;iai; px(a,N);for(i=0;iN;i+) coutsetw(6)ai; coutn;程序运行结果:七、思考讨论题或体会或对改进实验的建议八、参考资料C+程序设计杨长兴、刘卫国主编中国铁道出版社一、 实验项目名称自定义数据类型二、 实验目的1掌握结构体变量的定义和使用;2掌握结构体
25、数组的定义和使用;三、实验基本原理四、主要仪器设备及耗材PC微机Windows 操作系统Microsoft Visual C+6.0 程序集成环境五、实验步骤、源程序及实验结果1定义学生档案结构体类型,描述的数据包括:学号、姓名、性别、出生年月、入学总分和籍贯。输入5个学生档案的内容,并输出学生档案。源程序: #include using namespace std;#include struct dateint year;int month;struct studentchar id8;char name10;char sex;date birthday;float score; char
26、add10;student stu5;void main () int n; cinn;cout从键盘上输入n个学生档案:endl;int i;student x;for(i=0;ix.id;cinx.name;cinx.sex;cinx.birthday.year;cinx.birthday.month;cinx.score;cinx.add;stui=x;cout输出n个同学记录:endl;int j;for(j=0;jn;j+)coutstuj.id stuj.name stuj.sex ;coutstuj.birthday.year stuj.birthday.month ;coutstuj.score ;coutstuj.addendl;程序运行结果:七、思考讨论题或体会或对改进实验的建议八、参考资料C+程序设计杨长兴、刘卫国主编中国铁道出版社