网站大量收购闲置独家精品文档,联系QQ:2885784924

特殊矩阵压缩与解压缩设计.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
特殊矩阵压缩与解压缩设计

课程名称:《数据结构》课程设计 课程设计题目: 特殊矩阵压缩与解压 缩设计 姓名:XXX 院系:计算机学院 专业:10级计算机科学技术 学号:XXXXXXXXX 指导教师:XXX 2012年9月 21日 目录 1 课程设计的目的………………………………………………………3 2需求分析………………………………………………………………3 3 课程设计报告内容 …………………………………………………3 3.1 概要设计………………………………………………………3 3.2 详细设计………………………………………………………4 3.3 调试分析………………………………………………………4 3.4 用户手册………………………………………………………4 3.5 程序清单………………………………………………………5 3.6 测试结果………………………………………………………9 4 小结…………………………………………………………………15 5 参考文献……………………………………………………………15 1.课程设计的目的 (1) 熟练使用 C 语言编写程序,解决实际问题; (2) 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; (3) 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; (4) 提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 2.需求分析 本系统主要实现对特殊矩阵的压缩与解压缩处理,特殊矩阵包括:对称矩阵、上三角矩阵、下三角矩阵、带状矩阵。 3.课程设计报告内容 3.1概要设计 1.函数 ①主函数:main( ) ②矩阵的输出函数:Print( ) ③对称矩阵的压缩与解压缩函数:DuiMatrix( ) ④上三角矩阵的压缩与解压缩函数:ShangMatrix( ) ⑤下三角矩阵的压缩与解压缩函数:XiaMatrix( ) ⑥带状矩阵的压缩与解压缩函数:DaiMatrix( ) 3.2详细设计 以对称矩阵为例:对称矩阵的特点是:aij=aji,即元素关于主对角线对称,因此只需存储上三角或下三角部分即可。这样,原来需要n*n个存储单元,现在只需要n(n+1)/2个存储单元。对下三角部分以行为主序顺序存储到一个一维数组中,在下三角中共有n*(n+1)/2 个元素,因此,存储到数组a[n(n+1)/2]中,k=i*(i-1)/2+j-1 ,若ij,则aij 是上三角中的元素,因为aij=aji ,这样,访问上三角中的元素aij 时则去访问和它对应的下三角中的aji 即可。 3.3调试分析 程序的设计严格遵循模块化的程序设计思想,由简单到复杂,注意规范。 3.4用户手册 用户在使用程序时应按照提示执行,步骤如下: ①进入系统后,您将看到提示: “请选择您要生成的矩阵类型:” “1.对称矩阵!” “2.上三角矩阵!” “3.下三角矩阵!” “4.带状矩阵!” “输入其他键退出系统!” ②选择1号功能键:输入一个n阶对称矩阵,系统会先进行压缩操作,将此矩阵压缩到一个一维数组,然后再由此数组进行解压缩操作。 ③选择2号功能键:输入一个n阶上三角矩阵,系统会先进行压缩操作,将此矩阵压缩到一个一维数组,然后再由此数组进行解压缩操作。④选择3号功能键:输入一个n阶下三角矩阵,系统会先进行压缩操作,将此矩阵压缩到一个一维数组,然后再由此数组进行解压缩操作。 ⑤选择4号功能键:输入一个n阶带状矩阵,系统会先进行压缩操作,将此矩阵压缩到一个一维数组,然后再由此数组进行解压缩操作。 ⑥输入其他键系统退出系统。 3.5程序清单 #includestdio.h #define MAX 100 int M[MAX][MAX],a[MAX]; void Print(int n) { int i,j; printf(生成的矩阵如下:\n); for(i=1;i=n;i++) { for(j=1;j=n;j++) printf(%-3d,M[i][j]); printf(\n); } } void DuiMatrix() { int i,j,k,n; printf(请输入您要压缩矩阵的维数:\n); scanf(%d,n); printf(请依次输入矩阵的元素:\n); for(i=1;i=n;i++) for(j=1;j=n;j++) { scanf(%d,M[i][j]); if(i=j) k=i*(i-1)/2+j-1; else k=j*

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档