C++实验报告Word文档格式.docx
《C++实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《C++实验报告Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
2.掌握C++函数的定义方法、函数的调用方法、参数说明以及返回值。
掌握函数的嵌套调用及递归调用的设计方法;
3.在编程过程中加深理解函数调用的程序设计思想。
三、主要仪器设备及耗材
PC微机
Windows操作系统
VC程序集成环境
四、实验步骤
1.1当a=1,b=2,c=3时,编程求出
a^b&
-c
a&
b|c
!
a|a
~a|a
a^a
a>
>
2
以上表达式的值
1.2实验代码
#include<
iostream>
usingnamespacestd;
intmain()
{
intscore;
cout<
<
"
你考了多少分?
:
;
cin>
score;
if(score>
=100||score<
=0)
输入有误,程序关闭"
endl;
}
else{
=90)
优秀"
elseif(score>
=80)
良"
=60)
中"
else
差"
return0;
}2.1编程实现这样一个完整的程序,运行时向用户提问“你考试考了多少分?
(0~100),接受输入后判断其等级并显示出来。
规则如下:
等级
范围
优
90〈=分数〈=100
良
80〈=分数〈90
中
60〈=分数〈80
差
0〈=分数〈60
2.2试验代码:
3.1用递归方法编写程序求Fibonacci级数,公式为:
fib(n)=fib(n-1)+fib(n-2),n>
2;
fib
(1)=fib
(2)=1;
观察递归调用的过程。
3.2试验代码:
intfib(intn)
intf;
if(n==1)
{f=1;
elseif(n==2)
f=1;
elseif(n>
2)
{f=fib(n-1)+fib(n-2);
returnf;
voidmain()
intn,fib(intn),s;
Enterapisitiveinteger:
n;
s=fib(n);
fib("
n<
)"
="
s<
五、实验数据及处理结果
1、
2、
3、
六、思考讨论题或体会或对改进实验的建议
1.小结多重选择结构。
2.递归调用如何才是有意义的?
运用if…elseif语句比switch语句要简便的多,并且其后面的表达式没有过多要求,而递归调用要注意返回值。
七、参考资料
《面向语言程序化设计》教材
一、实验项目名称类与对象
1、学习类与对象的定义和使用方法
2、学习数据成员和成员函数的访问方式
3、理解构造函数和析构函数的定义与执行过程。
DOS操作系统或Windows操作系统
visualC++程序集成环境
1.编程实现:
编写一个时钟类的完整程序,数据成员有hour,minute,seconds;
函数成员有:
①构造函数;
②setTime函数,设置新时间;
③showTime函数,显示当前时间。
要求程序含有主函数。
代码:
classClock
public:
Clock(inth=0,intm=0,ints=0)
{
hour=h;
minute=m;
second=s;
}
voidsetHour(){cin>
hour;
voidsetMinute(){cin>
minute;
voidsetSecond(){cin>
second;
voidshow()
cout<
hour<
minute<
second<
intgetHour(){returnhour;
}intgetMinute(){returnminute;
intgetSecond(){returnsecond;
private:
inthour,minute,second;
};
Clocka;
a.getHour()<
a.getMinute()<
a.getSecond()<
a.show();
2.编程实现:
构建一个类,含有三个数据成员,分别表示盒子的三条边长;
含有一个成员函数vol(),用来计算盒子的体积。
构造函数,
代码:
#include<
classbox
voidsetbox(floatNc,floatNk,floatNg);
voidshowv();
floatc,k,g;
voidbox:
setbox(floatNc,floatNk,floatNg)
{c=Nc;
k=Nk;
g=Ng;
showv()
floats;
s=c*k*g;
盒子的体积s="
{boxNbox;
floata,b,c;
请分别输入盒子的长宽高:
b>
c;
Nbox.setbox(a,b,c);
Nbox.showv();
3.编程实现:
下面是一个计数器类的定义,请完成该类的实现。
classcounter
{intvalue;
counter(intnumber);
voidincrement();
//给原值加1
voiddecrement();
//给原值减1
intgetvalue();
//取得计数器值
intprint();
//显示计数器值
代码:
#include<
counter(intnumber=0){value=number;
voidincrement(){value++;
}//给原值加1
voiddecrement(){value--;
}//给原值减1
intgetvalue(){returnvalue;
}//取得计数器值
voidprint(){cout<
value="
value<
}//显示计数
intvalue;
counterc(6);
c.getvalue()<
c.print();
c.increment();
c.decrement();
通过本次实验,我对类的应用以及各种文件间的关系有了进一步了解,对枚举也有了初步认识,类是C++中的基本但很重要的知识点,学好这点会对以后的C++学习有重要的帮助。
一、实验项目名称
继承和派生
1.理解掌握类的继承和派生等
基本概念。
2.掌握不同继承方式下对基类成员的访问控制,学习利用虚基类解决二义性问题。
先构造点类,再分别利用公有、私有、保护等继承方式构造一个矩形类,求出其面积。
构造一个销售经理类,使之同时具有销售人员和管理人员的特点,编程演示对其的管理。
一个公司管理系统至少有销售人员和管理人员两类人员,假设管理人员的数据有工资号、姓名、年龄、性别、职位和部门,销售人员的数据有工号、姓名、年龄、性别、部门和年薪(底薪和提成)、业绩等信息。
编程完成销售人员和管理人员档案数据的输入和显示,要求如下:
设计三个类销售经理类、销售人员和管理人员。
3、编程实现:
已知有一个类figure:
classfigure
{public:
doubleheight;
doublewidth;
要求再建立两个继承figure的派生类square与triangle,让每一个派生类都包含一个函数area(),分别用来显示矩形与三角形的面积。
1.代码
cmath>
classPoint
{
voidInitP(floatxx=0,floatyy=0){X=xx;
Y=yy;
}
floatGetX(){returnX;
floatGetY(){returnY;
//私有数据成员
floatX,Y;