




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课程设计数据结构课程设计 课程设计报告模板课程设计报告模板 中国石油大学 北京 远程教育学院 数据结构 课程设计报告课 程设计题目名学生姓名号学号级专业班级2019年月题目要求设计一 个稀疏矩阵计算器 实现两个稀疏矩阵的加法 减法 乘法以及矩 阵的转置运算 采用菜单为应用程序的界面 用户通过对菜单进行选择 分别实现 矩阵的相加 相减 相乘以及矩阵转速运算 1需求分析1 稀疏矩阵是指稀疏因子小于等于0 5的矩阵 利用 稀疏 特点进行存储和计算可以大大节省存储空间 提高计 算效率 实现一个能进行稀疏矩阵基本运算的运算器 2 以 带行逻辑链接信息 的三元组顺序表表示稀疏矩阵 实现矩 阵转置 以及两个矩阵的加 减 乘的运算 稀疏矩阵的输入形式采用三元组表示 运算结果以阵列形式列出 3 演示程序以用户和计算机的对话方式进行 数组的建立方式为边 输入边建立 首先输入矩阵的行数和列数 并判别给出的两个矩阵的行列数是否 与所要求的运算相匹配 4 程序可以对三元组的输入属性不加以限制 根据对矩阵的行列 三元组作之间插入排序 从而进行运算时 不会产生错误 5 在用三元组表示稀疏矩阵时 相加 相减和相乘所产生的结果矩 阵另外生成 6 运行环境VC6 0 2概要设计稀疏矩阵元素用三元组表示typedef struct int i 非零元的行下标int j 非零元的列下标int e 矩阵非零元 Triple 稀疏矩阵采用三元组顺序表存储 define MSXSIZE12500 假设非零元个数的最大值为200 define MAXRC10 假定矩阵的最大行数为10typedef struct int mu 矩阵的行数int nu 矩阵的列数int tu 矩阵的非零元素个数Triple data MAXSIZE 1 非零元三元组表 data 0 没有用int rpos MAXRC 1 各行第一个非零元素的位置表 Tabletype 系统主 要函数及功能如下Menu 主控菜单 接收用户的选项 Input Matri x 输入矩阵 Print matrix 输出矩阵 Cal matrix 计算矩阵每 行第一个非零元在三元组中的位序号 TransposeMatrix 矩阵转置 Add Matrix 矩阵加法运算 Sub Matrix 矩阵减法运算 Multi Matrix 矩阵乘法运算 模块的调用关系如图1所示 图1程序调用模块示意图3详细设计1 主函数设计 矩阵运算主函数 主函数中 实现用户菜单菜单的打 印 并根据用户的选项执行相应的功能 主函数力求简洁 清晰 void main num Menu 打印主菜单while num switch num case1 Multi Matrix 矩阵相乘break case2 TransposeMatrix 矩 阵转置break case3 Add Matrix 矩阵加法break Multi Matrix mainAdd Matrix Sub Matrix TransposeMatrixCal Matrix Input Matrix Print Matrix case4 Sub Matrix 矩阵减法case0 break switch num Menu while 2 主菜单设计主控菜单是用来输出提示信息 和处理输入 此函数返回用户的选项 提供给main函数中的switch 语句 对于不符合要求的选项 提示输入错误并要求用户重新输入 将此函数与main函数合在一起 编译运行程序 即可检查并验证菜 单选项是否正确 主菜单如下 打 印主控菜单函数 i nt menu printf n主菜单 printf n printf n1 矩阵乘法 printf n2 矩阵转置 printf n3 矩阵加法 printf n4 矩阵减法 printf n0 退出 printf n scanf d while num4 输入非法 重新输入scanf d return num 3 矩阵乘法运算函数 矩阵乘法运算算法 Status Multi Matrix Input Matrix 输入矩阵a Input Matrix 输入矩阵b Cal matrix 计算矩阵a每行第一个非零元的位序号Cal matri x 计算矩阵b每行第一个非零元的位序号if a nu b mu 不 符合矩阵乘法条件 不能相乘return ERROR c mu a mu 对矩阵c初始化c nu b nu c tu 0 if a tu b t u 0 for arow 1 arow a mu arow 处理矩阵a的每一行 fo r p 1 pMAXSIZE exit 1 c tu c data c tu i arow c data c tu j ol c data c t u e ctemp ol end if for arrow if Print matrix a Print matrix b Print matrix c 4 矩阵转置算法 矩阵转置算法 void TransposeMatrix Input Matrix 输入矩阵a b mu a nu b nu a mu b tu a tu if b tu q 1 b data的下标 for col 1 col a nu col 对a的每一列for p 1 p a tu p p为a的下标 if a data p j col 寻找矩阵a中列为col的非 零元b data q i a data p j b data q j a data p i b data q e a data p e q if p if b tu Print matrix b 输出a的转置矩阵 5 矩阵加法算法 矩阵加法运算函数 c a b Status Add Matrix Input Matrix 输入矩阵a Input Matrix 输入矩阵b if a mu b mu a nu b nu 不满足矩阵加法条件return ERROR c mu a mu c nu a nu ta 1 tb 1 tc 1 if a tu b tu 0 w hile ta a tu 获得矩阵行列数 非零元个数for i 1 idata i i t data i j t data i e return OK 7 矩阵输出算法将三元组以矩阵方式输出在屏幕上 算法如下 矩阵输出函数 Status Print matrix Tabletype m k 1 for i 1 i m mu i for j 1 j m nu j 非零元素 if m data k i i k else printf 0 零元素 printf n 8 Cal matrix函函数 数在矩阵乘法运算时 需要统计矩阵每行第一个非零元在三元组表 中的位序号 算法如下void cal matrix Tabletype m 计算矩阵中每一行中第一个非零元的 位序号for row 1 rowmu row num row 0 for t 1 ttu t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消费贷受托支付合同范本
- 物流车队调动协议书范本
- 网约出租车买卖合同范本
- 销售合伙人模式合同范本
- 清洗窗帘合同协议书模板
- 离婚协议女方补偿协议书
- 海鲜店合作协议合同范本
- 长期租地建房合同协议书
- 甲方授权乙方的合同范本
- 美业学员合同协议书范本
- 安全心理学-应激及事故创伤的心理救援
- 生命安全与救援学习通超星期末考试答案章节答案2024年
- 《人行自动门安全要求》标准
- 矿坑涌水量预测计算规程
- 消化性溃疡护理业务学习(胃十二指肠溃疡)
- 长租公寓计划书
- 《正确对等得与失》课件
- 30题新大陆科技集团测试工程师岗位常见面试问题含HR问题考察点及参考回答
- 太阳完整分享
- 【全套100种】职业病危害告知卡 全网最全(精编版)
- 精神病学课件:抗抑郁药物和抗焦虑药物完整版
评论
0/150
提交评论