南京理工大学 VC++课程设计报告 课 程 : VC++课程设计 选题名称 : 福彩游戏 一、程序设计要求 (1)定义一个福彩类,封装计算机开出的大奖号码及开奖过程函数和输出大奖号码的函数。 (2)定义一个用户类,封装用户输入的数字和用户所拥有的彩金。初始化彩金为 100 元。每次下注 2 元,可以多次下注,具体赢得大奖或二等、三等奖的奖金由自己设置,累加到用户的彩金中;二等奖或三等奖的规则也由自己设置。其中,用户的输入的数字与福彩号码的比较函数定义为福彩类的友元函数。 (3)程序只要不选择退出且彩金允许就可以反复下注。 二、程序设计思想 (1)类的封装 改程序的数据结构比较简单,主要数据就是彩金和大奖号码,因此,只要将与这两个数字相关的操作封装起来即可。 class CCustomer //定义用户类 { private: int nMoney; //用户彩金 int nRank; //中奖的等级 int Welfare[6]; //福彩投注号码 public: CCustomer( ); //构造函数 int SetWelfare( ); //接收福彩投注,成功返回 1 void Compare(CWelfareLot&); //比较福彩,赋值中奖等级 void Show( ); //根据中奖等级计算奖金,输出结果 }; class CWelfareLot //定义福彩类 { private: int LotNum[6]; //大奖号码 public: CWelfareLot( ); //构造函数 void SetLot( ); //开奖过程 void PointLot( ); //输出大奖号码 friend void CCustomer ::Compare(CWelfareLot &); }; (2)开奖过程的编写 原程序的开奖过程比较简单,只是输出随机数结果,没有一般摇 奖的效果,可以将程序加以改进,使随机数不断变换显示,最后停在大奖号码上,这样效果更加逼真。 void CWelfareLot ::SetLot( ) { int nRnd,nNum; for(int i=0;i<6;i++) //要开出6 个数字 { nRnd=rand( ); //随机取循环次数,数字变换的时间长度是随机的 for(int j=0;j