您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 数据结构实训。体育彩票的模拟(含详细解释)
#includeiostream//c++的标准输入输出头文件iostream#includectime//ctime是C中的time.h获取当前的系统时间#includecstdlib//类似C中的stdlib.husingnamespacestd;//std是系统标准的命名空间voidSelectSort(int*pData,intcount);//选择法排序,方便产生7个不重复的数voidBuyNumber(int*num,intn);//投注,从键盘输入7个1~36中不同的整数voidRandomNumber(int*cpu,intn);//开奖,从1~36中随机产生7个不重复的数作为本期彩票的结果voidJudge(int*man,intm,int*cpu,intn);//根据投注的情况和开奖的结果进行比较,确定获奖情况intmain(){srand((unsigned)time(NULL));//拿系统时间作为种子,由于时间是变化的,种子变化,可以产生不相同的随机数,rand也可用srandintcpu[7];intman[7];cout=======欢迎使用体育彩票36选7号码预算系统======endl;cout-------------请输入你想要买的号码:------------endl;BuyNumber(man,7);//购买号码7个RandomNumber(cpu,7);//产生随机数7个Judge(man,7,cpu,7);return0;//函数返回0}voidSelectSort(int*pData,intcount)//选择法排序{intpos,temp;//定义。从0开始的for循环for(inti=0;icount-1;i++)//从第一个到倒数第二个{pos=i;for(intj=i+1;jcount;j++)//数组第i+1元素起直到最后一个元素,这里是用来和数组第i个元素进行比较大小{if(pData[j]pData[pos])pos=j;}if(pos!=i)//冒泡法。每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。{temp=pData[i];pData[i]=pData[pos];pData[pos]=temp;}}}voidBuyNumber(int*num,intn)//投注,从键盘输入7个1~36中不同的整数{inti;charjudge;//字符型数据,说明符while(judge!='y'&&judge!='Y')//不等于y和Y{for(i=0;in;i++)//数组从第一个元素取到最后一个元素{cinnum[i];//对num数组进行赋值C++有重载机制所以cin支持多种类型数据的赋值,数组赋值,所以要加forif(num[i]=0||num[i]36)//输入的号码小于或者大于36{cout你所输入的号码有误,请重新输入!endl;//cout用法与c中printf类似、ndl换行、cinnum[i];}}cout\n你所购买的号码为:\n;for(i=0;in;i++)coutnum[i]'\t';//输出数组的第i个元素cout\n是否确定?(yorn)\n;cinjudge;//对judge进行赋值if(judge=='n'||judge=='N')//如果选择n或者N{system(cls);//清屏、每次程序运行时都将上一次运行输出的内容给清除掉,屏幕上就只显示本次输出的结果!cout=======欢迎使用体育彩票36选7号码预算系统======endl;cout-----------输入失败请重新输入要买的号码:-----------endl;}}}voidRandomNumber(int*cpu,intn)//开奖,从1~36中随机产生7个不重复的数作为本期彩票的结果{inti,j;cpu[0]=rand()%36+1;for(i=1;in;i++)cpu[i]=rand()%36+1;SelectSort(cpu,n);for(i=0;in-1;i++)//数组从第一个元素取到最后一个元素{for(j=i+1;jn;j++){if(cpu[i]==cpu[j]){cpu[j]=rand()%36+1;//从1-36随机取数SelectSort(cpu,n);//选择}}}cout\n本次开奖号码为:\n;for(i=0;in;i++)//数组从第一个元素取到最后一个元素coutcpu[i]'\t';//对cpu进行赋值}voidJudge(int*man,intm,int*cpu,intn)//根据投注的情况和开奖的结果进行比较,确定获奖情况{inti,j;intnum=0;for(i=0;im;i++)//数组从第一个元素取到最后一个元素{for(j=0;jn;j++)//数组从第一个元素取到最后一个元素{if(man[i]==cpu[j])num++;//循环}}switch(num){case2:cout\n\n恭喜!!!您中了2个号码,即是五等奖,奖金是5元整。endl;break;case3:cout\n\n恭喜!!!您中了3个号码,即是四等奖,奖金是50元整。endl;break;case4:cout\n\n恭喜!!!您中了4个号码,即是三等奖,奖金是500元整。endl;break;case5:cout\n\n恭喜!!!您中了5个号码,即是二等奖,奖金是5000元整。endl;break;case6:cout\n\n恭喜!!!您中了6个号码,即是一等奖,奖金是50000元整。endl;break;case7:cout\n\n恭喜!!!您中了7个号码,即是特等奖,奖金是500000元整。endl;break;default:cout\n\n很遗憾,你这次未能中奖,祝你下次好运!endl;}}
本文标题:数据结构实训。体育彩票的模拟(含详细解释)
链接地址:https://www.777doc.com/doc-5235397 .html