《数据结构》实验一: VC编程工具的灵活使用
一..实验目的
复习巩固VC编程环境的使用,以及C++模板设计。
1.回顾并掌握VC单文件结构程序设计过程。
2.回顾并掌握VC多文件工程设计过程
3.掌握VC程序调试过程。
4.回顾C++模板和模板的程序设计。
二.实验时间
第二周第二次课。2个学时。
三.实验内容
1. 设计一个单文件结构程序完成从键盘输入两个数,输出二者的“和”和“积”的结果。要求如下:
1)设计函数来计算“和”和“积”,在主函数中调用,并能考虑重载函数,使整数和小数均能计算。
2)分别使用单步调试和断点调试来调试程序。并多次运行力求熟练调试方法。
2.使用函数的模板来实现上述功能。
3.使用一个类来实现上述功能。要求:
1)使用类模板
2)使用多文件:类的声明有头文件中;类的函数定义一个源文件中,在主程序文件中设计主函数程序,在实例化输出结果。
函数重载:
<span style="font-size:18px;">#include<iostream>
using namespace std;
void m(int,int);
void m(float,float);
int main()
{
int a,b;
float c,d;
cout<<"请输入两个整数:";
cin>>a>>b;
m(a,b);
cout<<"请输入两个小数:";
cin>>c>>d;
m(c,d);
return 0;
}
void m(int a,int b)
{
cout<<"这两个整数的和为:"<<a+b<<'\t'<<"积为:"<<a*b<<endl;
}
void m(float c,float d)
{
cout<<"这两个小数的和为:"<<c+d<<'\t'<<"积为:"<<c*d<<endl;
}</span>
调试结果:
<span style="font-size:18px;">#include<iostream>
using namespace std;
template <class T>
void i(T a,T b )
{
cout<<"这两个数的和为:"<<a+b<<'\t'<<"积为:"<<a*b<<endl;
}
int main()
{
int a,b;
float c,d;
cout<<"请输入两个整数:";
cin>>a>>b;
i(a,b);
cout<<"请输入两个小数:";
cin>>c>>d;
i(c,d);
return 0;
}
</span>
调试截图:
多文件结构:
头文件:mbhead.h
template<class T>
class S
{
T a; T b;
public:
S(T a,T b);
};
函数实现文件:mb.cpp
#include"mbhead.h"
template<class T>
S<T>::S(T a,T b)
{
cout<<"这两个数的和为:"<<a+b<<'\t'<<"积为:"<<a*b<<endl;
}
主函数文件:main.cpp
#include"mbhead.h"
#include"mb.cpp"
#include<iostream>
using namespace std;
int main()
{
int a,b;
float c,d;
cout<<"请输入两个整数:";
cin>>a>>b;
S<int> z(a,b);
cout<<"请输入两个小数:";
cin>>c>>d;
S<float> x(c,d);
return 0;
}
调试结果:
总结:
函数重载可以实现同名函数的合法利用.但是每种数据类型都得把代码再写一遍,太麻烦了;函数模板克服了这一确定,类模板只需指定一种数据类型,就可以创建一个实例化的模板类,太方便了.