发布时间:2019-09-13 18:14:31
1、完整代码如下,已经过VS2012编译及实际测试
2、基本上不存在什么缺憾,唯一的缺憾是很难中奖。
#include<iostream>#include<vector>#include<time.h>#include<algorithm>using namespace std;typedef vector<int>::iterator vit;class CEmie{public: CEmie() { rangeMin = 1; rangeMax = 37; nums = 7; srand(unsigned(time(NULL))); winNum(); annouce(); } ~CEmie() { emie.clear(); baseNum.clear(); specialNum = 0; } friend void checkNum(CEmie win,vector<int> ticket);private: vector<int> emie; vector<int> baseNum; int specialNum; int rangeMin; int rangeMax; int nums; //function int randNum(int Min,int Max); void winNum(); void annouce();};void CEmie::annouce(){ cout << "本期中奖号码是:"; for(vit it = baseNum.begin(); it!=baseNum.end(); it++) { cout << " " << *it; } cout << "+" << specialNum << endl;}int CEmie::randNum(int Min,int Max){ return static_cast<double>(rand())/(RAND_MAX+1)*(Max-Min+1)+Min;}void CEmie::winNum(){ int tempNum = 0; while(emie.size() != nums) { tempNum = randNum(rangeMin,rangeMax); if(emie.empty()) emie.push_back(tempNum); else { if(find(emie.begin(),emie.end(),tempNum) == emie.end()) emie.push_back(tempNum); } } baseNum.insert(baseNum.begin(),emie.begin(),emie.end()-1); specialNum = emie.back();}void checkNum(CEmie win,vector<int> ticket){ int baseNum = 0; bool specialNum = false; for(vit it = win.baseNum.begin(); it != win.baseNum.end(); it++) { for(vit cit = ticket.begin();cit != ticket.end(); cit++) { if(*it == *cit) baseNum++; } } if(ticket.back() == win.specialNum) specialNum = true; cout << "你的投注押中了" << baseNum << "个基本号码" << (specialNum?"和特别号码.":".") << endl << endl; switch (baseNum) { case 3: cout << (specialNum?"恭喜你获得六等奖.":"千万山区儿童感谢你的善心.") << endl; break; case 4: cout << (specialNum?"恭喜你获得五等奖.":"恭喜你获得六等奖.") << endl; break; case 5: cout << (specialNum?"恭喜你获得三等奖.":"恭喜你获得四等奖.") << endl; break; case 6: cout << (specialNum?"恭喜你获得一等奖.":"恭喜你获得二等奖.") << endl; break; default: cout << "千万山区儿童感谢你的善心." << endl; break; }}int main(){ //36选7·默认为南粤风采规则 int num; vector<int> ticket; cout << "靓仔,买什么号啊?" << endl; while(cin >> num)//ctrl+z停止 ticket.push_back(num); cin.clear(); CEmie sgc; cout << "核对彩票ING." << endl << endl; checkNum(sgc,ticket); return 0;}