《面向对象程序设计(课程设计)》报告
时间:2025-04-20
时间:2025-04-20
福建农林大学计算机与信息学院
课程名称:课题名称:姓 名:学 号:专 业:年 级:指导教师:职 称:计算机类
课程设计报告
面向对象程序设计(课程设计) 猜数字游戏
计算机科学与技术 2012级 讲师
2013年11月
面向对象程序设计(课程设计)成绩评定表
目 录
1. 课题来源................................................................................................................... 1 2. 任务描述................................................................................................................... 1 2.1. 课题的总体结构............................................................................................. 1 2.2. 核心功能模块与类设计................................................................................. 2 2.3. 任务分工与工作量说明................................................................................. 3
3. 程序(系统)详细设计........................................................................................... 3 4. 程序(系统)实现与测试....................................................................................... 5 5. 分析与讨论............................................................................................................. 11 6. 结束语..................................................................................................................... 12
1. 课题来源
该作品为原创。
课题灵感是能否做一个小游戏,寻找了很多小游戏比如俄罗斯方块等,发现其太复杂以目前的水平无法完成,于是就选择了一个比较简单的猜数字游戏,编写益智类的游戏可以让我们日常生活中自己使用来达到增加乐趣的作用。
猜数字游戏的原游戏规则:通常由两个人玩,一方出数字,一方猜。出数字的人要想好一个没有重复数字的4位数,不能让猜的人知道。猜的人就可以开始猜。每猜一个数字,出数者就要根据这个数字给出几A几B,其中A前面的数字表示位置正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数。
如正确答案为 5234,而猜的人猜 5346,则是 1A2B,其中有一个5的位置对了,记为1A,而3和4这两个数字对了,而位置没对,因此记为 2B,合起来就是 1A2B。
接着猜的人再根据出题者的几A几B继续猜,直到猜中(即 4A0B)为止。
原游戏规则是两个人玩,于是我们想到了将规则改为人机对战,电脑出题玩家来猜。
2. 任务描述
猜数字游戏:产生随机数,统计完全猜中的数字的个数以及统计猜中但位置错误数字的个数,并给出提示。最后计算积分。此程序体现了面向对象程序设计的继承性和封装性。
2.1. 课题的总体结构
程序有三个类,
其中randNumber类用来产生随机数,
contrast类用来做对比并得出猜数字的结果, score类用来读取文件内容并统计分数,
主函数进行循环输入猜数字,并将结果输入文件。
采用表格的形式,按照类在课题中的作用,列出核心类的功能定义和主要函
数接口。
2.3. 任务分工与工作量说明
3. 程序(系统)详细设计
按照程序(系统)的总体结构,详细介绍程序中各个类和函数的设计思想和实现方法,并以图的方式说明程序的流程图。
randNumber类实现答案所需的随机数的产生
contrast类为核心类,继承至randNumber类,实现猜数字游戏主要玩法的设计
开始
读取并显示排行榜记录
产生随机数字
输入所猜的数字
与生成的随机数完 全相同?
N
输出猜数字的提示(?A?B)
Y 输出“你猜对了”
猜数字的机会减少一次
次数耗尽? 计算并打印积分 Y
N
Y
是否继续?
N 游戏结束
统计总分,判断是否上榜
更新排行榜
-4-
4. 程序(系统)实现与测试
(1) 给出典型的程序(系统)执行结果图。 开始界面:
猜数字界面:
猜对时的显示界面:
破纪录时的显示界面
:
更新后的排行榜:
(2) 程序(系统)实现的功能
随机数字的产生:产生四个随机数字分别代表四位数的四个位 数字正误判断:给出既猜对位置也猜对的数字的个数以及猜对但是位置不对的数字的位置。
积分计算:猜错按0分算,一次就猜对100分,两次猜对90分,三次80分 以此类推,最后一次猜对得20分。
记录成绩的功能:给出排行榜记录前三名的成绩,保存在score.txt文件中。
(3) 根据课题的特性,列出带有详细注释的核心功能模块或类代码; 源程序代码: 随机数:
class randNumber{ int num1; int num2; int num3; int num4; int ran(){
srand( (unsigned)time( NULL ) ); for(int i=0;i<10;i++){ return (rand()%10); }
}//返回0-9的一个随机数 public:
void randNum(){ cout<<"正在产生随机数..."<<endl;//大概因为算法的问题产生随机数这个过程比较慢所以做个提示 num1=-1; num2=-1; num3=-1; num4=-1;//清除上次的随机数记录,使得下次产生随机数与上次不冲突 num1=ran(); do{ num2=ran(); } while(num2==num1); do{ num3=ran(); } while(num3==num1||num3==num2); do{ num4=ran(); } while(num4==num1||num4==num2||num4==num3); };//产生四 …… 此处隐藏:4107字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:商业银行中间业务案例分析