实验三四报告.docx
《实验三四报告.docx》由会员分享,可在线阅读,更多相关《实验三四报告.docx(15页珍藏版)》请在冰豆网上搜索。
![实验三四报告.docx](https://file1.bdocx.com/fileroot1/2023-2/6/180c5459-31df-4b42-bcc4-ee62ad222629/180c5459-31df-4b42-bcc4-ee62ad2226291.gif)
实验三四报告
C++语言实验报告
实验名称:
分支程序设计
实验日期:
2011年3月25日星期五实验预习报告日期:
2011年3月25日星期五
一、实验目的
程控制语句用于实现基本程序结构,是程序设计的基础。
本实验要求掌握条件语句和开关语句的使用。
二、实验内容预习及准备
(1)分析和设计(编程思路,关键公式、步骤或算法)
(2)程序源码
实验3-1
//输入一个数,判断它的奇偶性后输出结果
#include
usingnamespacestd;
intmain()
{
intinput;
cout<<"whichnumberdoyouwanttotest:
\n";
cin>>input;
if(input%2)
cout<<"nember"<
elsecout<<"number"<
return0;
}
三、实验过程记录
输入
结果
54
nmber54iseven
23
number23isold
65
number65isold
0
number0iseven
四、实验出现的问题、实验结果分析(语法错英语提示,中文翻译,原因,您的理解?
)
无
实验3-2
编程求一元二次方程ax2+bx+c=0的根。
包括以下判断和结果,若输入a=0,给出提示;△=b2-4ac,若△>0,输出两个不等的实根;
若△=0,输出两个相等实根;若△<0,输出两个复数根
程序源码
#include
#include
usingnamespacestd;
intmain()
{
floata,b,c;
floatdelta,x1,x2;
cout<<"请输入a(a!
=0),b,c的值:
";
cin>>a>>b>>c;
delta=b*b-4*a*c;
if(delta==0)
{
cout<<"方程有两个相同的实根"<cout<<"x1=x2="<<-b/2*a<}
elseif(delta>0)
{
x1=(-b+sqrt(delta))/2*a;
x2=(-b-sqrt(delta))/2*a;
cout<<"方程有两个不同实根:
";
cout<<"x1="<}
else
{
//delta<0
cout<<"方程无实根!
有两个不同的复数根:
"<cout<<"x1="<}
}
实验过程记录
实验过程
输入
结果
a=0b=0c=4
a=0b=2c=4
a=1b=2c=0
a=2b=5c=1
实验3-3
编写程序:
输入一门课程的成绩,若高于90分,输出“A grade”;若高于80分而低于90分,输出“Bgrade”;若高于70分而低于80分,输出“C grade”;若高于60分而低于70分,输出“D grade”;否则输出“Notpassed”
实验源码
If-else
#include
#include
usingnamespacestd;
voidmain()
{
floata;
cout<<"请输入分数:
";
cin>>a;
if(a>=90)
cout<<"Agrade"<else
{
if(a>=80)
cout<<"Bgrade"<else
{
if(a>=70)
cout<<"Cgrade"<else
{
if(a>=60)
cout<<"Dgrade"<else
{
cout<<"Notpassed"<}}}}}
实验过程
用switch表达
C++源程序如下:
#include
usingnamespacestd;
intmain()
{
inta;
cout<<"请输入成绩:
"<cin>>a;
switch(a/10){
case9:
cout<<"Agrade"<break;
case8:
cout<<"Bgrade"<break;
case7:
cout<<"Cgrade"<break;
case6:
cout<<"Dgrade"<break;
default:
cout<<"NOTPASSED"<}
}
实验过程
思考if–else嵌套使用时的注意事项是什么?
当对于嵌套在if子句的情况,由于else子句能省略,因此存在else的嵌套问题,由此,if和else就进配对,按这个关系,用{}来保证逻辑配对关系的时候,一定要注意,两个语句相差{}时,逻辑关系却完全不同,所以一定要注意。
实验3-4
4、编写程序:
输入一个数,判断其是否是3或7的倍数,可分为4种情况输出
实验源码
#include
intmain()
{
inta;
cout<<"请输入一个数a=";
cin>>a;
if(a%3==0)
{
if(a%7==0)
cout<<"是3和7的倍数"<elsecout<<"是3的倍数,不是7的倍数"<}
elseif(a%7==0)
cout<<"是7的倍数,不是3的倍数"<elsecout<<"既不是3的倍数,也不是5的倍数"<return0;
}
实验过程
C++语言实验报告
实验名称:
循环结构的设计
实验日期:
2011年3月25日星期五实验预习报告日期:
2011年3月25日星期五
一、实验目的
1.掌握3种循环结构:
while,do—while,for的区别与联系,以及它们之间相互转换的方法,并能正确使用它们。
2.掌握与循环语句相关的break语句和continue语句的使用方法
二、实验内容预习及准备
(1)分析和设计(编程思路,关键公式、步骤或算法)
(2)程序源码
实验4-1
输入正整数n,计算n的阶乘。
#include
intmain(){
intn,i;
doubleresult=0;
cout<<"请输入正整数:
"<cin>>n;
if(n<1){
cout<<"输入错误"<return1;
}
result=1;
for(i=2;i<=n;i++)result*=i;
cout<return0;}
实验过程
输入
结果
-2
输入错误
1
1
5
120
10
3.62881e+006
20
2.4329e+018
2)删除程序中//A处的赋值语句return1;重新以上述数据调试运行程序,结果是否正确,如果不正确,该如何修改?
正确
(3)删除程序中//B处的语句result=1;重新以上述数据调试运行程序,结果是否正确,如果不正确,该如何修改?
不正确,将double后的result=0改成result=1
(4)将程序中语句doubleresult=0;改为intresult=0;重新以上述数据调试运行程序,结果如何?
为什么?
阶乘超过2^32-1的数由程序运行的结果是0,因为int的精度范围不超过2^32-1
实验出现的问题
无
实验4-2
编程计算求π的近似值。
实验源码
#include
#include
voidmain()
{
longinti=0;
doublesum=0,term,pi;
do
{
i+=1;
term=1.0/(i*i);
sum+=term;
}while(term>1e-12);
pi=sqrt(sum*6);
cout<<"pi="<}
实验过程
实验出现的问题
无
实验4-3
将输入的小写字母转换成大写字母。
实验源码
#include
usingnamespacestd;
intmain(){
charstr[100];
inti=0;
cout<<"Pleaseinputastring...\n";
cin.getline(str,100);
do{
if(str[i]<'a'||str[i]>'z')continue;
str[i]-=32;
}while(str[++i]!
='\0');
cout<<"\nTheresultstringis:
"<return0;
}
实验过程
实验出现的问题
有的时候打错符号
实验4-4
设计一个程序,输入一个日期,要求算出这一天是本年的第几天
实验4-4
实验源码
#include
voidmain()
{
intday,month,year;
intsum,leap;
temp:
printf("\n请输入日期(年,月,日)\n");
scanf("%d,%d,%d",&year,&month,&day);
if((month>12||month<1)||((day>31)||(day<1)))
{
printf("输入月份或者天数出错!
\n");
gototemp;
}
else
{switch(month)
{
case1:
sum=0;break;
case2:
sum=31;break;
case3:
sum=59;break;
case4:
sum=90;break;
case5:
sum=120;break;
case6:
sum=151;break;
case7:
sum=181;break;
case8:
sum=212;break;
case9:
sum=243;break;
case10:
sum=273;break;
case11:
sum=304;break;
case12:
sum=334;break;
}
}
sum=sum+day;
if(year%400==0||(year%4==0&&year%100!
=0))
leap=1;
else
leap=0;
if(leap==1&&month>2)
sum++;
printf("这天是当年的第%d天。
\n",sum);
}
实验过程