Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Baza_danych_04_06_2018[FIL].cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <iomanip>
- #include <fstream>
- #include <string>
- using namespace std;
- struct osoba {
- char nazwisko[20];
- char imie[20];
- long double konto;
- };
- void utworz()
- {
- setlocale(LC_ALL, "");
- fstream baza("dane.bin", ios::binary | ios::out);
- osoba dodana;
- char znak;
- do {
- cout << "Podaj nazwisko" << endl;
- cin >> dodana.nazwisko;
- cout << "Podaj imię" << endl;
- cin >> dodana.imie;
- cout << "Podaj stan konta" << endl;
- cin >> dodana.konto;
- baza.write((char*)&dodana, sizeof(osoba));
- cout << "Czy chcesz dodać kolejną osobę? Jeśli tak kliknij T" << endl;
- cin >> znak;
- } while (znak == 'T' || znak == 't');
- baza.clear();
- baza.close();
- }
- void dopisz()
- {
- setlocale(LC_ALL, "");
- fstream baza("dane.bin", ios::binary | ios::app);
- osoba dodana;
- char znak;
- do {
- cout << "Podaj nazwisko" << endl;
- cin >> dodana.nazwisko;
- cout << "Podaj imię" << endl;
- cin >> dodana.imie;
- cout << "Podaj stan konta" << endl;
- cin >> dodana.konto;
- baza.write((char*)&dodana, sizeof(osoba));
- cout << "Czy chcesz dodać kolejną osobę? Jeśli tak kliknij T" << endl;
- cin >> znak;
- } while (znak == 'T' || znak == 't');
- baza.clear();
- baza.close();
- }
- void wypisz(int m)
- {
- setlocale(LC_ALL, "");
- fstream baza("dane.bin", ios::binary | ios::in);
- osoba pom;
- int i = 1;
- baza.seekg((m - 1)*sizeof(osoba), ios::beg);
- while (1)
- {
- baza.read((char*)&pom, sizeof(osoba));
- if (baza.good())
- {
- {
- cout << "Imię: " << pom.imie << endl;
- cout << "Nazwisko: " << pom.nazwisko << endl;
- cout << "Stan konta: " << fixed << setw(15) << setprecision(3) << pom.konto << endl;
- }
- }
- else
- {
- if (!baza.eof())
- {
- cout << "Błąd odczytu" << endl;
- }
- break;
- }
- baza.clear();
- }
- baza.clear();
- baza.close();
- }
- void szukaj(osoba *maksimum)
- {
- setlocale(LC_ALL, "");
- osoba pom;
- int i = 0;
- fstream baza("dane.bin", ios::in | ios::binary);
- while (1)
- {
- baza.read((char*)&pom, sizeof(osoba));
- if (baza.good())
- {
- i++;
- if (i == 1)
- {
- *maksimum = pom;
- }
- else
- {
- if (pom.konto > maksimum->konto)
- {
- *maksimum = pom;
- }
- }
- }
- else
- {
- if (!baza.eof())
- {
- cout << "Błąd odczytu" << endl;
- }
- break;
- }
- }
- baza.clear();
- baza.close();
- }
- void szukajidentyczne(osoba *maksimum)
- {
- setlocale(LC_ALL, "");
- osoba pom;
- fstream baza("dane.bin", ios::in | ios::binary);
- while (1)
- {
- baza.read((char*)&pom, sizeof(osoba));
- if (baza.good())
- {
- if (pom.konto == maksimum->konto)
- {
- cout << "Imię: " << pom.imie << endl;
- cout << "Nazwisko: " << pom.nazwisko << endl;
- cout << "Stan konta: " << fixed << setw(15) << setprecision(3) << pom.konto << endl;
- }
- }
- else
- {
- if (!baza.eof())
- {
- cout << "Błąd odczytu" << endl;
- }
- break;
- }
- }
- baza.clear();
- baza.close();
- }
- void zapisz(long double m)
- {
- setlocale(LC_ALL, "");
- osoba pom;
- int i = 0;
- fstream baza("dane.bin", ios::in | ios::binary);
- fstream wynik("wynik.txt", ios::out);
- while (1)
- {
- baza.read((char*)&pom, sizeof(osoba));
- if (baza.good())
- {
- if (pom.konto >= m)
- {
- wynik << "Imię: " << pom.imie << endl;
- wynik << "Nazwisko: " << pom.nazwisko << endl;
- wynik << "Stan konta: " << fixed << setw(15) << setprecision(3) << pom.konto << endl;
- cout << "Imię: " << pom.imie << endl;
- cout << "Nazwisko: " << pom.nazwisko << endl;
- cout << "Stan konta: " << fixed << setw(15) << setprecision(3) << pom.konto << endl;
- }
- }
- else
- {
- if (!baza.eof())
- {
- cout << "Błąd odczytu" << endl;
- }
- break;
- }
- }
- baza.clear();
- baza.close();
- }
- int main()
- {
- setlocale(LC_ALL, "");
- int a, b;
- long double c;
- osoba pom;
- cout << "Wybierz opcję" << endl;
- cout << "1. Utwórz bazę od nowa" << endl;
- cout << "2. Dopisz do bazy" << endl;
- cout << "3. Wyświetl dane z bazy od numeru podanego przez użytkownika" << endl;
- cout << "4. Wyświetl dane osoby o największym stanie konta" << endl;
- cout << "5. Zapisz do pliku tekstowego wyszukani.txt osoby o stanie konta wyższym od podanego progu" << endl;
- cout << "Wybrana opcja: ";
- cin >> a;
- switch (a)
- {
- case 1:
- utworz();
- break;
- case 2:
- dopisz();
- break;
- case 3:
- cout << "Podaj numer rekordu od którego rozpocząć wypisywanie: ";
- cin >> b;
- wypisz(b);
- break;
- case 4:
- szukaj(&pom);
- szukajidentyczne(&pom);
- break;
- case 5:
- cout << "Podaj próg od którego zacząć wypisywanie" << endl;
- cin >> c;
- zapisz(c);
- break;
- default:
- cout << "Podałeś zły numer" << endl;
- break;
- }
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement