Advertisement
Guest User

kursovaja

a guest
May 21st, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.49 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <windows.h>
  5.  
  6. using namespace std;
  7.  
  8. typedef struct market{
  9.     string nazvanie="";
  10.     string telephon="";
  11.     string adres="";
  12.     string vremya_raboty="";
  13. }market;
  14.  
  15. market add_market(){
  16.     market m;
  17.     cout<<"Vvedite nazvanie magazyna : ";
  18.     cin>>m.nazvanie;
  19.     cout<<"Vvedite nomer telefona : ";
  20.     cin>>m.telephon;
  21.     cout<<"Vvedite adres : ";
  22.     cin>>m.adres;
  23.     cout<<"Vvedite vremya raboty: ";
  24.     cin>>m.vremya_raboty;
  25.     return m;
  26. }
  27.  
  28. void find_by_tel_number(string num){
  29.     market m;
  30.     fstream f;
  31.     f.open("Data.txt");
  32.     while(f>>m.nazvanie>>m.telephon>>m.adres>>m.vremya_raboty){      
  33.         if(num==m.telephon){
  34.             cout<<m.nazvanie<<" "<<m.telephon<<" "<<m.adres<<" "<<m.vremya_raboty<<endl;
  35.         }
  36.     }
  37.     f.close();
  38. }
  39. void find_by_title(string title){
  40.     market m;
  41.     fstream f;
  42.     f.open("Data.txt");
  43.     while(f>>m.nazvanie>>m.telephon>>m.adres>>m.vremya_raboty){
  44.         if(title==m.nazvanie)
  45.             cout<<m.nazvanie<<" "<<m.telephon<<" "<<m.adres<<" "<<m.vremya_raboty<<endl;
  46.     }
  47.     f.close();
  48. }
  49. int print_menu(){
  50.      start:int k;
  51.     cout<<"1 - Vyvod bazy danyh"<<endl;
  52.     cout<<"2 - Dobavit v bazu danyh"<<endl;
  53.     cout<<"3 - Udalit iz bazy danyh"<<endl;
  54.     cout<<"4 - Poisk po bazie danyh"<<endl;
  55.     cout<<"5 - Exit"<<endl;
  56.     cin>>k;
  57.     if(k<1 || k>5){
  58.         cout<<"Incorrect input"<<endl;
  59.         goto start;
  60.     }
  61.     return k;
  62. }
  63. void printDB(){
  64.     fstream f;
  65.     f.open("Data.txt");
  66.     market m;
  67.     cout<<"| Nazvanie           | Nomer telefona     | Adresa             | Vremya roboty      |"<<endl;
  68.     cout<<"|____________________|____________________|____________________|____________________|"<<endl;
  69.     while (f>>m.nazvanie>>m.telephon>>m.adres>>m.vremya_raboty) {
  70.         if(m.nazvanie.length()<20)          //ïîãàíÿåì ïîä ðàçìåð ñòîëáöà
  71.             while (m.nazvanie.length()<19)
  72.                 m.nazvanie+=" ";
  73.         if(m.telephon.length()<20)
  74.             while (m.telephon.length()<19)
  75.                 m.telephon+=" ";
  76.         if(m.adres.length()<20)
  77.             while (m.adres.length()<19)
  78.                 m.adres+=" ";
  79.         if(m.vremya_raboty.length()<20)
  80.             while (m.vremya_raboty.length()<19)
  81.                 m.vremya_raboty+=" ";
  82.         cout<<"| "<<m.nazvanie<<"| "<<m.telephon<<"| "<<m.adres<<"| "<<m.vremya_raboty<<"|\n";
  83.     }
  84.      cout<<"|____________________|____________________|____________________|____________________|"<<endl;
  85.     f.close();
  86. }
  87. void delete_line(int line){
  88.     fstream o;
  89.     ofstream o1;
  90.     o.open("Data.txt");
  91.     o1.open("tmp.txt");
  92.     int k=0;
  93.     market m;
  94.     while(o>>m.nazvanie>>m.telephon>>m.adres>>m.vremya_raboty){
  95.         if(k!=line){
  96.             o1<<m.nazvanie<<" "<<m.telephon<<" "<<m.adres<<" "<<m.vremya_raboty<<endl;
  97.         }
  98.         k++;
  99.     }
  100.     o.close();
  101.     o1.close();
  102.     remove("Data.txt");
  103.     rename("tmp.txt","Data.txt");
  104. }
  105. int main()
  106. {
  107.       HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  108.     st:int a=print_menu();//çàïèñûâàåì òî ÷òî âûáåðåò ïîëüçîâàòåëü
  109.     ofstream out;
  110.     fstream fin;
  111.     SetConsoleTextAttribute(hConsole, a);
  112.     switch (a) {
  113.         case 1:
  114.             printDB();
  115.             goto st;
  116.  
  117.         case 2:{
  118.             market m;
  119.             m=add_market();
  120.             out.open("Data.txt", std::ios::app);
  121.             out<<m.nazvanie<<" "<<m.telephon<<" "<<m.adres<<" "<<m.vremya_raboty<<endl;
  122.             out.close();
  123.         }
  124.         goto st;
  125.         case 3:{
  126.             int line;
  127.             cout<<"Vvrdite nomer stroki dla udalenia : ";
  128.             cin>>line;
  129.             delete_line(line);
  130.         }
  131.         goto st;
  132.  
  133.         case 4:{
  134.             int k;
  135.            s:cout<<"1 - Poisk po telefonu"<<endl;
  136.             cout<<"2 - Poisk po navaniu"<<endl;
  137.             cin>>k;
  138.             if(k==1){
  139.                 string num1;
  140.                 cout<<"Vvedite noer telefona : ";
  141.                 cin>>num1;
  142.                 find_by_tel_number(num1);
  143.                 goto st;
  144.             }else if(k==2){
  145.                 string title;
  146.                 cout<<"Vvrdite nazwanie : ";
  147.                 cin>>title;
  148.                 find_by_title(title);
  149.                 goto st;
  150.             }else goto s;
  151.         }
  152.         goto st;
  153.         case 5:{
  154.             goto e;
  155.         }
  156.     default:
  157.         goto st;
  158.     }
  159.     e:return 0;
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement