《数据结构》实验一: VC编程工具的灵活使用
一..实验目的
复习巩固VC编程环境的使用,以及C++模板设计。
1.回顾并掌握VC单文件结构程序设计过程。
2.回顾并掌握VC多文件工程设计过程
3.掌握VC程序调试过程。
4.回顾C++模板和模板的程序设计。
二.实验时间
第二周第二次课。2个学时。
三.实验内容
1. 设计一个单文件结构程序完成从键盘输入两个数,输出二者的“和”和“积”的结果。要求如下:
1)设计函数来计算“和”和“积”,在主函数中调用,并能考虑重载函数,使整数和小数均能计算。
2)分别使用单步调试和断点调试来调试程序。并多次运行力求熟练调试方法。
2.使用函数的模板来实现上述功能。
3.使用一个类来实现上述功能。要求:
1)使用类模板
2)使用多文件:类的声明有头文件中;类的函数定义一个源文件中,在主程序文件中设计主函数程序,在实例化输出结果。
四.参考资料
实验教程P159-170.
五.实验报告
1.在博客中先写上实习目的和内容,然后分别上传三个程序代码。插入调试关键结果截图。
2.写一个博文,总结重载和模板的知识点。
实验1.1代码:
<span style="font-family:Verdana;font-size:18px;">#include<iostream>
using namespace std;
void input_int(){
cout<<"请输入两个整数:"<<endl;
}
void input_float(){
cout<<"请输入两个小数:"<<endl;
}
int add(int a,int b){
return a+b;
}
float add(float a,float b){
return a+b;
}
int multiply(int a,int b){
return a*b;
}
float multiply(float a,float b){
return a*b;
}
int main(){
int c,d;
float e,f;
input_int();
cin>>c>>d;
cout<<"两整数之和为:"<<add(c,d)<<endl;
cout<<"两整数之积为:"<<multiply(c,d)<<endl;
input_float();
cin>>e>>f;
cout<<"两小数之和为:"<<add(e,f)<<endl;
cout<<"两小数之积为:"<<multiply(e,f)<<endl;
return 0;
}</span>
单步调试截图1:
单步调试截图2:
断点调试截图:
实验1.2代码:
<span style="font-family:Verdana;font-size:18px;">#include<iostream>
using namespace std;
template<class MB>
MB add(MB a,MB b){
return a+b;
}
template<class MB>
MB multiply(MB a,MB b){
return a*b;
}
void input_int(){
cout<<"请输入两个整数:"<<endl;
}
void input_float(){
cout<<"请输入两个小数:"<<endl;
}
int main(){
int c,d;
float e,f;
input_int();
cin>>c>>d;
cout<<"两整数之和为:"<<add(c,d)<<endl;
cout<<"两整数之积为:"<<multiply(c,d)<<endl;
input_float();
cin>>e>>f;
cout<<"两小数之和为:"<<add(e,f)<<endl;
cout<<"两小数之积为:"<<multiply(e,f)<<endl;
return 0;
}</span>
单步调试截图1:
单步调试截图2:
断点调试截图:
实验1.3代码:
头文件代码:
<span style="font-family:Verdana;"><span style="font-size:18px;">template<typename T>
class tem{
public:
T s,m;
void add(T x,T y){
s=x+y;
}
void multiply(T x,T y){
m=x*y;
}
};</span>
</span>
源文件代码:
<span style="font-family:Verdana;font-size:18px;">#include<iostream>
#include "jisuan.h"
using namespace std;
int main(){
int a=1,b=2;
cout<<"取两整数做试验:"<<a<<" "<<b<<endl;
tem<int> zs;
zs.add(a,b);
zs.multiply(a,b);
cout<<"两整数之和为:"<<zs.s<<endl;
cout<<"两整数之积为:"<<zs.m<<endl;
float c=1.1,d=1.2;
cout<<"取两小数做试验:"<<c<<" "<<d<<endl;
tem<float> xs;
xs.add(c,d);
xs.multiply(c,d);
cout<<"两小数之和为:"<<xs.s<<endl;
cout<<"两小数之积为:"<<xs.m<<endl;
return 0;
}</span>
运行结果截图: