南京理工大学VC++课程设计报告
课程:VC课程设计
选题名称:福彩游戏
一、程序设计要求
(1)定义一个福彩类,封装计算机开出的大奖号码及开奖过程函数和输出大奖号码的函数。
(2)定义一个用户类,封装用户输入的数字和用户所拥有的彩金。初始化彩金为100元。每次下注2元,可以多次下注,具体赢得大奖或二等、三等奖的奖金由自己设置,累加到用户的彩金中;二等奖或三等奖的规则也由自己设置。其中,用户的输入的数字与福彩号码的比较函数定义为福彩类的友元函数。
(3)程序只要不选择退出且彩金允许就可以反复下注。
二、程序设计思想
(1)类的封装改程序的数据结构比较简单,主要数据就是彩金和大奖号码,因此,只要将与这两个数字相关的操作封装起来即可。classCCustomer定义用户类private
i
t
Mo
ey用户彩金i
t
Ra
k中奖的等级i
tWelfare6福彩投注号码publicCCustomer构造函数i
tSetWelfare接收福彩投注,成功返回1voidCompareCWelfareLot比较福彩,赋值中奖等级voidShow根据中奖等级计算奖金,输出结果;classCWelfareLot定义福彩类privatei
tLotNum6大奖号码publicCWelfareLot构造函数voidSetLot开奖过程voidPoi
tLot输出大奖号码frie
dvoidCCustomerCompareCWelfareLot;;(2)开奖过程的编写原程序的开奖过程比较简单,只是输出随机数结果,没有一般摇
f奖的效果,可以将程序加以改进,使随机数不断变换显示,最后停
在大奖号码上,这样效果更加逼真。
voidCWelfareLotSetLot
i
t
R
d
Numfori
ti0i6i
R
dra
d
是随机的
要开出6个数字随机取循环次数,数字变换的时间长度
变化
fori
tj0j
R
dj
Numra
d21随机取020之间的数字进行
if
Num10cout
Num’b’当取的数字小于10,即一
位数,显示后光标左移一位,再继续变换的数字将原数字覆盖,出
现摇奖效果
else
cout
Num’b’’b’数,左移两位
当取的数字是两位
cout
Num“”LotNumi
Num变换到最后的数字即为大将数字
(3)程序的进一步改进①原程序要求玩家提供计算机随机数的种子,但如果种子固定,
那么产生的随机数也固定,大奖的号码每次都相同,达不到原游戏
的目的。我们还是用当前的时间作为随机数种子去顺序产生随机值,
使得大奖号码都是随机的。
②如果大奖号码纯粹是随机数,那么玩家获得大奖几乎是不可
能的,所有的玩家玩家都希望在游戏中找到乐趣,所以可以将游戏
稍稍改进一下,用指定的用户名和密码进入,首先预定好r