当前位置:文档之家› 汽车售票系统

汽车售票系统

汽车售票系统沈阳航空工业学院学号班级姓名指导教师年月日沈阳航空工业学院课程设计任务书电子工程系电子信息工程专业 6402105班学号200604021151 一、课程设计题目:机器人猜价格游戏二、课程设计工作自2007年9月11日起至2007年9月17日止三、课程设计内容:用户从键盘输入一商品及其价格信息(假设价格在1~200元之间,并且为整数),让计算器从1元开始猜测价格。

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

(建议用折半查找法)。

四、课程设计要求:程序质量:, 用户界面中的菜单至少应包括“输入商品及其价格”、“计算器开始猜测”、“退出”3项, 在代码中给出必要的注释,以增强程序的可读性。

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

课程设计说明书的内容如下:, 封面, 课程设计任务书, 目录, 需求分析(分析题目的要求), 程序流程图(总体流程图和主要功能模块流程图), 核心技术的实现说明及相应程序段, 个人总结, 参考资料, 源程序及适当的注释指导教师: 学生签名:沈阳航院设计用纸目录一、需求分析……………………………………1 二、程序流程图…………………………………5 三、核心技术的实现说明及相应程序段………7 四、个人总结……………………………………11 五、参考文献……………………………………错误~未定义书签。

6六、源程序 (12)沈阳航院设计用纸一、需求分析1、显示菜单函数主要实现显示程序设计的总体步骤和功能,还有接下来显示的分步骤用来实现各个函数的具体功能,以便实现其它各自定义函数的作用。

2 输入商品价格函数是用户给商品的一个真实价格,为下一步计算机猜测商品价格提供数据依据。

3、猜测商品价格函数计算机对商品价格进行猜测,通过用户输入的“高”和“低”给计算机运用折半查找法提供大方向,进行多次循环,最终达到猜测出商品真实价格的目的。

除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行二、设计方案沈阳航院设计用纸1、总体设计定义变量 int choice,value;将menuchoice()函数返回值赋给变量choice()choice~=3choice= 1是否输入商品是否价格猜测价格2、程序流程图退出主函数(1)显示菜单函数定义变量初始化输入菜单选项给变量 ret fh asdfasdffsdfasdf返回ret的值沈阳航院设计用纸(2)输入商品价格函数定义变量初始化当输入价格不在1-200元以内提示用户输入商品价格输入价格给变量price把price值带回沈阳航院设计用纸(3)猜测商品价格函数变量初始化mid=(low+high)/2;当赋给mid的值不等于真实价格时输入字符串判断是否偏高是否把mid-1的值赋值把mid+1的值赋值给high 变量给low变量三、核心技术的实现说明及相应程序段本程序主要由一个主函数和三个自定义函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。

下面分别对各个自定义函数进行说明。

1、显示菜单函数定义整型的选择变量,这是一个主菜单(MenuChoice()),数字变量(ret),输入整型的ret值,并返回给主函数中的(choice= MenuChoice()),当返回的ret值等于3时,直接跳出当前函数。

当ret值为1时,进入沈阳航院设计用纸“输入商品价格”函数,当ret值为2时,进入“猜测篮球价格”函数。

这是一个菜单函数包含的:/*显示菜单0*/int MenuChoice(void){int ret;printf("1 - 输入篮球价格\n2 - 计算器开始猜测\n3 - 退出\n");scanf("%d", &ret);return (ret);}2、输入商品价格函数用户输入一个价格,对这个PRICE进行讨论。

while (price < 1 || price > 200) ,这是一个把价格限制在1—200内的函数,如不在这个范围内的话会输出:Enter the price::直到输入的在1-200之间才会进行运算。

沈阳航院设计用纸/*得到商品的实际价格*/int GetPrice(void){int price;while (price < 1 || price > 200)printf("Enter the price: ");scanf("%d", &price);}return (price);}3、猜测商品价格函数定义了两个整型变量,low,high.这分别是1,200。

用折半法来运算:while ((mid = (low + high) / 2) != price),如果猜测的比实际的高了。

你就输入HIGH,若低了你就输入沈阳航院设计用纸LOW,if (strcmp(gets(s), "high") == 0)high = mid - 1;else if (strcmp(s, "low") == 0)low = mid + 1;/*猜测商品的价格*/void GuessPrice(int place) {int mid, low = 1, high = 200;char s[30] = {""};while ((mid = (low + high) / 2) != place) {printf("The price is: %d\n", mid);/*显示计算机预计的价格*/if (strcmp(gets(s), "high") == 0)/*如果价格高,用户就输入"high"*/high = mid - 1;else if (strcmp(s, "low") == 0)/*如果价格低,用沈阳航院设计用纸户就输入"low"*/low = mid + 1;}}四、个人总结通过这次课设让我懂得了如何在面对问题时保持冷静,如何在有很多不明白的时候去找到自己会的地方,从而一点点的理解,一点点的击破.而且还要请教同学和老师.这次课设让我解决问题的能力提高了,不仅如此,我觉得我有了很大的进步,这不仅仅体现在知识上.而且我终于意识到如果知识不扎实,就会在很多细节问题上遇到刺.我对今后的生活充满了信心,再遇到困难时,只要想起这次课设所遇到的难题,我就不会畏缩.总之,这次课设让我受益匪浅.五、参考文献1 谭浩强(C程序设计(北京:清华大学出版社,20052 刘成等(C语言程序设计实验指导与习题集(北京:中沈阳航院设计用纸国铁道出版社,2006六、源程序#include"stdio.h"#include"string.h" int price;int GetPrice();/*输入价格函数*/ void GuessPrice();/*猜价格函数*/ main(){int ret;while (1){printf("1 -输入商品价格 \n2 -计算机开始猜测 \n3 -结束\n");/*显示菜单*/printf("please chice:");scanf("%d", &ret);沈阳航院设计用纸switch(ret){case 1: GetPrice();break;/*输入价格*/case 2: GuessPrice();break;/*猜价格*/case 3:exit(0);/*退出*/}}}int GetPrice(void) {do{printf("/nEnter the price: ");scanf("%d", &price);}while (price < 1 || price > 200);return (price);}沈阳航院设计用纸void GuessPrice(price){int mid, low = 1, high = 200;char s[30] = {""};while ((mid = (low + high) / 2) != price) {printf("The price is: %d\n", mid);/**/if (strcmp(gets(s), "high") == 0)/*电脑给出价格过高*/high = mid - 1;else if (strcmp(s, "low") == 0)/*电脑给出价格过低*/low = mid + 1;else {printf("Right\n");break;}/*价格正确*/}}。

相关主题