當前位置:商標查詢大全網 - 彩票開獎 - 求個簡單的彩票小程序 課設用 幫幫忙

求個簡單的彩票小程序 課設用 幫幫忙

#include <iostream>

#include <stdlib.h>

#include <stdio.h>

#include <time.h>

#include<vector>

#include<algorithm>

using namespace std;

int obj[7];

int select[7];

vector<int> bingo,b1;

vector<int>::iterator it;

int rnd(int s[7],vector<int> &b)

{

int i,j;

for( i = 0;i < 7;i++ )

{

s[i]=rand()%33+1;//取1-33的隨機數

}

for(i=0;i<7;i++)

{

for(j=i+1;j<7;j++)

{

if (s[i]==s[j]) //判斷產生的隨機數是否有重復

return 1;//如發生重復返回1

}

}

for(i=0;i<7;i++)

b.push_back (s[i]); //進棧

sort(b.begin (),b.end());//對產生隨機數排序

return 0;

}

int trap()//用於手選號碼的錯誤判定

{

for(int i=0;i<7;i++)

{

for(int j=i+1;j<7;j++)

{

if (b1[i]==b1[j])//判定是否有重復

return 1;

}

if((b1[i]<1)||(b1[i]>33))//判定是否超出數據範圍

return 1;

}

return 0;

}

int hand()//手選號碼

{

for(int i=0;i<7;i++)

{

cout<<"請輸入第"<<i+1<<"個號碼:";

cin>>select[i];

b1.push_back(select[i]);

cout<<endl;

}

if (trap()==1)

{

cout<<"您輸的號碼有重復或超出了1-33的範圍,請重新輸入."<<endl;

b1.clear ();//清空錯誤數據

hand();//遞歸,如號碼出錯重選

}

for (i=0;i<7;i++)

{

cout<<b1[i]<<"\t";//號碼正確則輸出

}

cout<<endl;

return 0;

}

int god()//機選號碼

{

int a;

cout<<"您的機選號碼是:..."<<endl;

do

{

a=rnd(select,b1);

if(a==0)

for(int i=0;i<b1.size();i++)

{

cout<<b1[i]<<"\t";

}

}

while(a==1);//錯誤控制

cout<<endl;

return 0;

}

int lucky()//產生中獎號碼

{

int b;

cout<<"中獎號碼是:..."<<endl;

do

{

b=rnd(obj,bingo);

if(b==0)

for(int i=0;i<bingo.size();i++)

{

cout<<bingo[i]<<"\t";

}

}

while(b==1);

return 0;

}

int check()//檢查中獎情況

{

int count=0;//猜中號碼個數

for(int i=0;i<7;i++)

{

it=find(bingo.begin(),bingo.end(),b1[i]);

if(it!=bingo.end())

{

count++;

}

}

return count;

}

int result(int p)//概率統計

{

int c[8]={0,0,0,0,0,0,0,0};

int yun;

lucky();

for(int k=0;k<p;k++)

{

god();

c[check()]++;//將猜中每個號碼個數的次數存入該數組相應的下標元素

b1.clear ();

}

cout<<endl<<"在上述測試中:"<<endl;

for(int j=0;j<8;j++)

{

yun=c[j]*100/p;

cout<<"猜中"<<j<<"個號碼的次數為"<<c[j]<<"次"<<endl;

cout<<"猜中"<<j<<"個號碼的概率為"<<yun<<"%"<<endl;

}

bingo.clear ();

return 0;

}

int main()

{

char l;

int t=0;

srand( (unsigned)time( NULL ) );//隨機種子

do

{

cout<<"****************************************************"<<endl;

cout<<"* 全民大彩票,驚喜多多,中獎多多,歡迎大家踴躍購買啦! *"<<endl;

cout<<"* 壓得多,贏得多,回家買輛大卡車! *"<<endl;

cout<<"* 開心刺激33選7,馬上就要開始了,趕快押寶了 *"<<endl;

cout<<"****************************************************"<<endl;

cout<<"[1]手選號碼"<<endl;

cout<<"[2]機選號碼"<<endl;

cout<<"[3]概率統計"<<endl;

cout<<"[4]退出"<<endl;

cout<<"請輸入您的選擇[1-3]";

cin>>l;

switch(l)

{

case '1':

hand();

lucky();

cout<<endl<<"您猜中了"<<check()<<"個號碼"<<endl;

bingo.clear ();

b1.clear ();

break;

case '2':

god();

lucky();

cout<<endl<<"您猜中了"<<check()<<"個號碼"<<endl;

bingo.clear ();

b1.clear ();

break;

case '3':

cout<<"請輸入測試的次數:";

cin>>t;

result(t);

break;

case '4':

cout<<"十賭九輸啊!快走吧,再晚了就改不上2路汽車了..."<<endl;

break;

default:

cout<<"請輸入1-3之間的數字"<<endl;

}

}

while(l!='4');

return 0;

}

我以前用過的壹個程序 妳試試