Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <cstring>
- #include <ctime>
- #include <iomanip>
- #include <cstdlib>
- using namespace std;
- struct SAuta{
- string model;
- unsigned rok;
- string r_paliwo;
- unsigned przebieg;
- string moc;
- string kolor;
- unsigned cena;
- };
- struct SLista{
- string marka;
- unsigned ilosc;
- SAuta * lista;
- };
- SLista wczytaj(string& nazwa){
- SLista wsk;
- ifstream fin;
- fin.open(nazwa);
- if(!fin){
- cerr<<"Blad przy otwarciu pliku!";
- exit('0');
- }
- fin>>wsk.marka;
- fin>>wsk.ilosc;
- if(wsk.ilosc>0){
- wsk.lista=new SAuta[wsk.ilosc];
- for(unsigned i=0;i<wsk.ilosc;i++){
- fin>>wsk.lista[i].model>>wsk.lista[i].rok>>wsk.lista[i].r_paliwo>>wsk.lista[i].przebieg>>wsk.lista[i].moc>>wsk.lista[i].kolor>>wsk.lista[i].cena;
- }
- }
- fin.close();
- return wsk;
- }
- SAuta szukaj(const SLista& wsk,const string szukanym){
- SAuta szukany;
- szukany.model.clear();
- for(unsigned i=0;i<wsk.ilosc;i++){
- if(wsk.lista[i].model==szukanym){
- szukany.model=wsk.lista[i].model;
- szukany.rok=wsk.lista[i].rok;
- szukany.r_paliwo=wsk.lista[i].r_paliwo;
- szukany.przebieg=wsk.lista[i].przebieg;
- szukany.moc=wsk.lista[i].moc;
- szukany.kolor=wsk.lista[i].kolor;
- szukany.cena=wsk.lista[i].cena;
- }
- }
- return szukany;
- }
- void plik_o(ifstream& fin,string nazwafin){
- fin.open(nazwafin);
- if(!fin){
- cerr<<"Blad przy otwarciu pliku!";
- }
- }
- void plik_z(ifstream& fin){
- fin.close();
- }
- void wypisz1(const SAuta& a,ostream& out){
- out<<setw(5)<<a.model<<"\t"<<setw(4)<<a.rok<<"\t"<<setw(10)<<a.r_paliwo<<"\t"<<setw(10)<<a.przebieg<<"\t"<<setw(5)<<a.moc<<"\t"<<setw(10)<<a.kolor<<"\t"<<setw(6)<<a.cena<<endl;
- }
- void wypisz(const SLista& wsk,ostream& out){
- for(unsigned i=0;i<wsk.ilosc;i++){
- wypisz1(wsk.lista[i],out);
- }
- }
- void wyszukany(const SLista& wsk)
- {
- string szukanym;
- cin.ignore();
- cout<<"Podaj nazwe poszukiwanego modelu auta: ";
- getline(cin,szukanym);
- SAuta szukanyx;
- szukanyx=szukaj(wsk,szukanym);
- if(szukanyx.model!=""){
- wypisz1(szukanyx,cout);
- }
- else{
- cout<<"Niestety nie posiadamy auta o podanym modelu"<<endl;
- }
- }
- void sortuj(SLista& wsk){
- for(unsigned i=0;i<wsk.ilosc;i++)
- {
- for(unsigned j=0;j<wsk.ilosc-1;j++){
- if(wsk.lista[j].rok>wsk.lista[j+1].rok)
- swap(wsk.lista[j],wsk.lista[j+1]);
- }
- }
- }
- void menu(SLista& wsk){
- for(;;){
- char wybor;
- cout<<"Salon samochodowy BMW"<<endl;
- cout<<"1.Wypisz wszystkie samochody"<<endl;
- cout<<"2.Wypisz samochody wedlug roku produkcji"<<endl;
- cout<<"3.Wyszukaj pozadany samochod"<<endl;
- cout<<"4.Dane kontaktowe"<<endl;
- cout<<"5.Wyjscie"<<endl;
- cout<<"Wybierz pozadana opcje: ";
- cin>>wybor;
- switch(wybor){
- case '1':
- cout<<setw(5)<<"Model"<<"\t"<<setw(4)<<"Rok"<<"\t"<<setw(10)<<"Paliwo"<<"\t"<<setw(10)<<"Przebieg"<<"\t"<<setw(5)<<"Moc"<<"\t"<<setw(10)<<"Kolor"<<"\t"<<setw(6)<<"Cena"<<endl<<endl;
- wypisz(wsk,cout);
- break;
- case '2':
- sortuj(wsk);
- wypisz(wsk,cout);
- break;
- case '3':
- wyszukany(wsk);
- break;
- case '4':
- cout<<"dane"<<endl;
- break;
- case '5':
- exit('0');
- break;
- default:
- cout<<"Wybierz jedna z pieciu dostepnych opcji!"<<endl;
- break;
- }
- }
- }
- int main(int argc,char* argv[]){
- if(argc!=2){
- cerr<<"Bledna liczba parametrow!"<<endl;
- cout<<"Prawidlowy schemat uruchomienia: ./nazwaprogramu nazwaplikuwejsciowego";
- }
- else{
- string nazwafin=argv[1];
- SLista wsk;
- wsk=wczytaj(nazwafin);
- menu(wsk);
- if(wsk.lista)
- {
- delete [] wsk.lista;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement