课程设计设计一个矩阵运算器.docx
- 文档编号:10172319
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:14
- 大小:136.32KB
课程设计设计一个矩阵运算器.docx
《课程设计设计一个矩阵运算器.docx》由会员分享,可在线阅读,更多相关《课程设计设计一个矩阵运算器.docx(14页珍藏版)》请在冰点文库上搜索。
课程设计设计一个矩阵运算器
课程设计--设计一个矩阵运算器
《数据结构C语言版》
课程设计
一、题目内容的描述
设计一个矩阵运算器
【问题描述】
设计一个矩阵运算器,对矩阵进行乘方(^)、加(+)、减(-)、乘(*)、转置等运算;
【基本要求】
(1)参见数据结构题集P136页4.1
(2)求含有乘方(^)、加(+)、减(-)、乘(*)运算;。
(3)写出课程设计报告
【测试数据】
分别选定一组测试数据进行测试,验证程序的正确性。
二、应用程序功能的详细说明
1(输入矩阵运算器:
说明该程序只适用于矩阵运算;
2.提供功能选择的界面:
以菜单的形式提供功能选择,可以对所要进行的功能进行选择,最后系统自动实行此操作。
3.矩阵的加法:
先创建两个矩阵,要求两个矩阵的行和列分别相等。
调用矩阵的加法函数,系统自动输出新的相加后的矩阵。
4.矩阵的减法:
先创建两个矩阵,要求两个矩阵的行和列分别相等。
调用矩阵的减法函数,系统自动输出新的相减后的矩阵。
5.矩阵的乘法:
先创建两个矩阵,要求第一个矩阵的列和第二个矩阵的行相等。
调用矩阵的乘法函数,系统自动输出新的相乘后的矩阵。
6.矩阵的转置:
先创建矩阵,输入矩阵的行和列数,调用矩阵的转置函数,系统自动输出新的转置后的矩阵。
7.方阵的乘方:
先创建一个方阵,输入方阵的阶乘,调用方阵的乘方函数,然后系统自动输出新的方阵。
三、输入数据类型、格式和内容
{constintMax=100;
inta[Max][Max],b[Max][Max],g[Max][Max],c[Max][Max],h[Max][Max];}
ConstintMax=100;定义矩阵的最大存储空间为100;
inta[Max][Max],b[Max][Max],g[Max][Max],c[Max][Max],h[Max][Max];
在函数中定义五个矩阵。
四、主要函数申明
voidcreatejuzheng(intd[Max][Max],intm,intn)
创建矩阵函数;
voidshuchujuzheng(intz[Max][Max],intm,intn)
输出矩阵函数;
voidjuzhengchengfang(intm,intn,intp)
矩阵乘方函数;
voidjuzhengjiafa(intm,intn)矩阵加法函数;
voidjuzhengjianfa(intm,intn)矩阵减法函数;
voidjuzhengchengfa(intm,intn)矩阵乘法函数;
voidjuzhengzhuanzhi(intm,intn)矩阵转置函数;
switch(o)
创建矩阵运算菜单。
五、主要模块的算法描述
六、程序的源代码清单
#include
#include
constintMax=100;
inta[Max][Max],b[Max][Max],g[Max][Max],c[Max][Max],h[Max][Max];
voidcreatejuzheng(intd[Max][Max],intm,intn)
{
inti,j;
for(i=0;i for(j=0;j scanf("%d",&d[i][j]);} voidshuchujuzheng(intz[Max][Max],intm,intn) { inti,j; for(i=0;i { for(j=0;j { if(j==0) printf("|%4d",z[i][j]); elseif(j==n-1) printf("%4d|\n",z[i][j]); else printf("%4d",z[i][j]); } } } voidjuzhengchengfang(intm,intn,intp) { inte,i,j,k; printf("%d次乘方后的矩阵: \n",p); { for(i=0;i for(j=0;j h[i][j]=a[i][j]; } for(e=0;e {for(i=0;i for(j=0;j for(k=0;k c[i][j]+=h[i][k]*a[k][j]; for(i=0;i for(j=0;j h[i][j]=c[i][j]; for(i=0;i for(j=0;j c[i][j]=0;} } voidjuzhengjiafa(intm,intn){ inti; intj; printf("相加后的矩阵: \n"); for(i=0;i for(j=0;j c[i][j]=a[i][j]+b[i][j]; } voidjuzhengjianfa(intm,intn) { inti; intj; printf("相减后的矩阵: \n"); for(i=0;i for(j=0;j c[i][j]=a[i][j]-b[i][j]; } voidjuzhengchengfa(intm,intn) { inti,j,k; printf("相乘后的矩阵: \n"); for(i=0;i for(j=0;j for(k=0;k g[i][j]+=a[i][k]*b[k][j]; } voidjuzhengzhuanzhi(intm,intn) { inti,j; printf("转置后的的矩阵: \n"); for(i=0;i for(j=0;j c[j][i]=a[i][j]; } intmain() { intm,n,q,o,f; printf("矩阵运算器\n"); printf("****1: 矩阵的加法****\n"); printf("****2: 矩阵的减法****\n"); printf("****3: 矩阵的乘法****\n"); printf("****4: 矩阵的置换****\n"); printf("****5: 方阵的乘方****\n"); printf("请输入执行的操作: \n"); scanf("%d",&o); switch(o) { case (1): printf("请输入矩阵A的行和列: \n"); scanf("%d",&m);scanf("%d",&n); printf("矩阵A: \n"); createjuzheng(a,m,n); printf("请输入矩阵B的行和列: \n"); scanf("%d",&m);scanf("%d",&n); printf("矩阵B: \n"); createjuzheng(b,m,n); juzhengjiafa(m,n); shuchujuzheng(c,m,n); break; case (2): printf("请输入矩阵A的行和列: \n"); scanf("%d",&m);scanf("%d",&n); printf("矩阵A: \n"); createjuzheng(a,m,n); printf("请输入矩阵B的行和列: \n"); scanf("%d",&m);scanf("%d",&n); printf("矩阵B: \n"); createjuzheng(b,m,n); juzhengjianfa(m,n); shuchujuzheng(c,m,n); break; case(3): printf("请输入矩阵A的行和列: \n"); scanf("%d",&m);scanf("%d",&n); printf("矩阵A: \n"); createjuzheng(a,m,n); printf("请输入矩阵B的行和列: \n"); scanf("%d",&n);scanf("%d",&q); printf("矩阵B: \n"); createjuzheng(b,n,q); juzhengchengfa(m,q); shuchujuzheng(g,m,q); break; case(4): printf("请输入矩阵的行和列: \n"); scanf("%d",&m);scanf("%d",&n); printf("矩阵: \n"); createjuzheng(a,m,n); juzhengzhuanzhi(m,n); shuchujuzheng(c,n,m); break; case(5): printf("请输入方阵的阶乘: \n"); scanf("%d",&m); printf("方阵: \n"); createjuzheng(a,m,m); printf("请输入所求方阵的乘方: \n"); scanf("%d",&f); juzhengchengfang(m,m,f); shuchujuzheng(h,m,m); } return0; } 运行结果截图 七、结束语及体会 通过一周的课程设计编程,深刻体会到这次设计学习对我们编程有很大的提高。 的确我们需要这样的学习方式,我觉得它能够很快的将我们所学的理论知识用于实际当中,同时在很大程度上巩固了我们的理论知识。 我本次编程的题目是设计一个矩阵运算器,一开始觉得自己要编的程序太简单,但实际上我还是花了很多时间去编码并调试。 尽可能的优化程序的格式,使其看起来更美观。 这次课程设计也让我发现我的编程能力还是比较差的,之后的学习中我会尽可能的多花些时间用在软件编程上,争取将自己锻炼成一个编程高手。 八、参考文献 《《数据结构(C语言版)》 《数据结构教程上机实验指导》
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 设计 一个 矩阵 运算器