2022年2022年矩阵运算数值转换 .pdf





《2022年2022年矩阵运算数值转换 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年矩阵运算数值转换 .pdf(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、南京邮电大学通达学院程序设计 (上机)报告题目:R018M P007M 专业市场营销(物流管理)学生姓名班级学号指导教师日期2010.6.14 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 27 页 - - - - - - - - - 评分细则评分项优秀良好中等及格不及格遵守机房规章制度上机表现学习态度基础知识水平程序设计能力课题功能实现情况算法设计合理性用户界面友好性报告书写认真程度报告内容完整性文字表达清楚程度问题回答准确性评分等级教师签名:年月日备注注:评分等级分
2、为五种:优秀、良好、中等、及格、不及名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 27 页 - - - - - - - - - 矩阵运算程序设计报告一、问题描述设计一个支持矩阵加减乘运算的程序二课题分析本题要求设计一个支持矩阵加减乘运算的程序,简单的功能框图如下:根据上图显示的功能要求, 可以将问题转化为设计一个具有三个主要功能模块(矩阵相加、矩阵相减、矩阵相乘)的矩阵运算系统。同时,为了配合矩阵运算的需要, 该矩阵运算系统必须包含输入和输出矩阵的功能。为简化运算量,
3、这里,只考虑任意两个矩阵相加、 相减和相乘的问题, 三个或三个以上矩阵的运算并不执行。程序运行后,计划达到的目标如下:(1)提供可操作的主菜单:程序运行时,首先输出菜单,用于显示若干个可选的功能选项。根据用户输入的选项来运行不同的功能,运行不同的函数。(2)输入信息:根据不同用户的需要,输入参与运算的矩阵,系统临时保存。(3)输出信息:将运算结果以矩阵的格式显现出来。(4)矩阵相加:任意输入两个矩阵,如果满足相加条件,界面输出相加结果。如果不满足相加条件,输出“矩阵不匹配”的提示,请用户重新操作。(5)矩阵相减:任意输入两个矩阵,如果满足相加条件,界面输出相减结果。如果不满足相减条件,输出“矩
4、阵不匹配”的提示,请用户重新操作。(6)矩阵相乘:任意输入两个矩阵,如果满足相乘条件,界面输出相乘结果。如果不满足相乘条件,输出“矩阵不匹配”的提示,请用户重新操作。矩阵运算矩阵相加矩阵相减矩阵相乘输入矩阵输出矩阵名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 27 页 - - - - - - - - - 三数据结构的设计class Str private: int m,n;/表示矩阵的行数和列数 double s100100;/双精度,定义二维数组存储矩阵public:
5、 int getm(); int getn();/调用私有数据 void input();/输入矩阵函数 void output();/输出矩阵函数 friend Str operator+(Str A,Str B); friend Str operator-(Str A,Str B); friend Str operator*(Str A,Str B);/运算符的重载; 矩阵类的各个主要部分具体设计方案如下:(1)矩阵相加:首先判断要进行相加的两个矩阵是否匹配,即行数和列数是否相等,如果相等,则将两个矩阵类中对应位置的数组元素相加,结果保存到另一个矩阵类的数组中。(2)矩阵相减:首先判断要进
6、行相减的两个矩阵是否匹配,即行数和列数是否相等,如果相等,则将两个矩阵类中对应位置的数组元素相减,结果保存到另一个矩阵类的数组中。(3)矩阵相乘:首先判断要进行相乘的两个矩阵是否匹配,即第一个矩阵的列数和第二个矩阵的行数是否相等,如果相等,根据矩阵相乘的定义,将两个矩阵类中对应位置的数组元素相乘后叠加,结果保存到另一个矩阵类的数组中。为了使程序简洁明了,矩阵相加、相减和相乘函数均使用两个参数,用来表示参与运算的两个矩阵。同时,创建友元运算符函数operator()来实现“+” 、“- ”和“ *”的重载,使其可以自由访问私有数据。矩阵的匹配判断程序设计在主函数中,而不出现在矩阵相加、相减和相乘
7、函数中。主函数的设计:(1) 显示欢迎界面和选择菜单。(2) 使用switch()函数,使用户能够自由选择需要的运算。(3) 如果用户选择的选项不在菜单中,提示输入错误, 并支持用户重新输入。可以用 default语句及循环实现。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 27 页 - - - - - - - - - (4) 在执行某一选定的操作中,先调用类函数 input ()来输入进行运算的矩阵,然后进行矩阵是否匹配的判断。如果矩阵不匹配,马上终止运算并提示用户。
8、如果矩阵匹配,则调用相应的重载运算符函数进行运算,并将运算结果用 output ()函数输出。(5) 利用while(i)不断循环,支持用户连续运算,仅当用户选择退出时,才退出操作系统。四处理结构的设计(1) 矩阵相加(减)函数矩阵相减函数的流程图与之类似。开始i=0 iA.m? J=0 jA.n? C.sij=A.sij+B.sijj=j+1 i=i+1 C.m=A.m, C.n=A.n 返回 C 结束N Y Y N 对矩阵相减函数,此处换为相减后赋值。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
9、- - - - 第 5 页,共 27 页 - - - - - - - - - (2)矩阵相乘函数开始i=0 iA.m? j=0 jB.n? C.sij=0,k=0 j=j+1 i=i+1 C.sij=C.sij+A.sik*B.skj 返回 C 结束N Y Y N kA.n? k=k+1 C.m=A.m,C.n=B.n N Y 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 27 页 - - - - - - - - - 五 源程序#include using namesp
10、ace std; class Str private: int m,n;/表示矩阵的行数和列数double s100100;/定义二维数组存储矩阵public: int getm(); int getn(); void input(); void output(); friend Str operator+(Str A,Str B); friend Str operator-(Str A,Str B); friend Str operator*(Str A,Str B);/运算符的重载; Str operator+(Str A,Str B)/矩阵相加函数 Str C; int i,j; for
11、(i=0;iA.m;i+)/ 循环结构for(j=0;jA.n;j+) C.sij=A.sij+B.sij; C.m=A.m;C.n=A.n; return C; Str operator-(Str A,Str B)/ 矩阵相减函数 Str C; int i,j; for(i=0;iA.m;i+) for(j=0;jA.n;j+) C.sij=A.sij-B.sij; C.m=A.m;C.n=A.n; return C; Str operator*(Str A,Str B)/矩阵相乘函数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
12、 - 名师精心整理 - - - - - - - 第 7 页,共 27 页 - - - - - - - - - Str C; int i,j,k; for(i=0;iA.m;i+) for(j=0;jB.n;j+) C.sij=0; for(k=0;kA.n;k+) C.sij=C.sij+A.sik*B.skj; C.m=A.m;C.n=B.n; return C; void Str:input()/矩阵输入函数 int i,j; do cout请输入矩阵的行数、列数:mn;while(m100|n100);/保证输入矩阵的行数和列数有效cout请输入矩阵 :endl; for(i=0;i m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年矩阵运算数值转换 2022 矩阵 运算 数值 转换

限制150内