1 / 20
文档名称:

C语言毕业课程设计 10通一.doc

格式:doc   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言毕业课程设计 10通一.doc

上传人:珍贵文档 2015/11/18 文件大小:0 KB

下载得到文件列表

C语言毕业课程设计 10通一.doc

相关文档

文档介绍

文档介绍:1 前言
从C语言产生到现在,它已经成为最重要和最流行的编程语言之一。
例如在一个5*5的矩阵中找出鞍点(“鞍点”指的是一个位置,该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点),并且还要在该矩阵中找出最大值放在中心,四个角分别放四个最小的元素(按从左到右,从上到下顺序依次从小到大存放),将该任务用函数实现。
2 需求分析
课程设计目的
学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。
课程设计任务
已知一个5*5的矩阵,用函数实现:(1)找出该矩阵中的鞍点,“鞍点”指的是一个位置,该位置的元素在该行上最大,该列上最小,也可以没有鞍点。(2)将矩阵中最大的元素放在中心,四个角分别放四个最小的元素(按从左到右,从上到下顺序依次从小到大存放)。
设计环境
(1)WINDOWS 2000/2003/XP/7/Vista系统
(2)Visual C++或TC集成开发环境
开发语言
C语言
3 分析和设计
模块设计
定义一个二维数组a[N][N]cunfang N*N的矩阵的N=5。
定义一个函数input(int a[N][N])用来输入矩阵,由于N等于5,所以要依次输入25个数。
定义一个函数output(int a[N][N])用来输出矩阵。
定义一个函数andian(int array[N][N]用来找出N*N矩阵a中找鞍点,先定义i,j来表示行和列,通过for (i = 0; i <= 4; i++)进行行的循环和定义sign = 1,确定行后再利用for(j = 0; j <=4;j++)循环列来求出每行的最大值,再用函数for(j = 0; j <=4;j++)进行行循环来比较行最大是否是列最小,如果行最大不是列最小则输出sign = 0,判断sign是等于0还是等于1,如果等于1,则这确定该数为鞍点并输出,再运行一次函数number++,如果等于0,就判断number是否等于0,如果等于0则输出"没有鞍点"。
定义一个函数max_min(int x[N][N])用来求出最大值和4个在最小值,先那二维数组转化为一维数组,在一维数组中找出最大子和4个最小的并按从小到大的顺序排列,再把最大值与中间的数替换,然后把4个最小值按从左到右,从上到下依次从小到大存放。
系统流程图
结束
调用函数input()输入N*N矩阵a
调用函数output()输出N*N矩阵a
调用函数andian()在N*N矩阵a中找鞍点
调用函数max_min()在N*N矩阵a中找最大
开始
系统流程图

主要模块的流程图
(1)输入矩阵函数流程图
i=0
N
i<5
Y
scanf("%d",&a[i][j]) ;
i++
printf("数组是:");
输入矩阵函数流程图

(2)输出矩阵函数流程图
输出矩阵函数流程图
在a中找出鞍点流程图
(3)在a中找出鞍点流程图

4)找最大值和最小值流程图。
i<5
i++
b[k]=x[i][j]
i=0
i=0
N
Y
N
Y
1
k!=i
j<25
t=b[k]
i++
k=j
j++
j=i+1
k=i
i<24
N
Y
N
Y
N
Y
1
2
N
x[i][j]==b[24]
t=x[i][j];
x[i][j]=x[2][2];
x[2][2]=t;
i++
i=0
i<5
Y
N
Y
N
N
Y
N
Y
3
2
N
Y
N
Y
i<5
i++
i=0
x[i][j]==b[0]
t=x[i][j];
x[i][j]=x[0][0];
x[0][0]=t;
4
3
N
Y
N
Y
i<5
i++
i=0
x[i][j]==b[1]
t=x[i][j];
x[i][j]=x[0][4];
x[0][4]=t;
4
5