b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

哈夫曼树带权路径长度_c 哈夫曼树编码_数据结构哈夫曼树编码(15)

电脑杂谈  发布时间:2017-03-01 10:05:02  来源:网络整理

2.课程设计报告书写规范

课程设计报告包括该题目的需求分析、概要设计、详细设计、程序测试、感想与体会几部分内容。下面以“稀疏矩阵运算器”为例说明如何写课程设计报告。

题目要求:设计一个稀疏矩阵计算器,实现两个稀疏矩阵的加法、减法、乘法以及矩阵的转置运算。采用菜单为应用程序的界面,用户通过对菜单进行选择,分别实现矩阵的相加、相减、相乘以及矩阵转速运算。

2.1需求分析

1. 稀疏矩阵是指稀疏因子小于等于0.5的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。

2. 以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,实现矩阵转置,以及两个矩阵的加、减、乘的运算。稀疏矩阵的输入形式采用三元组表示,运算结果以阵列形式列出。

3. 演示程序以用户和计算机的对话方式进行,数组的建立方式为边输入边建立。首先输入矩阵的行数和列数,并判别给出的两个矩阵的行列数是否与所要求的运算相匹配。

4. 程序可以对三元组的输入属性不加以限制;根据对矩阵的行列,三元组作之间插入排序,从而进行运算时,不会产生错误。

5. 在用三元组表示稀疏矩阵时,相加、相减和相乘所产生的结果矩阵另外生成。

6. 运行环境:VC6.0++。

2.2概要设计

稀疏矩阵元素用三元组表示:

typedef struct{

int i; //非零元的行下标

int j; //非零元的列下标

int e; //矩阵非零元

}Triple;

稀疏矩阵采用三元组顺序表存储:

#define MSXSIZE 12500 //假设非零元个数的最大值为200

#define MAXRC 10 //假定矩阵的最大行数为10

typedef struct

{

int mu ; //矩阵的行数

int nu ; //矩阵的列数

int tu ; //矩阵的非零元素个数

Triple data[MAXSIZE+1]; //非零元三元组表,data[0]没有用

int rpos[MAXRC+1]; //各行第一个非零元素的位置表

}Tabletype;

系统主要函数及功能如下:

Menu( ):主控菜单,接收用户的选项;

Input_Matrix( ):输入矩阵;

Print_matrix( ):输出矩阵;

Cal_matrix( ):计算矩阵每行第一个非零元在三元组中的位序号;

TransposeMatrix( ):矩阵转置;

Add_Matrix( ):矩阵加法运算;

Sub_Matrix( ):矩阵减法运算;

Multi_Matrix( ):矩阵乘法运算。

模块的调用关系如图1所示。

图1 程序调用模块

2.3详细设计

1. 主函数设计

/

for (p=1;p< MAXRC+1;p++)

ctemp[p]=0;

c.rpos[arow]=c.tu+1;

if(arow

tp=a.rpos [arow+1];

else

tp=a.tu +1;

for(p=a.rpos[arow]; p

brow=a.data[p].j;

if(brow

t=b.rpos[brow+1];

else

t=b.tu+1;

for (q=b.rpos[brow];q

ccol=b.data[q].j;

ctemp[ccol]+=a.data[p].e*b.data[q].e;

}

}//for p

for(ccol=1;ccol<=c.nu;ccol++)

if(ctemp[ccol])

{

if((c.tu)>MAXSIZE)

exit(1);


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-35162-15.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...