Skocz do zawartości

Featured Replies

Napisano

MAM taki program(a wlasiwie dopiero jego poczatek :/)

 #include 
#include 
using namespace std;
struct GOSC
{
      char nazwisko[20];
      char imie[10];       // tutaj nie wiem czy imie i nazwisko ma byc w jednej tablicy 
      int ile_dni;         // chyba tak ma byc ale nie wiem czy nie bedzie problemu pozniej w tej aktualizacji
      float cena_za_dobe;
      float rozmowy_tele;
      float konsumpcja;
      float koszt;
      bool obcokrajowiec;
};
int main()
{
   fstream plik;  // koniecznie ma byc plik binarny
   GOSC gosc;
   int wybor;
   cout    cout    cout    cout    cout    cout    cout    do {
   cout>wybor;
   switch(wybor)
   {
                case 1: plik.open("hotel.dta", ios::out | ios::binary);  // tutaj trzeba zastosowac raczej tryb app czyli dopisywania ale mi nie wychodzi
                        if(!plik) cout                         else
                        {
                        cout                         cout                         // nie mam pojecia dlaczego mi nie chce zapisac imienia
                        cout                         cout>gosc.ile_dni;
                        cout>gosc.cena_za_dobe;
                        cout>gosc.rozmowy_tele;
                        cout>gosc.konsumpcja;
                        cout>gosc.obcokrajowiec;
                        plik.write((char*)&gosc, sizeof(GOSC));
                        plik.close();
                        } break;
                case 2: 
                        plik.open("hotel.dta", ios::in | ios::binary);
                        plik.read((char*)&gosc, sizeof(GOSC));
                        cout                                                  plik.close();
                        break;
                case 3: cout                 case 4: cout                 case 5: cout                 case 6: cout                 default: cout    };
   } while(wybor!=6);
   system("PAUSE");
   return 0;
}

/* skonstruowac baze danych opisywaną przez strukture GOSC zlozona z nastepujacych pol:
               * Nazwisko i imie goscia
               * Nr pokoju
               * ile dni pobytu
               * cena za dobe
               * rozmowy telefoniczne
               * konsumpcja
               * koszt=cenazadobe*ilednipobytu+rozmowytelef+konsumpcja

W programie uwzglednic nastepujace opcje:

1. Nowy element (dopisanie na koniec pliku HOTEL)
2. Wyswietlenie wszystkich elementow
3. Wyswietlenie gosci zagranicznych
4. Wyszukanie goscia, ktory sednio zaplacil najwiecej za jeden dzien pobytu
5. KONIEC PROGRAMU */

 

mianowicie nie mam pojecia co zrobic aby dane byly dopisywane do konca pliku a nie ciagle od poczatku (case1).

probowalem zmienic tryb otwarcia na app(ale wtedy mam blad otwarcia pliku)

probowalem tez cos takiego seekg(0, ios::end) ale to wpisalem albo nie w tym miejscu albo nie wiem czemu nie dziala;;

Bardzo prosilbym tez o rade jesli chodzi o case2 gdzie trzeba wypisac caly plik.

Narazie tyle pytan bo za aktualizacje i tam dalej sie jeszcze nie biore jak nie bede mial tego

bardzo prosze o szybka odpowiedz

  • Odpowiedzi 2
  • Wyświetleń 1,6k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

Dodanie flagi ios::app powinno wystarczyc. Po otwarciu w ten sposob:

plik.open("hotel.dta", ios::out | ios::binary | ios::app);

moglem bez problemu dopisywac. No chyba ze wpisywales samo ios::app, wtedy wiadomo ze bedzie blad.

Co do case2 to musisz czytac i wypisywac kolejnych gosci do momentu napotkania znaku konca pliku.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności