当前位置:
文档之家› 《面向对象程序设计》实验指导书(2013版)
《面向对象程序设计》实验指导书(2013版)
}
bool find_element(int n, int e)
{
if (e>=0 && e<=n)
return true; 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)
参考程序如下:
#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;
using namespace std;
int main()
{
string firstname;
cout<<"Please enter your firstname:"<<endl;
cin>>firstname;
cout<<"Hello "<<firstname
<<" ... and goodbye!"<<endl;
age--;
}
int main()
{
Birthday birth;
cout<<"Input your birthday: ";
cin>>birth.year>>birth.month>>birth.day;
面向对象程序设计(C++)
实验指导书
邵阳学院信息工程系
陈智
2013年9月
实验
实验目的及要求
1.熟悉VC++的集成开发环境,学习运行一个C++程序的步骤。
2.熟悉C++的运算符、表达式、语句的使用规则。
3.掌握变量命名规则,学会变量的定义和使用。
4.掌握函数的编写方法和基本规则。
实验内容
1.编写程序,从标准输入设备输入用户的名字,从标准输出设备输出欢迎信息。
3.使用函数重载时,不要使用默认的参数值。
实验报告要求
打印程序1和程序2的运行结果。
实验
实验目的及要求
1.掌握文件流的打开、关闭及使用的使用方法;
2.解文本文件流与二进制文件流在操作上的区别。
实验内容
从输入文件“file.in”中读入文件内容,为每一行加上行号后,输出到输出文件“file.out”中,最后输出所读文件总的字符数。
2.编写一个函数find_element(),通过函数重载实现以下功能:
(1)从一个数组中查找某个元素;
(2)由用户输入一个整数n和一个整数e,判断e是否属于区间[0,n]。
主要仪器设备
电脑一台,安装Visual C++6.0
实验步骤
1.编写一个函数product(),通过函数重载完成两个不同类型(float型、两个复数型)数值的乘法运算。分别用两个float 型、两个复数型数测试该程序。
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);
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;
3.swap()如果写在主函数之后,需要在头文件或主函数中声明。
实验报告要求
1.打印程序1和程序2运行的结果。
2.分析程序2的运行情况。
实验
实验
1.理解函数重载的概念;
2.掌握重载函数的编写。
实验内容
1.编写一个函数product(),通过函数重载完成两个不同类型(float型、两个复数型)数值的乘法运算。分别用两个float 型、两个复数型数测试该程序。
{
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;
cout<<" x="<<x<<" y="<<y<<endl;
return 0;
}
注意事项
1.创建工程时,也可以选择A“Hello World!”application,在集成开发环境提供的代码框架上进行修改。
2.对字符串的操作可以使用字符数组实现,此时,为了保证输入的用户名不超过设定的数组上限,可以使用setw()函数。
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 );
2.熟悉各种成员函数包括构造函数、析构函数、内嵌函数的定义与使用。
实验内容
1.设计一个Birthday类,包含数据成员year、month、day,成员函数Print()和Age(),计算年龄并输出。构造一个Birthday的对象进行测试。
2.改正以下程序中的错误,并分析错误原因。提示:该程序中point类的构造函数定义不正确,在main()中对数据成员的访问不正确。
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)
#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;
{
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) )
<<n.Real<<"+"<<n.Image<<"i"<<" 的乘积为:"
<<p.Real<<"+"<<p.Image<<"i"<<endl;