Разработка программы для создания и работы с двусвязным списком, состоящим из структур (Структура содержит фамилию и 4 оценки), страница 5

gotoxy(35,23);

cprintf("%s","Press any key");

getch();

screen();                               //vivod poluchennogo spiska na ekran

return 0;

}

int remove()                    //udalenie neuspevayushih studentov iz spiska

{

int N;

char o1[1],o2[1],o3[1],oc[4];

spis *p,*temp;

fileopen();                     //vipolenie funkcii sozdaniya spiska

ShowWindow(Menu5);              //vivod okna

p=headd;

do

          {

          if ((p->ocenka1==2)&&(p->ocenka2==2)&&(p->ocenka3==2)&&(p->ocenka4==2)) //esli student neuspevayushiy

               {

                     if (p==headd)                                     //udalaem strukturu iz nachala spiska

                                 {

                                             headd=p->next;

                                             headd->prev=NULL;

                                             free(p);

                                             p=headd;

                                 }

                     else if (p==tail)                                  //udalaem strukturu iz konca spiska

                                 {

                                             tail=p->prev;

                                             tail->next=NULL;

                                             free(p);

                                             p=tail;

                                 }

                     else                                                     //udalaem strukturu iz seredini spiska

                                 {

                                             p->next->prev=p->prev;

                                             p->prev->next=p->next;

                                             temp=p;

                                             p=p->prev;

                                             free(temp);

                                  }

               }

          p=p->next;

          }

while (p!=NULL);                           //poka ne konchitsa spisok

screen();

return 0;

}

int head()

{                               //vivod zagolovka tablici

gotoxy(1,2);

cprintf("%s","N  FAMILIA                         OCENCA_1  OCENCA_2  OCENCA_3 OCENCA_4   ");

return 0;

}


5.  Результаты тестирования выполнения задания

Для тестирования был создан следующий файл «EXAM.TXT»:

Zaev,2,2,2,2

Muhin,5,5,4,4

Ezhov,3,5,5,5

Bukin,4,5,3,5

Shishkin,5,5,2,4

Smirnov,4,4,5,4

Abakumov,3,3,5,4

Saraev,5,5,4,5

Sidor,4,3,5,3

Talalaev,5,2,4,4

Efremov,5,4,5,3

Ogurcov,4,4,5,5

Arhipov,5,5,5,5

Peshkov,4,4,3,5

Polyshuk,3,3,4,3

Karchagin,2,2,2,2

Fokin,5,4,3,4

Fedorov,5,5,3,5

Vengerov,3,5,5,5

Uhov,3,3,4,5

Stogov,4,5,4,4

Glushkov,4,4,3,3

Vaskin,3,3,2,5

Oleynik,5,5,3,5

Zaripov,3,3,4,5

Shubin,5,5,5,4

Somov,4,4,5,4

Zubkov,4,5,4,5

Arapov,4,3,4,4

Eremeev,5,4,5,5

Nagorniy,5,4,3,3

Shalamov,5,4,4,4

Grigoryev,3,3,4,5

Boyko,4,4,3,5

Fedotov,4,4,3,5

Dmitriev,5,5,3,5

Vorontsov,3,3,5,5

Gorin,5,3,5,3

Nikiforov,3,5,3,4

Matienko,2,2,2,2

Ishaev,5,5,2,5

Babkin,5,5,3,4

Stolbov,5,5,5,4

Bazarov,3,3,5,4

Zhurov,3,4,5,5

Zhukov,2,2,2,2

Kovalev,2,2,2,2

После запуска программы отображается рабочее окно программы, представленное на рисунке 5.1.

Рисунок 5.1 – Рабочее окно программы.

Формирование и вывод списка осуществляется выбором пункта меню «File». Результат вывода одного листа списка на экран представлен на рисунке 5.2.

Рисунок 5.2 – Просмотр списка.

Скорректируем полученный список согласно заданию. Как видим, в исходном файле представлено 5 неуспевающих студентов, а всего их в списке 47, см. рисунок 5.3

Zaev,2,2,2,2

Karchagin,2,2,2,2

Matienko,2,2,2,2

Zhukov,2,2,2,2

Kovalev,2,2,2,2

Рисунок 5.3 – Общее число студентов.

После выполнения функции в списке осталось 42 студента, то есть были удалены все неуспевающие. Например, два последних студента.

Рисунок 5.4 – Неуспевающие студенты удалены из спика.

Воспользуемся функцией добавления и внесем данные о студенте, как показано на рисунке 5.5.

Рисунок 5.5 – Процедура добавления студента.

Теперь список сформируется заново и выведется на экран. Рисунок 5.6.

Рисунок 5.6 – Список после добавления студента.

Как видно на рисунке, в конце списка добавился новый студент.

Для выхода из программы нажмем ESC.


Заключение

В ходе выполнения курсовой работе на языке высокого уровня была создана система, которая позволяет формировать, просматривать, корректировать в соответствии с заданием значения двунаправленного списка. Доступ ко всем функциям осуществлен с помощью пользовательского меню.


Список использованной литературы

1.  М. Эллис, Б. Строуструп. Справочное руководство по языку C++ с комментариями: Пер. с англ. - Москва: Мир, 1992. 445с.

2.  Стенли Б. Липпман. C++ для начинающих: Пер. с англ. 2тт. - Москва: Унитех; Рязань: Гэлион, 1992, 304-345сс.

3.  В.А. Скляров. Язык C++ и объектно-ориентированное программирование: Справочное издание. - Минск: Вышэйшая школа, 1997. 480с.

4.  Х. Дейтел, П. Дейтел. Как программировать на C++: Пер. с англ. - Москва: ЗАО "Издательство БИНОМ", 1998. 1024с.