实验目的
复习巩固VC编程环境的使用,以及C++模板设计。
1.回顾并掌握VC单文件结构程序设计过程。
2.回顾并掌握VC多文件工程设计过程
3.掌握VC程序调试过程。
4.回顾C++模板和模板的程序设计。
实验内容
1. 设计一个单文件结构程序完成从键盘输入两个数,输出二者的“和”和“积”的结果。要求如下:
1)设计函数来计算“和”和“积”,在主函数中调用,并能考虑重载函数,使整数和小数均能计算。
2)分别使用单步调试和断点调试来调试程序。并多次运行力求熟练调试方法。
2.使用函数的模板来实现上述功能。
3.使用一个类来实现上述功能。要求:
1)使用类模板
2)使用多文件:类的声明有头文件中;类的函数定义一个源文件中,在主程序文件中设计主函数程序,在实例化输出结果。
1.
程序代码:
#include<iostream>
using namespace std;
void add(int x,int y)
{
int sum=0;
sum=x+y;
cout<<"这两位数之和为"<<sum<<endl;
}
void add(double x,double y)
{
double sum=0;
sum=x+y;
cout<<"这两位数之和为"<<sum<<endl;
}
void accumulate(int x,int y)
{
int sum=0;
sum=x*y;
cout<<"这两位数之积为"<<sum<<endl;
}
void accumulate(double x,double y)
{
double sum=0;
sum=x*y;
cout<<"这两位数之积为"<<sum<<endl;
}
int main()
{
float a,b;
cout<<"请输入两位数:";
cin>>a>>b;
add(a,b);
accumulate(a,b);
return 0;
}
调试结果:
程序代码:
#include<iostream>
using namespace std;
template<class T>
T add(T x,T y)
{
T sum=0;
sum=x+y;
cout<<"这两位数之和为"<<sum<<endl;
return sum;
}
template<class T>
T accumulate(T x,T y)
{
T sum=0;
sum=x*y;
cout<<"这两位数之积为"<<sum<<endl;
return sum;
}
int main()
{
float a,b;
cout<<"请输入两位数:";
cin>>a>>b;
add(a,b);
accumulate(a,b);
return 0;
}调试结果:
3.
程序代码:
#include<iostream>
using namespace std;
int main()
{
float a,b;
cout<<"请输入两位数:";
cin>>a>>b;
tem<float>c;
c.add(a,b);
c.accumulate(a,b);
return 0;
}
template<class T>
class tem
{
public:
void add(T x, T y)
{
T sum=0;
sum=x+y;
cout<<"两个数的和为:"<<sum<<endl;
return sum;
}
void accumulate(T x,T y)
{
T sum=0;
sum=x*y;
cout<<"两个数的积为:"<<sum<<endl;
return sum;
}
};调试结果:错误
问题:在做第三个的时候遇到了一些困难,请老师帮我看看第三个类模板的问题所在。
VC编程实践:数据结构实验——模板与多文件工程应用
该实验旨在复习和巩固VC编程环境,包括单文件和多文件工程设计,以及C++模板设计。实验内容涉及设计计算两数之和与积的程序,使用单步调试和断点调试,以及通过函数模板和类模板实现。在实现类模板功能时遇到问题,寻求帮助。
581





