Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <windows.h>
- #include <fstream>
- #include <cstdlib>
- #include <string>
- using namespace std;
- class Osoba //klasa osoba-klasa podstawowa
- {
- protected: //dane ukryte
- void pokaz_dane()
- {
- cout<<imie<<" "<<nazwisko<<" "<<wiek<<" lat"<<endl; //Wyœwietlanie imienia,nazwiska,wieku
- }
- public:
- string imie;
- string nazwisko;
- int wiek;
- void wpisz_dane() //Wpisywanie z klawiatury imienia,nazwiska i wieku
- {
- cout<<"Wpisz swoje imie:"<<endl;
- cin >>imie;
- cout<<"Wpisz swoje nawisko:"<<endl;
- cin>>nazwisko;
- cout<<"Podaj swoj wiek:"<<endl;
- cin>>wiek;
- system("cls");
- pokaz_dane();//Wywołanie funkcji "pokaz_dane" ze składników prywatnych
- }
- Osoba(); //konstruktor
- };
- Osoba::Osoba() //definicja konstruktora
- {
- };
- class Student:public Osoba //klasa Student-klasa pochodna
- {
- private:
- void pokaz_dane() //Dane ukryte
- {
- cout <<grupa<<endl;
- }
- public:
- int grupa;
- void wpisz_dane()
- {
- cout<<"Podaj numer grupy:"<<endl; //Wpisywanie numeru grupy z klawiatury
- cin>>grupa;
- system("cls");
- pokaz_dane();//Wywo³anie funkcji "pokaz_dane" ze sk³adników prywatnych
- }
- Student(); //Konstruktor
- };
- Student::Student() //Definicja konstruktora
- {
- }
- class Database
- {
- public:
- Database()
- {
- fstream plik;
- int i = 0;
- while(true)
- {
- plik.open("student_database.txt", ios::in);
- if(plik.good() == true)
- {
- Student st = Student();
- string dane;
- int nr_linii = 1;
- while(getline(plik, dane))
- {
- if(nr_linii==1)
- st.imie = dane;
- else if(nr_linii==2)
- st.nazwisko = dane;
- else if(nr_linii==3)
- {
- st.wiek = atoi(dane.c_str());
- }
- else
- {
- st.grupa = atoi(dane.c_str());
- student_database.push_back(st);
- nr_linii=0;
- }
- nr_linii++;
- }
- }
- else
- break;
- }
- }
- vector<Student> student_database;
- void create_new_student()
- {
- Student st = Student();
- cout << "Imie: ";
- cin >> st.imie;
- cout << "Nazwisko: ";
- cin >> st.nazwisko;
- cout << "Wiek: ";
- cin >> st.wiek;
- cout << "Grupa: ";
- cin >> st.grupa;
- student_database.push_back(st);
- }
- void show_all_students()
- {
- cout<< "NUMER INDEKSU / IMIE / NAZWISKO" << endl;
- Student st = Student();
- for(int i=0;i<student_database.capacity();i++)
- {
- st = student_database[i];
- cout << i;
- cout << ". " + st.imie + " " + st.nazwisko<<endl;
- }
- system("pause");
- }
- void delete_student()
- {
- int id;
- cout << "Podaj ID studenta, ktorego zamierzasz usunac: ";
- cin >> id;
- student_database.erase(student_database.begin() + id);
- }
- void end_program()
- {
- for (int i=0; i<student_database.capacity();i++)
- {
- string nazwa_pliku = i + ".txt";
- fstream plik("student_database.txt", ios::out);
- Student st = Student();
- st = student_database[i];
- plik << st.imie + "\n";
- plik << st.nazwisko+ "\n";
- plik << st.wiek;
- plik << "\n";
- plik << st.grupa;
- }
- exit(0);
- }
- void program_controller()
- {
- system("cls");
- cout << "Co chcesz zrobić?" << endl;
- cout << "<L> Wylistowanie studentow" << endl;
- cout << "<D> Dodanie nowego studenta" << endl;
- cout << "<U> Usun studenta" << endl;
- cout << "<K> Zapisz i wyjdz" << endl;
- char wybor;
- cin >> wybor;
- switch(wybor)
- {
- case 'L':
- {
- system("cls");
- show_all_students();
- program_controller();
- }
- case 'D':
- {
- system("cls");
- create_new_student();
- program_controller();
- }
- case 'U':
- {
- system("cls");
- delete_student();
- program_controller();
- }
- case 'K':
- end_program();
- default:
- cout << "Nie ma takiego znaku" << endl;
- }
- }
- };
- int main()
- {
- Database dt = Database();
- dt.program_controller();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement