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;ifor(j=0;jcin>>a[i][j];
max=min=a[0][0];
sum=0;
for(i=0;ifor(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