Домашнее задание для ПО 2.11 по системному программированию от 22.04.21
учебно-методический материал

Склемин Алексей Анатольевич

Напишите программу, которая сортирует записи в файле в порядке возрастания номера телефона. В текстовом файле находятся записи о номерах телефонов. В каждой строке записана информация: номер телефона, ФИО, адрес.

Входные данные:

33-34-35 Иванов Юрий Петрович Чайковского 1 кв 1

44-35-31 Зибров Сергей Иванович Космонавтов 32\2 кв 1

22-21-23 Грабчак Александр Владимирович Строителей 12 кв 34

11-23-78 Кириленко Артур Иванович Чкалова 43б кв 34

Скачать:

ВложениеРазмер
Файл 67.docx15.6 КБ

Предварительный просмотр:

Шестьдесят седьмое задание

Напишите программу, которая сортирует записи в файле в порядке возрастания номера телефона. В текстовом файле находятся записи о номерах телефонов. В каждой строке записана информация: номер телефона, ФИО, адрес.

Входные данные:

33-34-35 Иванов Юрий Петрович Чайковского 1 кв 1

44-35-31 Зибров Сергей Иванович Космонавтов 32\2 кв 1

22-21-23 Грабчак Александр Владимирович Строителей 12 кв 34

11-23-78 Кириленко Артур Иванович Чкалова 43б кв 34


#include

#include "list.h"

 

using namespace std;

 

int main()

{

    {

    list L;

    for(int i=0;i<10;++i)

        L.push_back(i+1);

    L.print();

 

    }

    system("pause>0");

    return 0;

}


Файл в котором определена реализация класса list. В этом файле запрограммирована логика работы всех функций класса.  Имя файла — list.cpp.

#include

#include "list.h"

 

using namespace std;

 

void list::push_back(int el)

{

    node* p,*p1;

    p = head;

    while(p->next != NULL)

    {p = p->next;}

 

    p1 = new (node);

    p1->data = el;

    p1->next = NULL;

 

    p1->prev = p;

    p->next = p1;

 

}

 

void list::print()

{

    node* p;

    p = head->next;

    while(p != NULL)

    {

        cout<<(p->data)<<" ";

        p = p->next;

    }

}

 

void list::push_front(int el)

{

    node* p;

    p = new (node);

    p->data = el;

    if(head->next == NULL)

    {

        p->next = head->next;

        head->next = p;

        p->prev = head;

    }

    else

    {

        p->next = head->next;

        head->next->prev = p;

        head->next = p;

        p->prev = head;

    }

}

 

void list::print_reverse()

{

    node* p;

    p = head;

 

    while(p->next != NULL)

    {p = p->next;}

 

    while(p != head)

    {

        cout<<(p->data)<<" ";

        p = p->prev;

    }

}

 

void list::destroy()

{

    node* p,* p1;

    p = head;

    p1 = p->next;

    while(p1 != NULL)

    {

        p = p1;

        p1 = p1->next;

        delete p;

    }

}

 

void list::pop_back()

{

    node* p,* p1;

    p = head;

    p1 = p->next;

    while(p1->next != NULL)

    {

        p = p1;

        p1 = p1->next;

    }

    p->next = NULL;

    delete p1;

}

 

void list::pop_front()

{

    node* p;

    p = head->next;

    head->next = p->next;

    p->next->prev = head;

    delete p;

}


По теме: методические разработки, презентации и конспекты

Домашнее задание для ПО 1.11 по системному программированию от 04.02.20

Шестнадцатеричное представление Представим, что необходимо просмотреть содержимое некотоpых байт в памяти. Требуется oпределить содержимое четырех последовательных байт (двух слов), которые имеют двои...

Домашнее задание для ПО 1.11 по системному программированию от 11.02.20

Сегменты Сегментом называется область, которая начинается на границе параграфа, то есть, по любому адресу, который делится на 16 без остатка. Хотя сегмент может располагаться в любом месте памяти и им...