矩阵运算综合系统.docx
- 文档编号:34488
- 上传时间:2022-10-01
- 格式:DOCX
- 页数:15
- 大小:141.37KB
矩阵运算综合系统.docx
《矩阵运算综合系统.docx》由会员分享,可在线阅读,更多相关《矩阵运算综合系统.docx(15页珍藏版)》请在冰豆网上搜索。
矩阵运算综合系统
学号:
13416415
常州大学
课程设计
课程设计名称:
C语言课程设计
题目:
1、学生成绩管理系统
2、矩阵运算综合系统
学生姓名:
严旭
学院(系):
国际教育交流学院专业班级:
中加132
指导教师:
杨亚南
设计时间:
2014年6月23日2014年7月4日
常州大学课程设计任务书
中加专业132班严旭同学:
一、设计题目矩阵运算综合系统
二、设计内容
本系统要求具有以下功能:
1、具有矩阵加法运算功能
2、具有矩阵乘法运算功能
3、具有求螺旋矩阵功能
4、具有矩阵转置功能
三、基本要求
1、编写源程序的要求:
(1)能够实现任务书中的功能;
(2)尽可能使界面友好、直观、易操作
(3)源程序要有适当的注释,使程序容易阅读。
2、撰写“课程设计报告”,要求如下:
(1)封面:
统一采用《常州大学课程设计说明书》封面格式
(2)任务书
(3)目录
(4)“课程设计报告”正文
3、课程设计验收要求:
(1)运行所设计的系统;
(2)回答有关问题;(3)提交课程设计报告;(4)提交源程序。
四、进度安排
1、系统分析、设计准备阶段:
6学时
2、编程调试阶段:
28学时
3、总结和书写课程设计报告阶段:
4学时
4、考核阶段:
2学时
指导教师:
年月日
教研室主任:
年月日
系主任:
年月日
一.意义和主要功能:
通过分析、设计、编码、调试和测试此软件的开发过程,独立完成了矩阵运算综合系统。
本系统主要具有以下功能:
1、具有矩阵加法运算功能;2、具有矩阵乘法运算功能;3、具有求螺旋矩阵功能;4、具有矩阵转置功能。
二.功能结构图:
三.使用说明书:
(1)打开程序界面,有加法、乘法、螺旋、转置和退出五个选项,分别由1-5表示。
(2)输入5是退出,程序关闭。
(3)输入1是矩阵加法运算。
(4)输入2是矩阵乘法运算。
(5)输入3是矩阵螺旋运算。
(6)输入4是求矩阵转置运算。
四.源程序代码:
#include"stdio.h"
#include
#include
#defineM20
#defineN20
floatA[M][N];//定义了含有400个浮点型数组元素的二维数组
floatB[M][N];
floatC[M][N];
inti,j,m,n,p,q,k,x;
voidinput()
{
printf("请输入矩阵A的行数和列数(用逗号隔开):
");
scanf("%d,%d",&i,&j);
printf("请输入矩阵B的行数和列数(用逗号隔开):
");
scanf("%d,%d",&m,&n);
while(i!
=m||j!
=n)//判断是否满足加法运算条件:
既两个矩阵的行、列数是否相等
{
printf("***对不起,您输入的两个矩阵不能相加,两个矩阵的行列数必须相等,请重新输入.***\n\n");
printf("请输入矩阵B的行数和列数(用逗号隔开):
");
scanf("%d,%d",&m,&n);
}
printf("请输入矩阵A:
\n");//输入矩阵A的元素
for(p=0;p
for(q=0;q scanf("%f",&A[p][q]); printf("输出矩阵A: \n");//输出矩阵A for(p=0;p for(q=0;q { printf("%10.2f",A[p][q]); if((q+1)%j==0) printf("\n"); } printf("请输入矩阵B: \n");//输入矩阵B的元素 for(p=0;p for(q=0;q scanf("%f",&B[p][q]); printf("输出矩阵B: \n");//输出矩阵B for(p=0;p for(q=0;q { printf("%10.2f",B[p][q]); if((q+1)%j==0) printf("\n"); } printf("矩阵A+矩阵B为: \n");//进行两个矩阵相加计算 for(p=0;p for(q=0;q C[p][q]=A[p][q]+B[p][q]; for(p=0;p for(q=0;q { printf("%10.2f",C[p][q]); if((q+1)%j==0) printf("\n"); } getchar(); } voiddel() { printf("请输入矩阵A的行数和列数(用逗号隔开): "); scanf("%d,%d",&i,&j); printf("请输入矩阵B的行数和列数(用逗号隔开): "); scanf("%d,%d",&m,&n); while(j! =m)//判定两个矩阵能否相乘: A的列数必须等于B的行数 { printf("***对不起,您输入的两个矩阵不能相乘,B矩阵的行数必须和A矩阵的列数相等,请重试.***\n"); printf("请重新输入矩阵B的行数和列数(用逗号隔开): \n"); scanf("%d,%d",&m,&n); } printf("请输入矩阵A: \n");//输入矩阵A的元素 for(p=0;p for(q=0;q scanf("%f",&A[p][q]); printf("输出矩阵A: \n");//输出矩阵A for(p=0;p for(q=0;q { printf("%10.2f",A[p][q]); if((q+1)%j==0) printf("\n"); } printf("请输入矩阵B: \n");//输入矩阵B的元素 for(p=0;p for(q=0;q scanf("%f",&B[p][q]); printf("输出矩阵B: \n");//输出矩阵B for(p=0;p for(q=0;q { printf("%10.2f",B[p][q]); if((q+1)%j==0) printf("\n"); } printf("矩阵A*矩阵B为: \n");//计算两个矩阵相乘 for(p=0;p for(q=0;q { C[p][q]=0; for(k=0;k C[p][q]+=A[p][k]*B[k][q]; } for(p=0;p for(q=0;q { printf("%10.2f",C[p][q]); if((q+1)%n==0) printf("\n"); } getchar(); } voidfind() { intarry[N][N]={0}; inti,j,a,b; intn=1; intL; L=(N+1)/2; for(i=0;i { b=i; for(a=i;a { arry[a][b]=n++; } a--; for(b=i+1;b { arry[a][b]=n++; } b--; for(a=N-i-2;a>=i;a--) { arry[a][b]=n++; } a++; for(b=N-i-2;b>i;b--) { arry[a][b]=n++; } } for(a=0;a { for(b=0;b { printf("%5d",arry[a][b]); } printf("\n\n"); } getchar(); getchar(); } voidarrange() { printf("请输入矩阵A的行数和列数(用逗号隔开): "); scanf("%d,%d",&i,&j); printf("请输入矩阵A: \n");//输入矩阵A的元素 for(p=0;p for(q=0;q scanf("%f",&A[p][q]); printf("输出矩阵A\n");//输出矩阵A for(p=0;p for(q=0;q { printf("%10.2f",A[p][q]); if((q+1)%j==0) printf("\n"); } for(p=0;p for(q=0;q B[q][p]=A[p][q]; printf("输出矩阵A的转置矩阵: \n"); for(p=0;p for(q=0;q { printf("%10.2f",B[p][q]);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 矩阵 运算 综合 系统