C++实验报告1.docx

上传人:b****3 文档编号:5482466 上传时间:2022-12-17 格式:DOCX 页数:46 大小:184.76KB
下载 相关 举报
C++实验报告1.docx_第1页
第1页 / 共46页
C++实验报告1.docx_第2页
第2页 / 共46页
C++实验报告1.docx_第3页
第3页 / 共46页
C++实验报告1.docx_第4页
第4页 / 共46页
C++实验报告1.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

C++实验报告1.docx

《C++实验报告1.docx》由会员分享,可在线阅读,更多相关《C++实验报告1.docx(46页珍藏版)》请在冰豆网上搜索。

C++实验报告1.docx

C++实验报告1

成绩

 

辽宁工程技术大学

上机实验报告

 

课程名称

嵌入式程序设计(C++)

学院

软件学院

专业

嵌入式软件

班级

嵌软11-3

学号

1120030305

姓名

郭琳琳

日期

2013.12.21-2013.12.22

实验一

C++开发环境

实验

目的

通过本次实验

(1)掌握用VC++集成开发环境编辑源程序的方法。

(2)掌握在VC++集成开发环境中编译、调试与运行程序的方法。

(3)理解数据类型、变量、运算符、表达式的概念。

(4)学会使用cin进行数据输入操作。

(5)学会用算术表达式、关系表达式、赋值表达式完成数据处理工作。

(6)学会使用cout进行数据输出操作。

实验

准备

(1)编写实验程序;

(2)在VC++运行环境中,输入源程序;

(3)编译运行源程序;

(4)写出运行结果。

实验

过程

1.实验内容

(1)设计一个C++程序,输出以下信息:

***************

Hello!

***************

(2)设计一个C++程序,输入三个职工的工资,求工资总额。

(3)设计一个程序,从键盘输入一个矩形的长与宽,求其周长和面积。

2.程序

(1)新建工程为myproject1,新建c++源程序,文件名为myfile1.cpp,输入以下内容:

#include

voidmain()

{cout<<"***************"<<'\n';

cout<<"Hello!

"<<'\n';

cout<<"***************"<<'\n';

}

(2)算法分析提示:

存放每个职工的工资变量应该是一个实型数,故工资总额变量也应该是实型数。

程序如下。

#include

voidmain()

{intsa1,sa2,sa3,sum;

cout<<"请输入三个职工的工资:

";

cin>>sa1>>sa2>>sa3;

sum=sa1+sa2+sa3;

cout<<"\n工资总额是:

"<

}

(3)程序如下:

#include

voidmain()

{floata,b,L,S;

cout<<"请输入一个矩形的长与宽:

"<

cin>>a>>b;

L=(a+b)*2;

S=a*b;

cout<<"矩形的长与宽:

" <

cout<<"矩形的周长:

" <

cout<<"矩形的面积:

" <

}

结果

分析

(1)运行结果如图所示:

分析:

新建工程为myproject1,新建c++源程序,文件名为myfile1.cpp,输入以下内容运行输出结果:

***************

Hello!

***************

(2)运行结果如图所示:

分析:

输入三个职工的工资:

200300400

输出:

工资总额是:

900

(3)运行结果如图所示:

分析:

输入矩形的长和宽为:

2050

输出:

矩形的长与宽:

20和50

矩形的周长:

140

矩形的面积:

1000

收获

体会

收获:

通过本次实验的三个小联系,掌握用VC++集成开发环境编辑源程序的方法;掌握在VC++集成开发环境中编译、调试与运行程序的方法;理解数据类型、变量、运算符、表达式的概念;学会用算术表达式、关系表达式、赋值表达式完成数据处理工作;学会使用cout进行数据输出操作。

体会:

通过书本学习的内容能够通过实验的形式真正的自己做出来,非常大的激发了我学习的兴趣。

当然,在学习中也遇到了一些困难,比如在第二个实验中,和我用的是单引号,这样在运行时就造成了输出矩形的长和宽时是一串乱码,后来,和同学讨论过后我改成了双引号,就能够正常输出运行了。

教师

评语

 

实验二

函数定义与调用

实验

目的

通过本次实验

(1)初步掌握函数的定义方法,及函数的三种调用方法;

(2)理解参数传送过程中,值传送与传地址的过程与区别;

(3)初步学会用递归编写程序方法;

(4)学会用数组作为函数参数的编程方法。

实验

准备

(1)编写实验程序

(2)在VC++运行环境中,输入源程序;

(3)编译运行源程序;

(4)输入测试数据进行程序测试;

(5)写出运行结果。

实验

过程

1.实验内容:

(1)分别用冒泡法(升序)、选择法(降序)、擂台法(升序)编写三个对一维数组进行排序的函数,函数名为sort1()、sort2()、sort3()。

再定义一个输出数组元素值的函数print()。

在主函数中定义一维整型数组a[N](N=10),用键盘输入10个整数给a[N]数组。

依次调用sort1()、print()、sort2()、print()、sort3()、print(),进行升序、降序、升序的操作,并输出每次排序后的结果。

(2)编写一个计算sin(x)的函数,在主函数中输入x,调用sin(x)函数计算并输出y值。

y=

要求:

在sin(x)函数内,将级数中各项值累加到和变量s中去,直到最后一项绝对值小于0.00001为止。

.

2.程序:

(1)#include

#include

#defineN10

voidprint(inta[])

{inti;

for(i=0;i

cout<

cout<

}

voidsort1(inta[])

{inti,j,temp;

for(i=0;i

for(j=0;j<=N-1-i;j++)

if(a[j]>a[j+1])

{temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

voidsort2(inta[])

{inti,j,temp;

for(i=0;i

for(j=i+1;j

if(a[i]

{temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}

voidsort3(inta[])

{

inti,j,k,temp;

for(i=0;i

{k=i;

for(j=i+1;j

if(a[k]>a[j])k=j;

if(k>i)

{temp=a[i];a[i]=a[k];a[k]=temp;}

}

}

voidmain(void)

{

inti;

intb[10];

cout<<"请输入10个数:

"<

for(i=0;i<10;i++)

cin>>b[i];

sort1(b);

cout<<"输出排好序的10个数:

"<

print(b);

sort2(b);

cout<<"输出排好序的10个数:

"<

print(b);

sort3(b);

cout<<"输出排好序的10个数:

"<

print(b);

}

(2)#include

#include

#include

#defineN11

floatzsin(floaty)//定义计算K阶乘的函数fac()

{inti;

floats=0,p=1.0,t;

p=y;

for(t=1,i=1;fabs(1.0/t)>=0.00001;i+=2)

{s=s+p/t;

p=p*y*y;

t=-t*(i+1)*(i+2);

}

return(s);

}

voidmain(void)

{

floatx,sn;

cout<<"inputx:

";

cin>>x;

sn=zsin(x);

cout<

}

结果

分析

(1)程序运行结果如图所示:

分析:

输入:

28167493102211

冒泡法(升序)排序:

23478910101116

选择法(降序)排序:

16111010987432

擂台法(升序)排序:

23478910101116

(2)程序运行结果如图所示:

分析:

输入:

x=3

输出:

sinx=0.0910714

收获

体会

收获:

本次实验我的目的在于初步掌握函数的定义方法,及函数的三种调用方法;同时理解参数传送过程中,值传送与传地址的过程与区别;初步学会用递归编写程序方法;学会用数组作为函数参数的编程方法。

在本次学习中我先编写了实验程序,然后在VC++运行环境中,输入源程序,编译运行源程序,并输入测试数据进行程序测试,经过运行测试后程序运行的结果就是我预期中的结果。

体会:

在实验过程中遇到了很多问题,但是通过和同学们的互相讨论及向老师提问,我逐步解决了这些问题。

教师

评语

实验三

类和对象

实验

目的

通过本次实验

(1)掌握类与对象的定义与使用方法;

(2)初步掌握构造函数、拷贝构造函数的定义与使用方法;

(3)初步掌握析构函数的定义与使用方法;

(4)理解构造函数与析构函数的调用过程。

实验

准备

(1)编写实验程序;

(2)在VC++运行环境中,输入源程序;

(3)编译运行源程序;

(4)输入实验测试数据,写出运行结果。

实验

过程

1实验内容:

(1)定义一个复数类Complex,复数的实部Real与虚部Image定义为私有数据成员。

用复数类定义复数对象c1、c2、c3,用默认构造函数将c1初始化为c1=20+40i,将c2初始化为c2=0+0i,用拷贝构造函数将c3初始化为c3=20+40i。

用公有成员函数Dispaly()显示复数c1、c2与c3的内容。

(2)定义一个学生成绩类Score,描述学生成绩的私有数据成员为学号(No)、姓名(Name[8])、数学(Math)、物理(Phi)、数据结构(Data)、平均分(ave)。

定义能输入学生成绩的公有成员函数Write(),能计算学生平均分的公有成员函数Average(),能显示学生成绩的公有成员函数Display()。

在主函数中用Score类定义学生成绩对象数组s[3]。

用Write()输入学生成绩,用Average()计算每个学生的平均分,最后用Display()显示每个学生的成绩。

(3)定义一个矩形类Rectangle,矩形的左上角(Left,Top)与右下角坐标(Right,Bottom)定义为保护数据成员。

用公有成员函数Diagonal()计算出矩形对角线的长度,公有成员函数Show()显示矩形左上角与右下角坐标及对角线长度。

在主函数中用new运算符动态建立矩形对象r1,初值为(10,10,20,20)。

然后调用Show()显示矩形左上角与右下角坐标及对角线长度。

最后用delete运算符回收为矩形动态分配的存储空间。

2程序:

(1)#include

classComplex

{private:

floatReal,Image;

public:

Complex(floatr,floati)//定义有参构造函数

{Real=r;

Image=i;}

Complex(Complex&c)//定义拷贝构造函数

{Real=c.Real;

Image=c.Image;

}

Complex()//定义无参构造函数

{Real=0;

Image=0;

}

voidDisplay()

{cout<

voidmain(void)

{Complexc1(10,20),c2,c3(c1);

c1.Display();

c2.Display();

c3.Display();}

(2)#include

#include

classScore

{private:

intNo;

charName[8];

floatMath,Phi,Data,Ave;

public:

voidWrite(intno,charname[],floatmath,floatphi,floatdata)

{No=no;

strcpy(Name,name);

Math=math;

Phi=phi;

Data=data;}

voidAverage(void)

{Ave=(Math+Phi+Data)/3;}

voidDisplay()

{cout<

cout<

voidmain(void)

{inti,no;

charname[8];

floatmath,phi,data;

Scores[3];

cout<<"Input3studentdata"<<'\n';

for(i=0;i<3;i++)

{

cin>>no>>name>>math>>phi>>data;

s[i].Write(no,name,math,phi,data);

s[i].Average();}

cout<<"学号姓名数学物理数据结构平均分\n";

for(i=0;i<3;i++)

s[i].Display();}

(3)#include

#include

classRectangle

{protected:

floatLeft,Top;

floatRight,Bottom;

public:

Rectangle(floatl,floatt,floatr,floatb)

{Left=l;Top=t;

Right=r;Bottom=b;}

Rectangle(Rectangle&R)

{Left=0;Top=0;

Right=R.Right;Bottom=R.Bottom;}

doubleDiagonal()

{returnsqrt((Left-Right)*(Left-Right)+(Top-Bottom)*(Top-Bottom));}

voidShow()

{cout<<"(Left,Top)=("<

cout<<"Diagonal="<

voidmain(void)

{Rectangle*r1=newRectangle(10,10,20,20);

r1->Show();

deleter1;}

结果

分析

(1)程序运行结果如图所示:

分析:

定义一个复数类Complex,复数的实部Real与虚部Image定义为私有数据成员。

用复数类定义复数对象c1、c2、c3,用默认构造函数将c1初始化为c1=20+40i,将c2初始化为c2=0+0i,用拷贝构造函数将c3初始化为c3=20+40i。

用公有成员函数Dispaly()显示复数c1、c2与c3的内容。

(2)程序运行结果如图所示:

分析:

定义了一个学生成绩类Score,描述学生成绩的私有数据成员为学号(No)、姓名(Name[8])、数学(Math)、物理(Phi)、数据结构(Data)、平均分(ave)。

能计算学生平均分的公有成员函数Average(),能显示学生成绩的公有成员函数Display()。

在主函数中用Score类定义学生成绩对象数组s[3]。

用Write()输入学生成绩,用Average()计算每个学生的平均分,最后用Display()显示每个学生的成绩。

(3)程序运行结果如图所示:

分析:

定义一个矩形类Rectangle,矩形的左上角(Left,Top)与右下角坐标(Right,Bottom)定义为保护数据成员。

用公有成员函数Diagonal()计算出矩形对角线的长度,公有成员函数Show()显示矩形左上角与右下角坐标及对角线长度。

在主函数中用new运算符动态建立矩形对象r1,初值为(10,10,20,20)。

然后调用Show()显示矩形左上角与右下角坐标及对角线长度。

最后用delete运算符回收为矩形动态分配的存储空间。

运行结果如图所示。

收获

体会

收获:

通过本次实验我掌握了类与对象的定义与使用方法;初步掌握构造函数、拷贝构造函数的定义与使用方法;初步掌握析构函数的定义与使用方法;理解构造函数与析构函数的调用过程。

体会:

在实验中遇到了一些问题,但通过自己查找书籍,仔细查找,均一一解决。

教师

评语

实验四

数组与指针

实验

目的

通过本次实验

(1)掌握一维、二维数组指针变量的定义格式与引用方法;

(2)掌握字符串指针变量的定义格式与引用方法;

(3)学会用数组指针变量完成数组元素的数据处理,如求和、求最大值、最小值等;

(4)学会用字符串指针变量处理字符串的比较、连接与测长度;

(5)掌握指针与数组作为函数参数的程序编写方法。

实验

准备

(1)编写实验程序

(2)在VC++运行环境中,输入源程序;

(3)编译运行源程序;

(4)输入测试数据进行程序测试;

(5)写出实验输入数据与运行结果。

实验

过程

1.实验内容

(1)编写程序,用4种方式求整型一维数组a[10]的平均值。

4种方式是指4种不同的数组元素表达方式。

(2)

(2)编写程序,用表7.1中的数组元素表示法中的第一种求实型二维数组a[3][3]两条对角线元素之和。

(3)用指针变量编写下列字符串处理函数:

●字符串拼接函数,voidstr_cat(char*p1,char*p2){函数体}

●字符串比较函数,intstr_cmp(char*p1,*char*p2){函数体}

●取字符串长度函数,intstr_len(char*p){函数体}

在主函数中输入两个字符串,对这两个字符串进行比较,并输出比较结果。

然后将两个字符串进行拼接,输出拼接后的字符串及其长度。

2.程序

(1)#include

#defineN10

voidmain(void)

{floata[N],sum,*p;

cout<<"Inputdata:

";

for(p=a;p

cin>>*p;

for(p=a,sum=0;p

sum=sum+*p;

cout<<"average="<

}

(2)#include

voidmain(void)

{floata[3][3],sum=0;

inti,j;

cout<<"InputData:

\n";

for(i=0;i<3;i++)

for(j=0;j<3;j++)

cin>>*(a[i]+j);//用行首地址+位移,即a[i]+j

for(i=0;i<3;i++)

for(j=0;j<3;j++)

if(i==j||i+j==2)

sum+=*(a[i]+j);

cout<<"sum="<

}

(3)#include

intstr_cmp(char*p1,char*p2)

{while(*p1==*p2)

{p1++;

p2++;

}

if(*p1>*p2)

return1;

elseif(*p1==*p2)

return0;

else

return-1;

}

voidstr_cat(char*p1,char*p2)

//将p2所指的字符串连接到p1所指的字符串串末尾

{while(*p1++);

p1--;

while(*p2!

=0)

*p1++=*p2++;

*p1=0;

}

intstr_len(char*p)

{intlength=0;

while(*p!

=0)

{p++;

length++;

}

returnlength;

}

voidmain(void)

{chars1[20],s2[40];

cout<<"InputString1:

\n";

cin>>s1;

cout<<"InputString2:

\n";

cin>>s2;

if(str_cmp(s1,s2)==1)

cout<<"String1>String2"<

elseif(str_cmp(s1,s2)==-1)

cout<<"String2

else

cout<<"String1=String2"<

str_cat(s1,s2);

cout<<"String1+String2="<

cout<<"String1Length="<

}

结果

分析

程序运行结果如图所示:

分析:

编写程序,用4种方式求整型一维数组a[10]的平均值。

4种方式是指4种不同的数组元素表达方式。

编写程序,用表7.1中的数组元素表示法中的第一种求实型二维数组a[3][3]两条对角线元素之和。

用指针变量编写下列字符串处理函数:

字符串拼接函数,voidstr_cat(char*p1,char*p2){函数体};字符串比较函数,intstr_cmp(char*p1,*char*p2){函数体};取字符串长度函数,intstr_len(char*p){函数体}。

在主函数中输入两个字符串,对这两个字符串进行比较,并输出比较结果。

然后将两个字符串进行拼接,输出拼接后的字符串及其长度如图所示。

收获

体会

收获:

通过本次实验的三个小练习,我熟练掌握了一维、二维数组指针变量的定义格式与引用方法;字符串指针变量的定义格式与引用方法;学会用数组指针变量完成数组元素的数据处理,如求和、求最大值、最小值等;学会用字符串指针变量处理字符串的比较、连接与测长度;掌握指针与数组作为函数参数的程序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1