预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共15页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1.课程设计的目的 (1)熟练使用C++语言编写程序,解决实际问题; (2)了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; (3)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; (4)提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 2.需求分析 问题描述:对于特殊矩阵可以通过压缩存储减少存储空间。 基本要求: 1.针对多种特殊矩阵进行压缩存储,并能显示压缩后的相关地址和值。 2.输入在原来特殊矩阵中的地址,要求能从压缩后的矩阵中读出相应的值。 特殊矩阵:具有许多相同矩阵元素或零元素,并且这些相同矩阵元素或零元素的分布有一定规律性的矩阵。最常见的特殊矩阵有对称矩阵、上(下)三角矩阵、对角矩阵等。 特殊矩阵的压缩存储方法:找出特殊矩阵中值相同的矩阵元素的分布规律,把那些呈现规律性分布的值相同的多个矩阵元素压缩存储到一个存储空间中。 3.矩阵的压缩与解压缩问题的设计 图1-1 4.调试分析 图1-2程序运行界面 图1-3程序运行界面 图1-4文件的输入 5.小结 经过矩阵的压缩与解压缩的实验,让我了解到计算机是怎么为了减少承储空间的,存储矩阵的。以及特殊矩阵式在计算机中存储,以及把这些矩阵的压缩后怎么解压出来,恢复原来的样子!我觉得像这样的课程设计,一定要先想好有哪些板块,以及那些板块之间的关系这么样!谁调谁! 6、参考文献 [1]严蔚敏,吴伟民编著.数据结构(C语言版)--北京:清华大学出版社,2007.2 [2]严蔚敏,吴伟民米宁编著.数据结构题集(C语言版)--北京:清华大学出版社,2007.3 [3]网上搜索相关程序作为参考 附录: #include<iostream> #include<fstream> usingnamespacestd; intSymmetricMatrix() { intcolm;//行 introw;//列 fstreamfile("SymmetricMatrix.txt"); ofstreamfout("SymmetricMatrix1.txt"); file>>colm>>row; int**matrix; //boolflag=true; matrix=newint*[colm]; for(inti=0;i<colm;i++) { matrix[i]=newint[row]; } for(inti=0;i<colm;i++) { for(intj=0;j<row;j++) { file>>matrix[i][j]; //cout<<matrix[i][j]; } } for(inti=0;i<colm;i++) { for(intj=i;j<row;j++) { if(!(matrix[i][j]==matrix[j][i])) { cout<<"输入的不是对称矩阵"<<endl; return0; } } } cout<<"对称矩阵如下"<<endl; for(inti=0;i<colm;i++) { for(intj=0;j<row;j++) { //fin>>matrix[i][j]; cout<<matrix[i][j]<<"\t"; } cout<<endl; } int*array=newint[colm*(colm+1)/2]; intk=0; for(inti=0;i<colm;i++) { for(intj=i;j<row;j++) { array[k]=matrix[i][j]; file<<3433; //file<<array[k];//??????????????? cout<<array[k]<<"\t"; ++k; } } cout<<endl; return0; } intUpperTriangularMatrix() { intcolm;//行 introw;//列 fstreamfile("UpperTriangularMatrix.txt"); //ofstreamfout("UpperTriangularMatrix.txt"); file>>colm>>row; int**matrix; //boolflag=true; matrix=newint*[colm]; for(i