数据结构课程设计成绩分析问题用数组实现两个矩阵的相乘问题山东建筑大学分解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
山东建筑大学
课程设计成果报告
题目: 1.用数组实现两个矩阵的相乘运算
2.成绩分析问题
课程:数据结构A课程设计
院(部):管理工程学院
专业:信息管理与信息系统
班级:信管112
学生姓名:王楷仁
学号:2011021686
指导教师:陈兆柱
完成日期:2014年1月1日
目录
一、课程设计概述 (3)
二、课程设计题目一 (3)
[问题描述] (3)
[详细设计] (3)
[调试分析] (4)
[运行结果及分析] (4)
三、课程设计题目二 (5)
[问题描述] (5)
[需求分析] (5)
[概要设计] (5)
[存储结构] (6)
[流程图] (7)
[详细设计] (7)
[调试分析] (21)
[运行结果及分析] (21)
四、参考文献: (27)
课程设计报告
一、课程设计概述
本次数据结构课程设计共完成三个题:1、用数组实现两个矩阵的相乘问题;2、成绩分析问题。
使用语言:C
编译环境:vc6.0
二、课程设计题目一
[问题描述]
程序结构:
#include “stdio.h”
int r[6][6];
void mult(int a[6][6] , int b[6][6])
{ }
main()
{
int i,j;
int num1[6][6],num2[6][6];
printf(“请输入第一个矩阵的值:”,);
for(i=1;i<=6;i++)
for(j=1;j<=6;j++)
scanf(“%d”,&num1[i][j]);
printf(“请输入第二个矩阵的值:”,);
for(i=1;i<=6;i++)
for(j=1;j<=6;j++)
scanf(“%d”,&num2[i][j]);
mult(num1,num2);
printf(“\n两个矩阵相乘后的结果为:”);
for(i=1;i<=6;i++)
{for(j=1;j<=6;j++)
printf(“%4d”,r[i][j]);
printf(“\n”);
}
}
要求及提示:
1、要求完善函数mult( ),
2、现有A,B两个矩阵,要求用上述程序求出A与B相乘后的运行结果,
[详细设计]
#include
int r[6][6];
void mult(int a[6][6] , int b[6][6])
{
int m,n;
for(m=0;m<6;m++)
{
for(n=0;n<6;n++)
{
r[m][n]=a[m][n]*b[n][m];
}
}
}
main()
{
int i,j;
int num1[6][6],num2[6][6];
printf("请输入第一个矩阵的值: \n ");
for(i=0;i<6;i++)
for(j=0;j<6;j++)
scanf("%d",&num1[i][j]);
printf("请输入第二个矩阵的值: \n ");
for(i=0;i<6;i++)
for(j=0;j<6;j++)
scanf("%d",&num2[i][j]);
mult(num1,num2);
printf("\n两个矩阵相乘后的结果为:\n");
for(i=0;i<6;i++)
{for(j=0;j<6;j++)
printf("%4d",r[i][j]);
printf("\n");
}
}
[调试分析]
本程序通过定义二维数组来存储矩阵,利用循环结构来完成运算,再通过调用函数完成运算。问题一:
现象:矩阵的第一行和第一列无法完成正常的矩阵运算后的输出。
原因:在原题目中,程序给出输出循环体的控制变量赋值错误。
[运行结果及分析]
三、课程设计题目二
成绩分析文档资料
[问题描述]
录入、保存一个班级学生多门课程的成绩,并对成绩进行分析。[需求分析]
1.通过键盘输入各学生的多门课程的成绩,建立相应的文件input.dat
2.对文件input.dat中的数据进行处理,要求具有如下功能:
a.按各门课程成绩排序,并生成相应的文件输出
b.计算每人的平均成绩,按平均成绩排序,并生成文件
c.求出各门课程的平均成绩、最高分、最低分、不及格人数、
60-69分人数、70-79分人数、80-89分人数、90分以上人数
d.根据姓名或学号查询某人的各门课成绩,重名也要能处理
3.界面美观
[概要设计]
-=ADT=-
{
Void initlinklist();
//单链表初始化,建立链表
void creat();
//录入学生信息
void prnt(linklist *p);
//输出单条记录