trojanxem

Untitled

May 15th, 2012
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.87 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. struct Data
  7. {
  8.     void Make(Data d)
  9.     {
  10.         name=d.name;
  11.         surname=d.surname;
  12.         PESEL=d.PESEL;
  13.         index=d.index;
  14.     }
  15.     string name;
  16.     string surname;
  17.     string PESEL;
  18.     string index;
  19. };
  20.  
  21. struct Node
  22. {
  23.     void Display(int i)
  24.     {
  25.         cout <<  "t" << i << ". " << dat->name << " " << dat->surname << " " << dat->index << " " << dat->PESEL << endl;
  26.     }
  27.     Node* next;
  28.     Node* prev;
  29.     Data* dat;
  30. };
  31.  
  32. struct List
  33. {
  34.     void Make()
  35.     {
  36.         start=new Node;
  37.         start->next=NULL;
  38.         start->prev=NULL;
  39.         start->dat=NULL;
  40.     }
  41.     void Add(Data d)
  42.     {
  43.         Node* s=start;
  44.         if(s->dat==NULL)
  45.         {
  46.             s->dat=new Data();
  47.             s->dat->Make(d);
  48.         }else
  49.         {
  50.             while(s->next!=NULL)
  51.                 s=s->next;
  52.             s->next=new Node();
  53.             s->next->prev=s;
  54.             s->next->next=NULL;
  55.             s->next->dat=new Data();
  56.             s->next->dat->Make(d);
  57.         }
  58.     }
  59.     Node* Find(string index,int &l)
  60.     {
  61.         int n=1;
  62.         Node* s=start;
  63.         if(s->dat!=NULL)
  64.             do
  65.             {
  66.                 l=n;
  67.                 if(s->dat->index==index) return s;
  68.                 s=s->next;
  69.                 n++;
  70.             }while(s!=NULL);
  71.             l=0;
  72.             return s;
  73.     }
  74.     void Display()
  75.     {
  76.         int n=1;
  77.         Node* s=start;
  78.         if(s->dat!=NULL)
  79.             do
  80.             {
  81.                 s->Display(n);
  82.                 s=s->next;
  83.                 n++;
  84.             }while(s!=NULL);
  85.     }
  86.     void Delete(string index)
  87.     {
  88.         int tmp;
  89.         Node* n=Find(index,tmp);
  90.         if(tmp)
  91.         {
  92.             if(n->next!=NULL&&n->prev!=NULL)
  93.             {
  94.                 n->prev->next=n->next;
  95.                 delete n;
  96.             }else if(n->next==NULL&&n->prev!=NULL)
  97.             {
  98.                 n->prev->next=NULL;
  99.                 delete n;
  100.             }else if(n->next!=NULL&&n->prev==NULL)
  101.             {
  102.                 n->next->prev=NULL;
  103.                 start=n->next;
  104.                 delete n;
  105.             }else
  106.             {
  107.                 n->dat=NULL;
  108.             }
  109.         }
  110.     }
  111.     Node* start;
  112. };
  113.  
  114. void Header()
  115. {
  116.     system("cls");
  117.     cout << "-------------------------------------------------------------------------------" << endl;
  118.     cout << "|   Autor : Katarzyna Sojka                                                   |" << endl;
  119.     cout << "|   Projekt : Baza danych ze studentami                                       |" << endl;
  120.     cout << "|   Data : 15.01.2012                                                         |" << endl;
  121.     cout << "-------------------------------------------------------------------------------" << endl << endl;
  122. }
  123. void Footer()
  124. {
  125.     cout << "ntOk. Nacisnij dowolny klawisz";
  126.     fflush(stdin);
  127.     getc(stdin);
  128. }
  129. int Menu()
  130. {
  131.     Header();
  132.     int o;
  133.     cout << "t1. Dodaj studentant2. Znajdz studentant3. Usun studentant4. Podejrzyj listent5. Wyjdznn";
  134.     cout << "tWybierz opcje: ";
  135.     cin >> o;
  136.     return o;
  137. }
  138. void AddStudent(List *L)
  139. {
  140.     Header();
  141.     Data d;
  142.     cout << "tImie: ";        cin >> d.name;
  143.     cout << "tNazwisko: ";    cin >> d.surname;
  144.     cout << "tIndeks: ";        cin >> d.index;
  145.     cout << "tPESEL: ";        cin >> d.PESEL;
  146.     L->Add(d);
  147.     Footer();
  148. }
  149. void ShowLIst(List *L)
  150. {
  151.     Header();
  152.     L->Display();
  153.     Footer();
  154. }
  155. void FindStudent(List *L)
  156. {
  157.     Header();
  158.     cout << "tIndex szukanego studenta: ";
  159.     string index;
  160.     cin >> index;
  161.     int res;
  162.     L->Find(index,res);
  163.     if(res)
  164.         cout << "tStudent znajduje sie w bazie na " << res << " pozycji.n";
  165.     else
  166.         cout << "tStudent nie znajduje sie w bazie.n";
  167.     Footer();
  168. }
  169. void DeleteStudent(List *L)
  170. {
  171.     Header();
  172.     cout << "tIndex studenta do usuniecia: ";
  173.     string index;
  174.     cin >> index;
  175.     L->Delete(index);
  176.     Footer();
  177. }
  178. int main()
  179. {
  180.     List L;
  181.     int Opt=0;
  182.     L.Make();
  183.     while(Opt!=5)
  184.     {
  185.         Opt=Menu();
  186.         switch(Opt)
  187.         {
  188.         case 1:    AddStudent(&L);        break;
  189.         case 2:    FindStudent(&L);    break;
  190.         case 3: DeleteStudent(&L);    break;
  191.         case 4:    ShowLIst(&L);        break;
  192.         }
  193.  
  194.     }
  195.     return 0;
  196. }
  197.  
  198.  
  199. 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)
  200. 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:)
  201. Pozdrawiam siostrzyczka:*
Advertisement
Add Comment
Please, Sign In to add comment