《计算机组成原理实验》
实验报告
班级:
姓名:
学号:
日期:
第二篇:西安交大C++第二章实验报告
西安交通大学实验报告
课程 计算机程序设计 实验名称C++集成开发环境的使用 第 1 页 共 2 页
系 别 实 验 日 期 20##年 3 月 15 日
专业班级 组别___________ 实 验 报 告 日 期 20## 年 3 月 16日
姓 名 学号 报 告 退 发 ( 订正 、 重做 )
同 组 人_________________________________ 教 师 审 批 签 字
一. 实验目的
1.程序的基本控制结构;
2.“自顶向下,逐步求精”的程序设计方法;
3.C++语言的控制结构。
二实验内容
(-)实验题目一:2,输入两个角度值x,y,计算如下式子的值。
1.要点分析
按照题目所给的公式,确定所需的变量并构造相应的表达式。
生命恰当的变量并严格按照公式形式进行程序语句的转化。
2.程序源代码
#include <iostream.h>
#include <math.h>
int main()
{
double x, y, z;
cout << "please intput x, y= ? ";
cin >> x>>y;
z=sin(abs(x)+abs(y))/sqrt(cos(abs(x+y)));
cout<<"the result is"<<z;
return 0;
}
3.实验结果
(二)实验题目二:3,编写一个程序,要求完成下列要求
(1)提示用户输入任意的3个小数。
(2)显示这3个小数。
(3)将这3个小数相加并显示其结果。
(4)将结果按四舍五入方法转换成整数并显示。
1.要点分析
本题考查数据类型的转换,轻质类型转换会丢掉小数部分,必须在使用强制类型转换操作符前对表达式进行处理。
2.程序源代码
#include <iostream.h>
int main()
{
double a,b,c,d;
cout<<"请输入任意三个小数:"<<endl;
cin>>a>>b>>c;
cout<<"你输入的三个小数是:"<<endl;
cout<<a<<'/t'<<b<<'/t'<<c<<endl;
d=a+b+c;
cout<<"三个小数的和为:"<<d<<endl;
cout<<"四舍五入后三小数和转换成整数等于:"<<int(a+b+c+0.5)<<endl;
return 0;
}
3.实验结果
(三)实验题目二:3、仿照本章课件例题,任意输入3个小写字母组成的单词,采用凯撒加密方法:每个字母用其后第5个字母代替形成密文,然后输出密文。
1.要点分析
本题和例题基本一致,但是有一个问题,因为ASCII码在表示字母时是连续的数字,但是这些数字加上5后有些已不是字母,需要设置一个循环。
2.程序源代码
#include <iostream.h>
int main()
{
char ch1,ch2,ch3; //定义字符变量
cout<<"任意输入三个字母:";
cin>>ch1>>ch2>>ch3;
ch1=ch1+5; //后移5个字母
ch2=ch2+5; //后移5个字母
ch2=ch3+5; //后移5个字母
cout << "密文: "<< ch1 << ch2 << ch3<<endl;
return 0;
}//改输入随机得到3个字符信息
3.实验结果
(四)实验题目二:4、输入一个4位十进制数,求其每位数字的立方之和。例如:输入2456,则输出23+43+53+63=8+64+125+216=413。注意只要求输出红色算式结果。(必做题)
1.要点分析
这个题我好像没搞清楚“输出红色算式”怎么做。
2.程序源代码
#include <iostream.h>
int main()
{
unsigned int n,m;
char c1,c2,c3,c4;
cout<<"请输入一个介于1000和9999之间的数:";
cin>>n;
c1=n%10+'0';
c2=n%100+'0';
c3=n%1000+'0';
m=c1*c1*c1+c2*c2*c2+c3*c3*c3;
cout<<"每位数字的立方和为:"<<m<<endl;
return 0;
}//改输入随机得到3个字符信息
3.实验结果
(五)实验题目二:5、编写程序计算下列二元一次方程组的根:
AX + BY = C
DX + EY = F
通过键盘输入6个系数,然后计算求解,最后输出方程的根。
1.要点分析
这一题基本需要是设置几个字母代表方程的系数,然后输入结果表达式,带入所给的数即可。
2.程序源代码
#include <iostream.h>
int main()
{
double A,B,C,D,E,F,X,Y;
cout<<"请输入六个正整数A,B,C,D,E,F:";
cin>>A>>B>>C>>D>>E>>F;
X=(C*E-B*F)/(A*E-B*D);
Y=(C*D-A*F)/(B*D-A*E);
cout<<"函数AX+BY=C;DX+EY=F的解X,Y分别是"<<X<<Y<<endl;
return 0;
}
3.实验结果
(六)实验题目二:6、仿照本章课件例题,分别用字符变量、短整型变量和整型变量求N!,通过运行测试,分别告知最大的N为多少?(选做题)
1.要点分析
这个我好像没搞懂,输出最大的N 没整出来。
2.程序源代码
#include <iostream.h> //定义字符变量计算N!
int main()
{
char m,j=1;
unsigned char lt=1;
cout<<"input integer m: ";
cin>>m;
while ( j<=m )
{
lt=lt*j;
cout<<j<<"!="<<lt+0<<endl;
j=j+1;
}
short n,i=1;
unsigned char ult=1;
cout<<"input integer n: ";
cin>>n;
while ( i<=n )
{
ult=ult*i;
cout<<i<<"!="<<ult+0<<endl;
i=i+1;
}
int r,l=1;
unsigned char sult=1;
cout<<"input integer r: ";
cin>>r;
while ( l<=r )
{
sult=sult*i;
cout<<l<<"!="<<sult+0<<endl;
l=l+1;
}
return 0;
}
3.实验结果
二. 个人小结
1, 遇到的问题:浮点类型的取值范围是怎么计算得到的?
2, 自己的收获:在不断的实验,创造程序的时候,当然主要还是从不断揣摩书中的程序的过程中,学到了不少东西;虽然一上午的思索可能还想不出一道题的答案,但是我很开心的发现我成功的自己做出了一些东西。