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;
}
Для тестирования был создан следующий файл «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с.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.