Witam wszystkich.
Jestem początkującym programistą. Mam do zrobienia mały projekt. Wyglądać to ma w następujący sposób: program (o miłej nazwie "Alkomat"), napisany w C++ ma wygenerować do pliku 8760 liczb pseudolosowych (symulacja 24 pomiarów dziennie przez 365 dni roku, przyjmując pomiary przeprowadzane od 1 stycznia do 31 grudnia). Przykład:
(...)
07.11.2014 6523
07.11.2014 5321
07.11.2014 1394
itd (...)
Pomiary mają być później posortowane dniami (od najmniejszej do największej wartości danego dnia - od 1 stycznia do 31 grudnia).
Oczywiście, wygenerowanie liczb, zapis do pliku, później odczyt z pliku i sortowanie po tychże liczbach jest proste i to udało mi się zrobić. Od dłuższego czasu stoję nad problemem wygenerowania dat. Domyślam się, że najlepiej byłoby stworzyć dwuwymiarową tablicę stringów, gdzie pierwsza kolumna byłaby datą, a druga pomiarem, ale niestety nie wiem jak się za to zabrać. Próbowałem zasięgnąć forów polsko i anglojęzycznych, niestety nie znalazłem rozwiązania mojego problemu. Podejrzewam, że da się wygenerować te daty przy pomocy gotowej biblioteki. Z góry dziękuje za pomoc i pozdrawiam.
Poniżej przedstawiam mój kod bez funkcji sortujących, które nie mają związku z problemem. Do każdego z tych 8760 pomiarów chciałbym dorzucić datę, ale niestety nie mogę znaleźć optymalnego rozwiązania...
int main()
{
const int iloscProbek = 8760;
int input = 0;
int wartosci[iloscProbek];
fstream plik;
boolean flag; // pomocnicza zmienna ulatwiajaca sprawdzenie czy zbior juz byl sortowany
SYSTEMTIME st;
GetLocalTime(&st);
int godzina = st.wHour;
int minuta = st.wMinute;
int sekunda = st.wSecond;
int dzien = st.wDay;
int miesiac = st.wMonth;
int rok = st.wYear;
srand(time(0));
while (input !=5)
{
cout << endl << endl << "ALKOMAT - MENU GLOWNE" << endl;
cout << "__________________" << endl << endl;
cout << "1. GENEROWANIE DANYCH" << endl;
cout << "2. SORTOWANIE BABELKOWE" << endl;
cout << "3. SORTOWANIE PRZEZ WSTAWIANIE" << endl;
cout << "4. SORTOWANIE PRZEZ WYBOR" << endl;
cout << "5. WYJSCIE" << endl;
cout << "__________________" << endl << endl;
cout << "Wybierz opcje" << endl;
//*****************************************************sprawdzenie poprawnosci danych wejsciowych
while (true)
{
cin >> input;
if (cin.peek() == '\n' && cin.good())
break;
cout << "Cos poszlo zle. Wybierz opcje ponownie: " << endl;
cin.clear();
do
{
cin.ignore(numeric_limits<streamsize>::max(), '\n');
} while (!cin);
} // ---------------------------------------------------------------------------------------------
//*************************************************obsluga MENU
switch (input) {
case 1:
plik.open("pomiary.txt", ios::out);
plik << "| LABORATORIUM JPO | Losowe wartosci utworzono: " << dzien << "." << miesiac << "." << rok <<" " << godzina << ":" << minuta << ":" << sekunda << endl;
//Generowanie świeżego pomiaru
for (int i = 0; i < iloscProbek; i++)
{
wartosci[i] = 0;
}
for (int i = 0; i < iloscProbek; i++)
{
wartosci[i] = rand() % 10000;
plik << wartosci[i] << endl;
}
plik.close();
plik.clear();
flag = false;
cout << "Wygenerowano losowe wartosci" << endl;
break;