课程设计报告
题 目 24
点游戏
课 程 名 称 软件项目实践(二) 院 部 名 称 信息技术学院 专 业 计算机科学与技术 班 级 M11计算机科学与技术(专转本) 学 生 姓 名
学
号课程设计地点 校内实验室 课程设计学时 2周(40学时) 指 导 教 师 沈 奇
金陵科技学院教务处制
课程设计报告目录
一、实验目的和要求 .......................................................................... 1 二、实验仪器和设备 .......................................................................... 2 三、实验过程 ..................................................................................... 2 四、实验结果与分析 ........................................................................ 16 五、实验心得 ................................................................................... 18
一、实验目的和要求
1.实验目的
1) 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; 2) 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方
法和技能;
3) 提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 4) 训练用系统的观点和软件开发一般规范进行软件开发。 5) 培养快速学习新的知识,并在项目中使用的能力。 2.实验要求
设计并实现24点游戏,满足以下基本要求:
① 运行系统后,用户登录,输入用户名后,可以进入游戏,或查看英雄榜。 ② 玩家开始游戏后,系统随机产生四个1-13的数,分别代表13张牌。提示玩家输入算式。判断玩家输入的表达式是否合法,其中算式中的四个数字只能是程序所给的四个数字。当玩家正确输入算式后,运用“用堆栈求解表达式”的原理,求出结果并判断是否为24,得出用户是输是赢的结果。
③ 如果用户赢,计算其所用时间(从输入算式开始计算,直至输入算式结束),并与英雄榜中成绩进行比较。可以进入英雄榜的,则需更新英雄榜。英雄榜只按成绩降序记录1-5名相关信息。
二、实验仪器和设备
Microsoft WindowsXP / Windows 7 Turbo C/Visual C++
三、实验过程
(一).项目计划 1.1 总体介绍
24点游戏是一种使用扑克牌来进行的益智的游戏,游戏内容为:从1—
—13中,任意抽取4张牌,运用加、减、乘、除和括号等运算符把牌面上的数进行运算得到24,每个数都必须运算,并且只能运算一次,运算符可多次重复使用。
1.2 参考文献
1.《算法与数据结构——用C语言描述》,唐策善编著,高等教育出版社 2008 2.《数据结构 (C语言版)》,严蔚敏等编著, 清华大学出版社 2004 3.《数据结构实用教程(第二版)》,徐孝凯编著,清华大学出版社 2006 4.《计算机程序设计技巧》第一、三卷,D.E.Knuth著,管纪文译,国防出
版社
5.《FUNDAMENTALS OF DATA STRUCTURES》,FULLS HORO-WITZ&SARTAJ SAHNT 6.《数据结构基础》(中译本),程惟宁译,新时代出版社
(二).需求分析
2.1 需求概述分析
1)输出的判定和四位数字的类型:
在输出的时候对最后结果等于24的判别,因为考虑到有除法,有可能中途
结果可能会出现不能整除的情况与小数,所以输出的四个数都设为float型,且输出判定的时候用近似判定法,而不直接写让最后结果等于24(详情见算法)。
2)括号问题的处理:
对于括号问题,我规定对每一步的计算表达式,除了*之外,+,-,\都加上
括号,即让程序按自己规定的方向执行,输出的括号只是让人能看懂,其实在运算时不起作用(详情见算法)。
2.2 输入输出的要求
输入的运算符只能是+、-、*、/、(、)这六个,输入的整数必须是程序随机产生的那四个数,而且每个数只能用一次。
2.3 概要设计
功能模块图
(三).面向对象分析
3.1 用例图
用户用例图
3.2 总体流程图
3.3游戏流程图
(四).详细设计 4.1 界面要求
要求有合理的界面,用户可以读懂看清程序将要做的事情,并可以在一
步一步的执行时可以有一些提示,这样用户可以继续使用。
4.2 功能逻辑设计
在设计这个程序之前,我把这个程序分为多块,它们分别为: 1) 显示登录界面
玩家输入用户名和密码,进入游戏 2) 显示游戏界面 随机产生4个数; 提示输入表达式;
玩家输入表达式,用栈存储起来;
判断输入是否合法,四个数是不是随机产生的四个; 给出结果。 3) 显示游戏界面
用户根据提示,选择进入查看英雄榜;
4.3存储结构
1)人算24点时:使用的是穷举法,对应一组数字,找出有可能的情况。 2)计算机算24点时:采用单链表作为存储结构,使用栈来进行表达式求值
的原理实现。 4.4使用说明
例1:显示: 7 7 2 5 则您可以输入表达式: 2*5+7+7. 回车显示: Congratulations
例2.显示: 3 12 2 6 则您可以输入表达式: 2*3+6+12.
回车显示: Congratulations
例3. 显示:10 9 10 10
则您可以输入表达式:? …… 此处隐藏:4983字,全部文档内容请下载后查看。喜欢就下载吧 ……