44418

Разработка информационной системы контроля знаний студентов

Курсовая

Информатика, кибернетика и программирование

Требования, предъявляемые к программе, предполагают использование объектно-ориентированного подхода при разработке программы. Данную программу можно реализовать на любом объектно-ориентированном языке программирования. Одним из наиболее распространенных на сегодня объектно-ориентированных языков программирования является Object Pascal.

Русский

2013-11-12

282.5 KB

14 чел.

- 26 -

Содержание

[1] Введение

[2] 1. Анализ технического задания

[3]
2. Определение требований к системе

[4] 3. Разработка модели данных

[4.1] 3.1 Построение логической модели БД

[4.2] 3.2 Построение физической модели БД

[5] 4. Разработка алгоритмов работы системы

[6] 5. Обеспечение требований к безопасности данных

[7] 6.Руководство по работе с системой

[7.1] 6.1 Руководство программиста

[7.2] 6.2. Руководство администратора

[7.3] 6.3. Руководство пользователя

[8] Заключение

[9] Список литературы

[10] Приложение А


Введение

Построение оптимальных карт раскроя материала является одной из самых трудоемких задач заготовительного производства. В тоже время это одна из самых важных задач в ресурсосберегающих технологиях, поскольку напрямую ведет к экономии материала и снижению отходов. В настоящее время для решения этой задачи активно используются все возрастающие возможности современных ЭВМ, что позволило значительно ускорить и упростить процесс генерации раскройных карт по сравнению с неавтоматизированными методами.

Еще одним преимуществом при использовании ЭВМ для получения раскройных карт является возможность интеграции процесса подготовки раскроя с процессом генерации управляющей программы для станков термической резки, что позволяет значительно снизить трудоемкость и уменьшить время процесса подготовки управляющих программ. Следует также отметить, что максимальная эффективность может быть достигнута только в случае полной автоматизации процессов раскроя и подготовки управляющих программ. Большую роль в построении интегрированной программно-аппаратной системы играет наличие ЛВС, что позволяет передавать данные из одной подсистемы в другую без промежуточных носителей даже на большом удалении. Благодаря стремительному развитию компьютерных сетей, в том числе и Internet, в последние несколько лет широкое распространение получили системы позволяющие управлять процессом производства практически из любой точки Земли через web-интерфейс. Это позволило специалистам выполнять точную настройку оборудования и контролировать режимы его работы дистанционно, не выезжая на предприятие, что конечно положительно сказывается на качестве выпускаемой продукции.

Следует отметить, что на большинстве машиностроительных предприятий задача заготовительного производства, а, следовательно, и задача раскроя относятся к единичным задачам. Как следствие, задача построения оптимального раскроя на этих предприятиях стоит наиболее остро и к ней предъявляется больше требований по сравнению с той же задачей на предприятиях ориентированных на выпуск серийной продукции. Например, если на предприятиях выпускающих серийную продукцию в основном используют нормативные и технологические методы раскроя материалов, которые основаны на определенных правилах построения раскройных карт, не требующих получения оптимального раскроя, то при единичном производстве напротив главным становится получение наиболее оптимальной раскройной карты, за минимально возможное время.   


1. Анализ технического задания

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

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

Требования, предъявляемые к программе, предполагают использование объектно-ориентированного подхода при разработке программы. Данную программу можно реализовать на любом объектно-ориентированном языке программирования. Одним из наиболее распространенных на сегодня объектно-ориентированных языков программирования является Object Pascal. Язык Object Pascal позволяет получить код, сравнимый по быстродействию с кодом на Ассемблере. Borland Delphi – мощная среда разработки, обеспечивающая высокое качество кода на протяжении всего цикла разработки ПО, от проектирования до внедрения, является мощным RAD-инструментом, предоставляющим возможность программирования в стиле drag-and-drop, основанного на компонентах. Этот стиль программирования получил широкое распространение, практически вытеснив концепцию каркасов. Каркас это основа, скелет вашего приложения, который объединяет в себе все его части. Однако у каркасов есть существенный недостаток – вместо того чтобы сделать программирование более простым и гибким, каркасы вынуждают писать программы по заранее определенным жестким правилам. Несмотря на то, что каркасы действительно ускоряют разработку приложения, предоставляя в распоряжение разработчика многие из основных функций нормального Windows приложения, они сразу же встают на пути создания нестандартных программ, то есть практически невозможно сделать то, что каркас  не  предоставляет  или  изменить  сам  каркас. В  отличие  от каркасов компоненты никакой структуры не навязывают [2]. Есть ещё один аспект, на который необходимо обратить внимание: в Borland Delphi зашита невероятно мощная и чрезвычайно гибкая среда программирования баз данных, что немаловажно для разрабатываемой программы. По сути дела это первая среда программирования баз данных для Object Pascal. Интерфейс с базами данных во многих других системах Object Pascal состоит из набора объектов, которые являются лишь тонкими оболочками, скрывающими под собой низкоуровневые функции баз данных. Для таких объектов обычно требуются десятки параметров для открытия и присоединения к базе данных. Это не сравнится с полным набором drag-and-drop компонентов баз данных, встроенных в систему. Эта среда содержит полный набор управляющих элементов для работы с данными, которые вообще не требуют программирования.


2. Определение требований к системе

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

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

Также необходимо реализовать редактирование базы вопросов. Так как редактирование осуществляется администратором, необходимо предусмотреть реакцию на возможные ошибки администратора. Чтобы исключить возможность несанкционированного редактирования базы вопросов и изменения настроек программы, необходимо создать пароль для администратора.


3. Разработка модели данных

3.1 Построение логической модели БД

В программе необходимо реализовать базу данных для хранения базы вопросов. Поэтому необходимо выделить сущность «Вопросы». Атрибутами сущности «Вопросы» является:

  1.  Номер вопроса.
  2.  Текст вопроса.

Кроме текстов вопросов необходимо хранить варианты ответов. Поэтому выделим следующую сущность «Ответы». Атрибутами для этой сущности являются:

  1.  Номер вопроса.
  2.  Вариант ответа №1
  3.  Вариант ответа №2
  4.  Вариант ответа №3
  5.  Вариант ответа №4
  6.  Номер правильного ответа

Рассмотрев используемые данные, можно построить модель данных.

Вопросы

Ответы

Номер вопроса

Текст вопроса

Номер вопроса.

Вариант ответа №1

Вариант ответа №2

Вариант ответа №3

Номер правильного ответа

Рисунок 1 – Логическая модель данных

3.2 Построение физической модели БД

Рисунок 2 – Физическая модель данных


4. Разработка алгоритмов работы системы

Смена вопроса осуществляется выбором строки с соответствующим вопросом. При этом из базы данных подбирается варианты ответа, и генерируется динамический интерфейс для указания нужного ответа.

if(cur_q <> 0) then

 begin

   IBQuery2.Close;

   IBQuery2.SQL.Text := 'select * from temp where question = :q';

   IBQuery2.ParamByName('q').AsInteger := cur_q;

   IBQuery2.Open;

   IBQuery2.FetchAll;

   if IBQuery2.RecordCount > 0 then

   begin

     IBQuery2.SQL.Text := 'update temp set answer = :a where question = :q';

     IBQuery2.ParamByName('q').AsInteger := cur_q;

     IBQuery2.ParamByName('a').AsInteger := RadioGroup1.ItemIndex;

     IBQuery2.ExecSQL;

   end

   else

   begin

     IBQuery2.SQL.Text := 'insert into temp(question,answer) values(:q,:a)';

     IBQuery2.ParamByName('q').AsInteger := cur_q;

     IBQuery2.ParamByName('a').AsInteger := RadioGroup1.ItemIndex;

     IBQuery2.ExecSQL;

   end;

 end;

 RadioGroup1.Items.Clear;

 IBQuery1.Close;

 IBQuery1.ParamByName('question').AsInteger := IBTable1.FieldByName('ID_QUESTION').AsInteger;

 IBQuery1.Open;

 IBQuery1.FetchAll;

 IBQuery1.First;

 for i:=0 to IBQuery1.RecordCount-1 do

 begin

   RadioGroup1.Items.Add(IBQuery1.FieldByName('Answer').AsString);

   IBQuery1.Next;

 end;

 cur_q := IBTable1.FieldByName('ID_QUESTION').AsInteger;

 IBQuery2.SQL.Text := 'select answer from temp where question = :q ';

 IBQuery2.ParamByName('q').AsInteger := cur_q;

 IBQuery2.Open;

 IBQuery2.FetchAll;

 if(IBQuery2.RecordCount > 0) then

 begin

   IBQuery2.First;

   RadioGroup1.ItemIndex := IBQuery2.FieldByName('answer').AsInteger;

 end;

При указании варианта ответа выбранный ответ заносится во временную таблицу Temp:

IBQuery2.Close;

   IBQuery2.SQL.Text := 'select * from temp where question = :q';

   IBQuery2.ParamByName('q').AsInteger := cur_q;

   IBQuery2.Open;

   IBQuery2.FetchAll;

   if IBQuery2.RecordCount > 0 then

   begin

     IBQuery2.SQL.Text := 'update temp set answer = :a where question = :q';

     IBQuery2.ParamByName('q').AsInteger := cur_q;

     IBQuery2.ParamByName('a').AsInteger := RadioGroup1.ItemIndex;

     IBQuery2.ExecSQL;

   end

   else

   begin

     IBQuery2.SQL.Text := 'insert into temp(question,answer) values(:q,:a)';

     IBQuery2.ParamByName('q').AsInteger := cur_q;

     IBQuery2.ParamByName('a').AsInteger := RadioGroup1.ItemIndex;

     IBQuery2.ExecSQL;

   end;

 end;

При нажатии на кнопку Закончить необходимо определить количество верных ответов и вывести это на экран.

if(cur_q <> 0) then

 begin

   IBQuery2.Close;

   IBQuery2.SQL.Text := 'select * from temp where question = :q';

   IBQuery2.ParamByName('q').AsInteger := cur_q;

   IBQuery2.Open;

   IBQuery2.FetchAll;

   if IBQuery2.RecordCount > 0 then

   begin

     IBQuery2.SQL.Text := 'update temp set answer = :a where question = :q';

     IBQuery2.ParamByName('q').AsInteger := cur_q;

     IBQuery2.ParamByName('a').AsInteger := RadioGroup1.ItemIndex;

     IBQuery2.ExecSQL;

   end

   else

   begin

     IBQuery2.SQL.Text := 'insert into temp(question,answer) values(:q,:a)';

     IBQuery2.ParamByName('q').AsInteger := cur_q;

     IBQuery2.ParamByName('a').AsInteger := RadioGroup1.ItemIndex;

     IBQuery2.ExecSQL;

   end;

 end;

 IBQuery2.SQL.Text := 'select rigth from answers join temp on temp.question = answers.question and temp.answer = answers.answer_no';

 IBQuery2.Open;

 IBQuery2.First;

 sum := 0;

 for i:=1 to IBTable1.RecordCount do

 begin

   sum := sum + IBQuery2.FieldByName('rigth').AsInteger;

   IBQuery2.Next;

 end;

 ShowMessage('Правильных ответов ' + IntToStr(sum) + ' из ' + IntToStr(IBTable1.RecordCount));

 IBQuery2.SQL.Text := 'delete from temp';

 IBQuery2.ExecSQL;

 Close;

Для определения количества правильных ответов необходимо выполнить следующий запрос:

'select rigth from answers join temp on temp.question = answers.question and temp.answer = answers.answer_no'

Для работы с базой данных используются следующие компоненты:

  1.  IBDatabase – компонент подключения к серверу баз данных (СУБД).
  2.  IBTranzaction  - компонент для работы с механизмом транзакций.
  3.  IBTable  - компонент для доступа к таблицам БД.
  4.  DataSource – компонент для связи визуальных компонент отображения данных с невизуальными компонентами доступа к данным.
  5.  DBGrid – визуальный компонент отображения табличных данных.
  6.  IBQuery – компонент для выполнения запросов SQL к БД.


5. Обеспечение требований к безопасности данных

Необходимая безопасность данных обеспечивается на уровне СУБД Firebird.

Для подключения к базе данных используется системный пользователь SYSDBA (пароль masterkey). При необходимости можно добавит новых пользователей, для этого в системном каталоге СУБД имеется база данных security.fdb в которой располагаются роли пользователей, их имена и пароли.


6.Руководство по работе с системой

6.1 Руководство программиста

Программа состоит из исполнимого модуля Tester.exe, файла базы пользователей base.fdb. Данная программа тестировалась на компьютере следующей минимальной конфигурации:

  1.  процессор Pentium 133 МГц;
  2.  ОЗУ 256 МБ;
  3.  ОС Windows 98.

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

Используемые компоненты:

  1.  MainMenu – главное меню программы.
  2.  GroupBox – визуальный компонент для группировки компонент.
  3.  PageControl – компонент для реализации закладок на форме.
  4.  IBDatabase – компонент подключения к серверу баз данных (СУБД).
  5.  IBTranzaction  - компонент для работы с механизмом транзакций.
  6.  IBTable  - компонент для доступа к таблицам БД.
  7.  DataSource – компонент для связи визуальных компонент отображения данных с невизуальными компонентами доступа к данным.
  8.  DBGrid – визуальный компонент отображения табличных данных.
  9.  IBQuery – компонент для выполнения запросов SQL к БД.

6.2. Руководство администратора

Для корректной работы программы необходимо наличие СУБД Firebird 2.1 и выше. Данная СУБД является бесплатной и легко скачивается с официального сайта www.firebird.org. Возможна нормальная работа с аналогом – СУБД Interbase.

База данных должна располагается в каталоге с исполняемым файлом программы.

6.3. Руководство пользователя

 Чтобы войти в программу, запустите файл Raskroy.exe. После этого на экран будет выведено главное окно.

Рисунок 3 – главное окно программы

Список вопросов представлен в верхней части приложения:

Рисунок 4 – список вопросов

Текущий вопрос отмечается специальным знаком слева от текста:

Рисунок 5 – выбранный вопрос

Варианты ответа располагаются внизу формы:

Рисунок 6 – варианты ответа

Переход между вопросами осуществляется путем выделения их в верхнем списке. При этом проставленные ответы сохраняются в базе данных на время теста (они удалятся при его завершении.)

Для завершения теста необходимо нажать на кнопку Закончить.:

Рисунок 7 – Кнопка закончить

При завершении теста система подсчитает количество правильных ответов и выведет результаты в сообщении:

Рисунок 8 – Результаты теста

Для редактирования базы вопросов служит приложение Редактор теста.

Рисунок 9 – главное окно редактора вопросов

Для редактирования, добавления и удаления вопросов служит навигатор:

Рисунок 10 – кнопки редактирования вопросов

Для редактирования ответов на выбранный вопрос имеется специальная группа компонент в нижней части приложения:

Рисунок 11 – кнопки редактирования вопросов


Заключение

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

Все предъявленные требования к системе были выполнены.


Список литературы

1. Электронный вариант лекций по дисциплине «Технология программирования».

2. Электронный вариант лекций по дисциплине «ООП».


Приложение А

Листинг программы

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, IBQuery, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB,

 IBCustomDataSet, IBTable, IBDatabase,Unit2;

type

 TForm1 = class(TForm)

   IBDatabase1: TIBDatabase;

   IBTransaction1: TIBTransaction;

   IBTable1: TIBTable;

   DataSource1: TDataSource;

   Panel1: TPanel;

   DBGrid1: TDBGrid;

   Splitter1: TSplitter;

   Panel2: TPanel;

   IBQuery1: TIBQuery;

   RadioGroup1: TRadioGroup;

   Button1: TButton;

   IBQuery2: TIBQuery;

   procedure DataSource1DataChange(Sender: TObject; Field: TField);

   procedure FormShow(Sender: TObject);

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

 Form2: TForm2;

 cur_q:Integer;

implementation

{$R *.dfm}

procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);

var

 i:Integer;

begin

 if(cur_q <> 0) then

 begin

   IBQuery2.Close;

   IBQuery2.SQL.Text := 'select * from temp where question = :q';

   IBQuery2.ParamByName('q').AsInteger := cur_q;

   IBQuery2.Open;

   IBQuery2.FetchAll;

   if IBQuery2.RecordCount > 0 then

   begin

     IBQuery2.SQL.Text := 'update temp set answer = :a where question = :q';

     IBQuery2.ParamByName('q').AsInteger := cur_q;

     IBQuery2.ParamByName('a').AsInteger := RadioGroup1.ItemIndex;

     IBQuery2.ExecSQL;

   end

   else

   begin

     IBQuery2.SQL.Text := 'insert into temp(question,answer) values(:q,:a)';

     IBQuery2.ParamByName('q').AsInteger := cur_q;

     IBQuery2.ParamByName('a').AsInteger := RadioGroup1.ItemIndex;

     IBQuery2.ExecSQL;

   end;

 end;

 RadioGroup1.Items.Clear;

 IBQuery1.Close;

 IBQuery1.ParamByName('question').AsInteger := IBTable1.FieldByName('ID_QUESTION').AsInteger;

 IBQuery1.Open;

 IBQuery1.FetchAll;

 IBQuery1.First;

 for i:=0 to IBQuery1.RecordCount-1 do

 begin

   RadioGroup1.Items.Add(IBQuery1.FieldByName('Answer').AsString);

   IBQuery1.Next;

 end;

 cur_q := IBTable1.FieldByName('ID_QUESTION').AsInteger;

 IBQuery2.SQL.Text := 'select answer from temp where question = :q ';

 IBQuery2.ParamByName('q').AsInteger := cur_q;

 IBQuery2.Open;

 IBQuery2.FetchAll;

 if(IBQuery2.RecordCount > 0) then

 begin

   IBQuery2.First;

   RadioGroup1.ItemIndex := IBQuery2.FieldByName('answer').AsInteger;

 end;

end;

procedure TForm1.FormShow(Sender: TObject);

begin

 //IBQuery2.SQL.Text := 'delete from temp';

 //IBQuery2.ExecSQL;

 cur_q := IBTable1.FieldByName('ID_QUESTION').AsInteger;

end;

procedure TForm1.Button1Click(Sender: TObject);

var i,sum:integer;

begin

 if(cur_q <> 0) then

 begin

   IBQuery2.Close;

   IBQuery2.SQL.Text := 'select * from temp where question = :q';

   IBQuery2.ParamByName('q').AsInteger := cur_q;

   IBQuery2.Open;

   IBQuery2.FetchAll;

   if IBQuery2.RecordCount > 0 then

   begin

     IBQuery2.SQL.Text := 'update temp set answer = :a where question = :q';

     IBQuery2.ParamByName('q').AsInteger := cur_q;

     IBQuery2.ParamByName('a').AsInteger := RadioGroup1.ItemIndex;

     IBQuery2.ExecSQL;

   end

   else

   begin

     IBQuery2.SQL.Text := 'insert into temp(question,answer) values(:q,:a)';

     IBQuery2.ParamByName('q').AsInteger := cur_q;

     IBQuery2.ParamByName('a').AsInteger := RadioGroup1.ItemIndex;

     IBQuery2.ExecSQL;

   end;

 end;

 IBQuery2.SQL.Text := 'select rigth from answers join temp on temp.question = answers.question and temp.answer = answers.answer_no';

 IBQuery2.Open;

 IBQuery2.First;

 sum := 0;

 for i:=1 to IBTable1.RecordCount do

 begin

   sum := sum + IBQuery2.FieldByName('rigth').AsInteger;

   IBQuery2.Next;

 end;

 ShowMessage('Правильных ответов ' + IntToStr(sum) + ' из ' + IntToStr(IBTable1.RecordCount));

 IBQuery2.SQL.Text := 'delete from temp';

 IBQuery2.ExecSQL;

 Close;

end;

end.


 

А также другие работы, которые могут Вас заинтересовать

24425. Основные компоненты современных систем баз данных. Классификация и модели данных, реализуемых в СУБД 318 KB
  Классификация и модели данных реализуемых в СУБД. База данных это данные организованные в виде набора записей определенной структуры и хранящиеся в файлах где помимо самих данных содержится описание их структуры. Метаданные Данные о структуре базы данных.
24426. Язык манипулирования данными, концепции и возможности языка SQL. Функции администратора баз данных 181.5 KB
  Перечисленные устройства передают кадры с одного своего порта на другой анализируя адрес назначения помещенный в этих кадрах. По адресу источника кадра коммутатор делает вывод о принадлежности узлаисточника тому или иному сегменту сети. Одновременно с передачей кадра на все порты коммутатор изучает адрес источника кадра и делает запись о его принадлежности к тому или иному сегменту в своей адресной таблице. При каждом поступлении кадра на порт коммутатора он прежде всего пытается найти адрес назначения кадра в адресной таблице.
24427. Адреса и сети Интернет. Архитектура и методы использования баз данных на Web 52 KB
  10277 Стадии разработки: постановка задачи стадия Техническое задание; анализ требований и разработка спецификаций стадия Эскизный проект; проектирование стадия Технический проект; реализация стадия Технический проект. Проектирование. Процесс проектирование сложного ПО обычно включает: проектирование общей структуры определение основных частей компонентов и их взаимосвязей по управлению и данным; декомпозицию компонентов и построение структурных иерархий в соответствии с рекомендациями блочноиерархического подхода;...
24428. Классификации сайтов. Сервисы Интернет 40.5 KB
  Сервисы Интернет. Классификация сайтов Все многообразие информации в интернете обозначаемой одним емким словом сайт можно условно разделить по: задачам сайта цели его создания и фунционирования коммерческий некоммерческий информационный рекламный поисковая система. объемности хоумпейдж сайтывизитки интернетпредставительства вебпорталы и т. Интернет сервисы: Пользователь работающий в Интернет имеет дело с несколькими различными видами услуг.
24429. Концепция и возможности XML-технологий 67 KB
  Концепция и возможности XMLтехнологий. XML Extensible Markup Language[1] это язык разметки описывающий объектов данных называемых XML документами. сам по себе XML не содержит никаких тэгов предназначенных для разметки он просто определяет порядок их создания. Таким образом если например мы считаем что для обозначения элемента rose в документе необходимо использовать тэг flower ; то XML позволяет свободно использовать определяемый нами тэг и мы можем включать в документ фрагменты подобные следующему: flower rose flower Набор...
24430. Архитектура стека TCP/IP. Протокол IP. Заголовок IP-пакета. IP-адресация 238.5 KB
  Заголовок IPпакета. В его задачу входит продвижение пакета между сетями от одного маршрутизатора до другого до тех пор пока пакет не попадет в сеть назначения. Заголовок IPпакета IPпакет состоит из заголовка и поля данных. Значение длины заголовка IPпакета также занимает 4 бита и измеряется в 32 битовых словах.
24431. Протокол ARP. Протокол ICMP. Протокол UDP 124 KB
  Протокол ARP. Протокол ARP: Для определения локального адреса MAC по IPадресу используется протокол разрешения адресов Address Resolution Protocol ARP. Существует два варианта работы APR: локальная сеть с поддержкой широковещания глобальная сеть без широковещения Рассмотрим работу протокола ARP в локальных сетях с широковещанием. Для решения этой задачи протокол IP обращается к протоколу ARP.
24432. Протокол TCP. Формат заголовка TCP 135.5 KB
  Протокол TCP. Формат заголовка TCP. TCP Transmission Control Protocol гарантированный протокол транспортного уровня с предварительным установлением соединения предоставляющий приложению надёжный поток данных дающий уверенность в безошибочности получаемых данных перезапрашивающий данные в случае потери и устраняющий дублирование данных. Протокол TCP взаимодействует через межуровневые интерфейсы с ниже лежащим протоколом IP и с выше лежащими протоколами прикладного уровня или приложениями.
24433. Принципы одноадресной маршрутизации. Структура и типы записей таблицы маршрутизации. Протоколы маршрутизации 72 KB
  Принципы одноадресной маршрутизации. Структура и типы записей таблицы маршрутизации. Протоколы маршрутизации. Полученная в результате анализа информация о маршрутах дальнейшего следования пакетов помещается в таблицу маршрутизации.