要求:
1.输入课本的各个例题,调试、运行、分析程序,并将每个程序改写2到3个版本,自己分析程序结果,然后在调试运行,核对分析结果的对错。
2.编写程序输入一个三角形的三条边,计算其面积和周长。
3.编写程序计算并输出课本本章习题3表达式的值并分析结果。
4.编写程序,输入一个一元二次方程的三个系数,并计算其方程的解,然后输出。
5.编写程序,自己确定一个加密算法,将自己的音标姓名(英文)加密【程序要加注释】,并输出加密后的结果。
6.在一个自动控制设备中,控制字位数为16位,控制设备生产机械动作(如削,压等)的是指令字的低8位,其中保护强制停机动作的控制命令是低8位是全为0,控制警报声音是指令的高第1位,0为警报,1为不警报。编写程序,在紧急启动时,想控制器输入控制指令。
7.积累调试经验,收集错误信息,总结原因。并形成文字。
作业一
例一:
//***************************************
**功能:显示输出各种整型变量所占的字节数**
****************************************/
#include<iostream> // 编译预处理命令
using namespace std; //使用标准名空间std
int main() //主函数
{
cout<<"number of bytes in int is:"<<sizeof(int)<<endl;
cout<<"number of bytes in long int is:"<<sizeof(long)<<endl;
cout<<"number of bytes in short int is:"<<sizeof(short)<<endl;
return 0;
}
输出结果:
例二:
//**************************
**功能:布尔类型使用举例**
****************************/
#include<iostream> //编译预处理命令
#include<iomanip> //使用控制符boolalpha需要使用此头文件
using namespace std; //使用标准名空间std
int main() //主函数
{
bool flag=true; //定义布尔类型变量flag,并初始化为true
cout<<flag<<endl; //默认情况下为非bool字母(noboolalpha),输出整型值1
cout<<boolalpha<<flag<<endl; //使用输入格式控制符boolalapha,输出布尔值
cout<<flag+5<<endl; //在算术运算中,把布尔数据当作整形数据,输出6
flag=0; //可以给布尔类型的变量赋任意的值
cout<<"执行语句flag=0;后flag的值为:"<<boolalpha<<flag<<endl;
flag=0.0; //0.0为double类型的值
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; //先对变量i自增,i的值变为7,之后把i的值7赋给变量j
k=i++; //先对变量i的值77赋给变量k,然后i的值自增,i的值变为8
++i=1; //++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:"<<endl;
cout<<"请输入一个字母,我将把它变成相应的大写字母:";
cin>>ch;
ch= ch>= 'a'&& ch<= 'z'?ch -'a'+'A': ch;
cout<<"The result is :"<<ch<<endl;
cout<<"经过我的一番演算,那个字母就是:"<<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;
cout<<"ab="<<ab<<endl;
cout<<"c="<<c<<endl;
cout<<"ac="<<ac<<endl;
return 0;
}
输出结果:
作业二
#include <iostream> //预编译处理命令
#include<math.h> //数学调用符号所需头文件
using namespace std; //标准名字空间
int main () //主函数
{
float a,b,c,d,e; //定义一些函数
double Area,Perimeter;
shuru: //goto语句的调用
cout<<"请输入所求三角形的三条边"<<endl; //输入三角形的三条边
cin>>a>>b>>c;
if(a+c>b&&a+b>c&&c+b>a) //判断输入的边是否构成三角形
{
d=(a*a+b*b-c*c)/(2*a*b); //求某一个角的余弦值
e=sqrt(1-d*d); //求这一个角的正弦值
Area=0.5*a*b*e; //计算面积
Perimeter=a+b+c; //计算周长
cout<<"该三角形的面积为"<<Area<<endl //输出结果
<<"该三角形的周长为"<<Perimeter<<endl;
goto shuru; //返回,继续下一个运算
}
else //若输入的边不构成三角形,则错误重新输入
{
cout<<"输入有错,请确认边长是否能构成三角形后重新输入"<<endl;
goto shuru;
}
return 0;
}
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
cout<<"第一小题"<<endl;
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;
cout<<"答案k="<<k<<endl;
cout<<"第二小题"<<endl;
int a=7;
float x=2.5,y=4.7,z;
z=x+a%3*(int(x+y)%2)/4;
cout<<"答案z="<<z<<endl;
return 0;
}
输出结果(没截图)
k=13.7
z=2.5
作业四
输入一个一元二次方程的三个系数,并计算其方程的解,然后输出。
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
float a,b,c,d,e,x1,x2;
cout<<"输入一元二次方程的各项系数:"<<endl;
cout<<"二次项系数a:"<<endl;
cin>>a;
cout<<"一次项系数b:"<<endl;
cin>>b;
cout<<"常数项c:"<<endl;
cin>>c;
e=b*b-4*a*c;
if(e>=0)
{
x1=((-b)+sqrt(e))/2*a;
x2=((-b)-sqrt(e))/2*a;
if (x1=x2)
cout<<"该方程有唯一解 即x=x1=x2="<<x1<<endl;
else
cout<<"该方程有两解"<<endl;
cout<<"x1="<<x1<<endl;
cout<<"x2="<<x2<<endl;
}
else
{
cout<<"该方程无解"<<endl;
}
return 0;
}
作业五
要求:自己确定一个加密算法,将自己的音标姓名(英文)加密,并输出加密后结果,请注释你的加密算法。
#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)
{
cout<<"请输入要加密的名字"<<endl;
fflush(stdin); //清除缓存
cin.get(a,25); //从键盘获取字符
cout<<"该名字加密后为:"<<endl;
for(int i=0;i<25;i++)
{
if(a[i]==0)
{
break;
}
b[i]=a[i];
b[i]=b[i]+9;
c[i]=b[i]; //加密方法
cout<<c[i];
}
cout<<endl;
}
else //解密
{
cout<<"请输入要解密的名字"<<endl;
fflush(stdin);
cin.get(a,25);
for(int i=0;i<25;i++)
{
if(a[i]==0)
{
break;
}
b[i]=a[i];
b[i]=b[i]-9;
e[i]=b[i]; //解密方法
cout<<"解密后为:"<<e[i];
}
cout<<endl;
}
return 0;
}
输出:
加密 解密
这个程序我还不太懂,参考了光荣榜的同学自己输入的,虽然有一些内容不知道,但是能正确的输入我觉得这已经是学习C++以来最大的进步!!给自己一个[/鼓掌]
作业六
没看懂,头脑内存资料不足[/尴尬],到时候听老师讲。
错误信息收集:
1.这段时间在学习的过程中主要犯的错误是一些字符忘记输入或者输错,比如在一行程序结束的时候忘了输“;”,还把“endl”里的"L"输成“1”。
2.在弄“数据溢出”例题的时候完全照搬书上的内容,结果在调试的时候出现:
error C2447: missingfunction header (old-style formal list?)
执行 cl.exe 时出错.
不知道怎么办?(现在仍不太清楚,希望老师讲解一下为啥会出现这种情况。)
3.在写解一元二次方程组的程序时,还是按照之前写试卷的习惯写成 “e=b^2-4ac”,正确的写法应该是“e=b*b-4*a*c”.
虽然犯了比较多的错误,但也一一改过来,进步还是有的。