- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算矩阵加法的Vb上机报告
《数据结构》实验报告 班级:姓名:吴亮学号:XX电话日期: ◎实验题目:进行矩阵的转置运算,加法运算和乘法运算 ◎实验目的:1.熟悉矩阵的定义与以三元组形式输入 2.学会矩阵的转置运算,加法运算和乘法运算 3.掌握用矩阵形式输出 ◎实验内容:设计一个程序,1、演示矩阵的转置运算与加法运算。2、以行逻辑连 接形式进行乘法运算 一、需求分析 1、本实验中的输入为三个以三元组形式输入的矩阵 2、本实验以矩阵的形式输出计算结果 3、程序能够完成对输入的矩阵执行转置于加法运算后输出结果;将输入的矩阵进行乘 法,然后输出结果。 4、测试数据: 选择0 再输入332 输入矩阵:221 232 出现:转置后矩阵 000 010 020 选择1 再输入332 输入矩阵:221 232 再输入332 输入矩阵:221 322 出现相加后矩阵 000 022 020 选择2 再输入332 输入矩阵:221 232 再输入332 输入矩阵:221 322 出现运算后矩阵 000 050 000 二概要设计 程序中采用了三元组作为存储结构 1、基本操作如下: table*scanff()操作结果:建立矩阵 table*transpose(table*a)初始条件:矩阵已存在;操作结果:将矩阵转置 voidtableplus(table*a,table*b)初始条件:矩阵已存在; 操作结果:将a,b矩阵相加 table*tablemult(table*a,table*b)初始条件:矩阵已存在 操作结果:将a,b矩阵相乘 voidRpos(table*a)初始条件:矩阵已存在操作结果:将a中的每行第一个非 零元记录下来 2、本程序包含七个模块:主程序模块;建立矩阵的模块;转置运算的模块;加法运算的模块;乘法运算的模块;记录每行非零元的模块,输出矩阵的模块 三详细设计 1、矩阵的定义:typedefstruct{ intr; intc; ElemTypee; }tupletype; typedefstruct{ introws; intcols; intnums; tupletypedata[NUM+1]; intrpos[ROW+1]; }table; 2、每个模块的分析: 主程序模块: voidmain() { table*A,*B,*C; inti; printf(请选择你的操作:0,转置;1,加法;2,乘法;\n); scanf(%d,i); printf(请输入第一个矩阵行数、列数及非零数的个数:\n); A=scanff(); if(i==0) { C=transpose(A);//进行转置 print(C); } elseif(i==1) { printf(请输入第二个矩阵行数、列数及非零数的个数:\n); B=scanff(); tableplus(A,B); } else { printf(请输入第二个矩阵行数、列数及非零数的个数:\n); B=scanff(); C=tablemult(A,B); print(C); } } 建立矩阵的模块 table*scanff() {//建立矩阵 table*a; intk; a=(table*)malloc(sizeof(table)); scanf(%d%d%d,(a-rows),(a-cols),(a-nums)); printf(建立三元组:\n); for(k=1;knums;k++) scanf(%d%d%d,(a-data[k].r),(a-data[k].c),(a-data[k].e));returna; } 转置运算的模块 table*transpose(table*a) { table*b; intbrow,acol,k; b=(table*)malloc(sizeof(table)); b-rows=a-cols; b-cols=a-cols; b-nums=a-nums; if(b-nums0){ brow=1; for(acol=1;acolcols;acol++) for(k=1;knums;k++) if(a-data[k].c==acol) {
文档评论(0)