您的位置:首页 > 理论基础 > 数据结构算法

数据结构 实验一:VC编程环境灵活应用

2014-09-17 21:16 453 查看
实验目的:

1.复习巩固VC编程环境的使用,以及C++模板设计。

2.回顾并掌握VC单文件结构程序设计过程。

3.回顾并掌握VC多文件工程设计过程

4.掌握VC程序调试过程。

5.回顾C++模板和模板的程序设计。

实验内容一:

设计一个单文件结构程序完成从键盘输入两个数,输出二者的“和”和“积”的结果。

#include <iostream>
using namespace std;

void add(int a, int b){
cout << "两数之和是" << a + b << endl;
}

void mul(int a, int b){
cout << "两数之积是" << a * b << endl;
}

void add(float a, float b){
cout << "两数之和是" << a + b << endl;
}

void mul(float a, float b){
cout << "两数之积是" << a * b << endl;
}

void add(int a, float b){
cout << "两数之和是" << a + b << endl;
}

void mul(int a, float b){
cout << "两数之积是" << a * b << endl;
}

void add(float a, int b){
cout << "两数之和是" << a + b << endl;
}

void mul(float a, int b){
cout << "两数之积是" << a * b << endl;
}

int main() {
float a, b;
int c, d;
cin >> a >> b;
c = a;
d = b;
if ( a == c )
if ( b == d ) {
add(c, d);
mul(c, d);
}
else {
add(c, b);
mul(c, b);
}
else {
if ( b == d ) {
add(a, d);
mul(a, d);
}
else {
add(a, b);
mul(a, b);
}
}
return 0;
}










实验内容二:

#include <iostream>
using namespace std;

template<typename T>
void add(T a, T b) {
cout << "两数之和是" << a + b << endl;
}

template<typename U>
void mul(U a, U b) {
cout << "两数之积是" << a * b << endl;
}

int main() {
float a, b;
cin >> a >> b;
add(a, b);
mul(a, b);
return 0;
}

结果与“实验内容一”相同。

实验内容三:

#include <iostream>
using namespace std;

template <class T, class U>
class Add {
public:
Add(T a, U b) {
cout << "两数之和是" << a + b << endl;
}
};

template <class V, class W>
class Mul {
public:
Mul(V a, W b) {
cout << "两数之积是" << a * b << endl;
}
};

int main() {
float a, b;
int c, d;
cin >> a >> b;
c = a;
d = b;
if (a == c)
if (b == d) {
Add<int, int> m(c, d);
Mul<int, int> n(c, d);
}
else {
Add<int, float> m(c, b);
Mul<int, float> n(c, b);
}
else {
if (b == d) {
Add<float, int> m(a, d);
Mul<float, int> n(a, d);
}
else {
Add<float, float> m(a, b);
Mul<float, float> n(a, b);
}
}
return 0;
}

结果与“实验内容一”相同。

由于模板类在多种编译环境下不支持声明与定义分开,其他程序员也不建议这样子做。所以实验内容三的模板类分多文件处理,只分了头文件。头文件中包含了类的声明与定义。

main.cpp
#include <iostream>
#include "Add.h"
#include "Mul.h"
using namespace std;

int main() {
float a, b;
int c, d;
cin >> a >> b;
c = a;
d = b;
if (a == c)
if (b == d) {
Add<int, int> m(c, d);
Mul<int, int> n(c, d);
}
else {
Add<int, float> m(c, b);
Mul<int, float> n(c, b);
}
else {
if (b == d) {
Add<float, int> m(a, d);
Mul<float, int> n(a, d);
}
else {
Add<float, float> m(a, b);
Mul<float, float> n(a, b);
}
}
return 0;
}
Add.h

#pragma once
#include <iostream>
template <class T, class U>
class Add {
public:
Add(T a, U b) {
cout << "两数之和是" << a + b << endl;
}
};
Mul.h

#pragma once
#include <iostream>
template <class V, class W>
class Mul {
public:
Mul(V a, W b) {
cout << "两数之积是" << a * b << endl;
}
};
运行结果也与实验内容一相同。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: