实验报告--数据结构实验一

来源:互联网 发布:淘宝店铺突然没有访客 编辑:程序博客网 时间:2024/04/27 19:47

一.实验目的
1.复习巩固VC编程环境的使用,以及C++模板设计。
2.回顾并掌握VC单文件结构程序设计过程。
3.回顾并掌握VC多文件工程设计过程
4.掌握VC程序调试过程。
5.回顾C++模板和模板的程序设计。
二.实验内容
1. 设计一个单文件结构程序完成从键盘输入两个数,输出二者的“和”和“积”的结果。要求如下:
1)设计函数来计算“和”和“积”,在主函数中调用,并能考虑重载函数,使整数和小数均能计算。
2)分别使用单步调试和断点调试来调试程序。并多次运行力求熟练调试方法。
2.使用函数的模板来实现上述功能。
3.使用一个类来实现上述功能。要求:
  1)使用类模板
  2)使用多文件:类的声明有头文件中;类的函数定义一个源文件中,在主程序文件中设计主函数程序,在实例化输出结果。

三.代码

1.

#include<iostream>
using namespace std;
void count(int aa,int bb)
{
 cout<<aa<<"+"<<bb<<"="<<aa+bb<<endl;
 cout<<aa<<"*"<<bb<<"="<<aa*bb<<endl;
}
void count(double aa,double bb)
{
 cout<<aa<<"+"<<bb<<"="<<aa+bb<<endl;
 cout<<aa<<"*"<<bb<<"="<<aa*bb<<endl;
}
void input(int& a,int &b)
{
 cout<<"请输入两个整数:";
 cin>>a>>b;
}
void input(double& a,double &b)
{
 cout<<"请输入两个实数:";
 cin>>a>>b;
}
void main()
{
 int a1,b1;
 double a2,b2;
 input(a1,b1);
 count(a1,b1);
 input(a2,b2);
 count(a2,b2);
}


2.

#include<iostream>
using namespace std;
template <typename T>
void count(T aa,T bb)
{
 cout<<aa<<"+"<<bb<<"="<<aa+bb<<endl;
 cout<<aa<<"*"<<bb<<"="<<aa*bb<<endl;
}
template <typename T>
void input(T& a,T &b)
{
 cout<<"请输入两个数:";
 cin>>a>>b;
}
void main()
{
 int a1,b1;
 double a2,b2;
 input(a1,b1);
 count(a1,b1);
 input(a2,b2);
 count(a2,b2);
}


3.

//record.h文件

#include<iostream>
using namespace std;
template<class T>
class count
{
 public:
  count();
  void input();
  void output();
 private:
  T x,y;
};
template<class T>
count<T>::count()
{
 x=0;
 y=0;

template<class T>
void count<T>::input()
{
 cout<<"请输入两个数:";
 cin>>x>>y;
}
template<class T>
void count<T>::output()
{
 cout<<x<<"+"<<y<<"="<<x+y<<endl;
 cout<<x<<"*"<<y<<"="<<x*y<<endl;
}

//main.cpp文件

#include"record.h"
void main()
{
 count<int> c1;
 c1.input();
 c1.output();
 count<double> c2;
 c2.input();
 c2.output();
}


四.总结

本次实验复习一大一学的重载函数,模版,多文件程序。实验中存在了两个方面的问题。一,不会根据输入的数据的数据类型自动定义相应的变量,所有变量的数据类型都是事先定义的,没能很好的运用模版的灵活性。二,第三题中,把模版类的声明和模版类的定义放在两个文件时,build会出错,原因不明。把模版类的声明和模版类的定义放在同一个文件就能正常运行。该问题只出现在模版

0 0
原创粉丝点击