1、 VC+课程设计报告课程设计报告 猜单词游戏猜单词游戏 VC+课程设计报告课程设计报告 1 功能:功能: 课程设计题目的功能课程设计题目的功能: 一个猜单词游戏。两人游戏时,由一个玩家给出一个单词,在人与计算机游戏时, 由计算机给出一个单词,另一个玩家根据组成单词的字母个数猜出单词,猜的次数可以 指定,若猜不中,显示一个上吊的人形。 (1) 将猜单词的函数与相应的数据封装到类中,并改写主程序,使程序简化。 (2) 根据所猜单词的字母个数,给出指定几率的提示字母,显示于单词中的正 确位置。 (3) 在进入猜单词的过程后,首先显示菜单询问是开始猜单词还是修改设置, 默认的修改次数为 4,默认显示字
2、符的几率为 20%,若要修改这个设置,在 显示菜单中选择设置选项进行修改。 (4) 在人人对抗时,一个玩家给出单词时,单词不显示在屏幕上,字符用“*” 显示。 (5) 猜单词时,输入一个单词,判断函数改为判断输入单词的字符是否与所猜 单词一一对应,将猜中的字符显示出来。 (6) 在人机对抗时,可以随机读取单词,也可以选择向单词库输入单词,同时, 将单词库中单词的个数显示出来,并根据单词库中单词个数的多少决定随 机选取的范围。 程序设计的思想和方法程序设计的思想和方法 (1) 类的封装类的封装 画上吊人形的类已经封装起来,这部分程序基本不用改了,主要是对人人 对抗和人及对抗操作部分类的封装。可以
3、定义一个类的两个对象,也可以定义 为一个基本类和一个派生类的对象,成员函数可根据对象的不同分别调用,数 据结构如下: Class CGuess private: string Word; /欲猜的单词 double Proba; /显示字符的概率 01 int GuessNum;/总共可猜的次数 int WrongNum;/猜错的次数 string DisplayWord;/欲显示的单词 string GuessWord;/第二个玩家输入猜想的单词 int nLen;/输入单词的长度 public: CGuess();/构造函数 void InitialSet();/修改设置值 void In
4、putWord();/输入单词并初始化成员函数 void InputGuess();/接收用户所猜的单词 int Judge();/判断是否猜中,猜中返回 0,猜不中返回 1 或-(death) int ShowDisplay();/显示单词及上吊人形,程序结束返回 1 int OpenWordFile();/打开单词库,随机取出一个单词赋给 Word,成功返 回 1 int SaveWordFile();/向单词库输入新单词,正确返回 1 (2) 程序主体结构的设置程序主体结构的设置 该设置基本上全部修改了原程序的结构,在 main 函数中分别定义人人对抗 和人机对抗的对象。在键入对应的菜单
5、选项后,进入操作函数,操作函数的参 数即是对应对象的引用。同样,若有下级菜单的函数一样用该对象的引用参数, 这样,可保证对象的唯一性。 主菜单: 1. 人人对抗(以人人对抗对象的引用作为参数调用子程序) 2. 人机对抗(以人机对抗对象的引用作为参数调用子程序) 人人对抗菜单 1. 开始猜单词 2. 设置系统(即设置显示字符的概率和允许猜错的次数) 3. 退出 人机对抗 1开始猜单词 2设置系统(即设置显示字符的概率和允许猜错的次数) 3向单词库中添加单词 4退出 (3) 人人对抗时输入欲猜单词的隐藏人人对抗时输入欲猜单词的隐藏 一个玩家给出单词时,单词不显示在屏幕上,字符用“*”号显示。本程序
6、 在基础上还要有些限制条件,就是接收的字符必须是字母,当字幕为大写时还 要转化为小写。如果输入的不是字母要提示重新输入。 (4) C+用用于处理字符串变量的新的数据类型于处理字符串变量的新的数据类型字符串类型(字符串类型(string 类型)类型) 在原程序字符串的操作中用了一种新的数据类型String, 该类型是一个 字符串类,可以定义对象。它在使用方法上和 char,int 类型一样,可以用来定 义字符串变量,即用一个名字代表一个字符序列。 程序设计的特点程序设计的特点 (1) 增设了单词库,并且输入 50 个单词,以便使用。 (2) 人人对抗和人机对抗时显示是否有重复字母 2 课程设计的详细设计:课程设计的详细设计: 程序主体结构图如下:程序主体结构图如下: 主菜单 人人对抗 人机对抗 退出 开 始 猜 单词 退出 开 始 猜 单词 设 置 系 统 设 置 系 统 退出 向 单 词 库 中 添 加单词 程序详细结构:程序详细结构: 1.主菜单程序:主菜单程序: void CGuess