Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream.h>
- #include <conio.h>
- #include <stdio.h>
- #include <string.h>
- class NomerTel //класс телефон
- {
- public:
- char kod[4];//код
- char nomer[8];//номер
- NomerTel(char *nom)
- {
- int i;
- strcpy(kod, "");
- strcpy(nomer, "");//обнуляем строки
- if (strlen(nom)>11)//если больше 11 то ничего не делаем
- return;
- for (i=1; i<= 3; i++)
- kod[i-1]= nom[i];//берем код
- kod[i-1]= '\0';
- for (i=4; i< strlen(nom); i++)
- nomer[i-4]= nom[i];//берем номер
- nomer[i-4]= 0;
- }
- void Print(void)//печатаем номер в формате
- {
- printf("(%s) %c%c-%c%c-%c%c%c", kod, nomer[0], nomer[1], nomer[2], nomer[3], nomer[4], nomer[5], nomer[6]);
- }
- };
- class TelKniga: public NomerTel//класс тел книги
- {
- public:
- char fam[50];
- TelKniga(char* f, char* nom) : NomerTel(nom)//конструктор задает начальные значения
- {
- strcpy(fam, f);
- }
- void PrintData(void)//печает данные
- {
- printf("%s ", fam);
- Print();
- }
- };
- TelKniga* mas[100];//массив указателей на книгу
- int len= 0;//длина массива
- void Add(void)//добавить абонента
- {
- clrscr();
- char fam[50];
- char nomer[12];
- printf("Vvedite Familiu: ");
- cin>>fam;
- printf("Vvedite Nomer: ");
- cin>>nomer;
- mas[len]= new TelKniga(fam, nomer);
- len++;
- }
- void Find(void)//найти абонента
- {
- clrscr();
- char f[50];
- int i, j;
- int t;
- printf("Vvedite familiu: ");
- cin>>f;
- for (i=0; i<len; i++)
- {
- t= 1;
- for (j=0; j<strlen(f); j++)
- {
- if (f[j]!=mas[i]->fam[j])
- {
- t= 0;
- break;
- }
- }
- if (t)//если такой есть то печатаем
- {
- mas[i]->PrintData();
- printf("\n");
- }
- }
- getch();
- }
- void ShowSameCode(void)//показывает одинаковые кода
- {
- clrscr();
- char code[4];
- int i;
- printf("Vvedite code: ");
- cin>>code;//вводим код
- for (i=0; i<len; i++)
- {
- if (strcmp(code, mas[i]->kod)==0)//если равны выводим
- {
- mas[i]->PrintData();
- printf("\n");
- }
- }
- getch();
- }
- void ShowAll(void)//показать всех абанентов
- {
- clrscr();
- int i;
- for (i=0; i<len; i++)
- {
- mas[i]->PrintData();
- printf("\n");
- }
- getch();
- }
- void Sort(void)//сортировка пузырьком
- {
- TelKniga* temp;
- int i, j;
- for (i=0; i<len-1; i++)
- for (j=0; j<len-i-1; j++)
- if (strcmp(mas[j]->fam, mas[j+1]->fam)>0)
- {
- temp= mas[j];
- mas[j]= mas[j+1];
- mas[j+1]= temp;
- }
- }
- int main()
- {
- clrscr();
- char c;
- while (1>0)
- {
- clrscr();
- printf("0. Exit\n");
- printf("1. Add\n");
- printf("2. Find\n");
- printf("3. Show Same Code\n");
- printf("4. Show All\n");
- printf("5. Sort\n");
- printf("Vvedite punkt->");
- cin>>c;
- switch(c)
- {
- case '0': return 0;
- case '1': Add(); break;
- case '2': Find(); break;
- case '3': ShowSameCode(); break;
- case '4': ShowAll(); break;
- case '5': Sort(); break;
- }
- }
- getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement