资源描述:
《数据结构课程设计+24点游戏源代码结构设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构课程设计+24点游戏源代码结构设计1.需求分析24点游戏主要有两个功能:(1)用户记算24点程序随机产生四个1-13的数,分别代表4张牌,提示用户输入算式。如果用户认为程序给出的一组数字不能算出24点(如1,1,2,2),则输入‘?’,然后程序对四个数字进行计算,如果真的不能算出24点,则输出用户正确的信息,否则给出一个正确的算式,并显示用户错误的信息。(2).程序计算24点用户输入四个1-13的数,代表4张牌,程序需要通过一定的规则添加括号和运算符来使算式的值等于24,如果用户给出的四个数字不能算出24点,则输出错误信息!2.概要设计抽象数
2、据结构定义:ADT{数据对象:D={a
3、a为大于0小于14的整数}push(sqstack*s,inte)//压栈gettop(sqstack*s)//取得栈顶元素pop(sqstack*s,int*e)//出栈randomm()//产生四个随机数EvaluateExpression(char*MyExpression)//课本算法3.4---计算表达式的值init_sq(sqlist*l)//初始化链表insert_sq(sqlist**p,inte,intbl)//链表插入操作chang(char*s,sqlist*l)//将用户的输入转化为单链
4、表check(sqlistl)//保证输入的数字是给出的四个数字Operate(inta,inttheta,intb)//计算49precede(charAop,charBop)//求运算符优先级ReturnOpOrd(charop,char*TestOp)//返回运算符优先级CalcOneExpress(intexpression[][2])//课本算法3.4--计算表达式的值Calc24(intnumber[2][4])//包含下面五个函数,即表达式的五种形式CalcArray1(intiNumInput[2][4])//a*b*c*d//7个字
5、符CalcArray2(intiNumInput[2][4])//(a*b)*c*d//9numberCalcArray3(intiNumInput[2][4])//(a*b*c)*d//9numberCalcArray4(intiNumInput[2][4])//(a*b)*(c*d)//11numbersCalcArray5(intiNumInput[2][4])//((a*b)*c)*d//11numbersEqual24(intn)//判定结果是否等于24gameinformation()//游戏介绍menu()//菜单main()//主函数
6、}ADT模块划分49Main()游戏介绍人算24点程序算24点计算24点并输出算式用户输入算式用户认为无法算出24点程序验证,输出正确或错误信息,用户继续玩程序验证,若能算出24点,则输出正确算式无法算出24点,输出错误信息3运行环境硬件环境:PC机软件环境:WindowsXPMicrosoftVisualC++6.04开发工具和编程语言开发工具:MicrosoftVisualC++6.0编程语言:C语言5详细设计(1)全局变量和栈,链表的定义intnumber[2][4];enum{eNumber=0,//操作数eOperator=1//算子};4
7、9intoper[7]={43,45,42,47,40,41,35};课本表3.1算符间的优先关系:unsignedcharPrior[7][7]={'>','>','<','<','<','>','>','>','>','<','<','<','>','>','>','>','>','>','<','>','>','>','>','>','>','<','>','>','<','<','<','<','<','=','','>','>','>','>','','>','>','<','<','<','<','<','','='};线性表的定义:ty
8、pedefstructsqlist{intbol;//bol是0时,num-ch是数字;bol是1时num_ch是运算符intnum_ch;structsqlist*next;}sqlist;栈的定义:typedefstructsqstack{int*base;int*top;intstacksize;}sqstack;49(2)main()函数及用户界面voidmain(){gameinformation();//输出作者信息menu();//输出功能菜单,游戏开始}用户界面如图1所示。(3)由程序计算24点的算法分析:用户输入四个1-13的数,代
9、表4张牌,程序算24点。这要考虑到各种情况。首先是加入括号,有以下5种可能的形式:.abcd.(ab)cd同