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