Advertisement
Guest User

Untitled

a guest
Nov 30th, 2015
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.13 KB | None | 0 0
  1. #include <iostream.h>
  2. #include <conio.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5.  
  6.  
  7. class NomerTel //класс телефон
  8. {
  9. public:
  10.     char kod[4];//код
  11.     char nomer[8];//номер
  12.     NomerTel(char *nom)
  13.     {
  14.         int i;
  15.         strcpy(kod, "");
  16.         strcpy(nomer, "");//обнуляем строки
  17.         if (strlen(nom)>11)//если больше 11 то ничего не делаем
  18.             return;
  19.         for (i=1; i<= 3; i++)
  20.             kod[i-1]= nom[i];//берем код
  21.         kod[i-1]= '\0';
  22.         for (i=4; i< strlen(nom); i++)
  23.             nomer[i-4]= nom[i];//берем номер
  24.         nomer[i-4]= 0;
  25.  
  26.  
  27.     }
  28.     void Print(void)//печатаем номер в формате
  29.     {
  30.         printf("(%s) %c%c-%c%c-%c%c%c", kod, nomer[0], nomer[1], nomer[2], nomer[3], nomer[4], nomer[5], nomer[6]);
  31.  
  32.     }
  33. };
  34.  
  35. class TelKniga: public NomerTel//класс тел книги
  36. {
  37. public:
  38.     char fam[50];
  39.  
  40.     TelKniga(char* f, char* nom) : NomerTel(nom)//конструктор задает начальные значения
  41.     {
  42.         strcpy(fam, f);
  43.     }
  44.     void PrintData(void)//печает данные
  45.     {
  46.         printf("%s ", fam);
  47.         Print();
  48.     }
  49. };
  50.  
  51. TelKniga* mas[100];//массив указателей на книгу
  52. int len= 0;//длина массива
  53.  
  54.  
  55. void Add(void)//добавить абонента
  56. {
  57.     clrscr();
  58.     char fam[50];
  59.     char nomer[12];
  60.     printf("Vvedite Familiu: ");
  61.     cin>>fam;
  62.     printf("Vvedite Nomer: ");
  63.     cin>>nomer;
  64.  
  65.     mas[len]= new TelKniga(fam, nomer);
  66.     len++;
  67. }
  68.  
  69. void Find(void)//найти абонента
  70. {
  71.     clrscr();
  72.     char f[50];
  73.     int i, j;
  74.     int t;
  75.     printf("Vvedite familiu: ");
  76.     cin>>f;
  77.     for (i=0; i<len; i++)
  78.     {
  79.         t= 1;
  80.         for (j=0; j<strlen(f); j++)
  81.         {
  82.             if (f[j]!=mas[i]->fam[j])
  83.             {
  84.                 t= 0;
  85.                 break;
  86.             }
  87.         }
  88.         if (t)//если такой есть то печатаем
  89.         {
  90.             mas[i]->PrintData();
  91.             printf("\n");
  92.         }
  93.     }
  94.  
  95.     getch();
  96. }
  97.  
  98. void ShowSameCode(void)//показывает одинаковые кода
  99. {
  100.     clrscr();
  101.     char code[4];
  102.     int i;
  103.     printf("Vvedite code: ");
  104.     cin>>code;//вводим код
  105.     for (i=0; i<len; i++)
  106.     {
  107.         if (strcmp(code, mas[i]->kod)==0)//если равны выводим
  108.         {
  109.             mas[i]->PrintData();
  110.             printf("\n");
  111.         }
  112.     }
  113.     getch();
  114. }
  115.  
  116. void ShowAll(void)//показать всех абанентов
  117. {
  118.     clrscr();
  119.     int i;
  120.     for (i=0; i<len; i++)
  121.     {
  122.         mas[i]->PrintData();
  123.         printf("\n");
  124.     }
  125.     getch();
  126. }
  127.  
  128. void Sort(void)//сортировка пузырьком
  129. {
  130.     TelKniga* temp;
  131.     int i, j;
  132.     for (i=0; i<len-1; i++)
  133.         for (j=0; j<len-i-1; j++)
  134.             if (strcmp(mas[j]->fam, mas[j+1]->fam)>0)
  135.             {
  136.                 temp= mas[j];
  137.                 mas[j]= mas[j+1];
  138.                 mas[j+1]= temp;
  139.             }
  140. }
  141.  
  142. int main()
  143. {
  144.     clrscr();
  145.     char c;
  146.  
  147.     while (1>0)
  148.     {
  149.         clrscr();
  150.         printf("0. Exit\n");
  151.         printf("1. Add\n");
  152.         printf("2. Find\n");
  153.         printf("3. Show Same Code\n");
  154.         printf("4. Show All\n");
  155.         printf("5. Sort\n");
  156.         printf("Vvedite punkt->");
  157.         cin>>c;
  158.         switch(c)
  159.         {
  160.             case '0': return 0;
  161.             case '1': Add(); break;
  162.             case '2': Find(); break;
  163.             case '3': ShowSameCode(); break;
  164.             case '4': ShowAll(); break;
  165.             case '5': Sort(); break;
  166.         }
  167.  
  168.     }
  169.  
  170.     getch();
  171.     return 0;
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement