出圈游戏C++程序设计报告书_第1页
出圈游戏C++程序设计报告书_第2页
出圈游戏C++程序设计报告书_第3页
出圈游戏C++程序设计报告书_第4页
出圈游戏C++程序设计报告书_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河北联合大学2011-2012第2学期 软件设计基础-C+课程设计报告设计名称: 出圈游戏 姓 名: 王兵 学 号: 7 专业班级: 10石油(1)班 学 院: 矿业工程学院 设计时间: 2010年5月6月 设计地点: 机房 成绩:指导教师评语: 指导教师签字: 年 月 日软件设计基础-C+课程设计报告 第 12 页,共 12 页目 录1.课程设计目的2.课程设计任务与要求3.课程设计说明书4.课程设计成果5.程序调试过程6.设计问题的不足和改进方案7.课程设计心得8.参考文献1课程设计目的软件设计基础-C+课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C+的知识点,又接近工程实际需要。目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C+这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。2课程设计任务与要求:问题描述:假设有n个人按顺时针围成一圈,一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始报数,报到m时停止报数。报到m的人出列,然后从他原来所在的顺时针方向的下一个开始重新从1报数,报到m时停止报数并出列。如此下去,直至所有的人全部出列为止。要求按他们出列的顺序输出他们原来的序号和名字。问题的解决方案:本课程设计任务描述中,要实现从键盘随机输入这两个数据完成出圈游戏。因此,需要根据运行时的实际要求,分配适当大小的存储区。当回答参加游戏的人数之后,即可为程序分配一块内存块,用来存入游戏者的名字和序号。但在计算中,需要将点到的人出圈,这是通过将对象的序号均变为0实现的。基本要求:(1)在头文件中声明SeqList类。(2)源代码程序要求必要的注释。(3)每个模块存入一个文件中,以多文件模式存储并调试程序。创新要求在基本要求达到后,可以进行创新设计,如使用动态存储管理(使用动态数组接收输入,并且参加游戏的人数和间隔可变)。3课程设计说明书概要设计模块说明:在我设计的程序中一共包括SeqList声明,接收模块,检查模块,循环模块,和输出模块。最终是通过Joseph函数实现出圈。模块结构图:SeqList声明接收模块检查模块循环模块循环模块输出模块Joseph函数 详细设计 1.总体流程图:Main函数用SeqList类创建一个对象初始化向量用对象调用Joseph实现出圈输出提示要求键盘输入数字2.各功能模块流程图 (1) 调用Joseph实现出圈接收键盘上的数字检查输入的人数和间隔数是否符合要求输出相应的提示,并要求正确输入 不符合要求符依旧不符合 合符合输出最后一个的相关信息循环报数出圈直至留下一个人,并且每次出圈都输出 (2)其余模块均为简单语句,无需细分,只需注意语法和格式即可4课程设计成果程序源代码#include#includeusing namespace std;/SeqLis类class SeqListchar name10; public:void DispName()coutname;void SetName(char b)strcpy(name,b);void Joseph(vector&);/Joseph函数(类外函数用: )void SeqList:Joseph(vector&c)int m,star,i,j,k,s1;cout m;while(m20)coutm;cout从第几个人的位置开始报数(不能大于c.size()star;while(starc.size()coutstar;cout准备输入名字endl;getchar();/消除回车干扰 /输入参加游戏人的名字char s10;for(i=0;ic.size();i+)cout第i+1个人的名字:;gets(s);ci.SetName(s);i=star-2;/计数时从开始报数处减一vector:iterator p;/声名向量的正向泛型指针 语法为:vactor:iteratorp=c.begin();/p是向量的开始int length=c.size();for(k=1;k=length;k+) s1=c.size();j=0;/开始报数while(jm)i+; /报数到最后时返回报第一个if(i=s1)i=0;j+;if(k=length) break;/全部出圈后停止循环ci.DispName();cout,;c.erase(p+i);/调整索引coutendl;-i;ci.DispName();/输出最后一个出圈的人的名字coutendl;void main()int length=0;/初始化coutlength;vectorc(length);SeqList game;/用SeqList类创建game对象game.Joseph(c);/用game对象调用Joseph(c)函数运行结果5.程序调试过程写出程序调试步骤,及遇到的问题。调试程序遇到的问题第一次:忘记两个分号解决办法:加分号第二次:变量start未定义解决办法:在变量声明部分加 int start第三次:循环条件for(k=1;klength;k+)有错误,导致输出结果少一个解决办法: 改为 for(k=1;k=length;k+)6.设计问题的不足和改进方案不足:(1)没有出圈游戏者具体信息的输出 改进方案:类中加几个属性 要求用户输入 写相关输出方法 出圈时用“ci.方法”输出(2) 运行一次程序不能做多次游戏 改进方案:main中加循环 ,mian最开始要求 输入游戏次数n 然后用for(int j=0;jn;j+)循环7.课程设计心得回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体通过这次课程设计之后,一定把以前所学过的知识重新温故。此次,程序的设计和创建,经历了平时在课堂中和考试中,决不会有的重重难题和问题。而这些问题,又都是课本上很少提到的、更深一层的知识领域和应用领域。这些问题,并不是我们平时只靠课本,就可以轻易解决的。实践是检验真理的唯一标准”。没有实践,就不会发现和深刻体会它的真实所在。只有通过检验的真理,在自己的心里,才会认可它的真实性。面向对象程序设计的完成,使我们懂得了真理的重要性,理论和实际的相结合,才能真正把握所学和所掌握的知识。整体地评价这次课程设计,我认为收获很大,正如上面所说的那样,通过课程设计,既复习了以前的旧知识,又学到了一些新的知识;设计增强了我们用所学知识去解决具体问题的能力,进一步培养了我们独立思考问题和解决问题的能力。理论的拥有并不能代表我们的实力和能力,一切的事件和其成功都是理论和实践的结合。总之,我们学习和掌握的知识,只有通过实际应用,才能真正的理解和掌握,才能更好的去应用。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在谢老师的辛勤指导下,终于游逆而解。同时,在李老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢。8.参考文献(1)Visual C+6.0经典实例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论