- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.稀疏矩阵运算器
数据结构课程设计任务书
针对本课程设计,完成以下课程设计任务:
熟悉系统实现工具和上机环境。
根据课程设计任务,查阅相关资料。
针对所选课题完成以下工作:
需求分析
概要分析
详细设计
编写源程序
静态走查程序和上机调试程序
书写上述文档和撰写课程设计报告。
3.课程设计报告目录
4.正文
(1)问题描述
稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算频率。实现一个能进行稀疏矩阵基本运算的运算器。
(2)需求分析
本课程设计的稀疏矩阵运算器在visual studio 2013下运行调试成功,可以实现的功能有:
1.矩阵运算方式选择
2.根据提示输入相应数据
3.显示最终结果
使用的主要存储结构为三元组,并用三元组形式进行运算。所有参与运算数据类型为整形,因此输入的数据应为整形数据。为了节省存储空间使用三元组数据进行运算,可以通过多次扫描三元组数据来实现,即使用嵌套循环函数。输出结果为通常的阵列形式,因此使用了右对齐,保证输出形式的整齐。
(3)概要分析
本次课程设计中定义的结构体
typedef struct {
int i, j;//矩阵元素所在行列
int v;//元素的值
}triple;
typedef struct {
triple data[MAXSIZE];
triple cop[MAXSIZE];//辅助数组
int m, n, t;//矩阵的行列数
}tripletable;
Main函数调用子函数时输入1为调用
int Push_juzhen(int m, int n, int count)函数,可以实现矩阵相加功能
输入2为调用
int Dec_juzhen(int m, int n, int count)函数,可实现矩阵相减功能
输入3为调用
int Mul_juzhen()函数,可以实现矩阵相乘功能
(4)详细分析(流程图 伪代码)
加法函数
int Push_juzhen(int m, int n, int count)//矩阵相加(行,列,矩阵数)
{
// p行,q列,s非零元素个数,v元素值
//ucount对数组下标计数的变量,与变量x实现多个矩阵相加
for (int c = 0; c count; c++)
{
int x = 0;
cout 请输入第 c + 1 个矩阵???非零元素个数 endl;
cin s;
cout 请依次输入非零元素所在行和列以及该非零元素的值并以空格隔开 endl;
for (; x s; x++)//传递行列及元素值
{
cin p q v;
a.cop[x].i = p;//将p赋值给data[x].i
a.cop[x].j = q;//将q赋值给data[x].j
a.cop[x].v = v;//将v赋值给data[x].v
}
//g行//h列
for (int g = 1; g = m;g++)
for (int h = 1; h = n; h++)
{
int l;//存储下标
for (l = 0; l s; l++)//对辅助存储中的三元组进行行逻辑排序,将数据存入a.data
{
if (a.cop[l].i == ga.cop[l].j == h)
{
a.data[u].i = a.cop[l].i;
a.data[u].j = a.cop[l].j;
a.data[u].v = a.cop[l].v;
u++;
}
}
}
}
//矩阵相加//k为行数//h为列数
for (int k = 0; k u; k++){
for (int h = 0; h = ucount; h++){
if (a.data[k].i == b.data[h].ia.data[k].j == b.data[h].j)//判断行列是否相等
b.data[h].v += a.data[k].v;
else{
b.data[ucount].i = a.data[k].i;
b.data[ucount].j = a.data[k].j;
b.data[ucount].v = a.data[k].v;
ucount++;//存储空间增加计数
}break;//增加一组数据时跳出循环,避免重复计算
}
}
return 0;
}
相减函数
int Dec_juzhen(int m, int n, int co
您可能关注的文档
最近下载
- 新人教版八年级上册物理全册教学课件(2024年秋季新版教材).pptx
- 心房颤动患者心脏康复指南.pptx VIP
- 2023年美国心脏学会(AHA)心肺复苏(CPR)和心血管急救(ECC)指南.docx
- 第12章 机械效率 难题练习 2021年初中物理培优(重点高中自主招生 竞赛).docx VIP
- 中医内科学肥胖.pptx
- 整形外科诊疗指南.docx
- 提高四级手术术前多学科讨论完成率PDCA案例.pptx VIP
- 2025年秋新教科版三年级上册科学全册精编教案教学设计(新教材).docx
- 电工电子技术基础.pptx VIP
- 2025年新版《GAMP5(良好自动化生产实践规范)指南》中英对照版.pdf VIP
文档评论(0)