C++程序设计实验报告.docx
《C++程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《C++程序设计实验报告.docx(29页珍藏版)》请在冰豆网上搜索。
C++程序设计实验报告
一、实验项目名称
VisualC++实验环境熟悉及C++语言初步
二、实验目的
1.了解VisualC++的安装与使用
2.熟悉VisualC++程序的编辑、编译、运行及调试
3.熟悉简单C/C++程序的基本组成。
4.掌握C/C++程序中输入输出数据的基本方法。
5.掌握编译预处理命令的使用。
6.写出实验步骤,分析调试中出现的问题及解决方法,给出改进方案,写出程序文档和调试数据。
3、实验基本原理
4、主要仪器设备及耗材
PC微机
Windows操作系统
MicrosoftVisualC++6.0程序集成环境
五、实验步骤、源程序及实验结果
1.下列程序是从键盘输入一个整数,然后计算它的平方并以十六进制的形式输出。
请在VisualC++输出、调试该程序。
#include"iostream.h"
voidmain()
{intx;
cin>>x;
inty=x*x;
cout<<"x*x=="< }
程序运行结果:
2.编写一个计算梯形面积的程序。
要求梯形的上底、下底和高在变量初始化时直接赋值。
源程序:
#includevoidmain()
{
floata,b,c,s;
a=3.0;
b=4.0;
c=5.0;
s=0.5*(a+b)*c;
cout<<"s="<
}
程序运行结果:
3.编写一个计算一个学生三门课平均成绩的程序。
要求学生成绩从键盘输入。
源程序:
#include
voidmain()
{
inta,b,c,d;
cin>>a>>b>>c;
d=(a+b+c)/3;
cout<<"d=="<}
程序运行结果
:
4.编写一个计算和估计地球重量的程序,并测试它。
地球的半径为6356.91千米,平均密度为每立方米5.52吨。
要求地球半径从键盘输入,地球密度定义成符号常量。
源程序:
#include
#definePI3.14159
#defineP5.52e3
voidmain()
{
floatr,m;
cin>>r;
m=P*4/3*PI*r*r*r;
cout<<"m="<}
程序运行结果:
七、思考讨论题或体会或对改进实验的建议
八、参考资料
《C++程序设计》 杨长兴、刘卫国主编 中国铁道出版社
一、实验项目名称
顺序结构程序
二、实验目的
1.掌握VisualC++中的基本数据类型及常量、变量、运算符和表达式的使用;
2.学会运用已经学过的内容,设计简单的程序;
3.能阅读、分析、调试简单的程序。
4.写出实验步骤,分析调试中出现的问题及解决方法,给出改进方案,写出程序文档和调试数据。
3、实验基本原理
4、主要仪器设备及耗材
PC微机
Windows操作系统
MicrosoftVisualC++6.0程序集成环境
五、实验步骤、源程序及实验结果
1.分析、调试下面的程序,并体会强制数据类型转换的意义。
本程序求3位学生的平均成绩,并对第三位小数四舍五入后保留二位小数。
程序:
#include"iostream.h"
voidmain()
{floats1,s2,s3;
doubleaver;
cout<<"输入三个数据:
:
"< cin>>s1>>s2>>s3;
aver=(s1+s2+s3)/3;
aver=aver*100+0.5;
aver=(int)aver;
aver=aver/100;
cout<<"平均值="< }
程序运行结果:
2.输入直角三角形的两条直角边长,调用平方根库函数sqrt求斜边的长度。
源程序:
#include
#include
voidmain()
{
floata,b,c;
cin>>a>>b;
c=sqrt(a*a+b*b);
cout<<"c="<}
程序运行结果:
3.输入直角坐标系中点P的坐标(x,y),若P点落在图2.2.2中的阴影区域内,输出阴影部分面积,否则输出数据0。
源程序:
#include#include
#definePI3.14159
usingnamespacestd;
intmain()
{
floatx,y,z,s;
z=sqrt(x*x+y*y);cout<<"请输入x,y:
";cin>>x>>y;
s=PI*4*4-PI*2*2;
if(z>2)
cout<<"s="<
else
cout<<"s=0"<return0;
}
程序运行结果:
4.任意输入3个数据,输出它们的平均值和最小的一个数。
源程序:
#include
usingnamespacestd;
intmain()
{
floats1,s2,s3;
doubleaver,min;
cout<<"请输入s1,s2,s3:
";
cin>>s1>>s2>>s3;
aver=(s1+s2+s3)/3;
cout<if(s1>s2&&s1>s3)
if(s2>s3)
cout<<"min="<else
cout<<"min="<else
cout<<"不存在"<return0;
}
程序运行结果:
5.将"fly"译成密码"iob"。
编码规律:
将字母a变成字母d,即变成其后的第3个字母,x变成a,y变成b,z变成c。
(提示:
用赋初值的方法使c1、c2、c3的值分别为'f'、'l'、'y',按编码规则改变c1、c2、c3后,将结果输出。
)
源程序:
#include
usingnamespacestd;
voidmain()
{
charc1,c2,c3;
c1='f';c2='l';c3='y';
c1=c1+3;
c2=c2+3;
c3=c3-23;
cout<}
程序运行结果:
七、思考讨论题或体会或对改进实验的建议
八、参考资料
《C++程序设计》 杨长兴、刘卫国主编 中国铁道出版社
一、实验项目名称
分支结构程序
二、实验目的
1.熟练掌握关系及逻辑表达式在程序设计中的灵活运用。
2.熟悉利用if语句的各种形式实现不同分支选择的方法。
3.掌握使用switch语句实现多分支选择的方法。
2.写出实验步骤,分析调试中出现的问题及解决方法,给出改进方案,写出程序文档和调试数据
3、实验基本原理
4、主要仪器设备及耗材
PC微机
Windows操作系统
MicrosoftVisualC++6.0程序集成环境
五、实验步骤、源程序及实验结果
1.修改下面程序中的错误:
以下程序的功能是求两个非0整数相除的商和余数。
程序有五处错误(包括warning警告性错误),试找出它们加以修改,并上机验证修改结果。
#include"iostream.h"
main()
{intx,y,r1,r2;
cin>>x>>y;
if(x=0||y=0)
cout<<”inputerror”< else
{if(x>y)
r1=x/y;
r2=x%y;
else
r1=y/x;
r2=y%x;
}
cout<<”商=”<}
修改后的源程序:
#include"iostream.h"
intmain()
{intx,y,r1,r2;
cin>>x>>y;
if(x==0||y==0)
cout<<"inputerror"<else
if(x>y)
{r1=x/y;
r2=x%y;}
else
{r1=y/x;
r2=y%x;}
cout<<"商="<}
程序运行结果:
2.编一程序输入上网的时间计算上网费用,计算的方法如下:
同时为了鼓励多上网,每月收费最多不超过130元。
提示:
先按照上述公式求,然后判断求得的钱若超出130元,就按130元计算。
源程序:
#includeusingnamespacestd;
intmain()
{
floatx,y;
cout<<"请输入x:
";
cin>>x;
if(x<10)
cout<<"y=30"<y=2.5*x;
elseif(x>=50)
y=2*x;
if(y<=130)
cout<<"y="<else
cout<<"y=130"<return0;
}
程序运行结果:
3.在购买某物品时,若所花的的钱x在下述范围内,所付钱y按对应折扣支付:
分别利用if和switch两种多分支结构来完成。
提示:
注意计算公式和条件表达式的正确书写。
源程序:
#include
usingnamespacestd;
intmain()
{
floatx,m;
cout<<"请输入所花的钱:
";
cin>>x;
if(x<100)
m=x;
elseif(x<500)
m=0.8*x;
elseif(x>=500)
m=0.7*x;
cout<<"m="<return0;
}
程序运行结果:
七、思考讨论题或体会或对改进实验的建议
八、参考资料
《C++程序设计》 杨长兴、刘卫国主编 中国铁道出版社
一、实验项目名称
循环控制结构
二、实验目的
1.了解for循环、当型循环和直到型循环的执行机理。
2.熟练掌握三种循环语句:
while语句、do_while语句和for语句的使用。
3.了解break和continue语句在循环中的辅助控制作用。
4.掌握利用循环语句求解一些常用算法的方法
4.写出实验步骤,分析调试中出现的问题及解决方法,给出改进方案,写出程序文档三、实验基本原理
四、主要仪器设备及耗材
PC微机
Windows操作系统
MicrosoftVisualC++6.0程序集成环境
五、实验步骤、源程序及实验结果
1.以下程序求20以内的奇数和。
程序有几处错误,试找出它们加以修改,并上机验证修改结果。
#include“iostream.h”
voidmain()
{intn,sum;
for(n=1;;n+=2);
if(n==20)break;
cout<<”sum=”<}
修改后源程序:
#include
voidmain()
{
intn,sum=0;
for(n=1;n<20;n+=2)
sum+=n;
cout<<"sum="<}
程序运行结果:
2.编写程序将一个十进制整数按倒序形式输出。
即若输入156,则输出651。
提示:
实现的方法是将一个十进制数不断除以十取余,并马上输出该余数。
源程序:
#include
voidmain()
{
intn,r;
cout<<"请输入一个十进制整数:
";cin>>n;
do
{
r=n%10;
n/=10;cout<}while(n>0);
cout<}
程序运行结果:
3.计算
的近似值,
的计算公式为:
源程序:
#include
usingnamespacestd;
intmain()
{
intn=2;
doublet(4.00000/3),pi
(2);
while(t>=1.000000000000001)
{
pi=pi*t;
t=((2*n)*(2*n))*1.0/((2*n-1)*(2*n+1));
n++;
}
cout<<"pi:
"<return0;
}
程序运行结果:
七、思考讨论题或体会或对改进实验的建议
八、参考资料
《C++程序设计》 杨长兴、刘卫国主编 中国铁道出版社
一、实验项目名称
函数
二、实验目的
1.掌握函数声明、定义和使用的方法;
2.掌握函数递归调用的方法;
3.掌握“传值调用”、“传址调用”和“引用调用”的区别;
4.掌握重载函数、内联函数、带有默认参数的函数及模板函数的定义和使用。
5.掌握自动变量、静态局部变量与全局变量之间的联系与区别。
6.学习使用指针和引用给函数传递参数;
7.掌握给函数传递数组参数的方法;
5.掌握定义头文件的方法,学会建立和调试多文件程序;
5.写出实验步骤,分析调试中出现的问题及解决方法,给出改进方案,写出程序文档和调试数据。
3、实验基本原理
4、主要仪器设备及耗材
PC微机
Windows操作系统
MicrosoftVisualC++6.0程序集成环境
五、实验步骤、源程序及实验结果
1.编一函数,求级数
的部分和,当第n项的精度小于eps时结束。
设eps的默认值为10-6。
函数形式为:
doublefun(doublx,doubleeps=1e-6);
源程序:
#include
#include
usingnamespacestd;
doublefun(doublex,doubleeps=1e-6);
voidmain()
{
doublex,s;
cout<<"请输入x的值:
";
cin>>x;
s=fun(x);
cout<<"x="<}
doublefun(doublex,doubleeps)
{
intn=1;
doublet,s(0);
t=x;
while(fabs(t)>=eps)
{
s+=t;
t=-t*x*x/((n+1)*(n+2));
n+=2;
}
return(s);
}
程序运行结果:
2.编一判断m是否为素数的函数,在主函数中输出十对最小的孪生素数。
所谓孪生素数是指两个相差为2的素数,如3和5、11和13。
函数形式为:
boolisprime(intm)
源程序:
#include
usingnamespacestd;
boolisprime(intm)
{
inti;
for(i=2;m%i!
=0;i++);
return(i==m);
}
voidmain()
{
intx,count=0;
x=2;
while
(1)
{
if(isprime(x)&&isprime(x+2))
{
count++;
cout<<"("<if(count>=10)break;
}
x++;
}
}
程序运行结果
七、思考讨论题或体会或对改进实验的建议
八、参考资料
《C++程序设计》 杨长兴、刘卫国主编 中国铁道出版社
一、实验项目名称
数组
二、实验目的
1.掌握一维数组和二维数组的定义、赋值和输入输出方法;
2.掌握字符数组和字符串的使用;
3.掌握给函数传递数组参数的方法;
4.掌握与数组有关的简单数据结构和算法;
5.写出实验步骤,分析调试中出现的问题及解决方法,给出改进方案,写出程序文档和调试数据。
3、实验基本原理
4、主要仪器设备及耗材
PC微机
Windows操作系统
MicrosoftVisualC++6.0程序集成环境
五、实验步骤、源程序及实验结果
1.编一个程序,将一串字符倒序存放后输出。
例如原数组a的内容为“VISUALC++PROGRAM”,倒许序后数组a中的内容为“MAGORP++CLASUIV”。
源程序:
#include
#include
#defineN10
usingnamespacestd;
intmain()
{
inti,j=0;
chara[N],b[N];
for(i=0;icin>>a[i];
for(i=0;i{
b[j]=a[N-i-1];j++;
}
for(j=0;jcout<(2)<
cout<return0;
}
程序运行结果:
2.输出输入一个小于10的正整数n,显示具有n行的杨辉三角形,见图2.5.1。
提示:
解该题有两个关键:
①形成满足杨辉三角形各项值的数组。
首先定义二维数组a[10][10],杨辉三角形的形成特点是第1列(下标为0)和主对角线均为1,其余各项有如下关系:
a[i][j]=a[i-1][j-1]+a[i-1][j]i=2,3…,n-1j=1,2…,i-1
②按规定的形式显示,用到setw(n),表示每一个元素占n位,使用setw(n)函数,必须加#include“iomanip.h”。
进一步要求,若要显示图2.5.2结果,程序要进行如何改进?
提示:
只要在输出每一行元素前,利用如下语句确定每行的起始位:
cout<源程序;#include
#include
usingnamespacestd;
voidmain()
{
inta[10][10],i,j,n;
cin>>n;
for(i=0;i{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;ifor(j=1;j
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=0;i{
for(j=0;j<=i;j++)
cout<cout<}
程序运行结果:
源程序:
#include#include
usingnamespacestd;
voidmain()
{
inta[10][10],i,j,n;
cin>>n;
for(i=0;i{a[i][0]=1;
a[i][i]=1;
}
for(i=2;ifor(j=1;j
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=0;i{
cout<for(j=0;j<=i;j++)
cout<cout<}
程序运行结果:
七、思考讨论题或体会或对改进实验的建议
八、参考资料
《C++程序设计》 杨长兴、刘卫国主编 中国铁道出版社
一、实验项目名称
指针和排序
二、实验目的
1.掌握指针的概念、学会定义和使用指针变量;
2.掌握引用型变量的概念、学会定义和使用引用型变量;
3.学习使用指针数组和指向数组的指针;
4.学习使用指向字符串的指针变量;
5.掌握常用的排序算法
6.写出实验步骤,分析调试中出现的问题及解决方法,给出改进方案,写出程序文档和调试数据。
3、实验基本原理
4、主要仪器设备及耗材
PC微机
Windows操作系统
MicrosoftVisualC++6.0程序集成环境
五、实验步骤、源程序及实验结果
1.输入一串字符,分别利用字符数组、指针变量两种种方式,将字符串中的大写字母转换成小写字母,并分别显示。
源程序1(字符数组方式):
#include
#include
usingnamespacestd;
voidmain()
{
chara[100];
inti,j;
cout<<"pleaseinputchars:
";
cin.getline(a,100);
for(j=0;j<=strlen(a)-1;j++)
{
i=a[j];
if(i<97&&i>=65)
a[j]=(char)i+32;
}
for(j=0;j<=strlen(a);j++)
cout<cout<}
程序运行结果:
源程序2(指针变量):
#include
#include
usingnamespacestd;
voidmain()
{
chara[100];
char*p=a;
inti,j;
cout<<"pleaseinputchars:
";
cin.getline(a,100);
for(j=0;j<=strlen(a)-1;j++)
{
i=a[j];
if(i<97&&i>=65)
a[j]=(char)i+32;
}
for(j=0;j<=strlen(a);j++)
cout<<*(a+j);
cout<}
程序运行结果:
2.输入20个学生的计算机课程的成绩(0~100),按照从大到小的顺序排序,分别显示排序前和排序后的结果。
源程序:
#include
#inc