Разработка списка документов университета

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Содержание

  • 1. Введение
  • 2. Постановка задачи
  • 3. Анализ задачи
  • 4. Средства реализации
  • 5. Требования к аппаратному и программному обеспечению
  • 6. Интерфейс пользователя
  • 7. Реализация
    • 7.1 Структура программы
    • 7.2 Описание данных
    • 7.3 Процедуры
  • 8. Тестирование
  • 9. Заключение
  • Приложение. Листинг программы

1. Введение

Одним из трёх «китов», на котором основывается объектно-ориентированное программирование, является наследование. Это механизм, позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом. То есть, если существует несколько классов с похожими членами, методами — целесообразно наследовать эти классы от общего предка (родительского класса). Наследование обычно удобно в использовании, а в некоторых случаях — необходимо.

Многие языки программирования являются объектно-ориентированным. В них прослеживается явная иерархия (последовательность наследования) от одного класса. Например, в C# -object, а в Delphi-TObject.

Современные языки программирования предоставляют возможность разработчику выбрать возможность наследования от класса. В некоторых языках используются абстрактные классы. Абстрактный класс -- это класс, содержащий хотя бы один абстрактный метод, он описан в программе, имеет поля, методы и не может использоваться для непосредственного создания объекта. То есть от абстрактного класса можно только наследовать. Объекты создаются только на основе производных классов, наследованных от абстрактного класса.

2. Постановка задачи

Задан некоторый родительский класс. От него должно быть определено несколько потомков. Определить класс Список элементов, который может одновременно содержать разных потомков базового класса. Реализовать операции добавления элемента в список, удаление элемента из списка, поиск элемента в списке и др. Документы университета. Любой документ имеет идентификационный номер — целое число. Документы бывают разными, например, заявление, ведомость. Как следствие, они обладают разными характеристиками.

Реализовать программу, позволяющую:

1. Добавлять элемент в список.

2. Изменять элемент в списке.

3. Удалять элемента из списка.

4. Найти все элементы в списке по заданным критериям.

5. Просматривать список.

3. Анализ задачи

Решение данной задачи связано с написанием программы, которая даёт возможность пользователю работать со списком документов университета.

Работа над проектом начинается с разработки функционала, которым будет обладать пользователь. В функционал должны входить возможности добавления элемента в список, удаления элемента из списка, изменения элемента, поиска необходимого типа документа и просмотра списка. Для использования этих возможностей будет создано пронумерованное меню. Для реализации списка необходим класс, описывающий конкретный документ. Документы любого типа имеют одинаковые характеристики: идентификационный номер, тип документа, дата внесения последних изменений, и название факультета, к которому относится документ. Также есть общие для всех документов действия, такие как: просмотреть документ, изменить информацию о документе. Эти характеристики и действия будут включены в базовый для всех товаров класс «Document». Поскольку у разного типа документов имеются различные характеристики, но действия, выполняемые над ними пользователем, одинаковы по сути, следует использовать наследование от общего предка «документ». Также необходимо реализовать класс «список документов», содержащий информацию о всех документах университета. Для этого будет использован массив. Методы класса будут определять возможности пользователя действия со списком.

4. Средства реализации

Данная программа реализована в визуальной среде программирования C# в консольном режиме. Выбор этот обусловлен простотой постановки задачи и демонстрации возможностей.

5. Требования к аппаратному и программному обеспечению

В качестве аппаратной среды используется ПК типа IBMPC.

Системные требования:

· Компьютер Pentium 200 МГц

· Оперативная память 32 RAM

· Видеокарта 800×600

· Операционная система Microsoft Windows 98/ME/2000/XP/Vista/7

· Клавиатура

· Мышь

· Размеры свободного дискового пространства 200 кб

6. Интерфейс пользователя

При запуске программы пользователь видит окно, которое содержит главное меню. Оно содержит следующие пункты (рис. 6. 1):

· Ввод списка документов

· Поиск документов по выбранным критериям

· Изменение документа

· Удаление документа

· Просмотреть весь список документов

· Выход

Рис. 6.1. Главное меню программы

Для ввода списка документов необходимо выбрать первый пункт меню, после чего выбрать тип документа, который необходимо добавить (рис. 6. 2):

Рис. 6.2. Заполнение списка

После выбора документа необходимо указать детальное описание характеристики документа (рис. 6. 3):

Рис. 6.3. Ввод характеристик документа

Ввод списка документов будет закончен после нажатия клавиши «0». Теперь, когда список полон, пользователь может начать его редактировать (рис. 6. 4):

Рис. 6.4. Нажатие на кнопку Просмотреть весь список документов

Также реализована возможность поиска документа по номеру (рис. 6. 5):

Рис. 6.5. Поиск документа по номеру

Возможность поиска приказов по фамилии ответственного за исполнение (рис. 6. 6):

Рис. 6.6. Поиск приказов по фамилии ответственного за исполнение

Возможность поиска заявлений по фамилии заявителя (рис. 6. 7):

Рис. 6.7. Поиск заявлений по фамилии заявителя

Возможность поиска ведомостей заданных курса и группы (рис. 6. 8):

Рис. 6.8. Поиск ведомостей заданных курса и группы

Возможность поиска всех ведомостей по заданной дисциплине: (рис. 6. 9):

Рис. 6.9. Поиск всех ведомостей по заданной дисциплине

Возможность изменения информации о документе (рис. 6. 10):

Рис. 6. 10. Изменение информации о документе

В список возможностей также входит удаление документа. После выполнения всех необходимых действий со списком, пользователь может завершить работу программы, нажав клавишу «0"(рис. 6. 11):

Рис. 6. 11. Нажатие на кнопку Выход.

7. Реализация

7.1 Структура программы

Рис. 7.1. Структура программы

7.2 Описание данных

В программе описаны следующие типы:

publicabstractclassDocument//класс — родитель всех документов

{

intnumber; //номер документа

publicstringLastModified; // дата последнего изменения строкой

publicstringType; //свойство тип документа

publicstring Department; //свойство факультет

}

classStatement: Document // класс «Statement» — наследник от Document

{

int course; //курс

int group; //группа

intstudentscnt; // сколько всего студентов в группе

intfailedcnt; // количество не сдавших

}

classRequest: Document// класс «Request» — наследник от Document

{

publicstringFromWho; // от кого заявление

publicstringToWhom; // кому заявление

publicstring Subject; // тема заявления

}

classRectorsOrder: Document // класс «RectorsOrder» — наследник от Document

{

intexecby; // в течение скольки дней приказ должен быть выполнен

publicstringName; // название приказа

publicstringPersonResponsible; // ответственный за выполнение приказа

classDocumentsList//класс «DocumentsList» — список документов

{

staticprivateint N = 50; //начальный размер списка.

privateintcount; //количество элементов в списке

Document[] Elem = newDocument[N]; //самсписок на основе массива

}

Используются следующие переменные:

7.3 Методы

Класс «Document» имеет методы:

publicvirtualstringShowInfo ()//вывод на экран информации о документе (формирование строки с переносами)

publicvirtualvoidChange ()//изменение информации о документе

Эти процедуры используют общие поля для всех типов документов.

Свойство:

publicintNumber//свойство номер

{

get { return number; }

set { number = value< 0? -value: value; }

}

Классы «Statement», «Request», «RectorsOrder» переопределяют методы «Document», дополняя их реализацию полями, присущими определённому типу документа.

Класс «DocumentsList» имеет методы-процедуры:

publicboolcheck//свойство для проверки списка (не пуст ли)

voidShow_Elem (intNum) //просмотр нужного элемента (по номеру)

publicvoidEl_Add (inttype) //добавление элемента в список

publicvoidEl_Delete (intid) //удаление элемента из списка (по номеру)

publicvoidView () //просмотр всех элементов в списке

publicvoidEl_Change (intid) //изменения элемента в списке (по номеру)

publicvoidEl_Search (int type) //поиск документов по типу

publicvoidEl_SearchByNum (intnum) //поиск по номеру документа

publicvoidEl_SearchAllRequestsFrom (string name) // все заявления от одного заданного заявителя

publicvoidEl_SearchAllStatementsOf (int c, int g) // все ведомости данного курса и группы

publicvoidEl_SearchAllStatementsBySubj (stringsubj) // всев едомости по данному предмету

publicvoidEl_SearchRObyResp (stringresp) // все приказы ректора, где ответственный за выполнение — resp

8. Тестирование

программа пользователь список данное

К пустому списку нельзя применить процедуры удаления и изменения элемента, поэтому необходимо проверять список на пустоту перед выполнением данных действий. Для этого в классе «DocumentsList» реализовано свойство «check», возвращающее «true», если список не пуст и «false» в обратном случае (рис. 8. 1):

Рис. 8.1. Проверка на пустоту

Необходима также и проверка выбранного пользователем пункта меню или типа документа (рис. 10).

Рис. 8.2. Проверка корректности выбора

9. Заключение

В результате проделанной работы была создана и оттестирована программа, предоставляющая следующие возможности:

1. Создание списка документов.

2. Поиск по номеру документа.

3. Поиск приказов по имени ответственного.

4. Поиск заявлений от одного заданного заявителя.

5. Поиск всех ведомостей заданного курса и группы.

6. Поиск всех ведомостей по одной из дисциплин.

7. Изменение информации о документе.

8. Удаление документа из списка.

9. Просмотр списка документов.

Приложение. Листинг программы

Основные структурные части программы:

МодульDocument. cs

using System;

usingSystem. Collections. Generic;

usingSystem. Linq;

usingSystem. Text;

namespace task2

{

publicabstractclassDocument

{

int number; // номер документа

publicint Number //свойство номер

{

get { return number; }

set { number = value< 0? -value: value; }

}

publicstringLastModified; // дата последнего изменения строкой

publicstringType; //свойство тип документа

publicstring Department; //свойство факультет

public Document (int n, string lm, string t, string d) // конструктор

{

Number = n;

LastModified = lm;

Type = t;

Department = d;

}

publicDocument () { }

//виртуальный метод, переопределенный в потомках

publicvirtualstringShowInfo ()//поаказать информацию о документе

{

return"Тип документа: «+ Type + «n» +

«Номер документа: «+ Number + «n» +

«Дата внесения последних изменений в документ: «+ LastModified + «n» +

«Факультет: «+ Department + «n»;

}

publicvirtualvoidChange () //изменение информации о документе

{

Console. WriteLine («Введите тип документа»);

Type = Console. ReadLine ();

Console. WriteLine («Введитеномердокумента»);

Number = Int32. Parse (Console. ReadLine ());

Console. WriteLine («Введите дату внесения последних изменений в документ»);

LastModified = Console. ReadLine ();

Console. WriteLine («Введите название факультета»);

Department = Console. ReadLine ();

}

}

}

МодульStatement. cs

using System;

usingSystem. Collections. Generic;

usingSystem. Linq;

usingSystem. Text;

using task2;

namespace task2

{

classStatement: Document

{

int course; //курс

int group; //группа

intstudentscnt; // сколько всего студентов в группе

intfailedcnt; // количество не сдавших

publicstringTeachersName// имя преподавателя

{

get;

set;

}

publicstringSubjName// название предмета

{

get;

set;

}

publicint Course

{

get { return course; }

set { if (value> 0 & &value< 5) course = value; else course = 1; }

}

publicint Group

{

get { return group; }

set { group = value< 0? -value: value; }

}

publicintStudentsCnt

{

get { returnstudentscnt; }

set { studentscnt = value< 0? -value: value; }

}

publicintFailedCnt

{

get { returnfailedcnt; }

set { failedcnt = value>= 0? value: studentscnt; }

}

public Statement (int n, string lm, string d, intcrs, int gr, intstcn, intfcn, stringtchn, stringsjn)//конструктор

: base (n, lm, «Ведомость», d)

{

Course = crs;

Group = gr;

StudentsCnt = stcn;

FailedCnt = fcn;

TeachersName = tchn;

SubjName = sjn;

}

public Statement () { }

publicoverridestringShowInfo () // переопределенный метод родителя

{

returnbase. ShowInfo () +

«Курс: «+ Course + «n» +

«Группа: «+ Group + «n» +

«Дисциплина: «+ SubjName + «n» +

«Преподаватель: «+ TeachersName + «n» +

«Количество студентов в группе: «+ StudentsCnt + «n» +

«Количество неудовлетворительных оценок: «+ FailedCnt + «n»;

}

publicoverridevoidChange () //изменение информации об объекте

{

base. Change ();

Console. WriteLine («Введите курс»);

Course = Int32. Parse (Console. ReadLine ());

Console. WriteLine («Введитегруппу»);

Group = Int32. Parse (Console. ReadLine ());

Console. WriteLine («Введите дисциплину»);

SubjName = Console. ReadLine ();

Console. WriteLine («Введите преподавателя (ФИО)»);

TeachersName = Console. ReadLine ();

Console. WriteLine («Введите количество студентов в группе»);

StudentsCnt = Int32. Parse (Console. ReadLine ());

Console. WriteLine («Введите количество неудовлетворительных оценок»);

FailedCnt = Int32. Parse (Console. ReadLine ());

}

}

}

МодульRequest. cs

using System;

usingSystem. Collections. Generic;

usingSystem. Linq;

usingSystem. Text;

namespace task2

{

classRequest: Document

{

publicstringFromWho; // от кого заявление

publicstringToWhom; // кому заявление

publicstring Subject; // тема заявления

public Request (int n, string lm, string d, stringfw, stringtw, stringsbj)//конструктор

: base (n, lm, «Заявление», d)

{

FromWho = fw;

ToWhom = tw;

Subject = sbj;

}

public Request () { }

publicoverridestringShowInfo () // переопределенный метод родителя

{

returnbase. ShowInfo () + «Откого (ФИО): «+ FromWho + «n» +

«Кому (ФИО): «+ ToWhom + «n» +

«Тема: «+ Subject + «n»;

}

publicoverridevoidChange () //изменение информации об объекте

{

base. Change ();

Console. WriteLine («Введите От кого (ФИО)»);

FromWho = Console. ReadLine ();

Console. WriteLine («Введите Кому (ФИО)»);

ToWhom = Console. ReadLine ();

Console. WriteLine («Введите тему»);

Subject = Console. ReadLine ();

}

}

}

МодульRectorsOrder. cs

using System;

usingSystem. Collections. Generic;

usingSystem. Linq;

usingSystem. Text;

namespace task2

{

classRectorsOrder: Document

{

intexecby;

publicintExecBy

{

get { returnexecby; }

set { execby = value< 30? value: 30; }

}

publicstring Name // название приказа

{

get;

set;

}

publicstringPersonResponsible

{

get;

set;

}

publicRectorsOrder (int n, string lm, string d, string name, intexb, stringpresp) // конструктор

: base (n, lm, «Приказ ректора», d)

{

Name = name;

ExecBy = exb;

PersonResponsible = presp;

}

publicRectorsOrder () { }

publicoverridestringShowInfo () // переопределенный метод родителя

{

returnbase. ShowInfo () + «Название: «+ Name + «n» + «Привести в исполнение в срок до «+ ExecBy + «дней n» +

«Ответственный за исполнение (ФИО): «+ PersonResponsible + «n»;

}

publicoverridevoidChange () //изменение информации об объекте

{

base. Change ();

Console. WriteLine («Введите название»);

Name = Console. ReadLine ();

Console. WriteLine («Введите срок исполнения»);

ExecBy = Int32. Parse (Console. ReadLine ());

Console. WriteLine («Введите ФИО ответственного за исполнение»);

PersonResponsible = Console. ReadLine ();

}

}

}

МодульDocumentsList. cs

using System;

usingSystem. Collections. Generic;

usingSystem. Linq;

usingSystem. Text;

namespace task2

{

classDocumentsList//список документов

{

staticprivateint N = 50;

publicint count;

Document[] Elem = newDocument[N];

//-----------------------------------------------------------------------------

publicDocumentsList ()

{

int i;

count = 0;

for (i = 0; i ≠ N — 1; i++)

Elem[i] = null;

}

//-----------------------------------------------------------------------------

publicboolcheck//проверка содержимого списка (не пуст ли)

{

get

{

return !(count == 0);

}

}

//-----------------------------------------------------------------------------

voidShow_Elem (intNum) //просмотр нужного элемента (по номеру в массиве)

{

Elem[Num]. ShowInfo ();

Console. WriteLine ();

Console. WriteLine («Готово. «);

Console. WriteLine ();

}

//-----------------------------------------------------------------------------

publicvoidEl_Add (inttype) //добавлени еэлемента в список

{

if (count == Elem. Length)

Array. Resize (ref Elem, count * 2);

if (type == 1)

Elem[count] = newRequest ();

elseif (type == 2)

Elem[count] = newStatement ();

elseif (type == 3)

Elem[count] = newRectorsOrder ();

Elem[count]. Change ();

count++;

Console. WriteLine ();

Console. WriteLine («Конец. «);

Console. WriteLine ();

}

//-----------------------------------------------------------------------------

publicvoidEl_Delete (intid) //удаление элемента из списка по номеру (документа)

{

int i, k;

bool find = false;

for (i = 0; (i <= (count — 1)) & & (!find); i++)

{

find = Elem[i]. Number == id;

}

if (find)

{

i--;

Elem[i] = null;

for (k = i + 1; k <= count — 1; k++)

Elem[k — 1] = Elem[k];

GC. Collect (); //вызов сборщика мусора

GC. WaitForPendingFinalizers ();

Console. WriteLine ();

Console. WriteLine («nУдаление завершено. n»);

Console. WriteLine ();

count--;

}

elseConsole. WriteLine («nНет документа с таким номеромn»); Console. WriteLine ();

}

//-----------------------------------------------------------------------------

publicvoidView () //просмотр всех элементов в списке

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

{

Console. WriteLine (Elem[i]. ShowInfo ());

Console. WriteLine ();

}

Console. WriteLine («nКонец списка. n»);

Console. WriteLine ();

}

//-----------------------------------------------------------------------------

publicvoidEl_Change (int id) //изменение элемента в списке

{

int i = 0;

bool ok = false;

while ((!ok) & & (i <= (count — 1)))

{

if (Elem[i]. Number == id)

ok = true;

else i++;

}

if (ok)

{

Console. WriteLine (Elem[i]. ShowInfo ());

Console. WriteLine («nВведите новые данные: «);

Console. WriteLine (Elem[i]. ShowInfo ());

Console. WriteLine ();

Console. WriteLine («nИзменение внесено. n»);

Console. WriteLine ();

}

else

{ Console. WriteLine («nНет документа с таким номеромn»); Console. WriteLine (); }

}

//-----------------------------------------------------------------------------

publicvoidEl_Search (int type) //поиск документов по типу

{

if (type == 1)

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

if (Elem[i] isRequest)

{

Console. WriteLine (Elem[i]. ShowInfo ());

Console. WriteLine ();

}

}

elseif (type == 2)

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

if (Elem[i] isStatement)

{

Console. WriteLine (Elem[i]. ShowInfo ());

Console. WriteLine ();

}

}

elseif (type == 3)

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

if (Elem[i] isRectorsOrder)

{

Console. WriteLine (Elem[i]. ShowInfo ());

Console. WriteLine ();

}

}

Console. WriteLine ();

Console. WriteLine («Поиск завершен. «);

Console. WriteLine ();

}

//-----------------------------------------------------------------------------

publicvoidEl_SearchByNum (intnum) //поиск по номеру документа

{

int i = 0;

// string s;

bool ok = false;

while ((!ok) & & (i <= (count — 1)))

{

if (Elem[i]. Number == num)

ok = true;

else i++;

}

if (ok)

{

Console. WriteLine (Elem[i]. ShowInfo ());

Console. WriteLine ();

}

Console. WriteLine ();

Console. WriteLine («Поиск завершен. «);

Console. WriteLine ();

}

//-----------------------------------------------------------------------------

publicvoidEl_SearchAllRequestsFrom (stringname) // все заявления от одного заданного заявителя

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

if ((Elem[i]) isRequest& & (Elem[i] asRequest). FromWho == name)

{

Console. WriteLine (Elem[i]. ShowInfo ());

Console. WriteLine ();

}

Console. WriteLine ();

Console. WriteLine («Поиск завершен. «);

Console. WriteLine ();

}

//-----------------------------------------------------------------------------

publicvoidEl_SearchAllStatementsOf (int c, int g) // все ведомости данного курса и группы

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

if ((Elem[i]) isStatement& & (Elem[i] asStatement). Course == c & & (Elem[i] asStatement). Group == g)

{

Console. WriteLine (Elem[i]. ShowInfo ());

Console. WriteLine ();

}

Console. WriteLine ();

Console. WriteLine («Поиск завершен. «);

Console. WriteLine ();

}

//-----------------------------------------------------------------------------

publicvoidEl_SearchAllStatementsBySubj (stringsubj) // все ведомости по данному предмету

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

if ((Elem[i]) isStatement& & (Elem[i] asStatement). SubjName == subj)

{

Console. WriteLine (Elem[i]. ShowInfo ());

Console. WriteLine ();

}

Console. WriteLine ();

Console. WriteLine («Поиск завершен. «);

Console. WriteLine ();

}

//-----------------------------------------------------------------------------

publicvoidEl_SearchRObyResp (stringresp) // все приказы ректора, где ответственный за выполнение — resp

{

int i = 0;

for (i = 0; i <= (count — 1); i++)

if ((Elem[i]) isRectorsOrder& & (Elem[i] asRectorsOrder). PersonResponsible == resp)

{

Console. WriteLine (Elem[i]. ShowInfo ());

Console. WriteLine ();

}

Console. WriteLine ();

Console. WriteLine («Поиск завершен. «);

Console. WriteLine ();

}

//-----------------------------------------------------------------------------

}

}

МодульProgram. cs

using System;

usingSystem. Collections. Generic;

usingSystem. Linq;

usingSystem. Text;

namespace task2

{

classProgram

{

staticvoid Main (string[] args)

{

DocumentsList List = newDocumentsList ();

int i = 0;

do

{

Console. WriteLine («------------------------------------------------»);

Console. WriteLine («Выберите действие: «);

Console. WriteLine («1 — Ввод списка документов»);

Console. WriteLine («2 — Поиск по номеру документа»); // public void El_SearchByNum (intnum)

Console. WriteLine («3 — Все приказы, где ответственный — < name>»); // public void El_SearchRObyResp (string resp)

Console. WriteLine («4 — Все заявления от одного человека»); // public void El_SearchAllRequestsFrom (string name)

Console. WriteLine («5 — Все ведомости заданного курса и группы»); // public void El_SearchAllStatementsOf (int c, int g)

Console. WriteLine («6 — Всеведомостипооднойиздисциплин»); // public void El_SearchAllStatementsBySubj (string subj)

Console. WriteLine («7 — Изменение документа»);

Console. WriteLine («8 — Удаление документа»);

Console. WriteLine («9 — Просмотреть весь список документов»);

Console. WriteLine («0 — Выход»);

Console. WriteLine («------------------------------------------------»);

i = Int32. Parse (Console. ReadLine ());

switch (i)

{

case 1:

{

int type;

do

{

Console. WriteLine («------------------------------------------------»);

Console. WriteLine («Введите тип документа: «);

Console. WriteLine («1 — Заявление «);

Console. WriteLine («2 — Ведомость «);

Console. WriteLine («3 — Приказ ректора «);

Console. WriteLine («0 — Закончить ввод «);

Console. WriteLine («------------------------------------------------»);

type = Int32. Parse (Console. ReadLine ());

if ((type > 0) & & (type < 4)) List. El_Add (type);

elseif (type ≠ 0) Console. WriteLine («nНеверный тип документа. Выберите ещё раз: n»);

} while (type ≠ 0);

}

break;

case 2:

if (List. check)

{

int nm;

Console. WriteLine («------------------------------------------------»);

Console. WriteLine («Введите номер документа: «);

nm = Int32. Parse (Console. ReadLine ());

Console. WriteLine («------------------------------------------------»);

List. El_SearchByNum (nm);

}

else { Console. WriteLine («nСписокпустn»); Console. WriteLine (); }

break;

case 3:

if (List. check)

{

// public void El_SearchRObyResp (string resp)

stringreq;

Console. WriteLine («------------------------------------------------»);

Console. WriteLine («Введите имя заявителя: «);

req = Console. ReadLine ();

Console. WriteLine («------------------------------------------------»);

List. El_SearchAllRequestsFrom (req);

}

else { Console. WriteLine («nСписок пустn»); Console. WriteLine (); }

break;

case 4:

if (List. check)

{

stringreq;

Console. WriteLine («------------------------------------------------»);

Console. WriteLine («Введите имя заявителя: «);

req = Console. ReadLine ();

Console. WriteLine («------------------------------------------------»);

List. El_SearchAllRequestsFrom (req);

}

else { Console. WriteLine («nСписокпустn»); Console. WriteLine (); }

break;

case 5:

if (List. check)

{ intcour;

int gr;

Console. WriteLine («------------------------------------------------»);

Console. WriteLine («Введи текурс: «);

cour = Int32. Parse (Console. ReadLine ());

Console. WriteLine («Введите группу: «);

gr = Int32. Parse (Console. ReadLine ());

Console. WriteLine («------------------------------------------------»);

List. El_SearchAllStatementsOf (cour, gr);

}

else { Console. WriteLine («nСписок пустn»); Console. WriteLine (); }

break;

case 6:

if (List. check)

{

stringsubj;

Console. WriteLine («------------------------------------------------»);

Console. WriteLine («Введите название дисциплины: «);

subj = Console. ReadLine ();

Console. WriteLine («------------------------------------------------»);

List. El_SearchAllStatementsBySubj (subj);

}

else { Console. WriteLine («nСписок пустn»); Console. WriteLine (); }

break;

case 7:

if (List. check)

{

Console. WriteLine («nВведите номер изменяемого документа»);

intchange_id = Int32. Parse (Console. ReadLine ());

List. El_Change (change_id);

}

else { Console. WriteLine («nСписок пустn»); Console. WriteLine (); }

break;

case 8:

if (List. check)

{

Console. WriteLine («nВведите номер удаляемого документаn»);

intdelete_id = Int32. Parse (Console. ReadLine ());

List. El_Delete (delete_id);

}

else { Console. WriteLine («nСписок пустn»); Console. WriteLine (); }

break;

case 9:

if (List. check)

{

Console. WriteLine («Количество документов в списке» + List. count);

List. View ();

}

else { Console. WriteLine («nСписок пустn»); Console. WriteLine (); }

break;

case 0: Console. WriteLine («nЗавершение программы. Нажмите любую клавишу… n»);

break;

default: Console. WriteLine («nВыбран не правильный пункт меню. Повторите выбор: n»);

break;

}

}

while (i ≠ 0);

Console. ReadLine ();

}

}

}

ПоказатьСвернуть
Заполнить форму текущей работой