C++实验报告1.docx
- 文档编号:5482466
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:46
- 大小:184.76KB
C++实验报告1.docx
《C++实验报告1.docx》由会员分享,可在线阅读,更多相关《C++实验报告1.docx(46页珍藏版)》请在冰豆网上搜索。
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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实验 报告