1、 课课 程程 设设 计计 课程设计名称:课程设计名称: 数据结构课程设计 专专 业业 班班 级级 : 学学 生生 姓姓 名名 : 学学 号号 : 指指 导导 教教 师师 : 课程设计时间:课程设计时间: 1 计算机科学与技术计算机科学与技术专业课程设计任务书专业课程设计任务书 学生姓名学生姓名 专业班级专业班级 学号学号 题题 目目 2424 点游戏点游戏 课题性质课题性质 其它其它 课题来源课题来源 自拟课题自拟课题 指导教师指导教师 同组姓名同组姓名 主要内容主要内容 一副牌共一副牌共 54 张,除去大小张,除去大小 King,还剩,还剩 52 张,从中任意取四张加入括号和张,从中任意取四
2、张加入括号和 加减乘除运算符,组成表达式,并使表达式的值等于加减乘除运算符,组成表达式,并使表达式的值等于 24。 (注:。 (注:1. 每张牌只能每张牌只能 用一次用一次; 2.有些数字组合不能是表达式的值为有些数字组合不能是表达式的值为 24) 任务要求任务要求 1.1.程序产生四个随机的数字(在程序产生四个随机的数字(在 1 1- -1313 之间),由用户计算之间),由用户计算 2424 点点 2.2.用户输入四个数字(在用户输入四个数字(在 1 1- -1313 之间),由程序计算之间),由程序计算 2424 点点 参考文献参考文献 1 1 张凤琴张凤琴, ,张青凤张青凤. .数据结
3、构学习指导与习题详解数据结构学习指导与习题详解, ,清华大清华大学出版社学出版社,2007,2007 2 2 严蔚敏严蔚敏, ,吴伟民吴伟民. .数据结构数据结构(C(C 语言版语言版). ). 清华大学出版社清华大学出版社,2008,2008 3 3 潭浩强潭浩强. .C C 语言程序设计(第三版)语言程序设计(第三版). . 清华大学出版社清华大学出版社,2005,2005 4 4 潭浩强潭浩强. .C C 语言程序设计题解与上机指导(第三版)语言程序设计题解与上机指导(第三版). . 清华大学出版社清华大学出版社,2005,2005 5 5 张张 曼曼, ,朱小谷朱小谷, ,吕士俊吕士俊
4、. .数据结构习题与解答数据结构习题与解答 . . 北京希望电子出版社北京希望电子出版社.2005.2005 审查意见审查意见 指导教师签字:指导教师签字: 教研室主任教研室主任签字:签字: 年年 月月 日日 2 1需求分析 24点游戏主要有两个功能: (1)用户记算24点 程序随机产生四个1-13的数,分别代表4张牌, 提示用户输入算式。如 果用户认为程序给出的一组数字不能算出24点 (如1, 1, 2, 2) , 则输入 ? , 然后程序对四个数字进行计算,如果真的不能算出24点,则输出用户正确的 信息,否则给出一个正确的算式,并显示用户错误的信息。 (2).程序计算24点 用户输入四个1
5、-13的数,代表4张牌,程序需要通过一定的规则添加括 号和运算符来使算式的值等于24,如果用户给出的四个数字不能算出24点, 则输出错误信息! 2概要设计 1 抽象数据结构定义: ADT 数据对象:D=a|a为大于0小于14的整数 push(sqstack *s,int e) /压栈 gettop(sqstack *s) /取得栈顶元素 pop(sqstack *s,int *e) /出栈 randomm() /产生四个随机数 EvaluateExpression(char* MyExpression) /课本算法3.4-计算表达式的值 init_sq(sqlist *l) /初始化链表 in
6、sert_sq(sqlist *p,int e,int bl) /链表插入操作 chang(char *s,sqlist *l) /将用户的输入转化为单链表 check(sqlist l) /保证输入的数字是给出的四个数字 Operate(int a,int theta, int b) /计算 3 precede(char Aop, char Bop) /求运算符优先级 ReturnOpOrd(char op,char* TestOp) /返回运算符优先级 CalcOneExpress(int expression2) /课本算法3.4-计算表达式的值 Calc24(int number24) /包含下面五个函数,即表达式的