数据结构课程设计报告Word文档下载推荐.docx
- 文档编号:17029978
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:13
- 大小:91.82KB
数据结构课程设计报告Word文档下载推荐.docx
《数据结构课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
4、参加答辩
工作进度计划
序号
起止日期
工作内容
1
2010.12.20
收集查找图书馆管理有关资料
2
2010.12.20----2010.12.22
上机编写、调试程序
3
2010.12.23
撰写课程设计报告
4
2010.12.24
答辩
指导教师(签章):
年月日
摘要:
24点游戏是一种使用扑克牌来进行的益智的游戏,游戏内容为:
从一副扑克牌四个花色的1到K等52张牌中,任意抽取4张牌,运用加、减、乘、除和括号等运算符把牌面上的数进行运算得到24。
游戏有不同的版本,其实是对J、Q、和K的处理有所不同。
有的版本版本是把J、Q、和K去除,只用1到10来进行游戏;
有的版本是把J、Q、和K当成10;
还有的版本是用J表示11,Q表示12,K表示13。
此次课程设计采用的是把J表示11,Q表示12,K表示13,使游戏的四张牌在1~K这13张牌中随机取牌。
关键词:
24点;
J表示11,Q表示12,K表示13
目录
1需求分析1
2概要设计1
2.1数据结构1
2.2涉及的知识点1
2.3功能结构3
3详细设计与实现3
3.1代码实现3
3.2系统流程图7
4调试与操作说明8
总结9
致谢10
参考文献11
1需求分析
程序任务在1到13中随机产生四个数,只能利用加,减,乘,除以及适当的括号连接这四个数,无论顺序,使计算结果为24,或者根本宣布无解,每一个数都必须运算且只能运算一次,运算符可多次重复使用
功能要求随机产生四个1到13的数,分别代表13张牌
提示玩家输入数字
程序会自动判断这四个数是否能算出24点,如果能,则给出所有算法,如果不能则输出“0种解法”,并回到第一步
界面要求要求要有合理的界面,用户可以读懂看清程序将要做的事情,并可以在一步一步的执行时打出一些提示,用户可以继续使用
2概要设计
此课程设计中,涉及到知识点主要有:
数据结构、类、链表、函数调用、选择结构中的条件语句、循环结构中的while语句、if循环语句、控制语句中的break语句、字符串函数,及文件的读取等等。
2.1数据结构
计算24点是以扑克牌中产生的值为元素分别进行计算获取24点:
(1)取值;
(2)排序;
(3)计算;
(4)输出;
。
2.2涉及的知识点(概述)
switch语句
switch语句又被称为开关语句。
形式:
switch(表达式)
{
case常量表达式1:
语句组1;
[break;
]
case常量表达式2:
语句组2;
……
case常量表达式n:
语句组n;
[default:
语句组n+1]
}
语句的执行顺序:
首先计算switch表达式的值,然后,其结果值依次与每个常量表达式的值进行匹配。
如果匹配成功,则执行该常量表达式后的语句系列。
当遇到break时,则立即结束switch语句的执行,否则,顺序执行到括号中的最后一条语句。
2.3功能结构
图2.3功能结构图
3详细设计与实现
计算24点包括输入四个数字,对四个数字进行一一组合,并进行计算,得出24后输出所有算法。
3.1代码实现
#include<
iostream>
usingnamespacestd;
intmain()
inti1,i2,i3,i4,v,n1,n2;
intnum=0;
inta,b;
doublet1,t2,t3,t4,choice[4],s1[4],s2[4][4],s3[2],t;
for(;
;
)
{
cout<
<
"
##########################二十四点###################################\n友情提示:
A=1,J=11,Q=12,K=13\n"
请给出你抽到的第一牌:
cin>
>
choice[0];
请给出你抽到的第二牌:
choice[1];
请给出你抽到的第三牌:
choice[2];
请给出你抽到的第四牌:
choice[3];
##########################THINKING###################################\n"
for(b=0;
b<
=2;
b++)
for(a=3;
a>
=1+b;
a--)
if(choice[a]<
choice[a-1])
{
t=choice[a-1];
choice[a-1]=choice[a];
choice[a]=t;
}
for(intj=0;
j<
4;
j++)
cout<
j+1<
."
choice[j]<
"
cout<
\n"
for(i1=0;
i1<
i1++)
{
t1=choice[i1];
for(i2=0;
i2<
i2++)
{
if((i1-1)!
=0&
&
t1==choice[i1-1])
break;
if(i2!
=i1)
{
t2=choice[i2];
s1[0]=t1+t2;
s1[1]=t1-t2;
s1[2]=t1*t2;
s1[3]=t1/t2;
for(i3=0;
i3<
i3++)
{
if(i3!
=i1&
i3!
=i2)
{
t3=choice[i3];
for(v=0;
v<
v++)
{
s2[v][0]=s1[v]+t3;
s2[v][1]=s1[v]-t3;
s2[v][2]=s1[v]*t3;
s2[v][3]=s1[v]/t3;
for(i4=0;
i4<
i4++)
{
if(i4!
i4!
=i2&
=i3)
{
t4=choice[i4];
for(n1=0;
n1<
n1++)for(n2=0;
n2<
n2++)
if(s2[n1][n2]+t4==24||s2[n1][n2]-t4==24||s2[n1][n2]*t4==24||s2[n1][n2]/t4==24)
{
cout<
找到一种组合方案:
\n(("
t1;
if(s1[n1]==t1+t2)
cout<
+"
if(s1[n1]==t1-t2)
-"
if(s1[n1]==t1*t2)
*"
if(s1[n1]==t1/t2)
/"
if(n2==0)
t2<
)+"
t3;
if(n2==1)
)-"
if(n2==2)
)*"
if(n2==3)
)/"
if(s2[n1][n2]+t4==24)
t4<
=24\n"
if(s2[n1][n2]-t4==24)
if(s2[n1][n2]*t4==24)
if(s2[n1][n2]/t4==24)
num++;
}
}
}
}
}
}
}
s1[0]=t1*t2;
s1[1]=t1/t2;
{
for(i4=0;
if(i4!
t4=choice[i4];
s3[0]=t3*t4;
s3[1]=t3/t4;
for(n1=0;
2;
n1++)
for(n2=0;
if(s1[n1]+s3[n2]==24||s1[n1]-s3[n2]==24)
\n("
if(s1[n1]+s3[n2]==24)
)+("
if(s1[n1]-s3[n2]==24)
)-("
if(s3[n2]==t3*t4)
)=24\n"
if(s3[n2]==t3/t4)
}
总共有"
num<
种解法。
if(num==0)
这四张牌无法构成24点~~~\n"
num=0;
}
return0;
}
3.3系统流程图
图3.3系统流程图
4调试与操作说明
程序调试无误后,开始运行,运行结果如下:
图4.1主功能菜单图
图4.2将数字组合
首先输入小于13的第一个数字,按照要求一一输入第二,三,四个数字,如下图
图4.3计算过程图
图4.4输出算法图
总结
本次课程设计是自己第一次开发小游戏,心理很甜。
通过此次课程设计,收获颇多,最主要的是对C++知识重新学习了一遍,感受到了它的博大精深;
同时对word又有了进一步的了解和掌握。
首先,编程有了很大的提高,虽然有时候自己没有思路,但是可以借鉴别人的代码,看别人设计的思路,理解的同时自己小试一下也可以编出来,所以凡事不能被困难吓倒,只要有开始,去尝试。
就会有意想不到的收获。
再次,在运行、调试过程中也学到了很多,以前编程最怕的就是报错,尤其是错误多了的时候,感觉毫无头绪直接头大,但是编程不可能不出错,报错,只要逐一对付,然后细心研究改正,终究一切问题都会迎刃而解的,所以遇到问题,不能急,要心平气和的去应对,才能把所学的只是真正用于实际,这不得不说正是我们当代大学生所严重缺乏的,以后的学习中更应注意。
通过这次实践数据结构系统的开发过程中的经历,我学到了很多书本上相关的知识以及更多的课上无法接触到的计算机知识。
在设计的过程中遇到了好多问题,代码无法执行,代码不够优化,但我始终没有放弃,通过查书,请教别人,最终使程序可以正常运行。
这样的课程设计对我学习数据结构、数据库等课程是一个很好的实践机会,也因此而得到更多的系统设计经验,为以后的学习打下扎实的基础。
这次的课程设计使我充分体会到了从事软件开发方面工作需要比其他行业更高的严谨认真的态度和作风,不能有任何松懈马虎的作为。
任何一个细节问题都不能轻视放过,有可能就是因为大错一个字母导致整个软件都不能运行或正常使用。
希望以后还能有这样的机会,对于这样的课程设计,每位同学都会受益匪浅的。
致谢
经过这次数据结构课程设计我收获了很多,指导老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我学到了好多书本上学不到的知识。
无论在理论上还是在实践中,都给与我们很大的帮助,使我得到很大的提高,这对于我以后的工作和学习都有一种巨大的帮助,在此感谢他耐心的辅导。
在撰写论文阶段,老师审阅我们的论文,提出了许多宝贵意见,没有他的指导,我们就不能较好的完成课题设计的任务。
感谢淮阴工学院、计算机工程系提供的实践机会,实验室人员提供的实验环境。
还有就是要感谢同学给与的帮助,参考文献的原作者。
参考文献
[1]苏仕华.数据结构课程设计.北京:
机械工业出版社,2005
[2]李春葆,金晶.数据结构教程.北京:
清华大学出版社,2006
[3]王红梅,胡明,王涛.数据结构(C++版)学习辅导与实验指导.北京:
清华大学出版社,2005
[4]谢楚屏,陈慧南.数据结构.北京:
人民邮电出版社,1994
[5]朱战立编著.数据结构——使用C++语言.西安:
西安电子科技大学出版社,2001
[6]殷新春等编著.数据结构学习与解题指南.武汉:
华中科技大学出版社,2001
指导教师评语
学号
1091305210
姓名
金亮
班级
软件1092
选题
学生管理系统
评价内容
权重(%)
得分
考勤记录、学习态度、工作作风与表现。
5
自学情况:
上网检索机时数、文献阅读情况(笔记)。
10
论文选题是否先进,是否具有前沿性或前瞻性。
成果验收:
是否完成设计任务;
能否运行、可操作性如何等。
20
报告的格式规范程度、是否图文并茂、语言规范及流畅程度;
主题是否鲜明、重心是否突出、论述是否充分、结论是否正确;
是否提出了自己的独到见解。
30
6
文献引用是否合理、充分、真实。
7
答辩情况:
自我陈述、回答问题的正确性、用语准确性、逻辑思维、是否具有独到见解等。
25
合计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)