实验作业
1.输入课本各个例题,调试运行程序,并分析程序,将每一个程序改写2到3个版本,自己分析程序结果,然后再调试运行,核对分析结果的对错。
2.编写程序输入一个三角形的三条边,计算其面积和周长;
3.编写程序计算并输出课本本章习题3表达式的值并分析结果。
4.编写一个程序,输入一个一元二次方程的三个系数,并计算其方程的解,然后输出。
5.编写程序,自己确定一个加密算法,将自己的音标姓名(英文)加密,并输出加密后结果,请注释你的加密算法。
6.在一个自动控制设备中,控制字位数16位,控制设备产生机械动作(如削,压等)的是指令字的低8位,其中保护强制停机动作的控制命令是低8位是全为0,控制报警声音是指令的高第1位,0为报警,1为不报警。请编写程序,在紧急状况启动时,向控制器输入控制指令。
7.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)。
1.
/*********************************************
*** 功能:显示输出各种整型变量所占的字节数 ***
*********************************************/
#include <iostream> //编译预处理命令
using namespace std; //使用标准名空间std
int main() //主函数
{
cout<<"number of bytes in int is:"<<sizeof(int)<<endl;
cout<<"number of long bytes in int is:"<<sizeof(long)<<endl;
cout<<"number of short bytes in int is:"<<sizeof(short)<<endl;
return 0;
}
/*******************************
*******布尔类型使用举例*******
*******************************/
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
bool flag=true;
cout<<flag<<endl;
cout<<boolalpha<<flag<<endl;
cout<<flag+5<<endl;
flag=0;
cout<<"执行语句flag=0;后flag的值为:"<<boolalpha<<flag<<endl;
flag=0.0;
cout<<"执行语句flag=0.0;后flag的值为:"<<boolalpha<<flag<<endl;
return 0;
}
/*******************************
*****赋值表达式语句的使用*****
*******************************/
#include<iostream>
using namespace std;
int main()
{
int a, b, c, d;
a = 4;
b = a;
a = 5;
c = d = 6;
c*=a;
d%=a + b;
cout<<"a="<<a<<endl
<<"b="<<b<<endl
<<"c="<<c<<endl
<<"d="<<d<<endl;
return 0;
}
/*******************************
***********数据自溢举例***********
*******************************/
#include<iostream>
using namespace std;
int main()
{
short i, j, m, n;
i = 1000;
j = 1000;
m = i+j;
n = i*j;
cout<<"m= "<<m<<endl;
cout<<"n= "<<n<<endl;
return 0;
}
/*******************************
********自增自减运算符********
*******************************/
#include <iostream>
using namespace std;
int main()
{
int i = 6, j, k, temp;
j = ++i;
k = i++;
++i = 1;
cout<<"i= "<<i<<endl
<<"j= "<<j<<endl
<<"k= "<<k<<endl;
return 0;
}
/*******************************
**条件运算符及条件表达式的应用**
*******************************/
#include <iostream>
using namespace std;
int main()
{
char ch;
cout<<"please input a character: ";
cin>>ch;
ch = ch>='a'&&ch<='z'?ch-'a'+'A':ch;
cout<<"The result is: "<<ch<<endl;
return 0;
}
/*******************************
**********强制转换类型**********
*******************************/
#include <iostream>
using namespace std;
int main()
{
int ab, ac;
double b = 3.14;
char c = 'A';
ab = int(b);
ac = int(c);
cout<<"b= "<<b<<endl
<<"ab= "<<ab<<endl
<<"c= "<<c<<endl
<<"ac= "<<ac<<endl;
return 0;
}
2.
/********************************
***功能:计算三角形的面积与周长***
********************************/
/************/
#include <iostream>
#include <math.h> //数学调用,头文件形式为<math.h>
using namespace std;
int main()
{
float a, b, c, p, S, C; //定义三角形的三边变量a、b、c,面积S,周长C
cout<<"请输入三角形的三边长度:"<<endl;
cin>>a>>b>>c; //用户自行输入三角形的三边长度
if(a+b>c&&a+c>b&&b+c>a) //用if语句判断能否构成三角形
{
p = (a+b+c)/2;
S = sqrt(p*(p-a)*(p-b)*(p-c)); //三角形的面积公式
C = a+b+c;
cout<<"三角形的面积是: "<<S<<endl;
cout<<"三角形的周长是: "<<C<<endl;
}
else //若不能构成三角形,再次输入数据
{
cout<<"您输入的三边长度不能构成三角形!!!"<<endl;
}
return 0;
}
3.
/********************************
*********习题三第1题*********
********************************/
#include <iostream>
#include <math.h> //数学函数调用头文件<math.h>
using namespace std;
int main()
{
int e = 1, f = 4, g = 2;
float m = 10.5, n = 4.0, k;
k = (e+f)/g+sqrt((double)n)*1.2/g+m; //n的类型强制转换为doubhle型
cout<<"k = "<<k<<endl;
return 0;
}
/********************************
*********习题三第2题*********
********************************/
#include <iostream>
using namespace std;
int main()
{
float x = 2.5, y = 4.7;
int a = 7;
cout<<x+a%3*(int(x+y)%2)/4<<endl; //(x+y)强制转换成int类型
return 0;
}
4.
/***************************
***功能:计算一元二次方程***
***************************/
#include <iostream>
#include <math.h> //数学函数调用
using namespace std;
int main()
{
float a, b, c; //定义变量a,b,c
double x1, x2, k;
cout<<"请依次输入二次项系数、一次项系数、常数项: "<<endl;
cin>>a>>b>>c;
k = b*b-4*a*c; //用一元二次方程的求根公式求出解x1, x2
x1 = (-b+sqrt(k))/(2*a);
x2 = (-b-sqrt(k))/(2*a);
if(k>=0) //根据k的值不同分类讨论
{
if(x1==x2)
{
cout<<"一元二次方程的解只有1个,x= "<<x1<<endl;
}
else
{
cout<<"一元二次方程的解有2个,x1= "<<x1
<<" x2= "<<x2<<endl;
}
}
else
{
cout<<"一元二次方程有虚根,x1= "<<-b/(2*a)<<"+"<<sqrt(-k)/(2*a)<<"i"<<endl //求出一元二次方程的虚根
<<"x2= "<<-b/(2*a)<<"-"<<sqrt(-k)/(2*a)<<"i"<<endl;
}
return 0;
}
5.
/***********************
*****加密与解密程序*****
***********************/
#include <iostream>
using namespace std;
int main()
{
char a[25],b[25],c[25],e[25]; //定义四个一维字符型数量组
int k;
cout<<"欢迎进行名字加密与解密程序"<<endl; //加密解密选择
cout<<"加密请输入“1”,解密请输入任意数字"<<endl;
cin>>k;
if(k==1) //加密
{
int i;
cout<<"请输入你要加密的名字"<<endl; //输入要加密的名字
fflush(stdin); //清除输入缓存
cin>>a; //从键盘获取字符
cout<<"该名字的加密成果为:"<<endl; //加密结果输出
for(i=0;i<25;i++)
{
if(a[i]==0)
{
break;
}
b[i]=a[i];
b[i]=b[i]+10; //加密方法
c[i]=b[i];
cout<<c[i];
}
cout<<endl;
}
else //解密
{
cout<<"请输入你要解密的名字"<<endl; //输入要解密的名字
fflush(stdin); //清除输入缓存
cin>>a;
cout<<"该名字的解密成果为:"<<endl; //解密结果输出
for(int i=0;i<25;i++)
{
if(a[i]==0)
{
break;
}
b[i]=a[i];
b[i]=b[i]-10; //解密方法
e[i]=b[i];
cout<<e[i];
}
cout<<endl;
}
return 0;
}
第5题不会做,照抄别人的
6.
7.a.经常忘打分号;
b.没注意区分中英文标点;
c.#include "stdafx.h"有时没删掉这个原配的预编译处理命令.
小尾巴