Kashub's Code Barn - "Kodzik"

podświetlone jako div (dodał(a) Pingwin @ 2013-06-07 18:00:03)

Twoja wyszukiwarka
Podświetl ten kod w:
Ostatnio dodane:
Losowe wpisy:
//*******************************Sekcja bibliotek*********************************************
#include <iostream>
#include <windows.h> //np do uzywania beep xD
#include <STRING.h>
#include <fstream>
#include <conio.h>
using namespace std;
 
//*******************************Sekcja struktury*********************************************
 
STRUCT BOOKS //struktura wydawnictw
{
STRING tytul;
STRING imie;
STRING nazwisko;
STRING wydawnictwo;
STRING rok_wydania;
STRING isbn;
BOOKS *next;		//tworzy wskaznik next ktory wskazuje na str Book
};
 
 
//*******************************Sekcja Funkcji*********************************************
 
void ADD_BOOK(BOOKS *&head, STRING Tytul, STRING Imie, STRING Nazwisko,
STRING Wydawnictwo, STRING Rok_wydania, STRING Isbn, INT Lp)
{
 
BOOKS *temp=new BOOKS;		//Trudna linijka :D Tworzy wskaznik ktory ma wskazywac na NOWA strukture. Stad tez new book
BOOKS *help;		//pomocny wskaznik 
INT iteracja=0;
help=head;		//od tej pory help wskazuje na nasza strukture
 
temp->tytul=Tytul;
temp->imie=Imie;
temp->nazwisko=Nazwisko;
temp->wydawnictwo=Wydawnictwo;
temp->rok_wydania=Rok_wydania;
temp->isbn=Isbn;
IF(Tytul==""){temp->tytul="-";}
IF(Imie==""){temp->imie="-";}
IF(Nazwisko==""){temp->nazwisko="-";}
IF(Wydawnictwo==""){temp->wydawnictwo="-";}
IF(Rok_wydania==""){temp->rok_wydania="-";}
IF(Isbn==""){temp->isbn="-";}
IF(head==NULL || Lp==0)
{
temp->next=head;	//Wskazniokowi temp przypisujemy nastepna pozycje head - cos takiego. dziffffne to :D 
head=temp;
temp=NULL;	//zerujemy wskaznik temp
}ELSE
{
WHILE(help!=NULL)
{
IF(help->next==NULL)
{
temp->next=NULL;
help->next=temp;
BREAK;
}ELSE
{
IF(iteracja==Lp-1)
{
temp->next=help->next;
help->next=temp;
BREAK;
}
}
help=help->next;
iteracja++;
}
}
}
void DEL_BOOK(BOOKS *&head, INT Lp)
{
IF(head!=NULL)		//jesli struktura istnieje
{
BOOKS *temp, *help;
INT iteracja=0;
temp=head;		//temp przypiuje head.... zas temp to wskaznik
IF(Lp==0)
{
head=temp->next;
delete temp;		//Kasuje temp
}ELSE
{
WHILE(temp->next!=NULL)		//dopoki kolejny element temp nie jest 0 wykonuj:
{
IF(iteracja==Lp-1)
{
IF(temp->next->next==NULL)		//analogicznie jak wyzej
{
help=temp->next;
temp->next=NULL;
delete help;
BREAK;
}ELSE
{
help=temp->next;
temp->next=temp->next->next;
delete help;
BREAK;
}
}
iteracja++;
temp=temp->next;
}
}
}
}
void DEL_ALL_BOOKS(BOOKS *&head)
{
IF(head!=NULL)
{
BOOKS *temp=head;
BOOKS *help=head;
WHILE(help!=NULL)
{
temp=help;
help=temp->next;
head=temp->next;
delete temp;
}
head=NULL;
}
}
void EDIT_BOOK(BOOKS *&head, INT Lp)
{
IF(head!=NULL)
{
cin.sync();
bool find=false;
BOOKS *temp=head;
INT iterator=0;
WHILE(temp!=NULL)
{
IF(iterator==Lp)
{
STRING Tytul;
STRING Imie;
STRING Nazwisko;
STRING Wydawnictwo;
STRING Rok_wydania;
STRING Isbn;
cout<<"Tytul: ";getline(cin,Tytul);
cout<<"Imie: ";getline(cin,Imie);
cout<<"Nazwisko: ";getline(cin,Nazwisko);
cout<<"Wydawnictwo: ";getline(cin,Wydawnictwo);
cout<<"Rok_wydania: ";getline(cin,Rok_wydania);
cout<<"Isbn: ";getline(cin,Tytul);
temp->tytul=Tytul;
temp->imie=Imie;
temp->nazwisko=Nazwisko;
temp->wydawnictwo=Wydawnictwo;
temp->rok_wydania=Rok_wydania;
temp->isbn=Isbn;
find=true;
 
BREAK;
}ELSE
find=false;
 
temp=temp->next;
iterator++;
}
}
}
void EXPORT_BOOKS(BOOKS *&head, STRING Name_fils)
{
fstream file(Name_fils.c_str(), ios::out );
IF( file.good() )
{
BOOKS *temp=head;
WHILE(temp!=NULL)
{
file<<temp->tytul<<endl<<temp->imie<<endl<<temp->nazwisko<<endl<<
temp->wydawnictwo<<endl<<temp->rok_wydania<<
endl<<temp->isbn<<endl<<"**************"<<endl;
temp=temp->next;
}
file.close();
}ELSE
cout<<"nie można utworzyc pliku"<<endl;
 
file.close();
}
void INPORT_BOOKS(BOOKS *&head,STRING Name_fils)
{
system("CLS");
fstream file;
file.open( Name_fils.c_str());
INT a;
INT iterator=0;
STRING Tytul;
STRING Imie;
STRING Nazwisko;
STRING Wydawnictwo;
STRING Rok_wydania;
STRING Isbn;
STRING spr;
 
IF( file.good() )
{
WHILE(!file.eof())
{
 
getline(file,Tytul);
getline(file,Imie);
getline(file,Nazwisko);
getline(file,Wydawnictwo);
getline(file,Rok_wydania);
getline(file,Isbn);
getline(file,spr);
ADD_BOOK(head, Tytul,Imie, Nazwisko,
Wydawnictwo,Rok_wydania,Isbn,iterator);
iterator++;
}
file.close();
cout<<"Rekordy zostaly zaladowane\n\n";
}ELSE
cout<<"nie ma takiego pliku"<<endl;
 
file.close();
}
void VIEW(BOOKS *&temp)
{
 
IF(temp!=NULL){
 
cout<<"TYTUL :\t\t"<<temp->tytul<<endl;
cout<<"AUTOR :\t\t"<<temp->imie<<" "<<temp->nazwisko<<endl;
cout<<"WYDAWNICTWO :\t"<<temp->wydawnictwo<<endl;
cout<<"ROK :\t\t"<<temp->rok_wydania<<endl;
cout<<"ISBN :\t\t"<<temp->isbn<<"\n*********************************************"<<endl;
cout<<endl<<endl;
}
ELSE
cout<<"Brak rekordow do wyswietlenia";
 
}
 
void VIEW2(BOOKS *&temp)		//Moja funkcyja :D
{
 
IF(temp!=NULL){
 
cout<<"\t"<<temp->tytul<<endl;
 
}
ELSE
cout<<"Brak rekordow do wyswietlenia";
 
}
 
void TITLE(BOOKS *&head) 		//takie cos napisane przezemnie :P
{
system("CLS");
INT iteracja=0;
IF(head!=NULL)
{
BOOKS *temp= head;
WHILE(temp!=NULL)
{
cout<<"\t"<<iteracja;// <<endl;
VIEW2(temp);
temp=temp->next;
iteracja++;
}
}
}
 
 
void SHOW_ONE_BOOK(BOOKS *&head, INT Which)
{
IF(head!=NULL)
{
BOOKS *temp= head;
INT iterator=0;
system("CLS");
WHILE(temp!=NULL)
{
IF(iterator==Which)
{
VIEW(temp);
}
temp=temp->next;
iterator++;
}
 
}
}
void FIND_BOOKS(BOOKS *&head, STRING Parametr)
{
 
 
STRING WORD;
INT iterator=0;
INT pozycja=0;
EXPORT_BOOKS(head,"temp.txt");
fstream file("temp.txt");
WHILE(!file.eof())  		//eof to end of file czyli wykonuj dopoki nie ma znaku konca pliku
{
file>>WORD;
IF(WORD==Parametr)
{
cout<<"slowo znalezione zostalo w pozycji:"<<endl;
SHOW_ONE_BOOK(head, pozycja);
}
IF(WORD=="**************")
{
pozycja++;
}
}
 
 
}
 
void SHOW_ALL_BOOK(BOOKS *&head)
{
INT iteracja=0;
IF(head!=NULL)
{
BOOKS *temp= head;
WHILE(temp!=NULL)
{
cout<<"ID "<< iteracja <<endl;
VIEW(temp);
temp=temp->next;
iteracja++;
}
}
}
 
INT main()
{
BOOKS *head; 	//wskaznik head na strukture
head=NULL;		//ustawiamy wskaznik na zero
INT stop=0;
FOR(;;) //petla for działająca w nieskonczonosc
{
 
cout<<"MENU"<<endl;
cout<<"\n0-Wyczysc\n1-Dodaj\n2-Usun\n3-Edytuj\n4-Eksportuj\n5-Importuj\n6-Znajdz\n7-Pokaz wszystkie\n8-Pokaz pojedynczy rekord\n9-Zakoncz"<<endl;
char choice;
//system("CLS");
choice=getch();		//dzieki temu bajerowi mozna wybrac opcje np 2 bez potwierdzania jej jak w przypadku cin>>
INT pozycja=0;
 
SWITCH(choice)
{
 
CASE '0':
{
system("CLS");
}BREAK;
 
CASE '1':
{
system("CLS");
cin.sync();
STRING Tytul;
STRING Imie;
STRING Nazwisko;
STRING Wydawnictwo;
STRING Rok_wydania;
STRING Isbn;
cout<<"Tytul: ";getline(cin,Tytul);
cout<<"Imie: ";getline(cin,Imie);
cout<<"Nazwisko: ";getline(cin,Nazwisko);
cout<<"Wydawnictwo: ";getline(cin,Wydawnictwo);
cout<<"Rok_wydania: ";getline(cin,Rok_wydania);
cout<<"Isbn: ";getline(cin,Isbn);
cout<<"Pozycja (typ int)"<<endl;
cin>>pozycja;
ADD_BOOK(head, Tytul, Imie, Nazwisko,
Wydawnictwo, Rok_wydania, Isbn, pozycja);
system("CLS");
}BREAK;
CASE '2':
{
cin.sync();		//czysci bufor pamieci. Tak na wypadek by nie zaladowalo np 5... bo usunie wtedy pozycje 5 mimo ze tego nie chcemy
 
 
 
system("CLS");
IF(*&head==NULL) {	//jesli head (czyli wskaznik do struktury) wskazuje na zero to
cout<<"\nBrak ksiazek\n\n";Beep(300,200);}
ELSE {
SHOW_ALL_BOOK(head);		//wywolanie funkcji
cout<<"\n******************\nPodaj Pozycje ktora chcesz skasowac: ";cin>>pozycja;
char znak;
cout<<"Czy napewno chcesz usunac pozycje t/n\n";
znak=getch();
IF(znak=='t' ){
 
SHOW_ONE_BOOK(head, pozycja);
DEL_BOOK(head, pozycja);
}
ELSE {
system("CLS");
cout<<"\nRekord NIE zostal usuniety\n\n";
}
}
}BREAK;
CASE '3':
{
cin.sync();
INT pozycja=0;
cout<<"\n*******************\nPodaj Pozycje ktora chcesz edytowac: ";cin>>pozycja;
EDIT_BOOK(head, pozycja);
}BREAK;
CASE '4':
{
cin.sync();
STRING file_name;
//cout<<"Podaj nazwe pliku: ";cin>>file_name;
file_name="Baza_Danych.txt";
INPORT_BOOKS(head,file_name);
}BREAK;
CASE '5':
{
cin.sync();
STRING file_name;
file_name="Baza_Danych.txt";
EXPORT_BOOKS(head,file_name);
cout<<"Dane zostaly dodane do pliku oraz bufor pamieci zostal wyczyszczony\n***************************"; Beep(300,200);
DEL_ALL_BOOKS(head);
}BREAK;
CASE '6':
{
cin.sync();
STRING parametr;
cout<<"Podaj slowo które wyszukac: ";cin>>parametr;
FIND_BOOKS(head, parametr);
 
}BREAK;
CASE '7':
{
system("CLS");
IF(*&head==NULL) {
cout<<"\nBrak ksiazek do wyswietlenia\n\n";Beep(300,200);}
ELSE {
cout<<"**********Ksiazki**********";
SHOW_ALL_BOOK(head);
}
}BREAK;
CASE '8':
{
cin.sync();
TITLE(head);
INT which;
cout<<"\n********************\nPodaj pozycje do wyswietlenia: ";cin>>which;
SHOW_ONE_BOOK(head, which);
}BREAK;
CASE '9':
stop=1;
BREAK;
 
 
DEFAULT:
BREAK;
 
 
}
IF(stop==1)
{
BREAK;
}
}
}
| Opony specjalne | | karma dla psa - sklep | | Skróć link | | Przenieś bloga z onetu | | Załóż za darmo bloga | | Kody programów | | Skróć link | | Gnieżdżewo | | Opisy na Facebooka |