C++程序设计实验指导书Word文件下载.docx
《C++程序设计实验指导书Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++程序设计实验指导书Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
1.了解和熟悉C++程序开发环境。
2.熟悉C++程序设计中的基本语言。
3.掌握条件语句的使用。
4.掌握循环语言的使用。
5.能够根据具体问题编写相应程序。
二、实验内容与要求
1.熟悉C++开发环境,建立C++源文件,利用C++的控制台编写C++程序。
2.建立自己的工作目录,例如D:
\user。
以后的C++程序和过程文件均放置在此目录下。
输入一个源程序,学习编辑、编译、运行程序的方法。
例如
//例2.1文件f0201.cpp如下:
//=====================================
//f0201.cpp
//变量定义
#include<
iostream>
usingnamespacestd;
//-------------------------------------
voidmain(){
doubleradius;
//定义语句
cout<
<
"
Pleaseinputradius:
"
;
cin>
>
radius;
doubleresult=radius*radius*3.14*4;
Theresultis"
result<
\n"
}//====================================
首先编译该程序,若出现错误或警告,调试程序后再编译,若没有错误,可运行该程序。
本程序利用了C++中的输入与输出指令,作用是根据输入的球体半径求出该球体的表面积。
3.熟悉循环语句,输出顺序英文字母三角形,即例2-3。
4.熟悉条件语句,判断一个数是否是素数。
5.利用C++编写程序输出下列图形
*
***
*****
*******
*
实验二函数控制
1.了解函数参数传递的方法。
2.了解函数指针的概念及使用。
3.掌握递归函数的使用。
4.熟练函数重载的方法。
5.能自己编写函数语句,实现特定功能。
1.分析下列程序并给出结果。
vector>
voidprint(vector<
int>
&
a){
for(inti=0;
i<
a.size();
++i)
a[i]<
endl;
}//------------------------------------
vector<
add(vector<
a,vector<
b){
a[i]+=b[i];
//?
returna;
intmain(){
intaa[]={3,2,1,2,3,2,1},bb[]={6,3,1,1,4,2,3};
vector<
a(aa,aa+7),b(bb,bb+7);
c=add(a,b);
print(a);
print(b);
print(c);
}
2.利用递归函数实现n!
,并输出结果。
intf(intn){
if(n==1)return1;
returnn*f(n-1);
}
voidmain()
{
intm;
pleaseinputanumber:
m;
f(m);
f(m)<
3.编写一个函数,根据输入的两个整数a和b,输出它们的平方和。
intf(inta,intb){
returna*a+b*b;
intm,n;
pleaseinputtwonumbers:
n;
f(m,n);
f(m,n)<
4.编写程序,根据输入的三个整数a、b、c,输出它们中的最大值。
inta,b,c;
pleaseinputthreenumbers:
a;
b;
c;
(((a>
b?
a:
b)>
c)?
(a>
b):
c)<
5.编写一个函数,将输入的两个整数交换后输出。
voidf(int&
a,int&
b)
{
inttemp;
temp=a;
a=b;
b=temp;
m="
n="
m<
n="
n<
实验三类与继承
1.了解C++的程序结构。
2.掌握全局数据和静态数据的使用。
3.掌握类的定义。
4.了解成员函数的定义。
5.
1.运行下列程序,输入多个字符,并保存输出结果。
inlineboolisnumber(char);
//内联声明
for(charc;
c&
c!
='
\n'
)
if(isnumber(c))cout<
youenteredadigit.\n"
elsecout<
youenteredanon-digit.\n"
boolisnumber(charch){
returnch>
0'
&
ch<
9'
?
1:
0;
2.分析下列程序并给出结果。
voidfunc();
intn=1;
inta=0,b=-6;
a="
a<
b="
b<
n="
func();
voidfunc(){
staticinta=2;
intb=5;
a+=2,b+=5;
n+=8;
3.分析下列程序,并输出结果。
iomanip>
classDate{
intyear,month,day;
public:
voidset(inty,intm,intd);
//赋值操作
boolisLeapYear();
//判断闰年
voidprint();
//输出日期
};
//-------------------------------
voidDate:
:
set(inty,intm,intd){
year=y;
month=m;
day=d;
}//--------------------------------
boolDate:
isLeapYear(){
return(year%4==0&
year%100!
=0)||(year%400==0);
print(){
setfill('
);
setw(4)<
year<
'
-'
setw
(2)<
month<
day<
'
Dated;
d.set(2008,10,6);
if(d.isLeapYear())
d.print();
4.针对二维坐标系上的实数矢量Point类,设计矢量类的减法和乘法操作。
(可参考例子f0805)
classPoint{
intx,y;
voidset(inta,intb){x=a,y=b;
voidprint()const{cout<
("
x<
"
y<
)\n"
friendPointoperator-(constPoint&
a,constPoint&
b);
friendPointoperator*(constPoint&
};
Pointoperator-(constPoint&
Points;