Разработка программы "Автоматизированная информационная справочная система аптеки"

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


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

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

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

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ СРЕДНЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ТУЛЬСКОЙ ОБЛАСТИ

«ТУЛЬСКИЙ ЭКОНОМИЧЕСКИЙ КОЛЛЕДЖ»

КУРСОВОЙ ПРОЕКТ

по дисциплине «Технология разработки программного продукта»

на тему: Разработка программы «Автоматизированная информационная справочная система аптеки»

Работу выполнил: Работу проверил:

студент группы 410-П

__________/Богунов Ю.Е./ ________/ Бардина И. Н. /

Щёкино

2013

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ СРЕДНЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ТУЛЬСКОЙ ОБЛАСТИ

«ТУЛЬСКИЙ ЭКОНОМИЧЕСКИЙ КОЛЛЕДЖ»

Индивидуальное задание

по выполнению курсового проекта по дисциплине «Технология разработки программного продукта»

Студенту4курса, специальность 230 105

Ф.И. О. Богунова Юрия Евгеньевича

Тема курсового проекта: разработка программы «Автоматизированная информационная справочная система аптеки»

Объект исследования: аптека.

Содержание курсового проекта

Введение

I Основная часть:

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

1.1.1. Сущность задачи

1.1.2. Математическая модель

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

1.3. Описание программно-технических средств

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

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

1.6. Тестирование программы

1.7. Описание программы

Заключение

Список рекомендуемой литературы

1. Рудаков А. В. Технология разработки программных продуктов: учеб. Пособие для студ. Сред. проф. образования / А. В. Рудаков. — М.:

Издательский центр «Академия», 2006. — 208 с

2. Культин Н. Б. Основы программирования в Delphi-7-/ Н. Б. Культин. -СПб:БХВ-Петербург, 2005. -608 с. :ил

Приложение: схема работы системы, листинг программы, формы, отчеты

Задание выдал: ______________ _______________ _____________

(Ф.И.О. преподавателя) (подпись) (дата)

Задание принял: ______________ ____________ _______________

(Ф.И.О. студента) (подпись) (дата)

СОДЕРЖАНИЕ

Введение

1. Основная часть:

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

1.1.1 Сущность задачи

1.1.2 Математическая модель

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

1.3 Описание программно-технических средств

1.4 Программно-технические средства, необходимые для разработки программы

1.5 Программно-технические средства при использовании программы

1.6 Тестирование программы

1.7 Описание программы

Заключение

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

Приложения

Рецензия

I/ Основная часть

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

1.1.1 Сущность задачи

На аптечном складе хранятся лекарства. Сведения о лекарствах хранятся в двух файлах. В первом файле указывается наименование лекарственного средства, единица измерения, количество, цена. Во втором файле указывается наименование лекарственного препарата, срок хранения (в месяцах). Предусмотреть возможность корректировки файлов.

Выходная информация:

1. Выяснить, сколько стоит самый дорогой и самый дешевый препарат и выдать в виде сообщения на экран.

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

3. Выдать список препаратов, имеющих срок хранения больше 3 месяцев.

Предусмотреть возможность формирования и корректировки файлов.

Используемое программное обеспечение — среда Delphi.

1.1.2 Математическая модель

Sti=Ц*К; (1)

где Sti-стоимость i-го препарата

Ц-цена i-го препарата

К-количество i-го препарата

St=?ni=1Sti4; (2)

где St-стоимость всех препаратов

Sti-стоимость i-го препарата

n-количество видов препаратов

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

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

Структура файла z1. Таблица 1.

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

Идентификатор

Тип

Длинав знаках

Наименование лекарства

Naimlek

Строковый

20

Единица измерения

Edinizm

Строковый

20

Количество

Kolichestvo

Целый

-

Цена

cena

Вещественный

-

Структура файла z2. Таблица 2.

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

Идентификатор

Тип

Длинав знаках

Наименование лекарства

Naimlek

Строковый

20

Срок хранения

Srokchran

Целый

-

Form2. Таблица 3.

Наименование компонента

Назначение компонента

Label1

Наименование файла

Label2

Наименование назначения Edit1

Label3

Наименование назначения Edit2

Button1

Формирование файла

Button2

Чтение файла

Button3

Добавление файла

Button4

Удаление файла

Button5

Изменение файла

Button6

Сортировка файлов

Button7

Выход

Button8

Очистка полей

Stringgrid1

Отображение данных файла

Edit1

Диапазон ячеек для формирования, добавления, изменения файла

Edit2

Диапазон ячеек для удаления файла

Form3. Таблица 4.

Наименование компонента

Назначение компонента

Stringgrid1

Отображение данных файла

Label1

Наименование файла

Label2

Наименование назначения Edit1

Button1

Формирование файла

Button2

Чтение файла

Button3

Добавление файла

Button4

Изменение файла

Button5

Удаление файла

Button6

Сортировка файлов

Button7

Выход

Button8

Очистка полей

Edit1

Диапазон ячеек для формирования, добавления, изменения файла

Edit2

Диапазон ячеек для удаления файла

Label3

Наименование назначения Edit2

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

Form4. Таблица 5.

Наименование компонента

Назначение компонента

Label1

Наименование ведомости

Label2

Описание вывода в Edit1

Button1

Вывод ведомости

Button2

Выход

Stringgrid1

Отображение данных ведомости

Edit1

Вывод суммы препаратов

Form5. Таблица 6.

Наименование компонента

Назначение компонента

Button1

Вывод

Button2

Выход

Button3

Список препаратов, имеющих срок хранения больше 3 месяцев

Label1

Вывод дорогого препарата

Label2

Вывод дешевого препарата

Stringgrid1

Отображение данных файла

Form6. Таблица 7.

Наименование компонента

Назначение компонента

Label1

Подпись разработчика

Button1

Кнопка выхода из формы

Form7. Таблица 8.

Наименование компонента

Назначение компонента

Label1

Название программы

Label2

Версия программы

Label3

Описание работы программы

Button1

Кнопка выхода из формы

Таблица с перечнем компонентов значение их свойств.

Form2. Таблица 9.

Наименование компонента

Наименование свойства компонента

Значение свойства компонента

Stringgrid1

goEditing

Запись в ячейки Stringgridа

Edit1

Text

Ограничение для формирования, добавления, изменения файла

Edit2

Text

Ограничение для удаления файла

Button1

Caption

Формирование файла

Button2

Caption

Чтение файла

Button3

Caption

Добавление файла

Button4

Caption

Удаление файла

Button5

Caption

Изменение файла

Button6

Caption

Сортировка файлов

Button7

Caption

Выход

Button8

Caption

Очистка полей

Label1

Caption

Название файла

Label2

Caption

Наименование назначения Edit1

Label3

Caption

Наименование назначения Edit2

Form3. Таблица 10.

Наименование компонента

Наименование свойства компонента

Значение свойства компонента

Stringgrid1

goEditing

Запись в ячейки Stringgridа

Button1

Caption

Формирование файла

Button2

Caption

Чтение файла

Button3

Caption

Добавление файла

Button4

Caption

Изменение файла

Button5

Caption

Удаление файла

Button6

Caption

Сортировка файлов

Button7

Caption

Выход

Button8

Caption

Очистка полей

Edit1

Text

Ограничение для формирования, добавления, изменения файла

Edit2

Text

Ограничение для удаления файла

Label1

Caption

Название файла

Label2

Caption

Наименование назначения Edit1

Label3

Caption

Наименование назначения Edit2

Form4. Таблица 11.

Наименование компонента

Наименование свойства компонента

Значение свойства компонента

StringGrid1

goEditing

Запись в ячейки StringGridа

Button1

Text

Вывод ведомости

Button2

Text

Выход

Edit1

Text

Вывод суммы

Label1

Caption

Название отчета

Label2

Caption

Описание вывода суммы

Form5. Таблица12.

Наименование компонента

Наименование свойства компонента

Значение свойства компонента

Button1

Text

Вывод

Button2

Text

Выход

Button3

Text

Вывод списка препаратов, имеющих срок хранения больше 3 месяцев

Label1

Caption

Вывод дорогого препарата

Label2

Caption

Вывод дешевого препарата

Stringgrid1

goEditing

Запись в ячейки StringGridа

Form6. Таблица 13.

Наименование компонента

Наименование свойства компонента

Значение свойства компонента

Label1

Caption

Подпись разработчика

Button1

Text

Кнопка выхода из формы

Form7. Таблица 14.

Наименование компонента

Наименование свойства компонента

Значение свойства компонента

Label1

Caption

Название программы

Label2

Caption

Версия программы

Label3

Caption

Описание работы программы

Button1

Text

Кнопка выхода из формы

1.3 Описание программно-технических средств

В качестве антивирусной программы мной используется антивирус Avast! Free antivirus. Программа создавалась под управлением операционной системы Windows7 профессиональная.

1.4 Программно-технические средства, необходимые для разработки программы

Описание комплекса технических средств, необходимых при разработке программы:

процессор: AMD Atlon 64 X2 3800+;

материнская плата: ASUS M2N — MX (Socket AM2);

оперативная память: DIMM DDR II 4Gb — 600MHz;

монитор: BenQG2210W 1680×10 5060Hz;

видео карта: Geforce250 GTS1,5 Gb;

жесткий диск: Samsung SATA, 600Gb;

дисководы: DVDRW-ROM-Nec 3520A;

клавиатура: Genius GK-50 008/C;

мышь: A4Tech X5−3D;

1.5 Программно-технические средства при использовании программы

Аппаратная часть предусматривает использование следующего оборудования:

— процессор не ниже…533 MHz

— объём оперативной памяти не ниже…1 Gb

— жесткий диск…5 Gb

— монитор…1680×10 5060Hz

— клавиатура… GeniusGK-50 008/C

— мышь…

— принтер… SamsungML-1641

— дисковод… DVDRW-ROM-Nec 3520A

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

— Операционная система MS Windows7, XP, 2000.

— Антивирусная программа.

— Программа.

1.6 Тестирование программы

Тестирование отдельных модулей.

Структура файла z1. Таблица 2.

Номер теста

Наименование лекарства

Единица измерения

Количество

Цена

1

Панангин

шт

Одна тысяча

30

2

Кларитин

шт

3000

двадцать

3

воревноенолапнолнопрлопалор

шт

1021

44

4

Кларитин

коробки

600

11

5

Кларитин

шт

1000

30

Тест 1. Вводились значения, которые не совпадают с типом поля количество.

Программа выдает ошибку:

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

Программа выдает ошибку:

Тест 3. Вводилось значение, превышающее ограничение поля «наименование лекарства». Программа не записывает данное имя, отбрсывает лишние символы. Сообщение об ошибке не выдается.

Тест 4. Вводилось значение, превышающее ограничение поля «единица измерения». Программа не записывает данное имя, отбрсывает лишние символы. Сообщение об ошибке не выдается.

Тест 5. Вводились правильные значения полей, выдерживалось ограничение. Сообщение об ошибки не выдается.

Структура файла z2. Таблица 3.

Номер теста

Наименование лекарства

Срок хранения

1

панангин

восемь

2

ывнгркеоенлнглдорпл

9

3

панангин

0. 3

4

панангин

44 000

5

панангин

8

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

Программа выдает ошибку:

Тест 2. Вводилось значение, превышающее ограничение поля «срок хранения». Программа не записывает данное имя, отбрасывает лишние символы. Сообщение об ошибке не выдается.

Тест 3. Вводилось дробное значение в поле «срок хранения» типа string, превышающее ограничение. Программа выдает ошибку:

Тест 4. Введена ошибочная информация в поле «срок хранения». Реакция программы нулевая.

Тест 5. Вводились правильные значения полей, выдерживалось ограничение. Сообщение об ошибки не выдается.

1.7. Описание программы

В данной программе используется 7 форм.

На первой форме располагается компонент MainMenu1, благодаря которому можно переключаться на любую другую форму:

1) файлы:

a) файл «Лекарственные средства»;

b) файл «Срок хранения»;

c) файл «Вывод дешевого и дорогого препарата»;

2) ведомость;

3) разработчики;

4) о программе.

На второй форме располагается компонент StringGrid1,

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

-кнопка «Формирование файла»: данная кнопка отвечает за создание документа и добавление в него информации с дальнейшим сохранением. Для создания файла необходимо установить ограничение в Edit1;

-кнопка «Чтение файла»: данная кнопка читает созданный файл и выводит сохраненную информацию в StringGrid1;

-кнопка «Добавление данных»: данная кнопка добавляет новые данные в уже сохраненный файл с дальнейшим сохранением. Для добавления данных необходимо установить ограничение в Edit1;

-кнопка «Изменение данных»: данная кнопка изменяет сохраненные данные в документе. Для изменения данных необходимо установить ограничение в Edit1;

-кнопка «Сортировка данных»: данная кнопка сортирует данные в файле;

-кнопка «Удаление данных»: данная кнопка удаляет данные из сохраненного файла. Для удаления данных необходимо установить ограничение в Edit2;

-кнопка «Очистка полей»: данная кнопка очищает StringGrid1 для нового вывода данных из файла;

-кнопка «Выход»: данная кнопка закрывает форму.

На третьей форме, также как и на второй, располагается StringGrid1,

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

Также для формирования файла, добавления и изменения данных файла необходимо ввести ограничения в Edit1, а для удаления данных файла необходимо ввести ограничения в Edit2.

На четвертой форме, также как и на двух предыдущих располагается StringGrid1,

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

-кнопка «Вывод ведомости»: выводит ведомость по двум файлам в StringGrid1;

-кнопка «Выход»: закрывает форму.

Также на форме расположены компоненты Label1 и Edit1:

-компонент «Label1»: компонент выводит название Editа1;

-компонент"Edit1″: выводит сумму всех препаратов, предварительно посчитав в процедуре.

Заключение

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

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

1. Рудаков А. В. Технология разработки программных продуктов: учеб. Пособие для студ. Сред. проф. образования / А. В. Рудаков. — М.:

Издательский центр «Академия», 2006. — 208 с

2. Культин Н. Б. Основы программирования в Delphi-7-/ Н. Б. Культин. -СПб:БХВ-Петербург, 2005. -608 с. :ил

Приложение А

программа информация форматирование тестирование

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

unit Unit1;

interface

uses

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

Dialogs, Menus, StdCtrls;

type

TForm1 = class (TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

Label1: TLabel;

N6: TMenuItem;

Label2: TLabel;

N7: TMenuItem;

N8: TMenuItem;

procedure N4Click (Sender: TObject);

procedure N2Click (Sender: TObject);

procedure N3Click (Sender: TObject);

procedure N5Click (Sender: TObject);

procedure N6Click (Sender: TObject);

procedure N7Click (Sender: TObject);

procedure N8Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit4, Unit2, Unit3, Unit5, Unit6, Unit7;

{$R *. dfm}

procedure TForm1. N4Click (Sender: TObject);

begin

Form4. Show;

end;

procedure TForm1. N2Click (Sender: TObject);

begin

Form2. Show;

end;

procedure TForm1. N3Click (Sender: TObject);

begin

Form3. Show;

end;

procedure TForm1. N5Click (Sender: TObject);

begin

Close;

end;

procedure TForm1. N6Click (Sender: TObject);

begin

Form5. Show;

end;

procedure TForm1. N7Click (Sender: TObject);

begin

Form6. Show;

end;

procedure TForm1. N8Click (Sender: TObject);

begin

Form7. Show;

end;

end.

unit Unit2;

interface

uses

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

Dialogs, StdCtrls, Grids, Buttons, ExtCtrls;

type

TForm2 = class (TForm)

StringGrid1: TStringGrid;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button7: TButton;

Label1: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Label2: TLabel;

Label3: TLabel;

Button5: TButton;

Button6: TButton;

Button8: TButton;

procedure Button7Click (Sender: TObject);

procedure StringGrid1Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure Button3Click (Sender: TObject);

procedure Button4Click (Sender: TObject);

procedure Button5Click (Sender: TObject);

procedure Button6Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure Button8Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

z1=record

naimlek: string[20];

edinizm: string[6];

kolichestvo: integer;

cena: real;

end;

var

Form2: TForm2;

check, check1: file of z1;

x: z1;

n, i: integer;

implementation

{$R *. dfm}

procedure TForm2. Button7Click (Sender: TObject);

begin

Close;

end;

procedure TForm2. StringGrid1Click (Sender: TObject);

begin

stringgrid1. Cells[0,0]:='Наименование лекарства';

stringgrid1. Cells[1,0]:='Единица измерения';

stringgrid1. Cells[2,0]:='Количество';

stringgrid1. Cells[3,0]:='Цена';

end;

procedure TForm2. Button1Click (Sender: TObject);

begin

assignfile (check,'check'); rewrite (check);

n: =StrToInt (edit1. Text);

for i: =1 to n do

begin

x. naimlek:=stringgrid1. Cells[0,i];

x. edinizm:=stringgrid1. Cells[1,i];

x. kolichestvo:=StrToInt (stringgrid1. Cells[2,i]);

x. cena:=StrToFloat (stringgrid1. Cells[3,i]);

write (check, x);

end;

closefile (check);

end;

procedure TForm2. Button2Click (Sender: TObject);

begin

assignfile (check,'check'); reset (check);i:=1;

while not eof (check) do

begin

read (check, x);

stringgrid1. Cells[0,i]:=x. naimlek;

stringgrid1. Cells[1,i]:=x. edinizm;

stringgrid1. Cells[2,i]:=IntToStr (x. kolichestvo);

stringgrid1. Cells[3,i]:=FloatToStr (x. cena);

i: =i+1;

end;

closefile (check);

end;

procedure TForm2. Button3Click (Sender: TObject);

var n, i: longint;

begin

assignfile (check,'check'); reset (check);seek (check, fileSize (check));

n: =strtoint (edit1. Text);

for i: =1 to n do

begin

x. naimlek:=stringgrid1. Cells[0,i];

x. edinizm:=stringgrid1. Cells[1,i];

x. kolichestvo:=strtoint (stringgrid1. Cells[2,i]);

x. cena:=strtofloat (stringgrid1. Cells[3,i]);

write (check, x);

end;

closefile (check);

end;

procedure TForm2. Button4Click (Sender: TObject);

var s: integer;

n: integer;

begin

assignfile (check1,'check1'); reset (check);rewrite (check1);

n: =strtoint (edit2. Text);s:=0;

while not eof (check) do

begin

s: =s+1;

if n=s then read (check, x)

else

begin

read (check, x);

write (check1,x);

end;

end;

closefile (check); closefile (check1);

reset (check1); rewrite (check);

while not eof (check1) do

begin

read (check1,x); write (check, x);

end;

closefile (check); closefile (check1);

end;

procedure TForm2. Button5Click (Sender: TObject);

begin

assignfile (check,'check'); reset (check);

n: =strtoint (edit1. Text);

seek (check, n-1);

x. naimlek:=stringgrid1. Cells[0,n];

x. edinizm:=stringgrid1. Cells[1,n];

x. kolichestvo:=strtoint (stringgrid1. Cells[2,n]);

x. cena:=strtofloat (stringgrid1. Cells[3,n]);

write (check, x);

closefile (check);

end;

procedure TForm2. Button6Click (Sender: TObject);

var zp: array[1. 50]of z1;

v: z1;

j, k, n, i: integer;

begin

assignfile (check,'check');

reset (check);

i: =1;

while not eof (check) do

begin

read (check, zp[i]);

i: =i+1;

end;

closefile (check);

n: =i-1;

for i: =1 to n do

begin

k: =i;

for j: =i+1 to n do

if zp[j]. naimlek<zp[k]. naimlek then k: =j;

v: =zp[i];zp[i]:=zp[k];zp[k]:=v;

end;

rewrite (check);

for i: =1 to n do write (check, zp[i]);

closefile (check);

end;

procedure TForm2. FormCreate (Sender: TObject);

begin

stringgrid1. Cells[0,0]:='Наименование лекарства';

stringgrid1. Cells[1,0]:='Единица измерения';

stringgrid1. Cells[2,0]:='Количество';

stringgrid1. Cells[3,0]:='Цена';

end;

procedure TForm2. Button8Click (Sender: TObject);

var j: integer;

begin

for i: =0 to stringgrid1. ColCount-1 do

for j: =0 to stringgrid1. colcount-1 do

stringgrid1. Cells[i, j]:=' ';

end;

end.

unit Unit3;

interface

uses

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

Dialogs, StdCtrls, Grids;

type

TForm3 = class (TForm)

StringGrid1: TStringGrid;

Button3: TButton;

Button5: TButton;

Button1: TButton;

Button2: TButton;

Button7: TButton;

Label1: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Label2: TLabel;

Label3: TLabel;

Button4: TButton;

Button6: TButton;

Button8: TButton;

procedure Button7Click (Sender: TObject);

procedure StringGrid1Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure Button3Click (Sender: TObject);

procedure Button5Click (Sender: TObject);

procedure Button4Click (Sender: TObject);

procedure Button6Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure Button8Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

z2=record

naimlek: string[20];

srokchran: integer;

end;

var

Form3: TForm3;

sorg, sorg1: file of z2;

y: z2;

n, i: integer;

implementation

{$R *. dfm}

procedure TForm3. Button7Click (Sender: TObject);

begin

Close;

end;

procedure TForm3. StringGrid1Click (Sender: TObject);

begin

stringgrid1. Cells[0,0]:='Наименование лекарства';

stringgrid1. Cells[1,0]:='Срок хранения';

end;

procedure TForm3. Button1Click (Sender: TObject);

begin

assignfile (sorg,'sorg'); rewrite (sorg);

n: =StrToInt (edit1. Text);

for i: =1 to n do

begin

y. naimlek:=stringgrid1. Cells[0,i];

y. srokchran:=StrToInt (stringgrid1. Cells[1,i]);

write (sorg, y);

end;

closefile (sorg);

end;

procedure TForm3. Button2Click (Sender: TObject);

begin

assignfile (sorg,'sorg'); reset (sorg);i:=1;

while not eof (sorg) do

begin

read (sorg, y);

stringgrid1. Cells[0,i]:=y. naimlek;

stringgrid1. Cells[1,i]:=IntToStr (y. srokchran);

i: =i+1;

end;

closefile (sorg);

end;

procedure TForm3. Button3Click (Sender: TObject);

var n, i: longint;

begin

assignfile (sorg,'sorg'); reset (sorg);seek (sorg, fileSize (sorg));

n: =strtoint (edit1. Text);

for i: =1 to n do

begin

y. naimlek:=stringgrid1. Cells[0,i];

y. srokchran:=strtoint (stringgrid1. Cells[1,i]);

write (sorg, y);

end;

closefile (sorg);

end;

procedure TForm3. Button5Click (Sender: TObject);

var s: integer;

n: integer;

begin

assignfile (sorg1,'sorg1'); reset (sorg);rewrite (sorg1);

n: =strtoint (edit2. Text);s:=0;

while not eof (sorg) do

begin

s: =s+1;

if n=s then read (sorg, y)

else

begin

read (sorg, y);

write (sorg1,y);

end;

end;

closefile (sorg); closefile (sorg1);

reset (sorg1); rewrite (sorg);

while not eof (sorg1) do

begin

read (sorg1,y); write (sorg, y);

end;

closefile (sorg); closefile (sorg1);

end;

procedure TForm3. Button4Click (Sender: TObject);

begin

assignfile (sorg,'sorg'); reset (sorg);

n: =strtoint (edit1. Text);

seek (sorg, n-1);

y. naimlek:=stringgrid1. Cells[0,n];

y. srokchran:=strtoint (stringgrid1. Cells[1,n]);

write (sorg, y);

closefile (sorg);

end;

procedure TForm3. Button6Click (Sender: TObject);

var zn: array[1. 50]of z2;

v: z2;

j, k, n, i: integer;

begin

assignfile (sorg,'sorg');

reset (sorg);

i: =1;

while not eof (sorg) do

begin

read (sorg, zn[i]);

i: =i+1;

end;

closefile (sorg);

n: =i-1;

for i: =1 to n do

begin

k: =i;

for j: =i+1 to n do

if zn[j]. srokchran<zn[k]. srokchran then k: =j;

v: =zn[i];zn[i]:=zn[k];zn[k]:=v;

end;

rewrite (sorg);

for i: =1 to n do write (sorg, zn[i]);

closefile (sorg);

end;

procedure TForm3. FormCreate (Sender: TObject);

begin

stringgrid1. Cells[0,0]:='Наименование лекарства';

stringgrid1. Cells[1,0]:='Срок хранения';

end;

procedure TForm3. Button8Click (Sender: TObject);

var j: integer;

begin

for i: =0 to stringgrid1. ColCount-1 do

for j: =0 to stringgrid1. ColCount-1 do

stringgrid1. Cells[i, j]:=' ';

end;

end.

unit Unit4;

interface

uses

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

Dialogs, StdCtrls, Grids;

type

TForm4 = class (TForm)

Button7: TButton;

Label1: TLabel;

Button1: TButton;

StringGrid1: TStringGrid;

Edit1: TEdit;

Label2: TLabel;

procedure Button7Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

z1=record

naimlek: string[20];

edinizm: string[6];

kolichestvo: integer;

cena: real;

end;

z2=record

naimlek: string[20];

srokchran: integer;

end;

var

Form4: TForm4;

check: file of z1;

sorg: file of z2;

x: z1;

y: z2;

i: integer;

implementation

{$R *. dfm}

procedure TForm4. Button7Click (Sender: TObject);

begin

Close;

end;

procedure TForm4. FormCreate (Sender: TObject);

begin

stringgrid1. Cells[0,0]:='Наименование лекарства';

stringgrid1. Cells[1,0]:='Единица измерения';

stringgrid1. Cells[2,0]:='Количество';

stringgrid1. Cells[3,0]:='Цена';

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

end;

procedure TForm4. Button1Click (Sender: TObject);

var sum, sm: real;

begin

assignfile (check,'check');

reset (check);

i: =1; sm: =0;

while not eof (check) do

begin

read (check, x);

stringgrid1. Cells[0,i]:=x. naimlek;

stringgrid1. Cells[1,i]:=x. edinizm;

stringgrid1. Cells[2,i]:=inttostr (x. kolichestvo);

stringgrid1. Cells[3,i]:=floattostr (x. cena);

sum: =x. cena*x. kolichestvo;

stringgrid1. Cells[4,i]:=floattostr (sum);

sm: =sm+sum;

i: =i+1;

end;

edit1. Text:=floattostr (sm);

closefile (check);

end;

end.

unit Unit5;

interface

uses

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

Dialogs, StdCtrls, Grids;

type

TForm5 = class (TForm)

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

Button2: TButton;

Button3: TButton;

StringGrid1: TStringGrid;

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure Button3Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

z1=record

naimlek: string[20];

edinizm: string[6];

kolichestvo: integer;

cena: real;

end;

z2=record

naimlek: string[20];

srokchran: integer;

end;

var

Form5: TForm5;

check: file of z1;

sorg: file of z2;

x: z1;

y: z2;

n, i: integer;

implementation

{$R *. dfm}

procedure TForm5. Button1Click (Sender: TObject);

var mn, mx: real;

naimmn, naimmx: string[20];

begin

assignfile (check,'check');

reset (check); mn: =0; mx: =0;

while not eof (check) do

begin

read (check, x);

if mn=0 then

begin

mn: =x. cena;

naimmn: =x. naimlek;

end;

if mx=0 then

begin

mx: =x. cena;

naimmx: =x. naimlek;

end;

if x. cena>mx then

begin

naimmx: =x. naimlek;

mx: =x. cena;

end;

if x. cena<mn then

begin

naimmn: =x. naimlek;

mn: =x. cena;

end;

end;

closefile (check);

Label1. Caption:=('Самый дорогой препарат ' +naimmx+ ' стоит '+floattostr (mx));

Label2. Caption:=('Самый дешевый препарат ' +naimmn+ ' стоит '+floattostr (mn));

end;

procedure TForm5. Button2Click (Sender: TObject);

begin

close;

end;

procedure TForm5. FormCreate (Sender: TObject);

begin

stringgrid1. Cells[0,0]:='Наименование препарата';

stringgrid1. cells[1,0]:='Срок хранения';

end;

procedure TForm5. Button3Click (Sender: TObject);

begin

assignfile (sorg,'sorg');

reset (sorg); i: =1;

while not eof (sorg) do

begin

read (sorg, y);

if y. srokchran>3 then

begin

stringgrid1. cells[0,i]:=y. naimlek;

stringgrid1. Cells[1,i]:=inttostr (y. srokchran);

i: =i+1;

end; end;

closefile (sorg);

end;

end.

unit Unit6;

interface

uses

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

Dialogs, StdCtrls;

type

TForm6 = class (TForm)

Label1: TLabel;

Button1: TButton;

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

{$R *. dfm}

procedure TForm6. Button1Click (Sender: TObject);

begin

Close;

end;

end.

unit Unit7;

interface

uses

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

Dialogs, StdCtrls;

type

TForm7 = class (TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Button1: TButton;

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form7: TForm7;

implementation

{$R *. dfm}

procedure TForm7. Button1Click (Sender: TObject);

begin

Close

end;

end.

Приложение Б

Формы программы.

Главная форма:

Форма файла «Лекарственные средства:

Форма файла «Срок хранения»:

Форма «Вывод дешевого и дорогого препарата»:

Форма «Ведомость»:

Форма «Разработчики»:

Форма «О программе»:

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