1、折半查找法猜篮球的价格 课程设计学 号 班 级 姓 名 指导教师 2008年 9月 12日课程设计任务书题目:用折半查找法猜篮球的价格一、课程设计时间2008年9月8日至2008年9月12日,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:用户从键盘输入篮球的价格(假设价格在1200元之间,并且为整数),让计算器从1元开始用折半法猜测篮球的价格。若计算器的猜测价格偏高,用户输入“高”;若计算器的猜测价格偏低,用户就输入“低”;若计算器猜对了,则显示“正确”。三、课程设计要求1. 程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便。 用户界面中的菜单至少应
2、包括“输入篮球价格”、“计算器开始猜测”、“退出”3项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、成绩:六、教师评语: 目录一、需求分析 1二、程序流程图 2三、核心技术的实现说明及相应程序段 5四、个人总结 7五、参考文献 8六、源程序 8一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,其中每一个模块对应一个函数,他们的功能分别是:输入篮球价格函数(getprice),猜测篮球价格函数(gues
3、sprice),以及主函数(main)。1、输入篮球价格函数 主要实现程序最初运行时用户对篮球价格的设定(价格在1-200元之间,并且为整数);2、猜测篮球价格函数 实现的功能是让计算器从1元开始用折半法猜测篮球的价格。若计算器的猜测价格偏高,用户输入“高”;若计算器的猜测价格偏低,用户就输入“低”;若计算器猜对了,则显示“正确”。;3、主函数 实现的是程序界面的打印,以及根据用户输入的指令实现功能函数的调用。二、程序流程图1、程序总体结构图图1程序总体结构图图1程序总体结构图2、具体功能框图(1)输入篮球价格函数(getprice)定义变量初始化当输入价格不在1-200元以内提示用户输入篮球
4、价格输入价格给变量price把price值带回主函数图2 添加学生数据函数图2输入篮球价格函数流程图(2)猜测篮球价格函数(guessprice)变量初始化 mid=(low+high)/2;当赋给mid的值不等于真实价格时 输入字符串判断是否偏高是否 把mid+1的值赋值给low变量把mid-1的值赋值给high 变量图3猜测篮球价格函数流程图三、核心技术的实现说明及相应程序段本程序主要由两个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,输入篮球价格函数和猜测篮球价格函数是程序中较为核心的部分,下面进行说明。1、输入篮球价格函数用户输入一
5、个价格,对这个PRICE进行讨论。把价格限制在1200内,如不在这个范围内的话会输出:“请输入价格(在1200元之间,并且为整数):”直到输入的在1-200之间才会进行运算。int getprice(void) int price; while (price 200) printf(请输入价格(在1200元之间,并且为整数): );scanf(%d, &price); return (price);图4程序主界面2、猜测篮球价格函数 定义了两个整型变量,low,high.这分别是1,200。用折半法来运算: while (mid = (low + high) / 2) != price),如果
6、猜测的比实际的高了。你就输入“高”,若低了你就输入“低”。具体的程序段如下:void guessprice(int price) int mid, low = 1, high = 200; char s20 = ; while (mid = (low + high) / 2) != price) printf(计算机猜测的价格是: %dn, mid); printf(如果价格高,请输入“高”;如果价格低,请输入“低”n); if (strcmp(gets(s), 高) = 0) high = mid - 1; else if (strcmp(s, 低) = 0) low = mid + 1;
7、printf(猜测结果正确,篮球的价格是%dn,mid);图5程序运行截图四、个人总结在这次课设中我对计算机的c语言程序设计学习又有了更深的认识。单独面对课题时根本没有思路,比如说什么叫折半法,是通过老师讲解才知道是什么原理,学会利用图书馆的相关资料去帮助我的题目,在老师的帮助和指导下,让我学到了程序的运行等等。通过这次课设,让我知道计算机的程序还有很多要学习和理解的,它对日后的的毕业设计和工作都会有帮助的,我会继续努力的。五、参考文献1 谭浩强C程序设计北京:清华大学出版社,20072 刘振安等.C程序课程设计.机械工业出版社.2004 六、源程序#include #include #inc
8、lude /*为exit函数所在的头文件*/#include /*为getch函数所在的头文件*/void menu();int getprice(void) int price; while (price 200) printf(请输入价格(在1200元之间,并且为整数): ); scanf(%d, &price); return (price);void guessprice(int price) int mid, low = 1, high = 200; char s20 = ; while (mid = (low + high) / 2) != price) printf(计算机猜测的
9、价格是: %dn, mid); printf(如果价格高,请输入高;如果价格低,请输入低n); if (strcmp(gets(s), 高) = 0) high = mid - 1; else if (strcmp(s, 低) = 0) low = mid + 1; printf(猜测结果正确,篮球的价格是%dn,mid);main() int price; 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