Реферат

Реферат Практика

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 26.12.2024





ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение среднего профессионального образования

Уфимский колледж статистики информатики и вычислительной техники









Отчет по практике


Руководитель практики              __________К.Н. Засыпкин

«___» ____________2009г.


Выполнила студентка гр. 4П-3

____________Шитиков С.С.

«___» ____________2009г.



2009


СОДЕРЖАНИЕ:

Введение.

1. Структура и функции учреждения.

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

3. Техническое задание.

4. Описание входной и выходной информации.

5. Экспериментальный раздел .

6. Приложение.

6.1.Исходный текст программы.

6.2.Результаты контрольного примера.


ВВЕДЕНИЕ

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

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


1.
Структура и функции учреждения


Учреждение представляет собой аппарат по предоставлению проекционного оборудования. Учреждение на основании договоров о бухгалтерском обслуживании обеспечивает свою хозяйственную деятельность на  программе 1С: бухгалтерия 7.7.

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

Отдел оснащен персональными ЭВМ, средствами бесперебойного питания, ТСИ. В учреждении используется только лицензионное программное обеспечение.


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


Описание предметной области

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

- Издательство;

- Автор;

- Название;

- Тираж;

- Цена.

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

-бухгалтеры материального стола;

-кладовщики.

При работе с системой секретарь выполняет следующие функции:

- Принимает заявки от магазинов;

- Оформляет заявки на новые книги в издательство;

- Ведет учет полностью обработанных и частично обработанных заявок.

            Кладовщик ведет учет поступления книги от издательств и выдачу книг магазинам.

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

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

Задача выполняется по мере поступления книг на склад или получения заявок от магазинов.

3. Техническое задание

Введение


Наименование – УП и ВК.

Краткая характеристика – информационная система для учета получения и выдачи книг на складе.

Основание для  разработки


Задание Проект-Центра для выполнения дипломной работы.

Назначение разработки


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

Требование к программе

Требования к функциональным характеристикам


-     Редактор должен работать в многооконном графическом режиме и поддерживать работу, как клавиатуры, так и манипулятора типа «мышь»;

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

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

-     Программа должна обеспечивать возможность просмотра, вывода на печать или передача в текстовые редакторы отчетов.

Требования к надежности


-     Программа должна обрабатывать ошибочные действия пользователя и сообщать ему об этом;

-     Программа должна обеспечить контроль входной и выходной информации в форме файлов.

-       В программе должно быть предусмотрено резервное копирование.  


Требования к составу и параметрам технических средств


          Программное обеспечение разрабатывается для персональной вычислительной техники типа не ниже IBM PC – 386 со следующими характеристиками:

-     Объем ОЗУ не ниже 4 Мбайт;

-     Графический адаптер SVGA;

-     Клавиатура и манипулятор типа «мышь».

     ЭВМ должна работать под управлением операционной системы не ниже Win 98.

Требования к информационной и программной совместимости


-     Требование информационной совместимости должно быть обеспечено работой с файлами определенной структуры в качестве входной и выходной информации;

-     На компьютере должны быть установлены соответствующие библиотеки для работы с удаленными базами данных, с помощью технологии доступа ADO.



4. Описание входной и выходной информации.

Входной информацией является:

-        Список книг, поступающий из издательства по мере требования;

-        Список заявок, поступающий из магазинов по мере требования;

Таблица 1. Описание входных документов

Наименование документа (шифр)

Дата поступления документа

Откуда поступает документ

Список книг

По мере требования

Издательство

Список заявок

По мере требования

Магазин



Таблица 2. Описание реквизитов входных документов

Наименование документа

Наименование реквизита

Шифр реквизита

Форма представления

Длина

байт

Список книг

Издательство

Издательство

Строка

10

Название книги

Название книги

Строка

10

Автор

Автор

Строка

10

Тираж

Тираж

Число

-

Цена

Цена

Число

-

Список заявок

Название магазина

Магазин

Строка

10

Название книги

Название книги

Строка

10

Автор

Автор

Строка

10

Требуемое количество

Треб. кол

Число

-

Формы входных документов

Список книг

Издательство

Название книги

Автор

Тираж

Цена































Список заявок

Магазин

Название книги

Автор

Требуемое количество


























Описание выходной информации

Выходной информацией является:

-        Ведомость удовлетворенных заказов;

-        Ведомость неудовлетворенных заказов;

-        Сводная ведомость;

Таблица 4. Описание выходных документов

Наименование документа



Периодичность выдачи



Срок выдачи



Количество экземпляров

Куда передается

Ведомость удовлетворенных заказов



Каждый месяц



1 день


1

В бухалтерию

Ведомость неудовлетворенных заказов



Каждый месяц



1 день


1

В бухалтерию

Сводная ведомость

Каждый месяц



1 день


1

В бухалтерию


Таблица 5. Описание реквизитов выходных документов

Наименование документа

Наименование реквизита

Шифр реквизита

Форма представления

Длина

байт

1

2

3

4

5

Ведомость удовлетворенных заказов

Номер заказа

№ группы

Число

10

Название магазина


Магазин


Строка


10


Название книги

Наз. книги

Строка

10

Фамилия автора

Автор

Строка

10

Название издательства

Издательство

Строка

10

Количество выданных книг

Выдано

Число

-



Ведомость неудовлетворенных заказов



Номер заказа

№ заказа



Число



-

Название магазина

Магазин



Строка



10



Название книги

Наз. книги

Строка

10

Фамилия автора


Автор


Строка


10


Требуемое количество

Треб. кол

Число

-

Сводная ведомость



Название издательства

Издательство

Строка

10

Название книги


Наз. книги


Строка


10


Фамилия автора

Автор

Строка

10

Количество выданных книг



Выдано



Число



-



Цена выданных книг

Сумма

Число

-


Формы выходных документов

Ведомость удовлетворенных заявок

№ заказа

Магазин

Название книги

Автор

Издательство

Выдано



















































Ведомость неудовлетворенных заявок

№ заказа

Магазин

Название книги

Автор

Треб. кол-во











































Сводная ведомость

Издательство

Название книги

Автор

Кол-во книг

Сумма















































Итого:




5. Экспериментальный раздел

Обоснование выбора языка программирования

Для создания программы использовалась среда разработки Delphi. Delphi - язык и среда программирования, относящаяся к классу RAD (Rapid Application Development - “Средство быстрой разработки приложений”) средств CASE - технологии. Delphi сделала разработку мощных приложений Windows быстрым процессом, доставляющим вам  удовольствие.  Приложения Windows, для создания которых требовалось большое количество человеческих усилий например в С++, теперь могут быть написаны одним человеком, использующим Delphi.

Интерфейс Windows обеспечивает полное перенесение CASE-технологий в интегрированную систему поддержки работ по созданию прикладной системы на всех фазах жизненного цикла работы и проектирования системы. Delphi обладает широким набором возможностей, начиная от проектировщика форм и кончая поддержкой всех форматов популярных баз данных. Среда устраняет необходимость программировать такие компоненты Windows общего назначения, как метки, пиктограммы и даже диалоговые панели. Работая в Windows , можно видеть  одинаковые  “объекты”  во  многих разнообразных приложениях. Диалоговые панели (например Choose File и Save File) являются примерами многократно используемых компонентов, встроенных непосредственно в Delphi, который позволяет приспособить эти компоненты к имеющийся задаче, чтобы они работали именно так, как требуется создаваемому приложению. Также здесь имеются предварительно определенные визуальные и невизуальные объекты, включая кнопки, объекты с данными, меню и уже построенные диалоговые панели. С помощью этих объектов можно, например, обеспечить ввод данных просто несколькими нажатиями кнопок мыши,  не прибегая к программированию. Это наглядная реализация применений CASE- технологий в современном программировании приложений. Та часть, которая непосредственно связана  с  программированием  интерфейса  пользователя системой, получила название визуальное программирование.

Выгоды от проектирования в среде Windows с помощью Delphi:

-        Устраняется необходимость в повторном вводе данных;

-        Обеспечивается согласованность проекта и его реализации;

-        Увеличивается производительность разработки и переносимость программ.

Визуальное программирование как бы добавляет новое измерение при создании приложений, давая возможность изображать эти объекты на экране монитора до выполнения самой программы. Без визуального программирования процесс отображения требует написания фрагмента  кода,  создающего  и настающего объект “по месту”. Увидеть закодированные объекты было возможно только в ходе исполнения программы. При таком подходе достижение того, чтобы объекты выглядели и вели  себя  заданным  образом,  становится утомительным  процессом,  который  требует  неоднократных  исправлений программного кода с последующей прогонкой программы и наблюдения за тем, что в итоге получилось.

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

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

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

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

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

Особый упор при внедрении данных задач следует, конечно, придавать современным CASE-средствам разработки программ, так как они  наиболее оптимально позволяют проектировать решения, в основе которых лежат, в первую очередь, требования к согласованному пользовательскому интерфейсу, каковым и является интерфейс Windows. Никакие продукты других  фирм, доступные сегодня, не обеспечивают одновременную простоту использования, производительность и гибкость в такой степени, как Delphi. Этот язык заполнил брешь между языками 3-го и 4-го поколений, соединив их сильные стороны и создав мощную и производительную среду разработки.


6.
Приложение.


6.1.Исходный текст программы.

unit Unit1;

interface

uses

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

  Dialogs, Menus, DB, DBTables, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls, registry,

  ComCtrls;

type

  TForm1 = class(TForm)

    DBGrid1: TDBGrid;

    DBGrid2: TDBGrid;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    GroupBox1: TGroupBox;

    GroupBox2: TGroupBox;

    StatusBar1: TStatusBar;

    Timer1: TTimer;

    N25: TMenuItem;

    DBGrid3: TDBGrid;

    N6: TMenuItem;

    N9: TMenuItem;

    N11: TMenuItem;

    N12: TMenuItem;

    N13: TMenuItem;

    N16: TMenuItem;

    N17: TMenuItem;

    N18: TMenuItem;

    N19: TMenuItem;

    N20: TMenuItem;

    N21: TMenuItem;

    N22: TMenuItem;

    N2: TMenuItem;

    procedure clearf2;

    procedure N12Click(Sender: TObject);

    procedure FormShow(Sender: TObject);

    procedure find(kol:integer);

    procedure Timer1Timer(Sender: TObject);

    procedure N25Click(Sender: TObject);

    procedure N9Click(Sender: TObject);

    procedure FormActivate(Sender: TObject);

    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

    procedure N11Click(Sender: TObject);

    procedure N18Click(Sender: TObject);

    procedure N19Click(Sender: TObject);

    procedure N17Click(Sender: TObject);

    procedure N21Click(Sender: TObject);

    procedure N22Click(Sender: TObject);

    procedure N2Click(Sender: TObject);

  end;

var

  F1: TForm1;

  kn,q,w,i,j:integer;

implementation

uses Unit2, Unit3, Unit4, Unit5, Unit6;

{$R *.dfm}

procedure TForm1.find(kol:integer);

var v:boolean;

begin

v:=true;

f3.SG1.Cells[0,0]:='№ заказа';

f3.SG1.Cells[1,0]:='Магазин';

f3.SG1.Cells[2,0]:='Название книги';

f3.SG1.Cells[3,0]:='Автор';

f3.SG1.Cells[4,0]:='Треб. кол-во';

f3.SG1.ColCount:=5;

f3.SG1.Width:=515;

f3.Width:=530;

if kol=0 then

begin

f3.SG1.Cells[4,0]:='Издательство';

f3.SG1.Cells[5,0]:='Выдано';

f3.SG1.ColCount:=6;

f3.SG1.Width:=615;

f3.Width:=630;

end;

f3.SG1.RowCount:=1;

i:=1;

DM6.T2.RecNo:=1;

while not(DM6.T2.Eof) do

begin

if kol=0 then

  begin

    if DM6.T2.FieldByName('Треб. кол').AsInteger=0 then

      begin

      f3.SG1.Cells[0,i]:=DM6.T2.FieldByName('№ заказа').AsString;

      f3.SG1.Cells[1,i]:=DM6.T2.FieldByName('Магазин').AsString;

      f3.SG1.Cells[2,i]:=DM6.T2.FieldByName('Наз. книги').AsString;

      f3.SG1.Cells[3,i]:=DM6.T2.FieldByName('Автор').AsString;

      DM6.T3.RecNo:=1;

        while not(DM6.T3.Eof) do

          begin

           if DM6.T2.FieldByName('№ заказа').AsString=DM6.T3.FieldByName('№ заказа').AsString then

              begin

              f3.SG1.Cells[4,i]:=DM6.T3.FieldByName('Издательство').AsString;

              f3.SG1.Cells[5,i]:=DM6.T3.FieldByName('Выдано').AsString;

              inc(i);

              f3.SG1.RowCount:=f3.SG1.RowCount+1;

              DM6.T3.Delete;

              end

            else

            DM6.T3.Next;

  end;

      DM6.T2.Delete;

      end

    else

      DM6.T2.Next;     

  end;

if kol<>0 then

begin

if DM6.T2.FieldByName('Треб. кол').AsInteger>0 then

begin

f3.SG1.Cells[0,i]:=DM6.T2.FieldByName('№ заказа').AsString;

f3.SG1.Cells[1,i]:=DM6.T2.FieldByName('Магазин').AsString;

f3.SG1.Cells[2,i]:=DM6.T2.FieldByName('Наз. книги').AsString;

f3.SG1.Cells[3,i]:=DM6.T2.FieldByName('Автор').AsString;

f3.SG1.Cells[4,i]:=DM6.T2.FieldByName('Треб. кол').AsString;

inc(i);

f3.SG1.RowCount:=f3.SG1.RowCount+1;

end;

DM6.T2.Next;

end;

end;

end;

procedure TForm1.clearf2;

begin

f2.Edit1.Clear;

f2.Edit2.Clear;

f2.Edit3.Clear;

f2.Edit4.Clear;

f2.Edit5.Clear;

f2.Edit4.SetFocus;

end;

procedure clearf3;

begin

for w:=0 to f3.SG1.Rowcount do

for i:=0 to f3.SG1.ColCount do

f3.SG1.Cells[w,i]:=' ';

end;

procedure TForm1.N12Click(Sender: TObject);

begin

f2.ComboBox1.Visible:=false;

f2.Edit1.Visible:=true;

f2.Edit2.Visible:=true;

f2.Edit3.Visible:=true;

f2.Edit4.Visible:=true;

f2.Edit5.Visible:=true;

f2.Label1.Visible:=true;

f2.Label2.Visible:=true;

f2.Label3.Visible:=true;

f2.Label4.Visible:=true;

f2.Label5.Visible:=true;

f2.Button1.Caption:='Добавить';

f2.Label3.Caption:='Тираж';

f2.Label4.Caption:='Издательство';

f2.Caption:='Получение книг';

f2.Width:=652;

f2.Height:=135;

f2.Button1.Top:=40;

f2.Button2.Top:=70;

f2.Show;

clearf2;

kn:=2;

end;

procedure TForm1.FormShow(Sender: TObject);

begin

f5.Visible:=false;

f4.Visible:=false;

if unit5.user then N6.Enabled:=false;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

StatusBar1.Panels[0].Text:=DateTimeToStr(now);

end;

procedure TForm1.N25Click(Sender: TObject);

begin

i:=1;

if MessageBox(0,'Отправить заявку в издательство','Информация',mb_YesNo)=6 then

begin

f3.sg1.Cells[0,0]:='Название книги';

f3.SG1.Cells[1,0]:='Автор';

f3.SG1.Cells[2,0]:='Требуемое кол-во книг';

DM6.T2.RecNo:=1;

f3.Caption:='Список требуемых книг';

f3.SG1.ColCount:=3;

f3.SG1.RowCount:=2;

while not(DM6.T2.Eof) do

begin

if DM6.T2.FieldByName('Треб. кол').Asinteger>0 then

f3.SG1.Cells[0,i]:=DM6.T2.FieldByName('Наз. книги').AsString;

f3.SG1.Cells[1,i]:=DM6.T2.FieldByName('Автор').AsString;

f3.SG1.Cells[2,i]:=DM6.T2.FieldByName('Треб. кол').AsString;

inc(i);

f3.SG1.RowCount:=f3.SG1.RowCount+1;

DM6.T2.Next;

end;end;

f3.SG1.RowCount:=f3.SG1.RowCount-1;

F3.Show;

end;

procedure TForm1.N9Click(Sender: TObject);

begin

f4.show;

f4.Caption:='Изменить пароль';

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

DBGrid1.Columns[0].Width:=15;

DBGrid2.Columns[0].Width:=45;

DBGrid3.Columns[0].Width:=45;

end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

if MessageBox(0,'Вам что выйти захотелось? (Да/Нет)','Выход',mb_YesNo)=6 then

begin

application.Destroying;

f5.Close;

f4.close;

end;end;

procedure TForm1.N11Click(Sender: TObject);

begin

f2.Caption:='Удаление записей';

f2.Button1.Caption:='Удалить';

f2.Show;

kn:=3;

f2.ComboBox1.ItemIndex:=-1;

f2.ComboBox1.Visible:=true;

f2.ComboBox1.Text:='';

f2.Button1.Top:=80;

f2.Button2.Top:=110;

f2.Label1.Visible:=false;

f2.Label2.Visible:=false;

f2.Label3.Visible:=false;

f2.Label5.Visible:=false;

f2.Label6.Visible:=true;

f2.Edit1.Visible:=false;

f2.Edit2.Visible:=false;

f2.Edit3.Visible:=false;

f2.Edit5.Visible:=false;

f2.Label4.Caption:='Номер ID записи или номер заказа';

f2.Height:=175;

f2.Width:=225;

clearf2;

end;

procedure TForm1.N18Click(Sender: TObject);

begin

f3.Show;

f3.Caption:='Ведомость для удовлетворённых заказов';

clearf3;

find(0);

end;

procedure TForm1.N19Click(Sender: TObject);

begin

f3.Show;

f3.Caption:='Ведомость для неудовлетворённых заказов';

clearf3;

find(1);

end;

procedure TForm1.N17Click(Sender: TObject);

var sum:integer;

begin

f3.Show;

f3.SG1.RowCount:=1;

clearf3;

f3.Caption:='Сводная ведомость';

f3.SG1.Cells[0,0]:='Издательство';

f3.SG1.Cells[1,0]:='Название книги';

f3.SG1.Cells[2,0]:='Автор';

f3.SG1.Cells[3,0]:='Кол-во книг';

f3.SG1.Cells[4,0]:='Сумма';

f3.SG1.ColCount:=5;

w:=1;

i:=1;

sum:=0;

DM6.T3.RecNo:=1;

while not(DM6.T3.eof) do

begin

f3.SG1.Cells[0,i]:=DM6.T3.FieldByName('Издательство').AsString;

DM6.T2.Locate('№ заказа',DM6.T3.FieldByName('№ заказа').AsInteger,[]);

f3.SG1.Cells[1,i]:=DM6.T2.FieldByName('Наз. книги').AsString;

f3.SG1.Cells[2,i]:=DM6.T2.FieldByName('Автор').AsString;

f3.SG1.Cells[3,i]:=DM6.T3.FieldByName('Выдано').AsString;

f3.SG1.Cells[4,i]:=DM6.T3.FieldByName('Сумма').AsString;

sum:=sum+DM6.T3.FieldByName('Сумма').asInteger;

inc(i);

f3.SG1.RowCount:=f3.SG1.RowCount+1;

DM6.T3.Next;

end;

f3.SG1.RowCount:=f3.SG1.RowCount+1;

f3.SG1.Cells[3,i]:='Итого:';

f3.SG1.Cells[4,i]:=inttostr(sum);

end;

procedure TForm1.N21Click(Sender: TObject);

begin

f2.Edit5.Visible:=false;

f2.Label5.Visible:=false;

f2.Label1.Visible:=true;

f2.Label2.Visible:=true;

f2.Label3.Visible:=true;

f2.Label6.Visible:=true;

f2.Edit1.Visible:=true;

f2.Edit2.Visible:=true;

f2.Edit3.Visible:=true;

f2.Label4.Caption:='Магазин';

f2.ComboBox1.Visible:=false;

f2.Button1.Caption:='Отправить заявку';

f2.Button1.Top:=40;

f2.Button2.Top:=70;

f2.Caption:='Заявка на книгу';

f2.Width:=525;

f2.Height:=135;

f2.show;

kn:=0;

clearf2;

end;

procedure TForm1.N22Click(Sender: TObject);

begin

f2.Edit5.Visible:=false;

f2.Label5.Visible:=false;

f2.Label1.Visible:=true;

f2.Label2.Visible:=true;

f2.Label3.Visible:=true;

f2.Label6.Visible:=true;

f2.Edit1.Visible:=true;

f2.Edit2.Visible:=true;

f2.Edit3.Visible:=true;

f2.Label4.Caption:='Магазин';

f2.ComboBox1.Visible:=false;

f2.Button1.Caption:='Отправить заявку';

f2.Button1.Top:=40;

f2.Button2.Top:=70;

f2.Caption:='Заявка на дополнительный тираж';

f2.Width:=525;

f2.Height:=135;

f2.Show;

kn:=1;

clearf2;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

if MessageBox(0,'Вам что выйти захотелось? (Да/Нет)','Выход',mb_YesNo)=6 then

begin

application.Destroying;

f5.Close;

f4.close;

close;

end;

end;end.

unit Unit2;

interface

uses

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

  Dialogs, StdCtrls;

type

  TForm2 = class(TForm)

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Button1: TButton;

    Button2: TButton;

    Edit4: TEdit;

    Edit5: TEdit;

    Label5: TLabel;

    ComboBox1: TComboBox;

    Label6: TLabel;

    procedure Button2Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Edit3KeyPress(Sender: TObject; var Key: Char);

 procedure Edit5KeyPress(Sender: TObject; var Key: Char);

  end;

var

  F2: TForm2;

implementation

uses Unit1, DB, Unit3, Unit6;

{$R *.dfm}

procedure TForm2.Button2Click(Sender: TObject);

begin

close;

end;

procedure TForm2.Button1Click(Sender: TObject);

var i,ost:integer;

za:array [0..3] of string;

begin

dm6.T1.Close;

dm6.T2.Close;

dm6.T3.Close;

dm6.T1.Open;

dm6.T2.Open;

dm6.T3.Open;

DM6.T1.RecNo:=1;

DM6.T2.RecNo:=1;

DM6.T3.RecNo:=1;

za[0]:=edit1.Text;

za[1]:=edit2.Text;

za[2]:=edit3.Text;

za[3]:=edit4.Text;

//заявка

if unit1.kn=0 then

  if (edit1.Text='')and(edit2.Text='')and(edit3.Text='')and(edit4.Text='')then

  messageBox(0,'Заполни все поля','Ошибка',0)

  else

  begin

DM6.T2.Append;

  DM6.T2.FieldByName('Магазин').AsString:=za[3];

  DM6.T2.FieldByName('Наз. книги').AsString:=za[0];

  DM6.T2.FieldByName('Автор').AsString:=za[1];

  DM6.T2.FieldByName('Треб. кол').AsString:=za[2];

  DM6.T2.Post;

  DM6.T2.Refresh;

  ost:=strtoint(za[2]);

  while ((ost<>0) and (not(DM6.T1.Eof))) do

  begin

  if (DM6.T1.FieldByName('Наз. книги').AsString=za[0])and(DM6.T1.FieldByName('Автор').AsString=za[1]) then

  begin

  if ost>=DM6.T1.fieldbyname('Тираж').AsInteger then

  begin

  ost:=ost-DM6.T1.fieldbyname('Тираж').AsInteger;

  DM6.T2.Edit;

  DM6.T2.FieldByName('Треб. кол').AsInteger:=ost;

  DM6.T2.Post;

  DM6.T2.Refresh;

  DM6.T3.AppendRecord([DM6.T2.FieldByName('№ заказа').AsInteger,DM6.T1.FieldByName('Издательство').AsString,

  DM6.T1.fieldbyname('Тираж').AsInteger,DM6.T1.fieldbyname('Цена').AsInteger,

  DM6.T1.fieldbyname('Тираж').AsInteger*DM6.T1.fieldbyname('Цена').AsInteger]);

  DM6.T3.Refresh;

  DM6.T1.Edit;

  DM6.T1.Delete;

  DM6.T1.Refresh;

  end

  else

  begin

  DM6.T1.Edit;

  DM6.T1.fieldbyname('Тираж').AsInteger:=DM6.T1.fieldbyname('Тираж').AsInteger-ost;

DM6.T1.Post;

  DM6.T1.Refresh;

  DM6.T3.AppendRecord([DM6.T2.FieldByName('№ заказа').AsInteger,DM6.T1.FieldByName('Издательство').AsString,

strtoint(za[2]),DM6.T1.fieldbyname('Цена').AsInteger,DM6.T1.fieldbyname('Цена').AsInteger*strtoint(za[2])]);

  DM6.T2.Edit;

  DM6.T2.FieldByName('Треб. кол').AsInteger:=0;

  DM6.T2.Post;

  ost:=0;

  DM6.T3.Refresh;

  end;  end;

  DM6.T1.Next;

  end;

  f1.clearf2;

  end;

if unit1.kn=1 then

begin

  DM6.T2.Append;

  DM6.T2.FieldByName('Магазин').AsString:=za[3];

  DM6.T2.FieldByName('Наз. книги').AsString:=za[0];

  DM6.T2.FieldByName('Автор').AsString:=za[1];

  DM6.T2.FieldByName('Треб. кол').AsString:=za[2];

  DM6.T2.Post;

  DM6.T2.Refresh;

  f1.clearf2;

end;

//получение книг

if unit1.kn=2 then

if (edit1.Text='')and(edit2.Text='')and(edit3.Text='')and(edit4.Text='')and(edit5.Text='')then

messageBox(0,'Заполни все поля','Ошибка',0)

else

begin

//добавление если такая запись уже существует

if not varisnull(DM6.T1.Lookup('Издательство;Наз. книги;Автор;Цена',VarArrayOf([za[3], za[0], za[1], Edit5.text]),'Цена')) then

begin

messageBox(0,'Данная книга уже существует','Ошибка',0);

MessageBox(0,'Тираж добавиться к существующей книге','Соощение',0);

DM6.T1.Locate('Издательство;Наз. книги;Автор;Тираж;Цена',VarArrayOf([za[3], za[0], za[1], za[2], Edit5.text]),[]);

DM6.T1.Edit;

DM6.T1.FieldByName('Тираж').AsInteger:=DM6.T1.FieldByName('Тираж').AsInteger+strtoint(za[2]);

DM6.T1.Post;

DM6.T1.Refresh;

f1.clearf2;

end

else

begin

//добление новой записи

DM6.T1.Append;

DM6.T1.FieldByName('Издательство').AsString:=za[3];

DM6.T1.FieldByName('Наз. книги').AsString:=za[0];

DM6.T1.FieldByName('Автор').AsString:=za[1];

DM6.T1.FieldByName('Тираж').AsString:=za[2];

DM6.T1.FieldByName('Цена').AsString:=Edit5.text;

DM6.T1.Post;

DM6.T1.Refresh;

f1.clearf2;

end;

//просмотр необработанных заявок

if MessageBox(0,'Просмотреть необработанные заявки','Соощение',mb_YesNo)=6 then

if (DM6.T2.Locate('Наз. книги;Автор;',VarArrayOf([za[0], za[1]]),[]))and(DM6.T2.FieldByName('Треб. кол').AsInteger<>0) then

begin

DM6.T1.Locate('Издательство;Наз. книги;Автор;',VarArrayOf([za[3], za[0], za[1]]),[]);

if DM6.T2.FieldByName('Треб. кол').AsInteger>=strtoint(za[2]) then

begin

DM6.T3.Append;

DM6.T3.FieldByName('№ заказа').AsString:=DM6.T2.FieldByName('№ заказа').AsString;

DM6.T3.FieldByName('Издательство').AsString:=za[3];

DM6.T3.FieldByName('Выдано').AsString:=za[2];

DM6.T3.FieldByName('Цена').AsString:=DM6.T1.fieldbyname('Цена').asstring;

DM6.T3.FieldByName('Сумма').AsInteger:=strtoint(za[2])*DM6.T1.fieldbyname('Цена').asinteger;

DM6.T3.Post;

DM6.T3.Refresh;

DM6.T3.Open;

DM6.T1.Edit;

DM6.T1.Delete;

DM6.T1.Refresh;

DM6.T2.Edit;

DM6.T2.FieldByName('Треб. кол').AsInteger:=DM6.T2.FieldByName('Треб. кол').AsInteger-strtoint(za[2]);

DM6.T2.Post;

DM6.T2.Refresh;

end

else

begin

DM6.T3.Append;

DM6.T3.FieldByName('№ заказа').AsString:=DM6.T2.FieldByName('№ заказа').AsString;

DM6.T3.FieldByName('Издательство').AsString:=za[3];

DM6.T3.FieldByName('Выдано').AsInteger:=DM6.T2.FieldByName('Треб. кол').AsInteger;

DM6.T3.FieldByName('Цена').AsString:=DM6.T1.fieldbyname('Цена').asstring;

DM6.T3.FieldByName('Сумма').AsInteger:=strtoint(za[2])*DM6.T1.fieldbyname('Цена').asinteger;

DM6.T3.Post;

DM6.T3.Refresh;

DM6.T1.Edit;

DM6.T1.FieldByName('Тираж').AsInteger:=strtoint(za[2])-DM6.T2.FieldByName('Треб. кол').AsInteger;

DM6.T1.Post;

DM6.T1.Refresh;

DM6.T2.Edit;

DM6.T2.FieldByName('Треб. кол').AsInteger:=0;

DM6.T2.Post;

DM6.T2.Refresh;

end;end;end;

//удаление

if unit1.kn=3 then

if (edit4.Text='') then

messageBox(0,'Заполни все поля','Ошибка',0)

else

if ComboBox1.ItemIndex=-1 then messageBox(0,'Выбери таблицу','Ошибка',0)

else

case ComboBox1.ItemIndex of

0:

if DM6.T1.Locate('ID',edit4.Text,[])=false then messageBox(0,'Данной записи не существует!','Ошибка',0)

else

begin

DM6.T1.Edit;

DM6.T1.Delete;

DM6.T1.Refresh;

end;

1:

if DM6.T2.Locate('№ заказа',edit4.Text,[])=false then messageBox(0,'Данной записи не существует!','Ошибка',0)

else

if MessageBox(0,'Вы нарушите целостность данных'+#13+'Продолжить?','Опасность',mb_YesNo)=6 then

begin

DM6.T2.Edit;

DM6.T2.Delete;

DM6.T2.Refresh;

end;

2:

if DM6.T3.Locate('№ заказа',edit4.Text,[])=false then messageBox(0,'Данной записи не существует!','Ошибка',0)

else

if MessageBox(0,'Вы нарушите целостность данных'+#13+'Продолжить?','Опасность',mb_YesNo)=6 then

begin

DM6.T3.Edit;

DM6.T3.Delete;

DM6.T3.Refresh;

end;

end;

DM6.T1.RecNo:=1;

end;

procedure TForm2.Edit3KeyPress(Sender: TObject; var Key: Char);

begin

case key of

'0'..'9':;

#8:;

else key:=chr(0);

end;end;

procedure TForm2.Edit5KeyPress(Sender: TObject; var Key: Char);

begin

case key of

'0'..'9':;

#8:;

else key:=chr(0);

end;

end;

end.

unit Unit3;

interface

uses

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

  Dialogs, StdCtrls, Grids;

type

  TForm3 = class(TForm)

    SG1: TStringGrid;

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

  end;

var

  F3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);

begin

close;

end;

end.

unit Unit4;

interface

uses

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

  Dialogs, StdCtrls, registry;

type

  TForm4 = class(TForm)

    Edit1: TEdit;

    Label1: TLabel;

    GroupBox1: TGroupBox;

    Edit2: TEdit;

    Label2: TLabel;

    Button1: TButton;

    CheckBox1: TCheckBox;

    Button2: TButton;

    procedure Button1Click(Sender: TObject);

    procedure CheckBox1Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure Button2Click(Sender: TObject);

  end;

var

  F4: TForm4;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);

var

Reg:TRegistry;

begin

if (length(edit1.Text)>4)and(edit1.Text=edit2.Text) then

begin

Reg:=TRegIniFile.Create;

Reg.RootKey:=HKEY_CURRENT_USER;

Reg.OpenKey('.pwd', true);

Reg.WriteString('pwd', edit1.Text);

Reg.CloseKey;

f1.Show;

f4.Visible:=false;

end

else

begin

if length(edit1.Text)>4 then

messageBox(0,'Пароль слишком короткий','Ошибка',0)

else messageBox(0,'Введены разные пароли','Ошибка',0)

end;

end;

procedure TForm4.CheckBox1Click(Sender: TObject);

begin

if checkbox1.Checked then

begin

edit1.PasswordChar:=#0;

edit2.PasswordChar:=#0;

end

else

begin

edit1.PasswordChar:='*';

edit2.PasswordChar:='*';

end;

end;

procedure TForm4.FormCreate(Sender: TObject);

begin

edit1.PasswordChar:='*';

edit2.PasswordChar:='*';

end;

procedure TForm4.Button2Click(Sender: TObject);

begin

close;

end;

end.

unit Unit5;

interface

uses

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

  Dialogs, StdCtrls, Registry;

type

  TForm5 = class(TForm)

    Edit1: TEdit;

    Button1: TButton;

    Label1: TLabel;

    CheckBox1: TCheckBox;

    Button2: TButton;

    RadioButton1: TRadioButton;

    RadioButton2: TRadioButton;

    Label2: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure CheckBox1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure RadioButton2Click(Sender: TObject);

    procedure RadioButton1Click(Sender: TObject);

  end;

var

  F5: TForm5;

  user:Boolean;

  kol:integer;

implementation 

uses Unit1, Unit4;

{$R *.dfm}

procedure TForm5.Button1Click(Sender: TObject);

var

Reg:TRegistry;

begin

user:=false;

if (not(RadioButton1.Checked))and(not(RadioButton2.Checked)) then

messageBox(0,'Выбери пользователя','Ошибка',0) else

if RadioButton1.Checked then

begin

user:=true;

f1.Show;

end;

if RadioButton2.Checked then

if edit1.Text='' then

begin

messageBox(0,'Пароль не введен','Ошибка',0);

edit1.SetFocus;

end

else

begin

Reg:=TRegIniFile.Create;

Reg.RootKey:=HKEY_CURRENT_USER;

Reg.OpenKey('.pwd', false);

if (reg.ReadString('pwd')<>edit1.Text)and(kol<=3) then

begin

messageBox(0,'Забыли пароль?','Ошибка',0);  

edit1.Clear;

Edit1.SetFocus;

kol:=kol+1;

end

else

f1.Show;

if kol>=4 then

begin

messageBox(0,'Множественный ввод неправильного пароля'+#13+'Программа будет закрыта','Ошибка',0);

Reg.CloseKey;

f5.Close;

end;end;end;

procedure TForm5.FormCreate(Sender: TObject);

var Reg:TRegistry;

begin

kol:=0;

f5.Height:=145;

edit1.PasswordChar:='*';

Reg:=TRegIniFile.Create;

Reg.RootKey:=HKEY_CURRENT_USER;

if Reg.OpenKey('.pwd', false)=false then

begin

showmessage('Задайте пароль');

Application.CreateForm(TForm4, F4);

f4.show;

Reg.CloseKey;

end;

end;

procedure TForm5.CheckBox1Click(Sender: TObject);

begin

if checkbox1.Checked then

edit1.PasswordChar:=#0

else

edit1.PasswordChar:='*';

end;

procedure TForm5.Button2Click(Sender: TObject);

begin

close;

end;

procedure TForm5.RadioButton2Click(Sender: TObject);

begin

edit1.Visible:=true;

label1.Visible:=true;

CheckBox1.Visible:=true;

f5.Height:=195;

Label1.Top:=72;

edit1.Top:=88;

CheckBox1.Top:=110;

Button1.Top:=128;

Button2.Top:=160;

end;

procedure TForm5.RadioButton1Click(Sender: TObject);

begin

edit1.Visible:=false;

label1.Visible:=false;

CheckBox1.Visible:=false;

f5.Height:=145;

Button1.Top:=80;

Button2.Top:=112;

RadioButton1.Enabled:=false;

RadioButton2.Enabled:=false;

end;end.


6.2.Результаты контрольного примера.
Входные данные контрольного примера представлены в виде таблиц.


Рисунок 1 - Список книг

            В магазин пришли следующие заявки:

Магазин

Название книги

Автор

Требуемое количество

Библиосфера

Сказки

Пушкин

5000

Подземка

Том Сойер

Твен

4000

Книга

Сказки

Пушкин

1500

Библиосфера

ТРПП

Орлов

4000

Книга

ТРПП

Орлов

600

Снэма

ГДЗ

Полкин

800



Результат контрольного примера

Ведомость удовлетворенных заявок

№ заказа

Магазин

Название книги

Автор

Издательство

Выдано

1

Библиосфера

Сказки

Пушкин

Москва

5000

3

Книга

Сказки

Пушкин

Белая река

1500

4

Библиосфера

ТРПП

Орлов

Белая река

4000


Ведомость неудовлетворенный заявок

№ заказа

Магазин

Название книги

Автор

Требуемое количество

2

Подземка

Том Сойер

Твен

400

5

Книга

ТРПП

Орлов

100

6

Снэма

ГДЗ

Полкин

300



Сводная ведомость

Издательство

Название книги



Автор

Кол-во книг

Сумма

Белая река

Сказки

Пушкин

1500

150000

Белая река

ТРПП

Орлов

4000

600000

Белая река

ТРПП

Орлов

500

75000

Москва

Сказки

Пушкин

5000

500000

Москва

Том Сойер

Твен

600

48000

КПИ

Том Сойер

Твен

3000

240000

КПИ

ГДЗ

Полкин

500

30000







Итого:

1643000


1. Реферат на тему Religion In Early Virginia Essay Research Paper
2. Статья Влияние тяжелых металлов на организм человека. Содержание их в почвах Северной Осетии
3. Курсовая на тему Содержание работы командира по подержанию высокой боевой готовности
4. Реферат Показники діяльності банків
5. Реферат на тему Оборудование перерабатывающих предприятий
6. Курсовая на тему Об рунтування технічних регулювань та розрахунок технологічних конструктивних і енергетичних показників
7. Реферат на тему Арбитражно процессуальное право и судебные издержки
8. Реферат на тему Проект конституции Никиты Муравьева
9. Реферат Классификаторы и их роль в развитии систем электронной коммерции
10. Реферат на тему Chronicle Of A Death Fore Told Essay