程序设计大作业文档格式.docx

上传人:b****5 文档编号:19850909 上传时间:2023-01-10 格式:DOCX 页数:10 大小:351.05KB
下载 相关 举报
程序设计大作业文档格式.docx_第1页
第1页 / 共10页
程序设计大作业文档格式.docx_第2页
第2页 / 共10页
程序设计大作业文档格式.docx_第3页
第3页 / 共10页
程序设计大作业文档格式.docx_第4页
第4页 / 共10页
程序设计大作业文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

程序设计大作业文档格式.docx

《程序设计大作业文档格式.docx》由会员分享,可在线阅读,更多相关《程序设计大作业文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

程序设计大作业文档格式.docx

1.1设计题目3

1.2设计内容3

1.3开发工具3

1.4应用平台3

2详细设计3

2.1程序结构3

2.2主要功能3

2.3函数实现3

2.4开发日志4

3程序调试及运行4

3.1程序运行结果4

3.2程序使用说明4

3.3程序开发总结4

4附件(源程序)4

1摘要

1.1设计题目

查找算法

1.2设计内容

本程序建立了一个CZSF.cbp的C程序工程。

具体内容为如下:

#include<

stdio.h>

/*预处理命令*/

stdlib.h>

#include"

kspx.h"

/*自定义的头文件,包含快速排序函数kspx的相关信息*/

intmain()

{

voidsearch(inta[],intb,intn);

/*对能够实现程序查找功能的search函数进行声明*/

inta[50],b,n,i;

/*定义整形数组和变量*/

printf("

inputthesumofthenumbers:

"

);

scanf("

%d"

&

n);

/*输入所要查找得数的范围*/

printf("

input%dnumbers:

n);

for(i=0;

i<

n;

i++)scanf("

a[i]);

/*依次输入各个数,并存储到数组中去*/

printf("

theneednumber:

b);

/*输入所要查找得数*/

kspx(a,n);

/*调用快速排序函数对该组数进行排序*/

search(a,b,n);

/*利用查找函数进行查找*/

return0;

}

voidsearch(inta[],intb,intn)/*search函数的定义*/

intx1=0,x2=n-1,mid,j=0;

/*定义变量想,x1,x2,mid和j*/

while(x1<

=x2)/*循环条件,x1和x2分别为区间左右端点*/

{

mid=(x1+x2)/2;

/*mid为区间中值*/

if(b<

a[mid])x2=mid-1;

elseif(b>

a[mid])x1=mid+1;

/*依据查找数b和a[mid]的大小关系确定新区间*/

else

++mid);

/*输出b所在该顺序数组中的位置*/

j=1;

break;

/*发现b,跳出循环*/

}

if(j==0)printf("

nofound!

/*判断b是否在该组数中*/

1.3开发工具

CodeBlocks10.05

1.4应用平台

Windows2000/XP/Vista32位

2详细设计

2.1程序结构

该程序功能的实现是有三个函数来共同完成的,其中main函数是系统主调函数,为顺序结构,其余两个函数在main函数中被调用。

kspx函数为排序函数,不属于报告范围。

Search函数为查找函数,它主要是由一个当型循环体内部穿插选择语句所构成的。

main函数中的局部变量n和b通过值传递的方式传给search函数中的形参变量n和b,指针常量a通过地址传递的方式传给search函数中的指针变量a,这样search函数就可以调用主函数中的数值了。

函数调用结束后形参变量释放,并得到返回值传给主调函数。

2.2主要功能

该程序的主要功能是判断一组数中是否含有某一已知变量,若有,就对该组数进行顺序排列,并输出该变量在数组中的位置,若没有,就输出“nofound!

”。

功能的实现主要是由kspx函数和search函数来完成的。

2.3函数实现

本程序的主要功能,即查找,是由search函数来实现的,以下详细介绍该函数的算法和结构:

Search函数的功能是调用主函数中的数组a和局部变量b,n.进而利用折半查找算法进行数据查找的。

其具体内容如下:

voidsearch(inta[],intb,intn)

=x2)

}

它的算法是这样的:

对于一组已经按从小到大顺序排列的数组a,取其元素个数为n,x1和x2分别为待查找数字b所在区间的左端点和右端点,mid=(x1+x2)/2为区间中点。

⑴如果b<

a[mid]就x2=mid-1改变区间右端点,缩小区间长度,进入下一层循环。

⑵如果b>

a[mid]就x1=mid+1改变区间右端点,缩小区间长度,进入下一层循环。

⑶如果b=a[mid]就printf("

把b所在的位置输出,并j=1跳出循环。

⑷判断j的值确定该数组中是否存在b值没有就输出“nofound!

”结束程序。

它的结构是这样的:

利用当型循环语句while,执行上述算法的⑴⑵⑶部分,循环条件是x1<

=x2,⑴⑵⑶部分是靠选择语句if有机组合到一起的。

循环结束后执行算法第四步,并最终结束函数的调用。

main函数整体是顺序结构。

2.4开发日志

我最初是想在利用折半查找算法的基础上,通过对search函数的直接递归调用来实现其查找功能的,不过没有调试正确,所以利用当型循环语句,外加循环终止条件进行控制,这表明C程序许多地方都是相通的,同一种算法可能有多种不同的C语句表达形式,只是其空间复杂性和时间复杂性不一样而已。

C程序的很多地方,我还不能灵活的加以应用,这就需要我沉下心来,仔细分析,多上机,多做例题,从而真正掌握这门描述抽象事物的基本工具。

3程序调试及运行

3.1程序运行结果

上面所显示的是程序某一次运行所得到的结果图,如图所示,第一行输入所查找数的范围,即数组的大小,第二行依次输入数各个数组元素,第三行输入所要查找的数,回车后,即得到第五行,查询的结果。

各行均有提示,按要求输入即可。

3.2程序使用说明

程序的主要作用:

判断一组数中是否含有某一已知变量,若有,就对该组数进行顺序排列,并输出该变量在数组中的位置,若没有,就输出“nofound!

程序的使用方法:

在CodeBlocks10.05下运行C源程序,执行.exe程序,并按提示输入相关数据,即可运行得到最终结果。

3.3程序开发总结

C程序大作业能够将简单的算法扩展为实现一定作用的应用程序,从而锻炼了一名程序员在多个方面的能力,如程序结构的组成,相关函数的调用,函数参数的传递,循环体和选择语句的合理构成等等。

这对一名初涉C程序的新手而言,无疑是有很重要的意义的!

4附件(源程序)

inta[50],b,n,i;

return0;

其中头文件kspx.h的具体内容如下:

#ifndefZBPX_H_INCLUDED

#defineZBPX_H_INCLUDED

voidkspx(inta[],intn)

inti,j,k,t;

n-1;

i++)

k=i;

for(j=i+1;

j<

j++)

if(a[k]>

a[j])k=j;

elsecontinue;

if(k!

=i)

t=a[i];

a[i]=a[k];

a[k]=t;

#endif//ZBPX_H_INCLUDED

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1