折半查找法猜篮球的价格.docx

上传人:b****5 文档编号:12334617 上传时间:2023-04-18 格式:DOCX 页数:12 大小:171.39KB
下载 相关 举报
折半查找法猜篮球的价格.docx_第1页
第1页 / 共12页
折半查找法猜篮球的价格.docx_第2页
第2页 / 共12页
折半查找法猜篮球的价格.docx_第3页
第3页 / 共12页
折半查找法猜篮球的价格.docx_第4页
第4页 / 共12页
折半查找法猜篮球的价格.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

折半查找法猜篮球的价格.docx

《折半查找法猜篮球的价格.docx》由会员分享,可在线阅读,更多相关《折半查找法猜篮球的价格.docx(12页珍藏版)》请在冰豆网上搜索。

折半查找法猜篮球的价格.docx

折半查找法猜篮球的价格

课程设计

学号

班级

姓名

指导教师

2008年9月12日

课程设计任务书

题目:

用折半查找法猜篮球的价格

一、课程设计时间

2008年9月8日至2008年9月12日,共计1周,20学时。

二、课程设计内容

用C语言编写软件完成以下任务:

用户从键盘输入篮球的价格(假设价格在1~200元之间,并且为整数),让计算器从1元开始用折半法猜测篮球的价格。

若计算器的猜测价格偏高,用户输入“高”;若计算器的猜测价格偏低,用户就输入“低”;若计算器猜对了,则显示“正确”。

三、课程设计要求

1.程序质量:

✧贯彻结构化的程序设计思想。

✧用户界面友好,功能明确,操作方便。

✧用户界面中的菜单至少应包括“输入篮球价格”、“计算器开始猜测”、“退出”3项。

✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。

2.课程设计说明书:

课程结束后,上交课程设计说明书和源程序。

课程设计说明书的格式和内容参见提供的模板。

四、指导教师和学生签字

指导教师:

________学生签名:

________

五、成绩:

六、教师评语:

目录

一、需求分析1

二、程序流程图2

三、核心技术的实现说明及相应程序段5

四、个人总结7

五、参考文献8

六、源程序8

 

一、需求分析

经过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,其中每一个模块对应一个函数,他们的功能分别是:

输入篮球价格函数(getprice),猜测篮球价格函数(guessprice),以及主函数(main)。

1、输入篮球价格函数主要实现程序最初运行时用户对篮球价格的设定(价格在1-200元之间,并且为整数);

2、猜测篮球价格函数实现的功能是让计算器从1元开始用折半法猜测篮球的价格。

若计算器的猜测价格偏高,用户输入“高”;若计算器的猜测价格偏低,用户就输入“低”;若计算器猜对了,则显示“正确”。

3、主函数实现的是程序界面的打印,以及根据用户输入的指令实现功能函数的调用。

 

二、程序流程图

1、程序总体结构图

图1程序总体结构图

图1程序总体结构图

 

2、具体功能框图

(1)输入篮球价格函数(getprice)

定义变量初始化

当输入价格不在1-200元以内

提示用户输入篮球价格

输入价格给变量price

把price值带回主函数

 

图2添加学生数据函数

图2输入篮球价格函数流程图

(2)猜测篮球价格函数(guessprice)

变量初始化

mid=(low+high)/2;当赋给mid的值不等于真实价格时

输入字符串判断是否偏高

把mid+1的值赋值

给low变量

把mid-1的值赋值

给high变量

 

图3猜测篮球价格函数流程图

 

三、核心技术的实现说明及相应程序段

本程序主要由两个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。

在这些函数当中,输入篮球价格函数和猜测篮球价格函数是程序中较为核心的部分,下面进行说明。

1、输入篮球价格函数

用户输入一个价格,对这个PRICE进行讨论。

把价格限制在1—200内,如不在这个范围内的话会输出:

“请输入价格(在1~200元之间,并且为整数):

”直到输入的在1-200之间才会进行运算。

intgetprice(void)

{

intprice;

while(price<1||price>200)

{

printf("请输入价格(在1~200元之间,并且为整数):

");

scanf("%d",&price);

}

return(price);

}

图4程序主界面

2、猜测篮球价格函数

定义了两个整型变量,low,high.这分别是1,200。

用折半法来运算:

while((mid=(low+high)/2)!

=price),如果猜测的比实际的高了。

你就输入“高”,若低了你就输入“低”。

具体的程序段如下:

voidguessprice(intprice)

{

intmid,low=1,high=200;

chars[20]={""};

while((mid=(low+high)/2)!

=price)

{

printf("计算机猜测的价格是:

%d\n",mid);

printf("如果价格高,请输入“高”;如果价格低,请输入“低”\n");

if(strcmp(gets(s),"高")==0)

high=mid-1;

elseif(strcmp(s,"低")==0)

low=mid+1;

}

printf("猜测结果正确,篮球的价格是%d\n",mid);

}

图5程序运行截图

四、个人总结

在这次课设中我对计算机的c语言程序设计学习又有了更深的认识。

单独面对课题时根本没有思路,比如说什么叫折半法,是通过老师讲解才知道是什么原理,学会利用图书馆的相关资料去帮助我的题目,在老师的帮助和指导下,让我学到了程序的运行等等。

通过这次课设,让我知道计算机的程序还有很多要学习和理解的,它对日后的的毕业设计和工作都会有帮助的,我会继续努力的。

 

五、参考文献

1谭浩强.C程序设计.北京:

清华大学出版社,2007

2刘振安等.C程序课程设计.机械工业出版社.2004

 

六、源程序

#include

#include

#include/*为exit函数所在的头文件*/

#include/*为getch函数所在的头文件*/

voidmenu();

intgetprice(void)

{

intprice;

while(price<1||price>200)

{

printf("请输入价格(在1~200元之间,并且为整数):

");

scanf("%d",&price);

}

return(price);

}

voidguessprice(intprice)

{

intmid,low=1,high=200;

chars[20]={""};

while((mid=(low+high)/2)!

=price)

{

printf("计算机猜测的价格是:

%d\n",mid);

printf("如果价格高,请输入高;如果价格低,请输入低\n");

if(strcmp(gets(s),"高")==0)

high=mid-1;

elseif(strcmp(s,"低")==0)

low=mid+1;

}

printf("猜测结果正确,篮球的价格是%d\n",mid);

}

 

main()

{

intprice;

printf

("****************************************************\n"

"*****************************************************\n"

"***********欢迎使用折半查找法猜篮球价格程序**********\n"

"*****************************************************\n"

"******************输入s输入篮球价格*****************\n"

"********************输入u开始猜测*******************\n"

"********************输入n退出程序*******************\n"

"***************************************************\n");

while

(1)

switch(getch())

{

case's':

price=getprice();break;

case'u':

guessprice(price);break;

case'n':

exit(0);

}

}

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

当前位置:首页 > 成人教育 > 成考

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

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