Advertisement
Guest User

Untitled

a guest
May 19th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.64 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <cstring>
  5. #include <ctime>
  6. #include <iomanip>
  7. #include <cstdlib>
  8. using namespace std;
  9. struct SAuta{
  10. string model;
  11. unsigned rok;
  12. string r_paliwo;
  13. unsigned przebieg;
  14. string moc;
  15. string kolor;
  16. unsigned cena;
  17. };
  18. struct SLista{
  19. string marka;
  20. unsigned ilosc;
  21. SAuta * lista;
  22. };
  23. SLista wczytaj(string& nazwa){
  24. SLista wsk;
  25. ifstream fin;
  26. fin.open(nazwa);
  27. if(!fin){
  28. cerr<<"Blad przy otwarciu pliku!";
  29. exit('0');
  30. }
  31. fin>>wsk.marka;
  32. fin>>wsk.ilosc;
  33. if(wsk.ilosc>0){
  34. wsk.lista=new SAuta[wsk.ilosc];
  35. for(unsigned i=0;i<wsk.ilosc;i++){
  36. 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;
  37. }
  38. }
  39. fin.close();
  40. return wsk;
  41. }
  42.  
  43. SAuta szukaj(const SLista& wsk,const string szukanym){
  44. SAuta szukany;
  45. szukany.model.clear();
  46. for(unsigned i=0;i<wsk.ilosc;i++){
  47. if(wsk.lista[i].model==szukanym){
  48. szukany.model=wsk.lista[i].model;
  49. szukany.rok=wsk.lista[i].rok;
  50. szukany.r_paliwo=wsk.lista[i].r_paliwo;
  51. szukany.przebieg=wsk.lista[i].przebieg;
  52. szukany.moc=wsk.lista[i].moc;
  53. szukany.kolor=wsk.lista[i].kolor;
  54. szukany.cena=wsk.lista[i].cena;
  55. }
  56. }
  57. return szukany;
  58. }
  59. void plik_o(ifstream& fin,string nazwafin){
  60. fin.open(nazwafin);
  61. if(!fin){
  62. cerr<<"Blad przy otwarciu pliku!";
  63. }
  64. }
  65. void plik_z(ifstream& fin){
  66. fin.close();
  67. }
  68. void wypisz1(const SAuta& a,ostream& out){
  69. 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;
  70. }
  71. void wypisz(const SLista& wsk,ostream& out){
  72. for(unsigned i=0;i<wsk.ilosc;i++){
  73. wypisz1(wsk.lista[i],out);
  74. }
  75. }
  76. void wyszukany(const SLista& wsk)
  77. {
  78. string szukanym;
  79. cin.ignore();
  80. cout<<"Podaj nazwe poszukiwanego modelu auta: ";
  81. getline(cin,szukanym);
  82. SAuta szukanyx;
  83. szukanyx=szukaj(wsk,szukanym);
  84. if(szukanyx.model!=""){
  85. wypisz1(szukanyx,cout);
  86. }
  87. else{
  88. cout<<"Niestety nie posiadamy auta o podanym modelu"<<endl;
  89. }
  90. }
  91. void sortuj(SLista& wsk){
  92. for(unsigned i=0;i<wsk.ilosc;i++)
  93. {
  94. for(unsigned j=0;j<wsk.ilosc-1;j++){
  95. if(wsk.lista[j].rok>wsk.lista[j+1].rok)
  96. swap(wsk.lista[j],wsk.lista[j+1]);
  97. }
  98. }
  99. }
  100. void menu(SLista& wsk){
  101. for(;;){
  102. char wybor;
  103. cout<<"Salon samochodowy BMW"<<endl;
  104. cout<<"1.Wypisz wszystkie samochody"<<endl;
  105. cout<<"2.Wypisz samochody wedlug roku produkcji"<<endl;
  106. cout<<"3.Wyszukaj pozadany samochod"<<endl;
  107. cout<<"4.Dane kontaktowe"<<endl;
  108. cout<<"5.Wyjscie"<<endl;
  109. cout<<"Wybierz pozadana opcje: ";
  110. cin>>wybor;
  111. switch(wybor){
  112. case '1':
  113. 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;
  114. wypisz(wsk,cout);
  115. break;
  116. case '2':
  117. sortuj(wsk);
  118. wypisz(wsk,cout);
  119. break;
  120. case '3':
  121. wyszukany(wsk);
  122. break;
  123. case '4':
  124. cout<<"dane"<<endl;
  125. break;
  126. case '5':
  127. exit('0');
  128. break;
  129. default:
  130. cout<<"Wybierz jedna z pieciu dostepnych opcji!"<<endl;
  131. break;
  132. }
  133. }
  134.  
  135. }
  136. int main(int argc,char* argv[]){
  137. if(argc!=2){
  138. cerr<<"Bledna liczba parametrow!"<<endl;
  139. cout<<"Prawidlowy schemat uruchomienia: ./nazwaprogramu nazwaplikuwejsciowego";
  140. }
  141. else{
  142. string nazwafin=argv[1];
  143. SLista wsk;
  144. wsk=wczytaj(nazwafin);
  145. menu(wsk);
  146. if(wsk.lista)
  147. {
  148. delete [] wsk.lista;
  149. }
  150. }
  151. return 0;
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement