- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
矩阵运算实验报告
实验报告--矩阵运算
一、 实验的目的。
1.通过实践加强对程序设计语言课程知识点的理解和掌握,培养对课程知识综合运用能力、实际分析问题能力及编程能力,养成良好的编程习惯。
2.通过实践进一步了解编程的特点和应用,提高运用C++语言和面向对象知识解决实际问题的能力。
3.通过实践掌握用c++语言编写面向对象的实用程序的设计方法,对面向对象方法和思想增加感性的认识;
4.学习使用C++编程语言编写一些简短可靠的windows实用程序,有效提高面向对象编程能力。为后续课程的研究打下基础。
二.实验要求。
1.学会建立模板;
2.实现矩阵的“加”、“减”、“乘”、“数乘”、“转置”;3.动态内存分配并用随机数填充;
4.注意判断“加”、“减”、“乘”的条件;
三.设计思路。
3.1算法的基本流程
1)2)3)4)5)6)
获取用户输入的矩阵1的行数和列数,并动态生成一维数组
利用随机数生成数组成员,并利用两个循环输出数组,使其符合矩阵的格式矩阵2同矩阵1的处理方法
通过比较两个矩阵的行数和列数,可以判断是否进行加法、减法和乘法等运算。如果没有,则输出相关信息。如果可以计算,则使用数组执行相应的操作,并按照正确的格式输出。通过改变一维阵列中元素的顺序可以实现转置和输出
3.2算法流程图
四、 基本界面。
五.关键代码。
5.1关键类的声明
classcmatrixclass{
公众:
cmatrixclass(){
intm_uu行=0;//行INTM_uCol=0;//柱
m_pelements=null;//一维数组};
虚拟~cmatrixclass(){
delete[]m_pelements;}
公众:
intm_row;intm_col;
int*m_pelements;};
5.2关键函数代码
voidcmyview::oncheckadd(){
voidcmyview::onchecksubtrict(){
m_u添加。setcheck(0);蒙斯。setcheck(0);m____;subtrict。setcheck(0);}
voidcmyview::onchecknums(){
m____;subtrict。setcheck(0);}
updatedata(true);
//todo:addyourcontrolnotificationhandlercodehereif(m_add.getstate()==1){
if(op1-imax!=op2-imax||op1-jmax!=op2-jmax||op1==null||op2==null)
{
m_result=\行数列数不等无法相加!\}else{
matrixc(op1-imax,op1-jmax);c=*op1+*op2;
m_result=\m_result+=\
m_uresult+=c.my ushow();}
elseif(m_subtrict.getstate()==1){
如果(op1-imax!=op2-imax | | op1-jmax!=op2-jmax | | op1==null | | op2==null)
{
m_uResult=\不能减去行数和列数!\}否则{
matrixc(op1-imax,op1-jmax);c=*op1-*op2;
m_u结果=\m_u结果+=\
m_result+=c.my_show();}}
如果(op1-jmax!=op2-imax | | op1==null | | op2==null){
m_result=\以上无法相乘!\}else{
matrixc(op1-imax,op2-jmax);c=(*op1)*(*op2);
m_result=\m_result+=\
m_uresult+=c.my ushow();}
文档评论(0)