1、 1 VC+课程设计报告课程设计报告 姓名姓名 学号学号 班级班级 任课教师任课教师 时间时间 所选课题所选课题 对抗对抗游戏游戏 评定难易级别评定难易级别 B B 实验报告成绩实验报告成绩 一、一、 程序功能介绍程序功能介绍: 一个对抗游戏,根据随机产生的数字决定双方的输赢。 二、二、 程序设计要求程序设计要求: (1) 当双方进行对抗时,游戏者可根据自身的牌点决定是否继续下注,例如拿 到 A,把握增大,则在计算机的牌点出来之前加大赌注,但不超过 5 点。 (2) 将双方牌点的比较扩大为两张牌点之和,若出现一组对子,则对子牌点大 于任何单牌,若双方均为对子,则比较牌点之和。 三、三、 源程序
2、结构设计图源程序结构设计图: 2 四、四、 : 主函数入口 显 示 计 算 机 的 牌点 准备开始 玩家随机抽取两张牌 随机产生计算机的两张 牌 玩家根据自己的牌下赌 注 显示玩家的牌 根据游戏规则处理 牌 显示玩家的输赢、平局、最后得分及参与轮数 游 戏 开 始! 3 五、五、 主要程序及功能实现:主要程序及功能实现: (1) 、首先创建如下一个类: class CCard int nCard1,nCard2; /两张牌 static int nLoop; /出牌次数,游戏结束时给出总的出牌次数 static int nScore; /总分 static int nWin,nLose; st
3、atic int nDraw; /输、赢、平的次数 int nBet; /赌注 public: CCard(); /构造函数 void SetCard(); /出两张牌 void Show(); /显示牌点 int AddBet(int); /增加赌注,失败返回 0 int CheckScore(); /返回玩者的分数 void friend Compare(CCard /友元函数,比较牌点的大小,并显示 结果 void friend ShowResult(CCard /友元函数,输出输赢结果及最后积分 ; (2) 、对静态成员以及利用构造函数进行初始化: int CCard:nLoop=0;
4、 int CCard:nWin=0; int CCard:nLose=0; int CCard:nDraw=0; int CCard:nScore=52; CCard:CCard() nCard1,nCard2=0; (3) 、随机产生牌点: void CCard:SetCard() nCard1=rand()%MAX+2; nCard2=rand()%MAX+2; (4) 、建立其余成员函数: void CCard:Show() /显示双方的牌 if(nCard1=11) couta; c=player.AddBet(a); coutx; if(x=1) main(); break; 五五、
5、反思与总结:、反思与总结: 1、通过 C+的课程实践,我对于课本上抽象的概念有了进一步的了解,如一 开始我直接在类外引用类中的私有成员, 就是没有对类的封装性有一个很好的认 识。通过这个错误,我真正对类的特性有了切身的体验; 2、增强了我的自主学习能力。对抗游戏的程序中大量涉及到友元函数,这一 知识老师刚刚讲解完,没有实际编程的经验,这促使我不得不深入了解并掌握这 些相关知识。而且在做这个设计之前,要对书中提供的所有源代码都要有一定的 理解,这样才能完成最初的选题工作; 3、激发了我学习 C+的兴趣。上学期学的都是基础概念,使我不能感觉到 C+ 真正的作用。但是这次的编程让我看到了 C+强大的功能和在软件世界里无可替 代的作用,从而唤醒了我对 C+的激情,这也是我这次能较好作完这个设计的重 要原因之一; 4、完成这个设计对我整个的编程能力也有了大幅度的提高。以前虽然也有编 程, 但是比较简单且实用性不高。 而这回的编程基本涵盖了上学期的所有知识点, 能够真正让我把理论和实践紧密结合起来,让自己的上机达到一个新的层次。 打印命令选 择菜单 开始 打印用户友好界面