数据结构课程设计参考.docVIP

  • 58
  • 0
  • 约5.9千字
  • 约 12页
  • 2018-03-05 发布于贵州
  • 举报
数据结构课程设计参考

山东建筑大学 课 程 设 计 成 果 报 告 题 目: 1. 用数组实现两个矩阵的相乘运算 2. 迷宫问题 课 程: 数据结构A课程设计 院 (部): 管理工程学院 专 业: 信息管理与信息系统 班 级: 信管122 学生姓名: 学 号: 指导教师: 完成日期: 2014 年 12 月 24 日 课程设计报告 一、 课程设计概述 3 二、 课程设计题目一 3 [详细设计] 3 [调试分析] 4 三、 课程设计题目二 5 [问题描述] 5 [需求分析] 5 [概要设计] 5 [存储结构] 5 [流程图] 6 [详细设计] 6 [调试分析] 11 四、参考文献: 13 课程设计报告 课程设计概述 本次数据结构课程设计共完成两个题:用数组实现两个矩阵的相乘运算、哈夫曼编/译码器。 使用语言:C语言 编译环境:vc6.0 课程设计题目一 用数组实现两个矩阵的相乘运算 [详细设计] #include stdio.h int r[6][6];//存放相乘后的矩阵 void mult(int a[6][6],int b[6][6])//实现两个矩阵相乘 { int i,j; for(i=0;i6;i++) { for(j=0;j6;j++) { r[i][j]=a[i][j]*b[i][j];//矩阵的行列等于两个相乘矩阵对应的行列相乘 } } } void main()//主函数 { int i,j; int num1[6][6],num2[6][6]; printf(请输入第一个矩阵的值:\n); for(i=0;i6;i++) for(j=0;j6;j++) scanf(%d,num1[i][j]);//读入第一个矩阵相应的值 printf(请输入第二个矩阵的值:\n); for(i=0;i6;i++) for(j=0;j6;j++) scanf(%d,num2[i][j]);//读入第一个矩阵相应的值 mult(num1,num2);//调用mult函数 printf(\n两个矩阵相乘后的结果为:\n); for(i=0;i6;i++) {for(j=0;j6;j++) printf(%4d,r[i][j]);//输出相乘后的矩阵 printf(\n); } } [调试分析] 本程序主要的操作对象是数组,使用的存储结构是二维数组。利用循环结构完成数据的输入和计算。 问题: 现象:无法输入矩阵中的数字。 原因:原题目中给出的代码中控制循环的变量初始值赋值错误,应该从0开始赋值。 [运行结果及分析] 运行结果正确。修改后,矩阵可以正确输入,计算过程也正确,所以运行结果正确。 课程设计题目二 迷宫问题 [问题描述] 以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 [需求分析] 实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 编写递归形式的算法,求得迷宫中所有可能的通路; [概要设计] //初始化栈 void InitStack(Stack *p) //入栈 void Push(Stack *p,int x,int y,int d) //出栈并读出上一步的坐标 void Pop(Stack *p,int read[2],int d) //迷宫的初始化 void InitMaze(int Maze[11][10]) //输出迷宫 void Print(int Maze[11][10]) //寻找路径 int Ways(Stack *p,int Maze[11][10],int rkx,int rky,int ckx,int cky,int d) //显示菜单 void menu() //主函数 int main() [存储结构] typedef struct{ int posx[length]; int posy[length]; int top; int base; }Stack; [流程图] [详细设计] #include stdio.h #include stdlib.h #include malloc.h #define length 50 #define d directi

文档评论(0)

1亿VIP精品文档

相关文档