⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 caipiaoos.c

📁 一些linux基本函数的测试集,给像我一样的新手看看
💻 C
字号:
#include <iostream.h>
#include <time.h>
#include<stdlib.h>
#include "stdio.h"
#include "stdlib.h"
#include <fstream.h>

ofstream fout("彩票库.txt");
ifstream fin("中奖号码.txt");

bool buycp(int k)//让用户选取彩票*******************************************************
{
	int a[7],i,j,t;
	char b[18];
   cout<<"请输入您的18位身份证号码(以回车键结束):"<<endl;
	for(i=0;i<18;i++)
		cin>>b[i];
		k++;

	for(i=0;i<6;i++)//让用户选出7个符合要求的号码
	{
		cout<<"请选择第"<<i+1<<"个号码";
		cin>>a[i];
		if(a[i]<1||a[i]>30)//设定彩票范围 
		{ 
			cout<<"选择超出范围!"<<endl;
			i--;
			continue;
		}
		if(i==0) continue;
		for(j=0;j<i;j++)//彩票号码不能重复
			if(a[i]==a[j])
			{
				i--;
				cout<<"选择有重复!"<<endl;
				break;
			}
	
	}
		while(1)
		{	
			cout<<"请选择特别号码:";
			cin>>a[6];
			if(a[6]>=1&&a[6]<=33)
				i=1;
			else 
			{
				cout<<"选择号码超出范围!"<<endl;
				i=0;
			}
		for(j=0;j<6;j++)//彩票号码不能重复
		{
			if(a[6]==a[j])
			{
				cout<<"选择有重复!"<<endl;
			    t=1;
			    break;
			}
			else t=0;
		}
			if(t==0&&i==1)break;
			else continue;
		}	
	cout<<"彩票购买成功!"<<endl;
	fout<<k<<"  ";
	for(i=0;i<18;i++)
		fout<<b[i];
	fout<<"  ";
	for(i=5;i>=0;i--)//给选择好的彩票号码排序
		for(j=0;j<i;j++)
			if(a[i]<a[j])
			{
			 t=a[i];
			 a[i]=a[j];
			 a[j]=t;
			}
        cout<<"你所选择的号码为:";
		for(i=0;i<6;i++)//输出排序好的彩票号码
		{	
			cout<<a[i]<<"   ";
		    fout<<a[i]<<"   ";
		}
		cout<<endl;
		cout<<"您选择的特别号码为:";
		cout<<a[6];
		fout<<a[6];
		fout<<endl;
		cout<<endl;
		
	return 0;
}

int randNumber(int range)//得到随机函数************************************************
{
	srand((unsigned)time(NULL));
	return rand()%range+1;
}


int GCD(int a, int b)//求两个整数的最大公约数*******************************************
{
	if (!(a%b))
	{
		return b;
	}
	else
	{
		return GCD(b,a%b);
	}
}

void SambukeRandom(int seed, int step, int nStep, int range)//抽奖*********************
{
	int cpSeed = seed;
	int a[7],i,j,t;
	if (GCD(seed,step)==1)//对种子和步长取余,若互质则满足要求
	{
		cout<<"You've made a good choice:)"<<endl;
	}
	else
	{
		cout<<"You've made a bad choice:("<<endl;
	}
    for(i=0;i<nStep;i++)//取7个随机数
	{
		a[i]=cpSeed%range+1;
		if(i==0) continue;//不让随机数有重复
		for(j=0;j<i;j++)
			if(a[j]==a[i])
			{
				i--;
			    break;
			}
		cpSeed += step;
	}
	for(i=6;i>=0;i--)//给7个选取的数排序
		for(j=0;j<i;j++)
			if(a[i]<a[j])
			{
			 t=a[i];
			 a[i]=a[j];
			 a[j]=t;
			}
	for(i=0;i<nStep;i++)//输出7个排好序的随机数
		cout<<a[i]<<' ';

	cout<<endl;

}
void choujiang()//抽奖得到随机号码***************************************************
{    
	int a[7],i,j,t;
	cout<<"Waiting for getting lucky number:)......"<<endl;
	for(i=0;i<7;i++)
	{	
		a[i]=randNumber(30);
	    if(i==0)
			continue;
	    for(j=0;j<i;j++)
			if(a[i]==a[j])
			{
			i--;
			break;
			}
	}
	for(i=6;i>=0;i--)//给选择好的彩票号码排序
		for(j=0;j<i;j++)
			if(a[i]<a[j])
			{
			 t=a[i];
			 a[i]=a[j];
			 a[j]=t;
			}
    for(i=0;i<7;i++)//输出排序好的彩票号码
			cout<<a[i]<<"   ";
	fout<<a[i]<<"重奖号码.txt";
		cout<<endl;
}
int  duijiang()//从彩票库里一个一个搜索,看中奖否或中几等奖***************************

{
   int i,j,n,a[26],b[7];
     n=0;
	for(i=0;i<=25;i++)
	{
		fin>>a[i];
	}
	for(j=0;j<=7;j++)
	{
		fin>>b[j];
	}
	for(j=0;j<=7;j++)
	{
		for(i=19;i<=25;i++)
		{
			if(a[i]==b[j])
				n++;
		}
	}
	switch(n)
	{
    	case 7:
			cout<<" 恭喜你中了特等奖!";break;
	    case 6:
			cout<<" 恭喜你中了一等奖!";break;
        case 5:
			cout<<" 恭喜你中了二等奖!";break;
        case 4:
			cout<<" 恭喜你中了三等奖!";break;
        case 3:
			cout<<" 恭喜你中了四等奖!";break;
        case 2:
			cout<<" 谢谢合作!下次好运!";break;
        case 1:
			cout<<" 谢谢合作!下次好运!";break;
        case 0:
			cout<<" 谢谢合作!下次好运!";break;
		default:
			cout<<"error!";
	}
	return n;
}

void main()//主函数*******************************************************************
{
    const n=1000000;
	int k;
	for(k=0;k<n;k++)//buy ticket
	{
	char w;
    cout<<"您购买的是第"<<k<<"号彩票"<<endl;
	buycp(k);
	cout<<"继续购买请按Y,退出请按B,再回车"<<endl;
	cin>>w;
	if((w=='Y')||(w=='y'))
	{
		cout<<"Continue..."<<endl;
		continue;
	}
	else 
	{
		cout<<"Break..."<<endl;
		break;
	}
	}
	cout<<"购买彩票结束!"<<endl;
	srand((unsigned)time(NULL));//choose random number
    k=rand();
	SambukeRandom(k,127,7,30);
	cout<<"抽奖已结束,现在等待兑奖结果:)......"<<endl;
	cout<<"谢谢大家对本彩票的支持!:)"<<endl;
    k=duijiang();
	cout<<k<<endl;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -