lotto programm

avenger2099

Mitglied
M. Visual C++ V 6
Windows 2k
Konsolenanwendung
OOP
____________________________________________________________________
Code:
// 10 Zahlen in einem array sortieren

#include<iostream>

#include <algorithm>

#include <ctime>
#include <conio.h>
#include<cstdlib>
#include<string>
#include<windows.h>
#include<string>
#include <fstream> // zum schreien in datein
#include <stdio.h> // zum erstellen von datein
using namespace std;

int i,k;
class lotto
{
private:
	int lottozahlen[6];

public:
	lotto();
	unsigned int lotto_zahlen_eingeben();
	void lotto_zahlen_ausgeben();
	void lotto_zahlen_vergleichen();
};


lotto::lotto()
		  {
			  	  
			  lottozahlen[i]=0;
		  }

unsigned int lotto::lotto_zahlen_eingeben()
{
	int i=0;
	do
	{
		cout<<"Bitte geben sie die "<<i+1<<". lotto_zahl ein:\t";cin>>lottozahlen[i];
		i++;

}while(i<6);
	return lottozahlen[i];
}


void lotto::lotto_zahlen_ausgeben()
{
    

for(i=0;i<6;i++)
{

	do
	{
	srand( (unsigned)time( NULL ) );
			lottozahlen[i] = rand() %49+1;
    }while(lottozahlen[i] != lottozahlen[i]);
	
	
	


}
cout << lottozahlen[i] << endl;
}


/*void sortierer::zahlen_auslesen()
{
	
	for(int k=0;k<10;k++)
	{
	cout<<"Die "<<k+1<<". Zahl:\t"<<zahlen[k] << endl;
	}
}*/

void main()
{
	lotto player;
	cout<<"Lotto\n";
	player.lotto_zahlen_eingeben();
	player.lotto_zahlen_ausgeben();
	
}

Hy ich soll für die Schule ein Lotto Programm in OOP schreiben, wo man 6 Zahlen eingibt, und die mit 6 generierten vergleivht werden, ich habe im moment probleme beim vergleichen
 
Code:
/*Lotto
		by Merlin Schaa
				TAI-1	*/
#include<iostream>
#include<algorithm>
#include<conio.h>
#include<cstdlib>
#include<ctime>

using namespace std;


class Lotto
{
public:
	Lotto();
	int zahlen_einlesen();
	void zahlen_auslesen();
	void loto_zahlen();
	void zahlen_vergleichen();
private:
	int zahlen[7];
	int Lzahlen[7];

};

Lotto::Lotto()
{
	int j=0;
	do
	{
		zahlen[j]=0;
		Lzahlen[j]=0;
		j++;
	}while(j<7);
}


int Lotto::zahlen_einlesen()
{
	int i=0;
	cout<<"Bitte geben sie ihre 7 Lottozahlen ein"<<endl<<endl;
	do
	{
		cout<<"Bitte geben sie die "<<i+1<<". zahl ein:\t";cin>>zahlen[i];
		if(zahlen[i]>48||zahlen[i]<0)
		{
			cout<<"Die Zahl muss zwischen 0 und 48 sein !!\n";
		}
		else
		{
		i++;
		}
	}while(i<7);
	return 0;
}

void Lotto::loto_zahlen()
{
	int l=0;
	srand( (unsigned)time( NULL ) );
	for(l=0;l<7;l++)
	{
		
		Lzahlen[l]=rand() % 48+1;
	}


}

void Lotto::zahlen_vergleichen()
{
	int j,p=0,i=0;
	do
	{
		j=0;

		do
		{
			if(zahlen[i]==Lzahlen[j])
			{
			p++;
			}
				
		j++;
		}while(j<7);
	i++;
	}while(i<9);
}
void Lotto::zahlen_auslesen()
{
	int p=0;
	system("cls");
	cout<<endl;
	cout<<"Ihre geratenen Zahlen";
	cout<<endl;
	for(int k=0;k<7;k++)
	{
	cout<<"Die "<<k+1<<". Zahl:\t"<<zahlen[k]<<endl;
	}
	cout<<endl;
	cout<<endl;
	cout<<"Die Lottozahlen";
	cout<<endl;
	for(k=0;k<7;k++)
	{
	cout<<"Die "<<k+1<<". Zahl:\t"<<Lzahlen[k]<<endl;
	}
	cout<<endl;
	cout<<"Sie haben "<<p<<" Zahlen richtig\n";
	
}





void main()
{
	Lotto Game;
	cout<<"Lotto\n\n";
	Game.zahlen_einlesen();
	Game.loto_zahlen();
	//sort.zahlen_sortieren();
	Game.zahlen_vergleichen();
	Game.zahlen_auslesen();
	
	

}

meine verbesserte version es giebt aber noch doppelte lotto zahlen
 
Also ich hab da mal ... vor lange langer Zeit was gemacht ^_^ und ich drehe den Spiess jetzt mal um ^_____^ Ich zeig dir mal Beispielhalber meinen Source.
Ist auch fast selbsterklärend .. -_-°

Da wurde einfach, sobald der Benutzer auf einen Button klickt ein Array zufällig mit den 6 Lottozahlen + einer Zusatztzahl gefüllt (also 7 Plätze) - ohne Doppelte.
Du müsstest dir einfach die Funktion anschaun und durchsteigen oder kopieren ^__^

Die erste Schleife läuft einfach das Array durch und gibt einem Platz solange eine zufällige Zahl, bis es eine ist, die noch nicht vorkommt.
Das überprüft die zweite Schleife, die immer vom Anfang bis zum vorherigen des aktuellen Platzes läuft.
Falls die Zahl gleich ist, setze ich den Index der ersten schleife um eins zurück. +_+

Code:
void CLoddoDlg::OnButtonGenerate() 
{
 int d=0;
 for (int i=0;i<7;i++)
 {
  z[i]=(rand()%49)+1;
  for (int i2=0;i2<i;i2++)
  {
   if(z[i]==z[i2])
	d=1;
  }
  if (d==1)
  {
   d=0;
   i--;
  }
 }
 
 UpdateData(); 
 m_z1=z[0];
 m_z2=z[1];
 m_z3=z[2];
 m_z4=z[3];
 m_z5=z[4];
 m_z6=z[5];
 m_zz=z[6];
 UpdateData(false);
}
(zu meiner Entschuldigung - er ist alt - der Quellcode)

Und nochwas - hasz du jemals auf nem Lottoschein die Zahl null gesehen ?
Das würde ich bei der Eingabe für den Benutzter korrigieren - wie du sie Programminern handelst - also ob du danach einfach eine abziehst ist ja egal.
Und es gibt 49 zahlen nicht 48 - oder täusch ich mich da. bei 49 müüsstest du ausserdem die Zufällige generierung ändern (und den Text der Benutzereingabe).

M.f.G. Erik
 
Zuletzt bearbeitet:
Zurück