一、面向对象课程设计作品(基于MFC的仓库管理系统完整工程完整工程):
面向对象课程设计作品(完整)(也适用于软件工程大实验).7z_采用面向对象方法分析,设计和实现订货系统。-C/C++文档类资源-CSDN下载
二、实验六题目:
在用计算机处理大批量数据时,如一些网络文本、图像分析的计算,往往把对象描述成向量的形式。向量的处理在计算时可以并行化,从而提高计算的效率。其中,广义上的向量包括常用的一维向量、二维矩阵等。请定义一维向量类、以及二维矩阵类,并在主函数中调用测试。要求:
1 设计恰当继承关系,并设计类的数据成员。
2 具有无参和有参的构造函数(第一个参数为初始数据,第二个参数为向量的维度)。
3 具有虚函数完成向量的欧式距离运算,并在派生类中对虚函数进行重新定义。
4 实现减法、乘法、赋值运算符的重载。
5 使用基类指针和派生类指针,分别指向基类和派生类虚函数进行调用,并观察结果的差别。
#include<iostream> #include<cmath> #include<iomanip> using namespace std;//蓝多多作业 class vector//定义向量类 { private: float n; public: vector()//无参构造函数 {} vector(float a)//有参构造函数 { n = a; } virtual float distance(vector &b, vector&c)//虚函数 { return (float)(fabs(c.n - b.n));//求出一范距离 } vector operator+(vector&a)//加法运算符重载 { n += a.n; } vector operator-(vector&b)//减法运算符重载 { n -= b.n; } vector operator=(vector&c)//赋值运算符重载 { n = c.n; } }; class matrix :public vector//定义向量类的派生类——矩阵类 { private: float x[2]; public: matrix()//派生类无参构造函数 {} matrix(float a[], int b)//派生类有参构造函数 初始化 { for (int i = 0; i < b; i++) x[i] = a[i]; } virtual float distance(matrix &a, matrix &b, int n)//派生类虚函数 { float p = 0, m; for (int i = 0; i < n; i++) { m = pow(a.x[i] - b.x[i], 2.0); p = p + m; } return sqrt(p);//返回平方值并开根号求得欧氏距离 } }; int main() { float m; vector *n; vector a(4), b(9);//一维向量 n = &a; m = n->distance(a, b); cout << "一范距离为:" << setw(4) << m << endl; float a2[2] = { 2,3 }, b2[2] = { 4,6 }; matrix c2(a2, 2), c3(b2, 2);//二维矩阵 matrix *p; p = &c2; m = p->distance(c2, c3, 2); cout << "欧氏距离为:" << setw(4) << m << endl; system("pause");//输出结果后看二者比较 return 0; }