资源描述:
《数据结构课程设计+24点游戏源代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程设计课程设计名称:数据结构课程设计专业班级:学生姓名:学号:指导教师:课程设计时间:51计算机科学与技术专业课程设计任务书学生姓名专业班级学号题目24点游戏课题性质其它课题来源自拟课题指导教师同组姓名主要内容一副牌共54张,除去大小King,还剩52张,从中任意取四张加入括号和加减乘除运算符,组成表达式,并使表达式的值等于24。(注:1.每张牌只能用一次;2.有些数字组合不能是表达式的值为24)任务要求1.程序产生四个随机的数字(在1-13之间),由用户计算24点2.用户输入四个数字(在1-13之间),由程序计算24点参考文献1张凤琴,张青凤.
2、数据结构学习指导与习题详解,清华大学出版社,20072严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社,20083潭浩强.C语言程序设计(第三版).清华大学出版社,20054潭浩强.C语言程序设计题解与上机指导(第三版).清华大学出版社,20055张曼,朱小谷,吕士俊.数据结构习题与解答.北京希望电子出版社.2005审查意见指导教师签字:教研室主任签字:年月日511.需求分析24点游戏主要有两个功能:(1)用户记算24点程序随机产生四个1-13的数,分别代表4张牌,提示用户输入算式。如果用户认为程序给出的一组数字不能算出24点(如1,1,2,2
3、),则输入‘?’,然后程序对四个数字进行计算,如果真的不能算出24点,则输出用户正确的信息,否则给出一个正确的算式,并显示用户错误的信息。(2).程序计算24点用户输入四个1-13的数,代表4张牌,程序需要通过一定的规则添加括号和运算符来使算式的值等于24,如果用户给出的四个数字不能算出24点,则输出错误信息!2.概要设计抽象数据结构定义:ADT{数据对象:D={a
4、a为大于0小于14的整数}push(sqstack*s,inte)//压栈gettop(sqstack*s)//取得栈顶元素pop(sqstack*s,int*e)//出栈random
5、m()//产生四个随机数EvaluateExpression(char*MyExpression)//课本算法3.4---计算表达式的值init_sq(sqlist*l)//初始化链表insert_sq(sqlist**p,inte,intbl)//链表插入操作chang(char*s,sqlist*l)//将用户的输入转化为单链表check(sqlistl)//保证输入的数字是给出的四个数字Operate(inta,inttheta,intb)//计算precede(charAop,charBop)//求运算符优先级ReturnOpOrd(cha
6、rop,char*TestOp)//返回运算符优先级51CalcOneExpress(intexpression[][2])//课本算法3.4--计算表达式的值Calc24(intnumber[2][4])//包含下面五个函数,即表达式的五种形式CalcArray1(intiNumInput[2][4])//a*b*c*d//7个字符CalcArray2(intiNumInput[2][4])//(a*b)*c*d//9numberCalcArray3(intiNumInput[2][4])//(a*b*c)*d//9numberCalcArray
7、4(intiNumInput[2][4])//(a*b)*(c*d)//11numbersCalcArray5(intiNumInput[2][4])//((a*b)*c)*d//11numbersEqual24(intn)//判定结果是否等于24gameinformation()//游戏介绍menu()//菜单main()//主函数}ADT模块划分51Main()游戏介绍人算24点程序算24点计算24点并输出算式用户输入算式用户认为无法算出24点程序验证,输出正确或错误信息,用户继续玩程序验证,若能算出24点,则输出正确算式无法算出24点,输出错
8、误信息3运行环境硬件环境:PC机软件环境:WindowsXPMicrosoftVisualC++6.04开发工具和编程语言开发工具:MicrosoftVisualC++6.0编程语言:C语言5详细设计(1)全局变量和栈,链表的定义intnumber[2][4];enum{eNumber=0,//操作数eOperator=1//算子};51intoper[7]={43,45,42,47,40,41,35};课本表3.1算符间的优先关系:unsignedcharPrior[7][7]={'>','>','<','<','<','>','>','>','
9、>','<','<','<','>','>','>','>','>','>','<','>','>','>','>','>