No to hardcore teraz :D:D:D
Znalazłem fajny programik, który nieco zmodyfikowałem, i chce uzyć go jako funkcje w swoim programie, ale mam problem: chce, żeby przy pobieraniu danych od użytkownika, parametr ’punkty’ był
pobierany z parametru funkcji, tzn żeby użytkownik go nie podawał, bo punkty będą wyliczane przez program. Czyli podajesz tylko imie i nazwisko, a program zapisuje to + punkty do tablic a potem do pliku. Próbowałem sam na różne sposoby, ale nie chciało sie skompilować ;( zmieniaj co chcesz byle działało :PP ... Fragment kodu, który przede wszystkim trzeba zmodyfikować zaznaczyłem. Jak przekazać funkcji parametr punkty wiem, wiec to nie problem :) I sorry ze tak krzywo wyszło :D
Aha. Punkty (te, ktore liczy program i przekazywałby je temu jako parametr funkcji) są typu integer z zakresu 1- 10 000 000
include include include
using namespace std;
const int MAX=256; //maks. liczba wpisów w bazie
char imie [MAX][64];
char nazwisko [MAX][64];
char punkty [MAX][9];
void open()
{
int i=0;
ifstream plik;
plik.open("highscores.txt");
do {
if (plik.fail())
{
plik.close(); return;
}
if (!plik.eof())
{
plik.getline(imie[i], sizeof(imie[i]), ’#’);
plik.getline(nazwisko[i], sizeof(nazwisko[i]), ’#’);
plik.getline(punkty[i], sizeof(punkty[i]), ’#’);
plik.ignore();
i++;
if (i == MAX) break; //zakoncz while - brak miejsc
}
} while (!plik.eof()); //az do konca pliku
plik.close();
}
void save()
{
int i;
ofstream plik;
plik.open("highscores.txt");
if (plik.fail())
{
plik.close();
cout << "Wystapil blad pliku!" << endl;
exit(1);
}
for (i=0; i if (imie[i][0] != ’’)
{
plik << imie[i] << ’#’
<< nazwisko[i] << ’#’
<< punkty[i] << ’#’ << endl;
}
}
plik.close();
}
void wyswietl(){
for (int i=0;i
if (imie[i][0] != ’’){
cout << "#" << i+1 << imie[i] << "t"
<< nazwisko[i] << "t"
<< punkty[i] << endl;
}
}
}
int main(int argc, char *argv[])
{
int i, z=0;
char cmd;
char temp[MAX];
for (i=0; i imie[i][0] = ’’;
nazwisko[i][0] = ’’;
punkty[i][0] = ’’;
}
open();
for (i=0; i if (imie[i][0] != ’’) z++;
cout << "Wolnych wpisow: " << MAX - z << endl << endl
<< "1. Dodaj nowy wpis" << endl
<< "2. Usun istniejacy wpis" << endl
<< "3. Pokaz zawartosc bazy" << endl
<< "0. Koniec pracy" << endl << endl
<< "? ";
cin.get(cmd);
cin.ignore();
switch (cmd)
{
case ’1’:
//mamy wolne?
if (z != MAX)
{
//znajdz pierwszy pusty
for (i=0; i if (imie[i][0] == ’’)
{
cout << "Podaj imie: ";
cin.get(imie[i], sizeof(imie[i]));
cin.ignore();
cout << "Podaj nazwisko: ";
cin.get(nazwisko[i], sizeof(nazwisko[i]));
cin.ignore();
cout << "Podaj punkty: ";
cin.get(punkty[i], sizeof(punkty[i]));
cin.ignore();
z++; //zwieksz liczbe zajetych
break; //przerwij wykonywanie petli for
}
}
else
{
cout << "Brak wolnych wpisow!!!" << endl;
}
break;
case ’2’:
cout << "Usuwanie - podaj imie: ";
cin.get(temp, sizeof(temp));
cin.ignore();
for (i=0; i if (!strcmp(imie[i], temp))
{
imie[i][0] = ’’;
nazwisko[i][0] = ’’;
punkty[i][0] = ’’;
z--;
cout << "Usunieto wpis!" << endl;
break; //for
}
if (i == MAX) cout << "Nie znaleziono takiego wpisu!" << endl;
break;
case ’3’:
for (i=0; i {
if (imie[i][0] != ’’)
cout << imie[i] << "t"
<< nazwisko[i] << "t"
<< punkty[i] << endl;
}
cout << endl;
break;
case ’0’:
break;
}
save();
wyswietl();
system("PAUSE");
return EXIT_SUCCESS;
}
To będzie ostatnia cegiełka do mojego programu :) Jak to będzie działać to się pochwale swoim dziełem :D:D:D