下载此文档

算法设计论文.docx


文档分类:论文 | 页数:约72页 举报非法文档有奖
1/72
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/72 下载此文档
文档列表 文档介绍
算法设计与分析课程论文论文名称24计算问题学院教育信息技术学院学生姓名莫怡琳、阮淑贞、陈鑫奕学号2014210972、2014210970、20142109462017年1月3日目录一、问题描述 1二、前端分析 11、功能需求 12、工具选择 1三、详细设计及说明 1四、算法设计思想 4核心算法 4辅助算法 5五、问题及解决 6六、总结反思 7七、小组分工 7八、小组互评 7九、编程日记 811月29日编程日记 812月6日编程日记 812月7日编程日记 9十、源代码 924计算问题一、问题描述24点游戏是指任意输入1-9的四个数,通过加减乘除四则运算连接,使得计算结果为24,而使用计算机模拟该游戏,就是让程序随机产生数字,由用户组合成表达式,交给程序进行结果判断。二、前端分析1、功能需求(1)模式选择:根据玩家人数选择单人模式或者双人模式(2)用户登录/注册:允许用户登录、注册,确保账号安全(3)随机:自动产生随机数,供用户选择(4)验证:对用户输入的表达式进行判断(5)计算:对随机产生的数字求解,得出符合要求的表达式(6)记录:能够根据玩家的输赢情况,实时更新玩家等级(7)存储:存储并动态更新用户的相关信息,包括用户名、密码、游戏等级2、工具选择工具:DW,语言:php,用本机localhost做服务器和测试端(1)交互性强,用户能够通过鼠标、键盘等输入与网页进行交互(2)界面编写容易,div+css可以实现网页布局(3)数据存储读取方便,能够实时与AppServ自带的数据库链接(4)24点游戏本身适合做成网页版三、详细设计及说明1、模式选择:选择不同的模式将会跳转至不同游戏界面单人模式双人模式帮助:游戏规则:选择单人模式将独自完成任务,每完成一关将会上升一个等级,回答错误将会下降一个等级;选择双人模式胜利者将上升一个等级,失败者将下降一个等级。登录/注册界面登录:与数据库连接,验证用户名密码是否一致,用post方法获取表单提交的数据,将数据库的信息与之匹配,登录成功则跳转至游戏界面,并为用户创建session,保存用户名与等级;否则提示用户名密码错误,重新回到登录界面。注册:用户名已经存在的不能被注册,保证用户名的唯一,新注册的用户等级为0。单人模式游戏界面用户信息:利用登陆界面传递的session获取用户名和密码开始游戏:产生4个随机数新一轮:即下一关,页面刷新,用户等级实施更新提交:对用户输入的表达式进行验证,给出“回答正确”或者“回答错误”的结果,实施更新用户等级退出:返回模式选择界面无解:计算是否有符合24要求的表达式,对用户的答案判断,如果存在符合的表达式,则会显示表达式的个数和其中一个解,并实施更新用户等级双人模式游戏界面用户信息:利用登陆界面传递的session获取用户名和密码开始游戏:产生4个随机数新一轮:即下一关,页面刷新,用户等级实施更新提交:对用户输入的表达式进行验证,给出“回答正确”或者“回答错误”的结果,实施更新用户等级退出:返回模式选择界面无解:计算是否有符合24要求的表达式,对用户的答案判断,如果存在符合的表达式,则会显示表达式的个数和其中一个解,并实施更新用户等级抢答:每个用户分别有抢答按钮,当一个用户抢答之后,通过cookie将js中的变量传递给php,所有的输入都被看成是该用户的输入,因此达到了区分用户的目的数据库存储四、算法设计思想核心算法验证算法:数据结构:堆栈算法时间复杂度:O(n)(1)将表达式分为数字栈和符号栈两部分存储,并且以#作为开始符和结束符(2)定义优先级关系表(3)根据表决定运算顺序如果即将压栈的符号的优先级小于栈顶的符号,则弹出数字栈栈顶的两个数字进行运算,否则压入符号栈,直到完成表达式的计算。例如:计算表达式的值运行结果:计算算法:穷举法:嵌套循环操作算法时间复杂度:O(n^3)(1)对运算符号进行编码(2)打乱四个数的顺序(3)计算每一种情况可能出现的运算(两种):两两运算、三个和剩下一个运算(4)对于符合条件的情况输出表达式运行结果:辅助算法随机产生数自定义“functiongetRandNum()”产生随机数组的函数,采用“-ById(i).value”,通过获取button的id,对它的value值进行赋值,并且通过循环,每产生一个随机数就与之前产生的随机数比较,确保随机数不相同。实施更新用户等级使用mysql_query("UPDATE")语句与数据库交互,借助于核心算法的判断算法进行相应的加减,同时改变SESSION的值,使之与数据库关联,点击“新一轮”时页面刷新,由于一开始程序就必须显示SESSION,所以就达到了等级的实时更新。五、问题及解决1、变量传递问题:程序大部分是通过触发按钮onclick执行事件,因

算法设计论文 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数72
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库旗舰店
  • 文件大小437 KB
  • 时间2019-05-05
最近更新