C++上机实验报告.docx

上传人:b****5 文档编号:7450667 上传时间:2023-05-11 格式:DOCX 页数:35 大小:150.55KB
下载 相关 举报
C++上机实验报告.docx_第1页
第1页 / 共35页
C++上机实验报告.docx_第2页
第2页 / 共35页
C++上机实验报告.docx_第3页
第3页 / 共35页
C++上机实验报告.docx_第4页
第4页 / 共35页
C++上机实验报告.docx_第5页
第5页 / 共35页
C++上机实验报告.docx_第6页
第6页 / 共35页
C++上机实验报告.docx_第7页
第7页 / 共35页
C++上机实验报告.docx_第8页
第8页 / 共35页
C++上机实验报告.docx_第9页
第9页 / 共35页
C++上机实验报告.docx_第10页
第10页 / 共35页
C++上机实验报告.docx_第11页
第11页 / 共35页
C++上机实验报告.docx_第12页
第12页 / 共35页
C++上机实验报告.docx_第13页
第13页 / 共35页
C++上机实验报告.docx_第14页
第14页 / 共35页
C++上机实验报告.docx_第15页
第15页 / 共35页
C++上机实验报告.docx_第16页
第16页 / 共35页
C++上机实验报告.docx_第17页
第17页 / 共35页
C++上机实验报告.docx_第18页
第18页 / 共35页
C++上机实验报告.docx_第19页
第19页 / 共35页
C++上机实验报告.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++上机实验报告.docx

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

C++上机实验报告.docx

C++上机实验报告

成绩

 

辽宁工程技术大学

上机实验报告

 

课程名称

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

学院

软件学院

专业

嵌入式软件

班级

嵌软12-1

学号

姓名

日期

2015.01.17-2015.01.18

 

实验一

熟悉VC++编程环境

实验

目的

(1)熟悉VC++编程开发环境。

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

(3)掌握简单的出入输出程序编写,调试,运行。

实验

准备

(1)准备下载安装一个VC++编程软件。

(2)复习书本前三章,回顾C++编程基本原理及程序格式。

(3)从书上挑选源程序作为实验程序。

(4)准备好新建工程,设置文件保存地址。

实验

过程

1、程序一

1.实验内容:

新建c++源程序,使之输出一个字符串。

2.程序代码:

#include

voidmain()

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

cout<<"Hello!

"<<'\n';

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

}

3.调试,运行,分析结果。

2、程序二

1.实验内容:

编写一个C++程序,要求输入一个矩形的长和宽,输出面积和周长。

2.程序代码:

#include

voidmain()

{floata,b,L,S;

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

"<

cin>>a>>b;

L=(a+b)*2;

S=a*b;

cout<<"矩形的长与宽:

" <

cout<<"矩形的周长:

" <

cout<<"矩形的面积:

" <

}

3.调试,运行,分析结果。

结果

分析

1、程序结果

1.程序一运行及结果截图:

图1-1程序一运行前截图

图1-2程序一运行结果截图

2.程序二运行及结果截图:

图1-3程序二运行前截图

图1-4程序二运行结果截图

2、程序分析

1.程序一结果分析:

这是一个简单的纯输出小程序,双引号内的内容是直接原文输出,而没有引号的输出变量的值。

”/n“和c语言一样是换行,c++中也可以用endl。

因此结果显然就是Hello!

,上下一排星号为了美观。

2.程序二结果分析:

这是一个简单的算法求面积和周长的程序,有出入有输出。

运行时会输出一短文字,让你从键盘输入长和宽,输入4空格再输入5后回车便得到结果,对应长宽,面积和周长。

收获

体会

(1)初步学会VC++开发环境中,简单程序运行的方法。

(2)熟悉了VC++编程环境,会一些简单操作。

(3)在编程中遇到一些问题,格式必须规范,不然提示出错,给不到结果。

(4)vc++编程环境其实和c语言的差不多,严格的来说c++是更完善的c语言,因此学好c语言便是为c++打下基础,c++的学习便是知识的扩展提高。

教师

评语

 

实验二

带有循环语句的C++程序

实验

目的

(1)学会编写带有简单循环语句的c++程序,能看懂带有复杂循环的c++程序。

(2)掌握直到和当型循环。

(3)掌握do…while,for,do…while语句的使用方法。

实验

准备

(1)复习c++语言程序设计的第二章,回顾算法章节的循环结构。

(2)准备上机源程序,并预计结果。

(3)画出对应的程序流程图。

实验

过程

一、程序一

1.实验内容:

输入一行字符,分别统计出其中英文字母、空格、数字字符和其它字符的个数。

2.程序代码:

#include

voidmain(void)

{charc;

inti,letter=0,number=0,blank=0,other=0;

cout<<"请输入字符串:

";

cin.get(c);//get(c)函数用于从键盘上提取一个字符

while(c!

='\n')

{if('a'<=c&&c<='z'||'A'<=c&&c<='Z')letter++;

elseif('0'<=c&&c<='9')number++;

elseif(c=='')blank++;

elseother++;

cin.get(c);

}

cout<<"letter="<

cout<<"number="<

cout<<"blank="<

cout<<"other="<

}

3.调试,运行,分析结果。

2、程序二

1.实验内容:

设有一个数列,它的前四项为0、0、2、5,以后每项分别是其前四项之和,编程求此数列的前20项。

2.程序代码:

#include

voidmain(void)

{longf1,f2,f3,f4,i;

f1=0;f2=0;f3=2;f4=5;

for(i=1;i<=5;i++)

{cout<

f1=f1+f2+f3+f4;

f2=f2+f3+f4+f1;

f3=f3+f4+f1+f2;

f4=f4+f1+f2+f3;

}

}

3.调试,运行,分析结果。

3、程序三

1.实验内容:

求出1~599中能被3整除,且至少有一位数字为5的所有整数。

如15、51、513均是满足条件的整数。

2.程序代码:

#include

voidmain()

{inti,a,b,c,j=1;

for(i=1;i<=599;i++)

if(i%3==0)

{a=i/100;

b=i%100/10;

c=i%100%10;

if((a==5)||(b==5)||(c==5))

{cout<

if(j%5==0)cout<

j++;

}

}

cout<

}

3.调试,运行,分析结果。

结果

分析

1、运行结果

1.程序一运行结果截图:

图2-1程序一运行结果截图

2.程序二运行结果截图:

图2-2程序二运行结果截图

3.程序三运行结果截图:

图2-3程序三运行结果截图

2、程序分析

1.程序一结果分析:

这个实验是用while语句统计出一行字符里字母、数字、空格及其他的个数。

开始分别初始化为0,当读的字符不是”\n“,进入判断语句,根据ASCLL码判断是字母还是数字,空格则是空字符,否则就是其他。

出现运行界面时,光标闪烁,提示输入字符串,回车得到统计结果。

2.程序二结果分析:

这个实验用for循环5次,每次按行输出4个数满足后一个数是前4个数的和,从而巧妙的输出前20项。

其中用\t和endl控制输出格式。

整个代码简单明了,结构清晰。

3.程序三结果分析:

这个实验用for循环,并用判断语句if选出符合条件的数字输出。

用除和取余判定数是否符合条件。

运行时,系统则自动算出符合条件的数并输出。

收获

体会

(1)掌握了直到和当循环的条件及区别。

(2)for循环用得比较多,应为简单明了。

(3)当遇到循环语句时特别要注意边界值的等号。

(4)学会判断字符串中的字符是数还是字母用ASCLL码很方便。

(5)循环经常和判断语句连用,以选出合适的。

教师

评语

 

实验三

熟悉VC++编程环境

实验

目的

(1)掌握一维数组的定义、初始化赋值、数组元素的引用方法。

(2)掌握二维数组的定义、初始化赋值、数组元素的引用方法。

(3)学会求数组元素中的最大值、最小值、平均值的方法。

实验

准备

(1)复习c++语言程序设计第六章数组相关知识,回顾数组的定义及初始化方法。

(2)寻找相关源程序作为实验代码。

实验

过程

一、程序一

1.实验内容:

某班第1组有10个学生,进行了C++考试,编写程序将考试成绩输入一维数组,并求出C++的平均成绩及优(90~100)、良(80~89)、中(70~79)、及格(60~69)与不及格(0~59)学生的人数。

实验数据:

90、85、80、75、70、65、60、55、50、45

2.程序代码:

#include

#include

#defineN10

voidmain(void)

{floatsum=0.0;

inti,b[]={0,0,0,0,0},a[N];

cout<<"Input10score:

\n";

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

cin>>a[i];

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

{sum=sum+a[i];

switch(a[i]/10)

{case10:

case9:

b[0]++;break;

case8:

b[1]++;break;

case7:

b[2]++;break;

case6:

b[3]++;break;

default:

b[4]++;

}

}

cout<<"优:

"<

cout<<"良:

"<

cout<<"中:

"<

cout<<"及格:

"<

cout<<"不及格:

"<

cout<<"平均分:

"<

cout<

}

3.调试,运行,分析结果。

2、程序二

1.实验内容:

输入一个5行5列的二维数组,编程实现:

求出其中的最大值和最小值及其对应的行列位置;

求出对角线上各元素之和。

实验数据:

12345

23456

34567

45678

56789

2.程序代码:

#include

#include

#defineN5

voidmain(void)

{floata[N][N],max,min,sum;

inti,j,r1=0,r2=0,c1=0,c2=0;

cout<<"Inputa[5][5]:

"<

for(i=0;i

for(j=0;j

cin>>a[i][j];

max=min=a[0][0];

sum=0;

for(i=0;i

for(j=0;j

{if(a[i][j]>max)

{max=a[i][j];

r1=i;c1=j;

}

elseif(a[i][j]

{min=a[i][j];

r2=i;c2=j;

}

if(i==j||i+j==N-1)sum+=a[i][j];

}

cout<<"max="<

cout<<"min="<

cout<<"sum="<

}

3.调试,运行,分析结果。

结果

分析

1、运行结果

1.程序一运行结果截图:

图3-1程序一运行结果截图

2.程序二运行结果截图:

图3-2程序二运行结果截图

2、程序分析

1.程序一结果分析:

本程序是个简单的成绩统计程序。

用case语句给数组b[i]赋值,分5个等级。

由于初始化都为1,每有一个在相应区间的成绩时对应元素加1,这样就知道每个等级有多少人。

运行程序时,提示输入10个成绩,输完回车便得到如上图结果。

2.程序二结果分析:

本程序涉及到二维数组求最大值、最小值问题。

用双重for循环给数组赋值,再用双重for循环,擂台法求出最大值和最小值,还有对角线元素的值,然后再通过cout将结果输出。

运行时会先提示输入二维数组,输入数组时一行间元素空格隔开,行间回车,输完回车,得到上图结果。

收获

体会

(1)通过这次试验,对数组有了更深的认识,加强了数组初始化的方法的记忆。

(2)多维数组其实就是特殊的一维数组,只不过结构上有所不同。

(3)学会了数组元素中的最大值、最小值、平均值的方法;

(4)数组在编程的作用非常大,应用广,同时有了数组这样的数据群体,使得编程方便许多。

教师

评语

 

实验四

类与对象

实验

目的

(1)学会类与对象的声明及调用。

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

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

(4)掌握类的成员函数的调用和类私有成员的定义。

实验

准备

(1)复习c++语言程序设计第四章类与对象,回顾相关内容。

(2)准备上机源程序,作为实验。

(3)找出程序用构造函数析构函数和拷贝构造函数部分,重点标记。

实验

过程

一、程序一

1.实验内容:

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

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

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

2.程序代码:

#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();

}

3.调试,运行,分析结果。

2、程序二

1.实验内容:

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

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

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

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

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

2.程序代码:

#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<<"(Right,Bottom)=("<

cout<<"Diagonal="<

}

};

voidmain(void)

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

r1->Show();

deleter1;

}

3.调试,运行,分析结果。

结果

分析

1、运行结果

1.程序一运行结果截图:

图4-1程序一运行结果截图

2.程序二运行结果截图:

图4-2程序二运行结果截图

2、程序分析

1.程序一结果分析:

这个程序定义了一个复数类,类里有俩个构造函数,一个默认的,一个带参数的,除此之外还定义了一个拷贝构造函数。

类的成员函数display实现了复数的实部和虚部输出。

而主函数定义了3个类对象,c1,c2,c3,分别带参数,不带参数和拷贝函数初始化。

程序运行时,结果是将3个复数的实部和虚部显示出来。

2.程序二结果分析:

本程序定义了一个矩形类,类里定义了矩形上下左右边的坐标,构造函数和拷贝构造函数。

Diagonal函数求出矩形对角线的长度,show函数则显示矩形左上和右下点的坐标。

程序运行时直接输出坐标和对角线长度。

收获

体会

(1)更加熟练类和对象的定义,构造函数的方法和析构函数。

(2)一个非抽象类一般都有构造函数和析构函数,如果没有程序则调用系统默认的构造函数和析构函数。

(3)类里分三种成员,私有,保护和公共,使得类与类间结构清晰,关系明确。

教师

评语

 

实验五

继承与派生

实验

目的

(1)理解继承与派生的概念。

(2)学会派生类定义格式与使用方法。

(3)掌握派生类构造函数的定义与使用方法。

实验

准备

(1)复习c++语言程序设计第七章,回顾继承和派生的概念。

(2)准备上机源程序,作为上机实验。

(3)挑出程序中基类和派生类,以示区别。

实验

过程

一、程序一

1.实验内容:

定义描述职工档案的类Archives,私有数据成员为职工号(No)、姓名(Name[8])、性别(Sex)、年龄(Age)。

成员函数有:

构造函数、显示职工信息的函数Show()。

再由职工档案类派生出职工工资类Laborage,在职工工资类Laborage中新增数据成员:

应发工资(SSalary)、社保金(Security)、实发工资(Fsalary),其成员函数有:

构造函数,计算实发工资的函数Count(),计算公式为:

实发工资=应发工资-社保金。

显示职工档案及工资的函数Display()。

在主函数中用Laborage类定义职工对象lab,并赋初始值(1001,”Cheng”,’M’,21,2000,100),然后显示职工档案与工资。

2.程序代码:

#include

#include

classArchives

{private:

intNo;

charName[8];charSex;intAge;

public:

Archives(intn,charname[],chars,inta)

{No=n;

strcpy(Name,name);

Sex=s;

Age=a;

}

voidShow(void)

{cout<<"No="<

<<"Sex="<

}

};

classLaborage:

publicArchives

{private:

floatSSalary,Security,Fsalary;

public:

Laborage(intn,charname[],chars,inta,floatss,floatse):

Archives(n,name,s,a)

{SSalary=ss;

Security=se;

}

voidCount()

{

Fsalary=SSalary-Security;

}

voidDisplay(void)

{Show();

cout<<"SSalary="<

<<'\t'<<"Fsalary="<

}

};

voidmain(void)

{Laboragelab(1001,"Zhou",'M',52,2000,200);

lab.Count();

lab.Display();

}

3.调试,运行,分析结果。

结果

分析

1、运行结果:

1.程序一运行结果截图:

图5-1程序一运行结果截图

2、程序分析

1.程序一结果分析:

本程序基类是职工类,派生出职工工资类。

基类私有成员里都是职工信息,成员函数show显示出职工信息。

派生类添加自己的工资数据成员,成员函数cout计算工资,最后输出工资。

程序运行时,直接显示出职工信息及工资,由于程序里对象已经初始化了,所以不用输入。

收获

体会

(1)熟悉了派生的类别,以及派生的定义和调用。

(2)c++与c的最大区别便是c++里面有类的定义,还有派生和继承,也就是面向对象。

(3)继承基类是“:

”,二函数定义是“:

”,俩者有所区别。

(4)c++和java很相似,但是继承定义不一样。

教师

评语

 

实验六

友元函数与运算符重载

实验

目的

(1)理解友元函数与运算符重载函数的概念。

(2)掌握友元函数的定义与使用方法。

(3)掌握运算符重载函数的定义与使用方法。

实验

准备

(1)复习c++ppt上友元函数和运算符重载的知识,回顾友元函数和运算符的定义及使用方法。

(2)准备上机源程序,作为实验内容。

实验

过程

1、程序一

1.实验内容:

定义一个人民币类Money,类中数据成员为元、角、分。

用成员函数与友元函数重载“――”运算符,实现人民币对象的减1运算。

在主函数中定义人民币对象m1=10元8角5分及对象m2、m3。

对m1作前置“――”并赋给m2。

对m1作后置“――”并赋给m3。

显示m1、m2、m3的结果。

2.程序代码:

#include

#include

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2