《面向对象程序设计》实验指导书(2013版)

  • 格式:doc
  • 大小:93.50 KB
  • 文档页数:33

下载文档原格式

  / 33
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
return 0;
}
2.编写函数swap()实现两个int型数据的交换。要求:
(1)指针作参数
(2)引用作参数
参考程序如下:
#include <iostream>
using namespace std;
void swap1(int x, int y)
{
int t;
t=x, x=y, y=t;
}
void swap2(int *x, int *y)
主要仪器设备
电脑一台,安装Visual C++6.0
实验步骤
1.分析实验要求。
2.编写代码,参考程序如下:
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main()
{
int lines=1, chars=0;
3.swap()如果写在主函数之后,需要在头文件或主函数中声明。
实验报告要求
1.打印程序1和程序2运行的结果。
2.分析程序2的运行情况。
实验
实验
1.理解函数重载的概念;
2.掌握重载函数的编写。
实验内容
1.编写一个函数product(),通过函数重载完成两个不同类型(float型、两个复数型)数值的乘法运算。分别用两个float 型、两个复数型数测试该程序。
cout<<"Your age: "<<age<<endl;
}
void Birthday::Age()
{
int cYear, cMonth, cDay;
time_t nowTime;
struct tm *p;
time(&nowTime);
p=localtime(&nowTime);
cYear = 1900 + p->tm_year;
ifstream infile( "file.in" );
if (!infile)
{
cerr<<"Oops! Unable to open input file."<<endl;
return -1;
}
ofstream outfile( "file.out" );
if (!outfile)
{
cerr<<"Oops! Unable to open output file."<<endl;
{
int t;
t=*x, *x=*y, *y=t;
}
void swap3(int *x, int *y)
{
int *t;
t=x, x=y, y=t;
}
void swap4(int &x, int &y)
{
int t;
t=x, x=y, y=t;
}
int main()
{
int x, y;
x=3, y=5; swap1(x, y);
if (word == '\n')
{
text.push_back( lines+'0');
text.push_back( ' ' );
lines++;
}
}
for (int i=0; i<text.size(); i++)
outfile<<text[i];
cout<<"There are "<<chars<<" chars in the file."<<endl;
2.熟悉各种成员函数包括构造函数、析构函数、内嵌函数的定义与使用。
实验内容
1.设计一个Birthday类,包含数据成员year、month、day,成员函数Print()和Age(),计算年龄并输出。构造一个Birthday的对象进行测试。
2.改正以下程序中的错误,并分析错误原因。提示:该程序中point类的构造函数定义不正确,在main()中对数据成员的访问不正确。
age--;
}
int main()
{
Birthday birth;
cout<<"Input your birthday: ";
cin>>birth.year>>birth.month>>birth.day;
cMonth = 1+p->tm_mon;
cDay = p->tm_mday;
cout<<"Today: ";
cout<<cYear<<'-'<<cMonth<<'-'<<cDay<<endl;
age = cYear-year;
if (cMonth<month)
age--;
else if (cMonth==month || cDay<day)
using namespace std;
int main()
{
string firstname;
cout<<"Please enter your firstname:"<<endl;
cin>>firstname;
cout<<"Hello "<<firstname
<<" ... and goodbye!"<<endl;
}
bool find_element(int n, int e)
{
if (e>=0 && e<=n)
return true;
else
return false;
}
int main()
{
int a[]={1,3,5,7,9,11,13,15,17,19};
int m=10;
int e, n;
while( true )
参考程序如下:
#include <iostream>
using namespace std;
struct complex
{
double Real;
double Image;
};
float product(float x, float y)
{
return ( x*y );
}
struct complex product(struct complex x, struct complex y)
3.使用函数重载时,不要使用默认的参数值。
实验报告要求
打印程序1和程序2的运行结果。
实验
实验目的及要求
1.掌握文件流的打开、关闭及使用的使用方法;
2.解文本文件流与二进制文件流在操作上的区别。
实验内容
从输入文件“file.in”中读入文件内容,为每一行加上行号后,输出到输出文件“file.out”中,最后输出所读文件总的字符数。
cout<<" x="<<x<<" y="<<y<<endl;
x=3, y=5; swap2(&x, &y);
cout<<" x="<<x<<" y="<<y<<endl;
x=3, y=5; swap3(&x, &y);
cout<<" x="<<x<<" y="<<y<<endl;
x=3, y=5; swap4(x, y);
<<n.Real<<"+"<<n.Image<<"i"<<" 的乘积为:"
<<p.Real<<"+"<<p.Image<<"i"<<endl;
return 0;
}
2.编写一个函数find_element(),通过函数重载实现以下功能:
(1)从一个数组中查找某个元素;
(2)由用户输入一个整数n和一个整数e,判断e是否属于区间[0,n];
{
cout<<"请输入n和e:";
cin>>n>>e;
if (n<0) break;
if ( find_element(a, m, e) )
cout<<e<<" 是数组中的一个元素。"<<endl;
else
cout<<e<<" 不是数组中的一个元素。"<<endl;
if ( find_element(n, e) )
cout<<e<<" 位于 [0,"<<n<<"] 中。"<<endl;
else
cout<<e<<" 不在 [0,"<<n<<"] 中。"<<endl;
}
return 0;
}
注意事项
1.相同函数名称、不同参数类型或个数的若干个函数构成函数重载。
2.函数名称相同,参数个数和类型相同,但是参数名或返回值类型不同的若干个函数不构成函数重载。
2.编写函数swap()实现两个int型数据的交换。要求:
(1)指针作参数
(2)引用作参数
主要仪器设备
电脑一台,安装Visual C++6.0
实验步骤
1.编写程序,从标准输入设备输入用户的名字,从标准输出设备输出欢迎信息。
参考程序如下:
#include <iostream>
#include <string>
}
主百度文库仪器设备
电脑一台,安装Visual C++6.0
实验步骤
1.设计一个Birthday类,包含数据成员year、month、day,成员函数Print()和Age(),计算年龄并输出。构造一个Birthday的对象进行测试。
参考程序如下:
#include <iostream>
#include <iomanip>
using namespace std;
class Birthday
{
public:
int year, month, day, age;
void Print();
void Age();
};
void Birthday::Print()
{
cout<<"Your birthday: "
<<year<<'-'<<month<<'-'<<day<<endl;
面向对象程序设计(C++)
实验指导书
邵阳学院信息工程系
陈智
2013年9月
实验
实验目的及要求
1.熟悉VC++的集成开发环境,学习运行一个C++程序的步骤。
2.熟悉C++的运算符、表达式、语句的使用规则。
3.掌握变量命名规则,学会变量的定义和使用。
4.掌握函数的编写方法和基本规则。
实验内容
1.编写程序,从标准输入设备输入用户的名字,从标准输出设备输出欢迎信息。
{
struct complex r;
r.Real = x.Real*y.Real - x.Image*y.Image;
r.Image = x.Real*y.Image + x.Image*y.Real;
return r;
}
int main()
{
float x=11.2, y=33.4, z;
struct complex m, n, p;
#include<iostream>
using namespace std;
class point
{
int x1,x2;
public:
point(int x,int y);
};
void main()
{
point data(5,5);
cout<<data.x1<<endl;
cout<<data.x2 <<endl;
return 0;
}
3.编译、调试、运行程序。
注意事项
1.需要首先建立好文件“file.in”,并在其中输入多行文字。
2.保证磁盘有足够的空间保存输出文件“file.out”。
实验报告要求
1.记录文件“file.in”的内容。
2.记录文件“file.out”的内容。
实验
实验
1.掌握C++类的概念和基本组成、类的使用方法以及静态数据成员的使用;
m.Real=1.5, m.Image=2.2;
n.Real=3.6, n.Image=7.9;
z=product(x, y);
p=product(m, n);
cout<<"实数 "<<x<<" 和 "<<y<<" 的乘积为:"<<z<<endl;
cout<<"复数 "<<m.Real<<"+"<<m.Image<<"i"<<" 和 "
return -2;
}
char word;
vector<char> text;
text.push_back( lines+'0');
text.push_back( ' ' );
lines++;
while ( infile.get(word) )
{
chars++;
text.push_back( word );
参考程序如下:
#include <iostream>
using namespace std;
bool find_element(int arr[], int m, int e)
{
for (int i=0; i<m; i++)
if (arr[i]==e)
return true;
return false;
cout<<" x="<<x<<" y="<<y<<endl;
return 0;
}
注意事项
1.创建工程时,也可以选择A“Hello World!”application,在集成开发环境提供的代码框架上进行修改。
2.对字符串的操作可以使用字符数组实现,此时,为了保证输入的用户名不超过设定的数组上限,可以使用setw()函数。
2.编写一个函数find_element(),通过函数重载实现以下功能:
(1)从一个数组中查找某个元素;
(2)由用户输入一个整数n和一个整数e,判断e是否属于区间[0,n]。
主要仪器设备
电脑一台,安装Visual C++6.0
实验步骤
1.编写一个函数product(),通过函数重载完成两个不同类型(float型、两个复数型)数值的乘法运算。分别用两个float 型、两个复数型数测试该程序。