文档介绍:课程设计题目:稀疏矩阵运算器
学号:E11314022
姓名:王明龙
院系:计算机学院
专业:计算机科学与技术
年纪:13级
指导老师:王爱平
完成时间:2015年10月6日
目录
1 课程设计的目的………………………………………………
2 需求分析………………………………………………………
3 课程设计报告内容……………………………………………
……………………………………………………
……………………………………………………
……………………………………………………
……………………………………………………
……………………………………………………
……………………………………………………
4小结……………………………………………………
5 参考文献……………………………………………………
(1) 熟练使用 C 语言编写程序,解决实际问题;
(2) 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
(3) 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
(4) 提高综合运用所学的理论知识和方法独立分析和解决问题的能力
稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。
设计一个稀疏矩阵运算器。实现转置,相加,相乘的功能。用三元组顺序表表示稀疏矩阵,实现两个矩阵相转置、相加和相乘的运算
程序执行的命令为:; ; ;3. 稀疏矩阵乘法;
课程设计报告内容
typedef struct {
int i, j;
int e;
} Triple; //定义三元组的元素
基本操作:
void InPutTSMatrix(P & T, int y) //输入矩阵
void OutPutSMatrix(P T) // 输出矩阵
void TransposeSMatrix() //矩阵转置的
void MultSMatrix() // 两个矩阵相乘
void AddSMatrix() //矩阵的加法
void main( ) //主程序
{初始化;
do {
接受命令;
选择处理命令;
}
while(命令!=“退出”)
}
详细设计
稀疏矩阵的三元组顺序表存储表示:
typedef struct {
int i, j;
int e;
} Triple;
输入矩阵,按三元组格式输入
void InPutTSMatrix(P & T, int y)
{
cout << "输入矩阵的行,列和非零元素个数:" << endl;
cin >> >> >> ;
cout << "请输出非零元素的位置和值:" << endl;
int k = 1;
for (; k <= ; k++)
cin >> [k].i >> [k].j >> [k].e;
return ;
}
输出矩阵,按标准格式输出
void OutPutSMatrix(P T) {
int m, n, k = 1;
for (m = 0; m < ; m++)
{
for (n = 0; n < ; n++)
{
if (([k].i - 1) == m && ([k].j - 1) == n)
{
(4);
cout << [k++].e;
}
else {
(4);
cout << "0";
}
}
cout << endl;
}
return;
}
// 求矩阵的转置矩阵
void TransposeSMatrix()
{ TSMatrix M, T; //定义预转置的矩阵
InPutTSMatrix(M, 0); //输入矩阵
int num[MAXROW + 1];
int cpot[MAXROW + 1]; // 构建辅助数组
int q, p, t;
= ;
= ;
= ;
if ()