Пример готовой дипломной работы по предмету: Информационные технологии
Содержание
Алгоритм добавления ПЕРЕД заданным элементом:
• проверка возможности добавления
• если добавление возможно — поиск заданного элемента
• если заданный элемент найден в ячейке с номером i, то для вставки нового элемента в эту ячейку i надо ее освободить, сдвинув все элементы с i до последнего вправо на одну ячейку, опять же начиная с последней ячейки
• в освободившуюся ячейку i заносится новый элемент
• увеличивается счетчик числа элементов
Алгоритм удаления заданного элемента:
• проверка возможности удаления (есть ли в списке элементы)
• если список не пустой — поиск удаляемого элемента
• если удаляемый элемент найден в ячейке с номером i, то он извлекается из этой ячейки и обрабатывается необходимым образом
• для сохранения естественного порядка элементов надо сдвинуть все элементы с (i+1) до последнего ВЛЕВО на одну ячейку, используя обычный цикл с шагом (+1)
• уменьшить счетчик числа элементов
Как видно из приведенных алгоритмов, добавление и удаление требуют выполнения сдвиговых операций. Особенно существенным это становится при частом добавлении или удалении элементов в начале массива-списка. Если элементы списка являются большими блоками данных и число элементов достаточно велико (сотни тысяч и миллионы), выполнение сдвиговых операций может привести к замедлению работы программы. Поэтому на практике необходимо выполнить оценку трудоемкости данной реализации, исходя из имеющихся вычислительных ресурсов. Возможное улучшение — использование не массива записей, а массива указателей на записи.
Листинги всех подпрограмм
//—————————————————————————
{ Модуль Unit 1 (Демо-модуль)}
//—————————————————————————
unit Unit 1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, Process, InfObj, SubTaskManager, ComCtrls,
Buttons;
type
TForm 1 = class(TForm)
lbl 1: TLabel;
btn 1: TButton;
lbl 2: TLabel;
btn 2: TButton;
btn 3: TButton;
btn 4: TButton;
lbl 4: TLabel;
btn 5: TButton;
btn 6: TButton;
mm 1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
edt 1: TEdit;
edt 2: TEdit;
edt 3: TEdit;
lbl 3: TLabel;
btn 7: TBitBtn;
lst 1: TListBox;
lst 2: TListBox;
dlgOpen 1: TOpenDialog;
dlgSave 1: TSaveDialog;
lbl 5: TLabel;
lbl 6: TLabel;
edt 4: TEdit;
lbl 7: TLabel;
lbl 8: TLabel;
lbl 9: TLabel;
lbl 10: TLabel;
lbl 11: TLabel;
procedure FormCreate(Sender: TObject);
procedure btn 6Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure edt 2KeyPress(Sender: TObject; var Key: Char);
procedure edt 3KeyPress(Sender: TObject; var Key: Char);
procedure btn 5Click(Sender: TObject);
procedure btn 1Click(Sender: TObject);
procedure btn 2Click(Sender: TObject);
Выдержка из текста
1. Постановка задачи
1.1. Цель курсовой работы
Создать набор собственных взаимосвязанных классов, реализующий динамический стек массивов-списков в объектной реализации. Контейнер предназначен для хранения и обработки данных информационной задачи “Процессы и потоки” и представляет собой двухуровневую структуру данных, в которой уровни реализуются разными способами –
один динамически с использованием адресных связей, другой – статически на базе массива.
Объекты задачи “Процессы и потоки”:
• Информационные объекты: потоки выполнения процессов в ОС (свойства: НомерПотока, СостояниеПотока);
• Потоки объединяются в рамках объекта Процесс (свойство: НомерПроцесса);
• Процессы объединяются в рамках объекта-контейнера ПодсистемаУправленияЗадачами (свойство – тип ОС).
1.2. Требования к реализации:
• полная объектная реализация с определением классов для всех элементов; реализуемой структуры: информационные объекты, объекты- массивы-списки, объект-контейнер;
• соблюдение принципа инкапсуляции – использование в классах только закрытых свойств и реализация необходимого набора методов доступа;
• реализация в классах всех необходимых методов: конструкторы, методы доступа к свойствам, методы добавления и удаления на каждом из двух уровней;
• возможность сохранения всей структуры во внешнем файле с обратной загрузкой;
• наличие модуля, демонстрирующего все возможности созданной библиотеки классов и обладающего удобным оконным пользовательским интерфейсом;
• язык и среда разработки: Delphi.
Список использованной литературы
Список используемой литературы
1. Бабушкина И.А., Окулов С.М. Практикум по объектно-ориентированному программированию. – М: Бином, 2012.
2. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. – СПб.: Питер, 2001.
3. Иванова Г.С. и др. Объектно-ориентированное программирование. – М.: МГТУ им. Баумана, 2007.
4. Козин А.Н., Таренко Л.Б. Структуры и алгоритмы обработки данных. Учебное пособие. – Изд. Академии управления «ТИСБИ», 2010
5. Кьоу Дж., Джеанини М. Объектно-ориентированное программирование. Учебный курс. – СПб.: Питер, 2005.
6. Пышкин Е.В. Основные концепции и механизмы объектно-ориентированного программирования. – СПб.: БХВ-Петербург, 2005.