实验目的:
【复习巩固VC编程环境的使用,以及C++模板设计。】
1.回顾并掌握VC单文件结构程序设计过程。
2.回顾并掌握VC多文件工程设计过程
3.掌握VC程序调试过程。
4.回顾C++模板和模板的程序设计。
实验内容:
1. 设计一个单文件结构程序完成从键盘输入两个数,输出二者的“和”和“积”的结果。要求如下:
1)设计函数来计算“和”和“积”,在主函数中调用,并能考虑重载函数,使整数和小数均能计算。
2)分别使用单步调试和断点调试来调试程序。并多次运行力求熟练调试方法。
2.使用函数的模板来实现上述功能。
3.使用一个类来实现上述功能。要求:
1)使用类模板
2)使用多文件:类的声明有头文件中;类的函数定义一个源文件中,在主程序文件中设计主函数程序,在实例化输出结果。
程序如下显示:
1、
#include <iostream>
using namespace std;
//物联网1132-11
int Jiafa(int a,int b)
{
// cin>>a>>b;
cout<<"a+b="<<a+b<<endl;
return 0;
}
double Jiafa(double a,int b)
{
// cin>>a>>b;
cout<<"a+b="<<a+b<<endl;
return 0;
}
double Jiafa(int a,double b)
{
// cin>>a>>b;
cout<<"a+b="<<a+b<<endl;
return 0;
}
double Jiafa(double a,double b)
{
// cin>>a>>b;
cout<<"a+b="<<a+b<<endl;
return 0;
}
void main()
{
Jiafa(1,2);
Jiafa(1.1,2);
Jiafa(1,2.1);
Jiafa(1.1,2.1);
}
//“和”的程序如上,“积”的程序相似因此省略。
//物联网1132-11
2、函数模板
#include <iostream>
using namespace std;
template <class A>
void Jiafa(A a,A b)
{
cout<<"这两个数的和是"<<a+b<<endl;
}
//template自动会识别数据的类型所以Jiafa可以当成一个模板使用
void main()
{
int a=1,int b=2;
Jiafa(a,b);
double f=3.1,double t=4.5;
Jiafa(f,t);
}
3、类模板,总程序。
#include <iostream>
using namespace std;
template <typename A,typename B>
class Jiafa
{
public:
Jiafa(A x,B y);
};
template <class A,class B>
Jiafa<A,B>::Jiafa(A x,B y)
{
cout<<"x+y="<<x+y<<endl;
}
void main()
{
Jiafa<int,int>(3,5);
Jiafa<double,int>(3.6,5);
Jiafa<int,double>(3,5.5);
Jiafa<double,double>(3.6,5.5);
}
Jiafa.h
#ifndef Jiafa_H_
#define Jiafa_H_
#include <iostream>
using namespace std;
template <typename A,typename B>
class Jiafa
{
public:
Jiafa(A x,B y);
};
template <class A,class B>
Jiafa<A,B>::Jiafa(A x,B y)
{
cout<<"x+y="<<x+y<<endl;
}
#endif
main.cpp
#include “Jiafa.h”
#include <iostream>
using namespace std;
void main()
{
Jiafa<int,int>(3,5);
Jiafa<double,int>(3.6,5);
Jiafa<int,double>(3,5.5);
Jiafa<double,double>(3.6,5.5);
}
运行结果(乘法:略。)