您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Java程序设计――猜数字
课程设计报告课程设计名称Java程序设计专业计算机科学与技术班级2班学号08030208姓名陈思娜指导教师陈志成成绩2011年3月30日目录一、设计任务与要求..................................................11.1设计任务与要求..............................................11.2选题目的与意义..............................................1二、需求分析........................................................22.1用户需求分析................................................22.2开发环境分析................................................2三、系统设计........................................................33.1系统总体设计................................................33.2功能模块设计................................................43.3类的设计....................................................6四、程序实现........................................................74.1程序流程图..................................................74.2关键算法与技术实现..........................................9五、测试运行.......................................................135.1系统测试方案...............................................135.2运行结果分析...............................................14六、设计体会.......................................................20主要参考文献.......................................................211一、设计任务与要求1.1设计任务与要求设计一个猜数游戏,游戏规则如下:(1).首先由一个菜单,选择是开始游戏,是结束游戏,还是查看游戏规则。(2).游戏开始后,系统随机生成一个范围再1-100之间数。(3).然后玩家进行猜数,输入一个数字。(4).如果玩家输入的不是游戏所要求的数字情况下,系统将做出提示,这个数不在猜数范围,请您重新输入。(5).如果玩家输入的数字与系统随机生成数相比较,比随机生成的数小。系统将提示,数字太小请您重新输入,并且给出到现在已进行多长时间的游戏。(6).如果玩家输入的数字与系统随机生成数相比较,比随机生成数大。系统将提示,数字太大请您重新输入,并且给出到现在已进行多长时间的游戏。(7).如果玩家输入的数字与系统随机生成数相比较,结果相等,系统将提示,例如:太棒了!您猜对了,并且给出到现在已进行多长时间的游戏。(8).系统根据猜数字的次数,自动计数。并给出相应水平信息。(9).本轮游戏结束后,系统将会给出初始菜单,选择时候还继续游戏。1.2选题目的与意义通过做“猜数字游戏”的java程序设计,利用java功能开发,完成100以内的字符界面“猜数字游戏”的实现,使我能够更加了解java中时间算法,比较算法等的实现,以及更加深入的分析算法的应用过程。达到了深入学习以及提高动手能力的目的,对于我来说具有一定的意义。2二、需求分析2.1用户需求分析系统功能的需求分析要点有以下几个方面:(1).方便:电脑自动获取随机数(在1到100的范围内产生一个随机数)。(2).娱乐:对玩家输入的数字进行大小的判断,并且根据玩家的输入的数字,给出提醒以便玩家进行下一步的猜测与选择。当玩家猜中的时候,电脑自动给出有趣的提示,例如:你太棒了!!(3).个性:系统给出进行本次游戏所用的全部时间和游戏水平的判断。系统自动询问是否继续游戏的提示及判断。(4).简洁:把以上所有信息在字符页面上显示出来。(2).人性化:在进入游戏之前,由一个菜单选择。是开始游戏,是结束游戏,还是查看游戏规则。2.2开发环境分析本设计采用的工具有JDK1.6.0,Tomcat6.0,MyEclipse8.5。JDK是Sun公司Java应用程序和组件的开发环境,是编译和测试工具,也是提供java程序的Java虚拟机平台,是调试和运行JSP所不可缺少的工具。本系统采用JDK1.6.0版本Tomcat6.0是开源的servlet和JSP容器,它是Jakarta项目中的一个重要组成,由Apache,Sun和其他一些公司及个人开发。Tomcat内部实现了Servlet和JSP引擎,而且扩展了一些应用服务器的功能,例如JNDI,数据库连接,用户事务处理等。目前Tomcat被广泛应用于中小规模的Javaweb应用中。MyEclipse是在Eclipse集成开发环境中提供Web应用程序开发的插件,在目前软件开发的Java领域中,MyEclipse是一个使用非常广泛的工具。3三、系统设计3.1系统总体设计本系统总共分为四个部分,其中包含获取随机数部分,输入输出模块,判断模块和记录次数模块,每个模块又分成了更加细致的小的功能模块。1)随机数的获取:在1到100之间产生一个随机数。2)输入输出模块:字符界面的显示和必要提醒文字的输出。(1)菜单(2)时间(3)提示(4)评价3)判断模块:对玩家游戏过程中所有需要判断的环节,进行判断。(1)数字的判断:(2)水平的判断(3)选择的判断:4)记录次数模块:记录玩家在猜对之前,总共猜测的次数。图1系统总设计图记录次数模块判断模块输入输出模块获取随机数系统菜单提示评价数字判断水平判断选择判断时间43.2功能模块设计1)随机数的获取:在1到100之间产生一个随机数。图2获随机数功能图2)输入输出模块:字符界面的显示和必要提醒文字的输出。(1)时间:对在游戏中,所用到的全部时间的显示。(2)提示:对玩家输入的数字在系统自动判断之后(偏高了,还是偏低了,还是猜对了)给出的必要的提示,以及最终是否继续游戏的提示,(3)评价:根据猜测的时间以及次数判断,显示玩家的水平评价;(4)菜单:显示一个菜单。其中有开始游戏,结束游戏,游戏规则。图3输入输出功能模块图输入输出模块时间提示评价在游戏中,所用到的全部时间的显示。玩家输入的数字判断之后给出必要的提示结束本盘游戏后,玩家是否继续游戏的提示您的输入偏高了!您的输入偏低了!太棒了!你猜对了根据玩家所用时间以及次数给出水平评价您现在是高级玩家您现在是中级玩家您现在是低级玩家按1,继续游戏按3,查看游戏规则获取随机数在1到100之间产生一个随机数。(Random)您还算不上玩家!菜单:开始,结束,规则按2,结束游戏菜单开始游戏结束游戏游戏规则53)判断模块:(1)数字的判断:对玩家输入的数字进行判断。例如:您输入的数字偏高了,还是您输入的数字偏低了,还是您太棒了!猜对了。)(2)水平的判断:根据猜测的时间以及次数来判断玩家的游戏水平。其中有高级玩家,中级玩家和低级玩家,这三个档次的区分。(3)选择的判断:对玩家最后选择是否继续游戏的回答,进行判断,是否需要开始下一轮的游戏图4判断功能模块图4)记录次数模块:在猜对数字之前,对每输入一次猜测数字的时候,计数器自动加一,以便此后对玩家水平等级的判断做出合理的依据。图5计次功能模块图判断模块选择判断数字判断水平判断玩家输入的数字大于随机产生的数玩家输入的数字小于随机产生的数玩家输入的数字等于随机产生的数玩家猜的次数在2次以内玩家猜的次数在5次以内玩家猜的次数在8次以上按1表示继续游戏按2表示结束游戏每输入一次猜测数字的时候,计数器自动加1一记录次数模块一玩家猜的次数在7次以内按3表示游戏规则63.3类的设计1.类表1CS类类名:CS猜数字属性在字符界面上显示所有信息,并调用其他相关的类以及菜单方法:Main主函数表2Compare类类名:Compare比较属性:判断比较数字的大小,水平及是否继续游戏方法:.readLine().parseInt().guess()获取输入的字符串转换判断的主体表3Random类类名:Random系统本身的类属性:自动从系统中生成随机的数字方法:.nextInt()获取随机数表4Time类类名:Time记录时间属性:从玩家开始到玩家结束所用的时间方法:.startTime().endTime()游戏开始时间游戏结束时间2.类的关系图:说明:体现了类与类之间的关系导向图CS类Time类Compare类Random类Get类图6类的关系图7四、程序实现4.1程序流程图开始进入菜单,获取随机数后开始比大小,给出水平评价后,继续显示菜单,直至结束。图7流程图在1到100之间,获取随机数M输入所猜的数字NM=N数字太大请您重新输入开始计时数字太小请您重新输入结束计时调用Compare类i7i5i2MNMN给出评价及时间给出评价及时间给出评价及时间输入1/2t=2否否否否否是是是是是是是菜单游戏规则结束游戏32给出评价及时间否开始结束游戏8分布流程图:说明:在这里此图更加突出的体现了类之间的关系图8分布流程图Compare类1.判断数字大小方法:说明:如果M=N那么,计时结束如果MN那么,提示类似数字太小,请重新输入这类的词如果MN那么,提示类似数字太大,请重新输入这类的词图9比较大小流程图调用获取时间Time类调用取随机数Random类调用判断Compare类调用获取时间Time类调用判断Compare类开始结束游戏92.判断玩家水平方法:说明:如果猜的次数大于7输出对应评价否则:如果猜的次数大于5输出对应评价否则:如果猜的次数大于2输出对应评价否则:输出对应评价图10判断水平流程图4.2关键算法与技术实现4.2.1生成随机数Randomrandom=newRandom();intm=random.nextInt(100);//获取随机数//新建一个随机数产生器,然后生成一个0到100之间的整数。4.2.2获取数字BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));Stringstr=buf.readLine();//获取玩家输入的字符串intn=Integer.parseInt(str);//把获取的字符串类型的输入转成整型赋给n104.2.3记录时间开始时间:.start()t1=System.currentTimeMillis();//获取玩家开始玩游戏的时间结束时间:.end()t2=System.currentTimeMillis();//获取玩家猜对了时刻的时间t3=(long)((t2-t1)/1000);//算出玩家作用时间,以秒的形式显示出来t4=(int)t3/60;//计算出玩家所用的整分t5=(long)(t3-(t4*60));//计算出玩家所用的秒数System.out.println(您用了+t4+分+t5+秒);4.2.4大小的比较if(nm)//输入的数字机器产生的数System.out.println(这个数太大了,敢来个小点的不?);elseif(nm)//输入的数字机器产生的数System.out.println(这个数太小了,敢来个
本文标题:Java程序设计――猜数字
链接地址:https://www.777doc.com/doc-3550499 .html