Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- struct Data
- {
- void Make(Data d)
- {
- name=d.name;
- surname=d.surname;
- PESEL=d.PESEL;
- index=d.index;
- }
- string name;
- string surname;
- string PESEL;
- string index;
- };
- struct Node
- {
- void Display(int i)
- {
- cout << "t" << i << ". " << dat->name << " " << dat->surname << " " << dat->index << " " << dat->PESEL << endl;
- }
- Node* next;
- Node* prev;
- Data* dat;
- };
- struct List
- {
- void Make()
- {
- start=new Node;
- start->next=NULL;
- start->prev=NULL;
- start->dat=NULL;
- }
- void Add(Data d)
- {
- Node* s=start;
- if(s->dat==NULL)
- {
- s->dat=new Data();
- s->dat->Make(d);
- }else
- {
- while(s->next!=NULL)
- s=s->next;
- s->next=new Node();
- s->next->prev=s;
- s->next->next=NULL;
- s->next->dat=new Data();
- s->next->dat->Make(d);
- }
- }
- Node* Find(string index,int &l)
- {
- int n=1;
- Node* s=start;
- if(s->dat!=NULL)
- do
- {
- l=n;
- if(s->dat->index==index) return s;
- s=s->next;
- n++;
- }while(s!=NULL);
- l=0;
- return s;
- }
- void Display()
- {
- int n=1;
- Node* s=start;
- if(s->dat!=NULL)
- do
- {
- s->Display(n);
- s=s->next;
- n++;
- }while(s!=NULL);
- }
- void Delete(string index)
- {
- int tmp;
- Node* n=Find(index,tmp);
- if(tmp)
- {
- if(n->next!=NULL&&n->prev!=NULL)
- {
- n->prev->next=n->next;
- delete n;
- }else if(n->next==NULL&&n->prev!=NULL)
- {
- n->prev->next=NULL;
- delete n;
- }else if(n->next!=NULL&&n->prev==NULL)
- {
- n->next->prev=NULL;
- start=n->next;
- delete n;
- }else
- {
- n->dat=NULL;
- }
- }
- }
- Node* start;
- };
- void Header()
- {
- system("cls");
- cout << "-------------------------------------------------------------------------------" << endl;
- cout << "| Autor : Katarzyna Sojka |" << endl;
- cout << "| Projekt : Baza danych ze studentami |" << endl;
- cout << "| Data : 15.01.2012 |" << endl;
- cout << "-------------------------------------------------------------------------------" << endl << endl;
- }
- void Footer()
- {
- cout << "ntOk. Nacisnij dowolny klawisz";
- fflush(stdin);
- getc(stdin);
- }
- int Menu()
- {
- Header();
- int o;
- cout << "t1. Dodaj studentant2. Znajdz studentant3. Usun studentant4. Podejrzyj listent5. Wyjdznn";
- cout << "tWybierz opcje: ";
- cin >> o;
- return o;
- }
- void AddStudent(List *L)
- {
- Header();
- Data d;
- cout << "tImie: "; cin >> d.name;
- cout << "tNazwisko: "; cin >> d.surname;
- cout << "tIndeks: "; cin >> d.index;
- cout << "tPESEL: "; cin >> d.PESEL;
- L->Add(d);
- Footer();
- }
- void ShowLIst(List *L)
- {
- Header();
- L->Display();
- Footer();
- }
- void FindStudent(List *L)
- {
- Header();
- cout << "tIndex szukanego studenta: ";
- string index;
- cin >> index;
- int res;
- L->Find(index,res);
- if(res)
- cout << "tStudent znajduje sie w bazie na " << res << " pozycji.n";
- else
- cout << "tStudent nie znajduje sie w bazie.n";
- Footer();
- }
- void DeleteStudent(List *L)
- {
- Header();
- cout << "tIndex studenta do usuniecia: ";
- string index;
- cin >> index;
- L->Delete(index);
- Footer();
- }
- int main()
- {
- List L;
- int Opt=0;
- L.Make();
- while(Opt!=5)
- {
- Opt=Menu();
- switch(Opt)
- {
- case 1: AddStudent(&L); break;
- case 2: FindStudent(&L); break;
- case 3: DeleteStudent(&L); break;
- case 4: ShowLIst(&L); break;
- }
- }
- return 0;
- }
- Przerób to na baze lekow( zmien zmienne ma byc nazwa lekow numer seryjny(moze byc ten indeks) czy lek jest na recepte, ilosc w opakowaniu)
- Dodaj sortowanie alfabetyczne, wczytywanie z pliku 10 pozycji lekow, rysowanie wykresu gwiazdkami czy lek jest na recepte i zapisywanie do pliku. Wiesz, że Cię kocham i mi na pewno pomożesz. Ja od 3 dni łącznie spałam 8 godzin. Jutro bede dostepna wiec tez bede cos robic, ale dopiero po 16 wracam z uczelni:)
- Pozdrawiam siostrzyczka:*
Advertisement
Add Comment
Please, Sign In to add comment