Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

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

Читайте также:
  1. III. Руководство для преподавателя
  2. III. Ход тушения, руководство тушением пожара.
  3. Взаимодействие с пользователями через простейшие диалоги.
  4. Выполнение действий над пользователями системы
  5. Где искать руководство для жизни?
  6. Инструкция для пользователя.
  7. Краткое руководство на случаи кашля, простуды и гриппа

Для запуска программы необходимо открыть файл Project2.exe.

Для того чтобы создать список элементов (сведенья о принтерах) необходимо нажать кнопку «F9» для запуска программы. После чего зайти в «меню» и нажать команду «Создать список», либо «Загрузить список». После этого требуется нажать кнопку «Просмотр списка». После того как все элементы внесены в список можно его сохранить нажав на кнопку «Сохранить список».

Также можно удалить элемент из списка при помощи кнопки «Удалить». Для этого требуется ввести в поле «Удалить элемент №» номер элемента, который Вы хотите удалить, а затем нажать кнопку «Просмотр списка» для просмотра результата удаления.

Мы можем произвести поиск по интересующим нас элементам. Требуется только кликнуть на команду «Меню» и выбрать команду «Поиск». Для этого с помощью синтаксического анализатора нужно выбрать интересующую нас строку (по названию, по фирме изготовителю, по качеству) и затем нажимаем кнопку «Найти».

Также в меню есть вспомогательные кнопки (команды), при нажатии которых выводится информация об авторе, задание курсовой работы, сохраняются данные списка, загружаются данные, раннее сохраненные, и кнопка выхода из программы.

Вывод:

В процессе выполнения курсового проекта я достигла цель построения двунаправленного неупорядоченного списка, а также некоторые операции над данным списком (создание, добавление элемента, удаление элемента, удаление списка, организация синтаксического анализатора, сохранение и загрузка файла). А также я научилась разрабатывать программу в объектно-ориентированной среде Borland Delphi 7.0 на языке Object Pascal, позволяющую организовать работу со списком.

В результате подготовки теоретического материала я научилась строить алгоритмы реализации различных операций при работе со списком. Эти алгоритмы были реализованы в программной среде Borland Delphi 7.0. Также в этой курсовой работе я закрепила свои теоретические знания, узнала много нового и интересного для себя, получила практические навыки.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ:

1. Л. А. Гнучих, Є. М. Литвиненко, О. В. Мерлак-.Моделі та структури даних. Частина 1. Структура даних: Навчально-методичний посібник. - Харків: ХДТУБА, 2006. - 78 с.

2. Є. М. Литвиненко -Методичні вказівки до виконання лабораторних робіт з дисципліни "Моделі та структури даних". Розділ "Побудова баз даних". Для студентів спец. 6.050102 "Економічна кібернетика". - Харків: ХДТУБА, 2007. - 48 с.

3. Архангельский А.Я. Программирование в Delphi 7. – Т.: «Бином-Пресс»,2004.

4. Сухарев М.П. Turbo Pascal. – СПб: наука и техника, 2004

5. http://delphi.icm.edu.pl/ Delphi Super page

6. Конспект лекций по Моделям и структурам данных.

7. Учебное пособие по делфи в електронном виде.

8. Бакнелл. Фундаментальные алгоритмы и структуры данных в Delphi. «Питер».

9. Бобровский С.И. Delphi 7. Учебный курс – СПб.: Питер, 2004. – 736 с.:

 

Приложение А

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

unit Unit1;

 

interface

 

uses

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

Dialogs, Menus, StdCtrls, ExtCtrls, Grids, ActnList, Mask, ToolWin,

ActnMan, ActnCtrls, ActnMenus;

 

type

pr=^el;

 

el=record

typ:string[20];

kaches:integer;

firmaIzg:string[20];

naz:string[20];

next:pr;

pred:pr;

end;

FF=record

typ:string[20];

kaches:integer;

firmaIzg:string[20];

naz:string[20];

end;

 

TForm1 = class(TForm)

GroupBox1: TGroupBox;

sg2: TStringGrid;

Button4: TButton;

Button5: TButton;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

GroupBox2: TGroupBox;

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit3: TEdit;

Label3: TLabel;

Edit4: TEdit;

Label4: TLabel;

Edit5: TEdit;

Button2: TButton;

Prorisov: TButton;

sg: TStringGrid;

Button1: TButton;

Label7: TLabel;

Edit8: TEdit;

yaj1: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

cbPoisk: TComboBox;

Save: TSaveDialog;

Open: TOpenDialog;

N3: TMenuItem;

N4: TMenuItem;

procedure FormCreate(Sender: TObject);

procedure StrZap(k, l: integer);

procedure StrClear(nn: integer);

procedure ProrisovClick(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

//procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

 

private

{ Private declarations }

 

public

{ Public declarations }

top,endd:pr;

spissozdan:boolean;

end;

 

var n:pr;

Form1: TForm1;

 

 

implementation

 

uses Unit2, Unit3;

 

{$R *.dfm}

 

 

procedure TForm1.FormCreate(Sender: TObject);

begin

sg.Cells[0,0]:='№';

sg.Cells[1,0]:='Тип';

sg.Cells[2,0]:='Качество';

sg.Cells[3,0]:='Фирма изготовитель';

sg.Cells[4,0]:='Название';

 

sg2.Cells[0,0]:='№';

sg2.Cells[1,0]:='Тип';

sg2.Cells[2,0]:='Качество';

sg2.Cells[3,0]:='Фирма изготовитель';

sg2.Cells[4,0]:='Название';

 

N3.Visible:=false;

N5.Visible:=false;

end;

 

procedure TForm1.StrZap(k, l: integer);

begin

sg.Cells[0,k]:=inttostr(k);

sg.Cells[1,k]:=n^.typ;

sg.Cells[2,k]:=inttostr(n^.kaches);

sg.Cells[3,k]:=n^.firmaIzg;

sg.Cells[4,k]:=n^.naz;

end;

 

 

procedure TForm1.StrClear(nn: integer);

var t,c:integer;

begin

case nn of

1:

for t:=1 to sg.RowCount do

for c:=0 to 5 do

sg.Cells[c,t]:='';

2:

for t:=1 to sg2.RowCount do

for c:=0 to 5 do

sg2.Cells[c,t]:='';

end;

end;

 

procedure TForm1.ProrisovClick(Sender: TObject);

var n:pr;

i:integer;

begin

sg.Visible:=true;

n:=top;

sg.RowCount:=1;

i:=1;

while n<>nil do

begin

sg.RowCount:=sg.RowCount+1;

sg.FixedRows:=1;

sg.Cells[0,i]:=inttostr(i);

sg.Cells[1,i]:=n^.typ;

sg.Cells[2,i]:=inttostr(n^.kaches);

sg.Cells[3,i]:=n^.firmaIzg;

sg.Cells[4,i]:=n^.naz;

n:=n^.next;

i:=i+1;

end;

end;

 

procedure TForm1.N11Click(Sender: TObject);

begin

Form3.ShowModal;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

var vs,b:boolean;

st:string;

i:integer;

begin

b:=true;

if edit1.Text='' then

begin

b:=false;

application.MessageBox('Не правильно введено поле тип принтера','Ошибка', mb_ok);

end

else

if edit3.Text='' then

begin

b:=false;

application.MessageBox('Не правильно введено поле качество','Ошибка', mb_ok);

end

else

if edit4.Text='' then

begin

b:=false;

application.MessageBox('Не правильно введено поле фирма изготовитель','Ошибка', mb_ok);

end

else

if edit5.Text='' then

begin

b:=false;

application.MessageBox('Не правильно введено поле название принтера','Ошибка', mb_ok);

end;

 

 

if b=true then

begin

new(n);

n^.typ:=Edit1.Text;

n^.kaches:=strtoint(Edit3.Text);

n^.firmaIzg:=Edit4.Text;

n^.naz:=Edit5.Text;

vs:=false;

while vs= false do

begin

if endd=nil then

begin

n^.pred:=nil;

n^.next:=nil;

endd:=n;

top:=n;

spissozdan:=true;

vs:=true;

end

else

begin

endd^.next:=n;

n^.pred:=endd;

n^.next:=nil;

endd:=n;

vs:=true;

break;

end;

 

end;

edit1.Text:='';

edit3.Text:='';

edit4.Text:='';

edit5.Text:='';

end;

Prorisov.Enabled:=true;

N3.Visible:=true;

N5.Visible:=true;

end;

 

procedure TForm1.Button5Click(Sender: TObject);

begin

GroupBox1.Visible:=false;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var i:integer;

n:pr;

begin

n:=top;

if n=nil then

begin

Application.MessageBox('Список пуст!!!','Ошибка',mb_ok);

exit;

end;

 

if edit8.Text='' then

begin

Application.MessageBox('Введите № элемента, который хотите удалить!!!','Ошибка',mb_ok);

exit;

end;

if strtoint(edit8.Text)=1 then

begin

top:=n^.next;

top^.pred:=nil;

dispose(n);

end

else

begin

for i:=2 to strtoint(edit8.Text)do

n:=n^.next;

if n^.next=nil then

begin

endd:=n^.pred;

endd^.next:=nil;

dispose(n);

end

else

begin

endd:=n^.next;

endd^.pred:=n^.pred;

n^.pred^.next:=endd;

dispose(n);

end;

end;

edit8.Text:='';

end;

 

procedure TForm1.N2Click(Sender: TObject);

begin

GroupBox2.Visible:=true;

end;

 

procedure TForm1.N7Click(Sender: TObject);

begin

Form3.showmodal;

end;

 

procedure TForm1.N5Click(Sender: TObject);

begin

GroupBox1.Visible:=true;

end;

 

procedure TForm1.N8Click(Sender: TObject);

begin

form2.Show;

end;

 

procedure TForm1.N6Click(Sender: TObject);

begin

close;

end;

 

procedure TForm1.N3Click(Sender: TObject);

var fa:FF;

f:file of FF;

begin

try

n:=top;

if Save.Execute then

begin

AssignFile(f,Save.FileName+'.lbd');

rewrite(f);

repeat

fa.typ:=n^.typ;

fa.kaches:=n^.kaches;

fa.firmaIzg:=n^.firmaIzg;

fa.naz:=n^.naz;

write(f,fa);

n:=n^.Next;

until n=nil;

closefile(f);

end;

except

Application.MessageBox('Невозможно сохранить из-за неверных параметров','Ошибка',mb_ok);

end;

end;

 

procedure TForm1.N4Click(Sender: TObject);

var fa:FF;

f:file of FF;

i:integer;

begin

 

i:=0;

StrClear(1);

if open.Execute then

begin

AssignFile(f,open.FileName);

reset(f);

while not eof(f) do

begin

read(f,fa);

if i=0 then

begin

inc(i);

new(n);

n^.Next:=nil;

n^.Pred:=nil;

n^.typ:=fa.typ;

n^.kaches:=fa.kaches;

n^.firmaIzg:=fa.firmaIzg;

n^.naz:=fa.naz;

top:=n;

endd:=n;

end

else

begin

if i>=2 then sg.RowCount:=i+1;

new(n^.Next);

n:=n^.Next;

n^.typ:=fa.typ;

n^.kaches:=fa.kaches;

n^.firmaIzg:=fa.firmaIzg;

n^.naz:=fa.naz;

n^.Next:=nil;

n^.Pred:=endd;

endd:=n;

end;

StrZap(i,1);

inc(i);

end;

end;

 

GroupBox2.Visible:=true;

Prorisov.Enabled:=true;

N3.Visible:=true;

N5.Visible:=true;

end;

 

procedure TForm1.Button4Click(Sender: TObject);

var l,n:pr;

findZp:integer;

s:string;

begin

n:=top;

if cbPoisk.Text='' then

begin

Application.MessageBox('Введите данные поиска!!!','Ошибка',mb_ok);

exit;

end;

 

if n=nil then

begin

Application.MessageBox('Список пуст!!!','Ошибка',mb_ok);

exit;

end;

l:=n;

findzp:=0;

{ПОИСОК ПО НАЗВАНИЮ}

if pos('Название=',cbPoisk.Text)>0 then

begin

s:=copy(cbPoisk.Text,10,length(cbPoisk.Text));

StrClear(2);

while l<>nil do

begin

if l^.naz=s then

begin

findzp:=findzp+1;

if findzp>10 then sg2.RowCount:=sg2.RowCount+1;

sg2.Cells[0,findzp]:=inttostr(findzp);

sg2.Cells[1,findzp]:=l^.typ;

sg2.Cells[2,findzp]:=inttostr(l^.kaches);

sg2.Cells[3,findzp]:=l^.firmaIzg;

sg2.Cells[4,findzp]:=l^.naz;

end;

l:=l^.next;

cbPoisk.Text:='';

end;

exit;

end;

 

{ПОИСК ПО ФИРМА ИЗГОТОВИТЕЛЬ}

if pos('Фирма изготовитель=',cbPoisk.Text)>0 then

begin

s:=copy(cbPoisk.Text,20,length(cbPoisk.Text));

StrClear(2);

while l<>nil do

begin

if l^.firmaIzg=s then

begin

findzp:=findzp+1;

if findzp>10 then sg2.RowCount:=sg2.RowCount+1;

sg2.Cells[0,findzp]:=inttostr(findzp);

sg2.Cells[1,findzp]:=l^.typ;

sg2.Cells[2,findzp]:=inttostr(l^.kaches);

sg2.Cells[3,findzp]:=l^.firmaIzg;

sg2.Cells[4,findzp]:=l^.naz;

end;

l:=l^.next;

cbPoisk.Text:='';

end;

exit;

end;

 

{ПОИСК ПО КАЧЕСТВУ}

if pos('Качество>',cbPoisk.Text)>0 then

begin

s:=copy(cbPoisk.Text,10,length(cbPoisk.Text));

StrClear(2);

while l<>nil do

begin

if l^.kaches>strtoint(s) then

begin

findzp:=findzp+1;

if findzp>10 then sg2.RowCount:=sg2.RowCount+1;

sg2.Cells[0,findzp]:=inttostr(findzp);

sg2.Cells[1,findzp]:=l^.typ;

sg2.Cells[2,findzp]:=inttostr(l^.kaches);

sg2.Cells[3,findzp]:=l^.firmaIzg;

sg2.Cells[4,findzp]:=l^.naz;

end;

l:=l^.next;

cbPoisk.Text:='';

end;

exit;

end;

 

if pos('Качество<',cbPoisk.Text)>0 then

begin

s:=copy(cbPoisk.Text,10,length(cbPoisk.Text));

StrClear(2);

while l<>nil do

begin

if l^.kaches<strtoint(s) then

begin

findzp:=findzp+1;

if findzp>10 then sg2.RowCount:=sg2.RowCount+1;

sg2.Cells[0,findzp]:=inttostr(findzp);

sg2.Cells[1,findzp]:=l^.typ;

sg2.Cells[2,findzp]:=inttostr(l^.kaches);

sg2.Cells[3,findzp]:=l^.firmaIzg;

sg2.Cells[4,findzp]:=l^.naz;

end;

l:=l^.next;

cbPoisk.Text:='';

end;

exit;

end

 

else

begin

Application.MessageBox('Не правильно введены данные поиска!!!','Ошибка',mb_ok);

StrClear(2);

cbPoisk.Text:='';

end;

 

end;

 

end.

 

Приложение Б


Дата добавления: 2015-11-04; просмотров: 46 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Теоретическая часть| ПОЯСНЮВАЛЬНА ЗАПИСКА

mybiblioteka.su - 2015-2024 год. (0.056 сек.)