西北工业大学C语言大作业实验报告
学 院*****************班 级**********学 号***********姓 名********
目录
1 摘要3
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 设计内容
本程序是一个演示折半查找算法的演示程序。由用户输入查找的数据表列和查找的数据,系统在将数表排序后可以在屏幕上演示在排序后的表列中按折半查找法查找该数据的具体过程(通过每次查找的中间数据、下次查找表列等,具体效果见下图),支持多次演示、错误提醒,程序暂停演示功能。
1.3 开发工具
Visual C++ 6.0和Win32。
1.4 应用平台
Windows 2000/XP/Vista 32位
2 详细设计
2.1 程序结构
程序功能模块:
本程序主要由五大模块组成:程序说明模块、输入模块、排序模块、折半法查找及显示模块、进程选择模块。各模块的主要功能如下:
程序说明模块:给使用者营造一个较为友好的界面,同时提供程序开发人员的相关信息以及程序操作的相关说明信息。
此部分模块主函数源代码如下:
int a[N];/*存储要查找的数表,用户输入*/
int i,n,num,count;/*count为折半次数计数器,n为数表数据个数,num存储所查数据*/
int top,bottom,mid;
char c;/*存储选择函数中的输入的字符y或n*/
int flag=1;/*折半法循环标志变量*/
int loc=-1;/*存储所查找数据位置*/
double k=0;
p_s(76);puts("\n");/*引用p_s函数,打出一行'*'*/(p_s函数位于print_star.cpp文件中,参见下文)
printf("****欢****迎****使****用****折****半****查****找****法****演****示****器****\n");
puts("\n");/*程序欢迎语*/
p_s(13);
printf("制作者:***************** ");/*作者信息*/
p_s(4);
printf("Email:************************ ");/*电子邮件*/
p_s(11);puts("\n");
p_s(76);puts("\n");/*再次引用p_s函数,程序说明部分结束*/
附:print_star.cpp文件源代码
#include
void p_s(int k)
{
int i;
for(i=1;i<=k;i++)
/*连续输出ka个'*'*/
printf("*");
}
输入模块:引导使用者输入要在其中查找数据的数表的数据个数和数表数据。并通过一个judge函数判断输入是否合法,若不合法提醒用户继续输入。
此部分模块主函数源代码如下:
printf("请输入你想要在其中查找数据的数据表列的数据个数(1--50):\n");//
scanf("%d",&n);
n=judge(n);/*引用judge函数,判断n值是否合法*/(judge函数位于judge.cpp文件,参见下文)
printf("请输入你要在其中查找数据的数据表列(%d个数据 用空格间隔 大小排序不限):\n",n);/*输入要查找的n 个数据*/
for(i=0;i<=n-1;i++)
scanf("%d",&a[i]);/*将要查找的n个数据存入数组a*/
sort(a,n);/*引用sort函数,将数表排序*/
printf("\n