




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目:用折半查找法猜篮球的价格一、课程设计时间201011 第2 学期 第15周,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:用户从键盘输入篮球的价格(假设价格在1200元之间,并且为整数),让计算器从1元开始用折半法猜测篮球的价格。若计算器的猜测价格偏高,用户输入“高”;若计算器的猜测价格偏低,用户就输入“低”;若计算器猜对了,则显示“正确”。三、课程设计要求1. 程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便。 用户界面中的菜单至少应包括“输入篮球价格”、“计算器开始猜测”、“退出”3项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、成绩:六、教师评语: 目录一、需求分析1二、设计要求2三、主要界面截图3四、技术要点6五、个人总结6六、参考文献6七、源程序.8一、需求分析经过对程序设计题目的分析可知,整个程序大致分为三个模块,其中每一个模块对应一个函数,实现一个功能,他们的功能分别是:篮球价格获取函数(get),出现目录的输出函数(menu),篮球价格猜测函数(guess),以及主函数(main)。1、篮球价格获取函数主要实现程序最初运行时用户对篮球价格的设定(要求价格在1-200元之间,并且为整数,若超出范围则提示重新输入);2、目录输出函数在程序运行时输出目录,使用户界面更加友好3、篮球价格猜测函数实现的功能是让计算器从1元开始用折半法猜测篮球的价格。若计算器的猜测价格偏高,用户输入“g”;若计算器的猜测价格偏低,用户就输入“d”;若计算器猜对了,则显示“正确”。;二、设计分析1、程序总体结构图将getch()函数的返回值赋给c定义变量char c,int pricechoice=3是否choice=1choice=2输入篮球价格是否猜测价格退出main函数2、具体功能框图定义变量初始化(1)篮球价格获取函数(get)当输入价格不在1-200元以内提示用户输入篮球价格输入价格给变量price把price值返回给guess函数(2)篮球价格猜测函数(guess)m=(l+h)/2;当赋给m的值不等于真实价格时变量初始化输入字符串判断是否偏高“d”“g”把m-1的值赋值给h 变量把m+1的值赋值给l变量输出“猜测正确”三、主要界面截图四、技术要点本程序主要由两个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,添加数据函数、删除数据函数和排序函数是程序中较为核心的部分,下面分别进行说明。1、篮球价格获取函数get由于在题设中对篮球的价格进行了设定,所以必须在此函数中进行对被输入的篮球价格作出判断,并提示用户重新输入一个符合条件的价格,因此在此处用一个while循环进行价格的获取,在最后将获取的价格返回给篮球价格猜测函数guess。具体程序段如下:int get(void)/*定义int格式的篮球价格输入函数*/ int price; while (price 200) printf(请输入篮球价格(200元之内,并且要求为整数): ); scanf(%d, &price); return (price); 2、目录输出函数该函数没有具体的功能,只负责程序目录的输出:在被主函数调用后用一连串的printf函数进行输出,形成一个良好的用户界面。具体程序段如下:void menu() printf(*欢迎使用折半法猜篮球价格程序*n); printf( n); printf( 1.输入篮球价格 n); printf( 2.开始猜测 n); printf( 3.退出程序 n); printf( n); printf(*n); printf(*版权所有,仿冒必究*n);3、篮球价格猜测函数guess题目要求的篮球价格猜测的方法是折半法,即先用一个处于比较范围中央的数值与被比较数值进行比较,由用户对比较结果作出判断,通过循环的多次比较、用户判断、程序自动赋值,最终找到与被比较数值相同的结果,在此函数中使用了strcmp函数对用户输入的判断结果进行判断后输出提示以进行下一步用户判断。具体的程序段如下:void guess(int place)/*篮球价格猜测函数,参数为int类型的place*/ int m, l = 1, h = 200; char s30 = ; while (m = (l + h) / 2) != place) printf(计算器猜测的价格是: %dn, m); printf(如果价格高,请输入“g”;如果价格低,请输入“d”n);fflush(stdin);if (strcmp(gets(s), g) = 0)/*strcmp函数比较输入的字符与字符g的大小,并给以判断*/ h = m - 1; else if (strcmp(s, d) = 0)/*strcmp函数比较输入的字符与字符d的大小,并给以判断*/ l = m + 1; printf(计算器所猜的结果为%d,猜测结果正确!n,m);五、个人总结通过20个学时的努力,我完成了这次的C语言程序设计任务。以往我们只进行单一功能、单一片段的程序编写,任务简单。而这次的任务给了我们一个全新的视角,让我们进行一个全局性的“小”工程,从而完成一个多功能、各部分联系紧密的功能性程序体,实现了由部分到整体的飞跃,让我获益匪浅。六、参考文献谭浩强C程序设计北京:清华大学出版社,2005七、源程序#include #include #include /*为exit函数所在的头文件*/#include /*为getch函数所在的头文件*/void menu();int get(void)/*定义int格式的篮球价格输入函数*/ int price; while (price 200) printf(请输入篮球价格(200元之内,并且要求为整数): ); scanf(%d, &price); return (price); void menu() printf(*欢迎使用折半法猜篮球价格程序*n); printf( n); printf( 1.输入篮球价格 n); printf( 2.开始猜测 n); printf( 3.退出程序 n); printf( n); printf(*n); printf(*版权所有,仿冒必究*n);void guess(int place)/*篮球价格猜测函数,参数为int类型的place*/ int m, l = 1, h = 200; char s30 = ; while (m = (l + h) / 2) != place) printf(计算器猜测的价格是: %dn, m); printf(如果价格高,请输入“g”;如果价格低,请输入“d”n);fflush(stdin); if (strcmp(gets(s), g) = 0)/*strcmp函数比较输入的字符与字符g的大小,并给以判断*/ h = m - 1; else if (strcmp(s, d) = 0)/*strcmp函数比较输入的字符与字符d的大小,并给以判断*/ l = m + 1; printf(计算器所猜的结果为%d,猜测结果正确!
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海南省海口市本年度(2025)小学一年级数学统编版期末考试((上下)学期)试卷及答案
- 2025-2030年中国数控锯床行业发展监测及投资形势预测研究报告
- 船舶建造标准与法规遵循考核试卷
- 残疾人座车燃油经济性分析考核试卷
- 电工仪表的模块化生产考核试卷
- 纺织品的印染与花纹设计考核试卷
- 稀土金属冶炼的政府采购考核试卷
- 玻璃保温容器生产过程监测与故障诊断技术实践探索分析考核试卷
- 美容仪器原理与应用考核试卷
- 编织品的结构设计原理考核试卷
- 回流炉操作作业指导书
- 棋牌兴趣小组申请表
- 分公司变更登记申请书(样表)
- 中国话剧史(本二·下)
- 执纪审查工作流程课件
- 四川省凉山州2022-2023学年八年级下学期期末道德与法治试题(含答案)
- 城市轨道交通建设工程质量检查检测标准化研究的开题报告
- 统编人教版高中政治(必修4)哲学与文化第7课第二框《正确认识中华传统文化》优质说课稿
- 部编版小学部编版五年级语文下册复习教案全册
- 中国建筑史PPT(东南大学)完整全套教学课件
- 中国社会各阶级的分析
评论
0/150
提交评论