Orar semigroup #2

Orar semigroup #2

Loto 6/49 draft cu grafica

#include<iostream>
#include<fstream>
#include<math.h>
#include<cstdlib>
#include<graphics.h>
#define N 1100
#define M 600
using namespace std;
struct player
{int numere[100];
int ghicit;
char nume[100];
float castig;};

void fort(int a[])
{ int u,p=0,i,ok;
    u=rand()%49+1;
a[0]=u;
p++;
while(p<6)
{
    ok=0;
    u=rand()%49+1;
    for(i=0;i<p;i++)
    {
        if(a[i]==u)
            ok=1;
    }
    if(ok==0)
    {
        a[p]=u;
        p++;
    }
}
}

void citire(float &F, int &n, float &R, player v[], int a[])
{ifstream f("loto");
int i,i1,k;
f>>F;
R=F;
f>>n;
i1=0;
for(k=1;k<=n;k++)
{
f>>v[k].nume;

for(i=0;i<6;i++)
{   f>>v[k].numere[i];
    for(i1=0;i1<6;i1++)
    {
        if(v[k].numere[i]==a[i1])
        {
            v[k].ghicit++;
        }
    }
}
}
}

void nr_castigatoare(int a[])
{int i;
cout<<"Numerele castigatoare: ";
for(i=0;i<6;i++)
{
    cout<<a[i]<<" ";
}
}

void inversare(player v[], int n, int c[])
{int max,k,t;
max=0;cout<<endl<<endl;
for(k=1;k<=n;k++)
    if(v[k].ghicit>=max)
        max=v[k].ghicit;

for(k=1;k<=n;k++)
    for(t=k+1;t<=n;t++)
        if(v[k].ghicit<v[t].ghicit)
            swap(v[k],v[t]);

for(k=1;k<=n;k++)
    if(v[k].ghicit>1)
        c[v[k].ghicit]++;
}

void calculare(player v[], int n, float &R, float F, int c[])
{int k;
cout<<"TOP: "<<endl;
    for(k=1;k<=n;k++)
    {    if(v[k].ghicit==1 || c[v[k].ghicit]==0)
            v[k].castig=0;
    else{
        switch(v[k].ghicit)
    {case 6 : v[k].castig=40*F/100;break;
    case 5 : v[k].castig=25*F/100;break;
    case 4 : v[k].castig=20*F/100;break;
    case 3 : v[k].castig=10*F/100;break;
    case 2 : v[k].castig=5*F/100;break;}
        v[k].castig=v[k].castig/c[v[k].ghicit];
        }
        R=R-v[k].castig;
    }

}

void afisare(player v[],int n,int a[],int R)
{int k,j,i;
    for(k=1;k<=n;k++)
    {cout<<k<<"."<<v[k].nume<<" cu "<<v[k].ghicit<<" numere ghicite(";
    for(i=0;i<6;i++)
{    for(j=0;j<6;j++)
        if(a[i]==v[k].numere[j])
            cout<<a[i]<<" ";
}
    cout<<"). Castig: "<<v[k].castig<<endl;
    }

cout<<"Report: "<<R;
}

void grafica(int n, int a[], player v[])
{int j=0,i,i1,k,max,c[100]={0},t,p=0,u,ok,l,u1,u2,dlm,ii,jj,x,s=10,sp,jp,dp,z;
char b[100];
x=n;
j=60;i=0;
initwindow(N,M,"Loto 6/49");
setfillstyle(1,5);
dlm=1;
while(i<x)
{
k=0;
p=0;
z=250;
dp=370;
bar(20,s,170,j);
while(p<6)
{
    u1=s+(j-s)/2;
    u2=z+(dp-z)/2;
   itoa(v[dlm].numere[k],b,10);
   k++;
    outtextxy(u2,u1, b);
    ok=0;
    for(ii=0;ii<6;ii++)
        if(a[ii]==v[dlm].numere[k-1])
                ok=1;
if(ok==1)
{
    bar(z,s,dp,j);
    outtextxy(u2,u1, b);
}
else rectangle(z,s,dp,j);
z=dp+10;
dp=z+120;
p++;
}
i++;
s=j+10;
j=s+50;
dlm++;
}
p=0;
for(i=1;i<=x;i++)
{    outtextxy(40, 27+p, v[i].nume);
p+=60;
l=0;
}
delay(10000000);
}


int main()
{int a[100]={0},j=0,i,i1,n,k,max,c[100]={0},t,p=0,u,ok,l,u1,u2,dlm,ii,jj,x,s=10,sp,jp,dp,z;
char b[100];
float F,R;
player v[100];
srand(time(NULL));
fort(a);
citire(F,n,R,v,a);
nr_castigatoare(a);
inversare(v,n,c);
calculare(v,n,R,F,c);
afisare(v,n,a,R);
grafica(n,a,v);
}

miercuri, 9 martie 2011 by DlMuresan
Leave a comment

Leave a Reply