Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Программирование в Delphi

Тип Реферат
Предмет Информатика и программирование
Просмотров
1488
Размер файла
219 б
Поделиться

Ознакомительный фрагмент работы:

Программирование в Delphi

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

Учреждение образования «Белорусский государственный аграрный технический университет»

Факультет: Предпринимательства и управления

Кафедра: Экономической информатики

Курсовой проект

Тема: «ПРОГРАМИРОВАНИЕ В DELPHI»

Выполнил студент II курса

группы 52-ЗЭИ

Зачетная книжка №506020

Братулин Евгений Петрович

Проверил:_______________

Минск 2007


CОДЕРЖАНИЕ

1. Введение. 3

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

3. Математическая формулировка задачи и выбор метода обработки информации 7

4. Разработка алгоритма схемы алгоритма и его описание. 9

5. Форма представления исходных данных. 21

6. Разработка интерфейса. 22

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

8. Результаты проведенных расчетов и их анализ. 32

Выводы.. 35

Список использованных источников. 36

Приложения. 37

1. Введение.

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

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


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

В данной курсовой работе требуется создать Windows-приложение на алгоритмическом языке ObjectPascal в среде визуального программирования Delphi, которое обеспечивает формирование, обработку на ЭВМ и вывод информации. Предусмотреть хранение информации в типизированных файлах, содержащих не менее 10 записей. Приложение должно обеспечивать формирование базы данных сведений о выручке от реализации продукции за плановый период, выполнить математические вычисления по расчету объема реализации и стоимости в оптовых ценах всего объема реализации. Также необходимо обеспечить сортировку базы данных в алфавитном порядке по наименованию продукции и организовать вывод в MEMO-поле наименование продукции, имеющее значение наибольшей стоимости.

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

- хранение малого объема данных

- произведение простых математических вычислений

- обеспечение хранение базы данных

При исследовании существующих программных продуктов, был сделан вывод, что используя комплексное программное обеспечение компании Microsoft, на базе электронных таблиц Excel или базы данных Access можно было создать такое же приложение, выполняющее поставленную задачу. При этом затрачивается минимум усилий на проработку интерфейса и процедур сортировки. Однако, большим минусом данного решения будет является необходимость обязательной предварительной установки программного обеспечении MicrosoftOffice, лицензионные версии которого не получили широкого распространения на территории Республики Беларусь.

Поэтому принято считать, что уже исходя из этого разрабатываемое Windows- приложение не является «бесполезным», потому как имеет одну четко сформировавшуюся цель и место применения. Вероятное использование данного продукта - финансовые терминалы на базе операционных систем семейства Windows любого производственного предприятия. Данная программа, используя стандартные компоненты, с успехом будет работать в ОС-ах Windows’95, 98, 2000, ХР не требуя при этом дополнительных инсталляций программного обеспечения.

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

1) Один компонент для визуального представления данных в табличной форме,

2) MEMO-поле для вывода данных, указанных в задании

3) Набор компонентов для добавления / изменения / удаления записей в базу данных

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

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

Таким образом, учитывая вышесказанное, разработчиком были приняты следующие решения, касающиеся будущей структуры приложения:

1) для визуального отображения данных в табличной форме выбрать компонент StringGrid, который в текстовой форме обеспечивает ввод, изменение, удаление и просмотр данных. Шапка таблицы будет повторять таблицу, указанную в начальном условии. Предустановленное максимальное количество данных – 100 записей, что также удовлетворяет начальному условию

2) MEMO-поле прежде всего предназначенное для вывода данных, указанных в условии, дополнительно использовать для визуального подтверждения выполняемых пользователем действий.

3) для добавления / изменения / удаления записей в базу данных использовать 5 компонентов edit (для заполнения соответствующих столбцов), и 2 button-а (для добавления и удаления записи соответственно). Так как для отображения информации в StringGrid используется текстовая форма, предусмотреть невозможность ввода текстовых данных в численные поля с выводом соответствующего сообщения, а также невозможность внесения «пустого» поля, так как все поля базы данных, необходимые для математического расчета по условиям задачи должны быть заполнены.

4) использовать стандартные диалоги OpenDialog и SaveDialog для предоставления пользователю возможности визуального выбора имени и пути типизированного файла для открытия либо для сохранения базы данных. Для вызова диалогов использовать 2 компонента button с соответствующими названиями

5) для «обнуления» данных, т.е. создания новой базы использовать компонент button с подписью «создать базу».

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

7) математический аппарат представить в виде отдельной процедуры, состоящей из двух уравнений, удовлетворяющих начальному условию, которые являются необходимой частью приложения. Расчет проводить в автоматизированном режиме, без участия пользователя.

8) выполнить сортирование базы данных в автоматизированном режиме. Что исключит лишние действия пользователя по периодическому нажатию кнопки «сортировка». Действие сортировки выполнить уникальным, специально разработанным методом при каждом изменении базы данных.


3. Математическая формулировка задачи и выбор метода обработки информации

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

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

2) выполнить вычисление объема реализации по формуле, указанной в задании.

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

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

Элемент автоматической сортировки встроен в систему вывода информации через компонент StringGrid. Для этого используется типизированный массив набора данных. При добавлении новой записи происходит перенос данных из StringGrid-а в типизированный массив и затем происходит прямой перебор базы данных с поиском наиболее большего в текстовом смысле значения наименования продукции с использованием функции CompareText. При определении первого большего элемента добавляемая запись записывается между строк типизированного массива, а затем все «не пустые» записи типизированного массива переносятся в уже очищенный StringGrid. Затем типизированный массив очищается.

Таким образом исключается необходимость участия пользователя в процессе сортировки данных. Ход процесса перестроения базы данных как бы вмонтирован в операции по изменению данных. То есть конечной целью разработчика являлась создание унифицированной процедуры по преобразованию массива данных.Однако, данный метод (ровно как и метод «пузырька») применим только для малых объемов баз данных, так как преобразование большого массива информации потребует значительные ресурсы. Поэтому набор данных намеренно был ограничен 100 записями, что в полной мере удовлетворяет поставленному условию (оперирование с более чем десятью записями).

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

4. Разработка алгоритма, схема алгоритма и его описание.

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

Sg1.cells
2
Начало
1
1. процедура выполнения действий при загрузке формы: FormShow.

Пояснения к алгоритму 1:

Блок 2 – задание имен фиксированным столбцам в StringGrid.

3
memo1.Lines
Блок 3 – вывод в поле memoсообщения о запуске.

Начало
1
2. процедураочисткиStringGrid: CleanSG.

n2=1, Sg1.Rowcount,1
2
Пояснения к алгоритму 2:

Sg1.rows[n2].clear

Блок 2 – цикл перемещения по строкам StringGrid.
3
Блок 3 – очистка строки StringGrid.

3. процедура очистки edit-ов: clearedit.


2
Пояснения к алгоритму 3:
edit1.clear
Блоки 2-6 – очистка edit-ов.
4
6


4. процедура создания новой базы: button4click.


Пояснения к алгоритму 4:

Нет
Да
2
messagedlg
Блок 2 – запрос удаления несохраненных данных.

Блок 3 – вызов процедуры.

cleansg
3
Блок 4 – вывод в поле memoподтверждение создания базы.

5. процедура добавления записи: button1click.

Пояснения к алгоритму 5:

Блок 2 – проверка edit-ов на не пустые строки.

Блок 3 – попытка присвоить строке целочисленные переменные.

сообщение о необходимости полей 2…5 быть числом.

Блок 4 – задание начального условия цикла.

Блоки 5,6 – цикл очистки типового массива.

Блок 7 – задание начального условия цикла.

Блоки 8,9,10 – цикл перевода строки StringGrid в массив записей.

Блок 11 – задание начального условия цикла.

Блоки 12,13,14 – цикл нахождения количества записей больших добавленного значения.

Блок 13 – выполнение условия сравнения текстовых переменных.

Блоки 15,16 – междустрочное добавление записи в массив.

Блок 17 – вызов процедуры.

Блок 18 – задание начального условия цикла.

Блоки 19,20,21,22,23 – цикл перевода массива в StrinпGrid.

Блок 24 – вызов процедуры очистки edit-ов.

Блок 25 – вызов процедуры авторасчета.

сообщение о необходимости всех полей к обязательному заполнению.

12
19

6. процедура автоматического расчета: autorachet.

Пояснения к алгоритму 6:

Блок 2 – формирование цикла.

Блок 3 – условие математического расчета (при не пустой ячейке - выполняется).

Блок 4 – выполнение математических расчетов.

Блоки 5,6,7 – поиск максимального элемента.

Блок 8 – вывод в поле memo наименование статьи с наибольшим значением.


2

7. процедура сохранения базы: button6click.

Пояснения к алгоритму 7:

Блоки 2,3 – открытие для записи данных.

Блок 4 – задание начального условия цикла.

Блоки 5,6 – повторный цикл очистки массива.

Блок 7 – задание начального условия цикла.

Блоки 8,9,10 – повторение цикла перевода строки StringGrid в массив записей.

Блоки 11,12 – запись в файл.

Блок 13 – закрытие файла.

Блок 14 – вывод в поле memo подтверждения.

5


8. процедура открытия базы: button5click.

Пояснения к алгоритму 8:

Блоки 2,3 – открытие для чтения данных.

Блок 4 – задание начального условия цикла.

Блоки 5,6 – повторный цикл очистки массива.

Блоки 7,8,9 – чтение из типизированного файла в типизированный массив.

Блок 10 – вызов подтверждения очистки StringGrid.

Блок 11 – задание начального условия цикла.

Блоки 12,13,14,15,16 – повтор цикла перевода массива в StringGrid.

Блок 17 – вызов процедуры расчета.

Блок 18 – вывод в поле memo подтверждения.



9. процедура удаления базы: button3click.

Пояснения к алгоритму 9:

Блок 2 – очистка выбранной строки.

Блок 3 – задание начального условия цикла.

Блоки 4,5 – повторный цикл очистки массива.

Блок 6 – задание начального условия цикла.

Блоки 7,8,9 – повторение цикла перевода строки StrinGrid в массив записей.

Блок 10 – задание начального условия цикла.

Блоки 11,12,13,14,15 – повтор цикла перевода массива в StrinGrid.

Блок 16 – расчет.


15
16


10. клик StringGrid-а.

Пояснения к алгоритму 10:

Начало
1
Блок 2 – подтверждение выбора.
2
3

11. вызов печати.

Пояснения к алгоритму 11:

Начало
1
Блок 2 – вызов стандартного почтового клиента.

12. выход.

Пояснения к алгоритму 12:

Начало
1
Блок 2 – выход из программы.

5. Форма представления исходных данных

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

type zap=record

prod:string[80];

onng:longint;

plan:longint;

onkg:longint;

svocep:extended;

end;

Т.е. данная переменная представляет собой линейный массив переменных данных необходимого нам типа. Для организации двумерного массива, опишем в разделе переменных массив «Mzap»:

var

Mzap:array[1..200] ofzap; //объявление типа массива записей

Типизированный файл представляет собой набор типизированных элементов, структура и наименование которого описаны в вышеназванном разделе переменных:

filezap: file of zap;

filenamezap:string;


6. Разработка интерфейса

Принимая во внимание поставленную ранее задачу, создаем на форме следующие визуальные компоненты:

- StringGrid - для визуального отображения данных в табличной форме. Шапка таблицы будет повторять таблицу, указанную в начальном условии, и заполняется при открытии формы. Предустановленное максимальное количество строк – 100, столбцов – 7. Ширины столбцов выбираем в соответствии с размерностью данных.

- MEMO-поле для вывода данных, указанных в условии.

- 5 компонентов edit для добавления / изменения / удаления записей в базу данных (компоненты имеют ширину, соответствующую ширинам стобцов, и расположены напротив каждого столбца снизу) (см. рис. 1).

Рис.1. Общий вид приложения.

2 button-а для добавления и удаления записи, названных соответственно выполняемой функции. Так как для отображения информации в StringGrid используется текстовая форма, предусмотрено невозможность ввода текстовых данных в численные поля с выводом соответствующего сообщения, а также невозможность внесения «пустого» поля, так как все поля базы данных, необходимые для математического расчета по условиям задачи, должны быть обязательными для заполнения. Эти события регистрируются специальными предвартельными условиями и при обнаружения несоответствия выводится окно, отображающее наименование ошибки (см. рис.2 и рис.3).

Рис.2. Ошибка при добавлении пустого (пыстых) полей.

Рис.3. Ошибка при добавлении не численного значения.

- использованы стандартные диалоги OpenDialog и SaveDialog для предоставления пользователю возможности визуального выбора имени и пути типизированного файла для открытия либо для сохранения базы данных (См. рис.4).

Рис.4. Стандартное диалоговое окно для открытия базы данных.

Для вызова диалогов использованы 2 компонента button с соответствующими названиями. А для «обнуления» данных, т.е. создания новой базы использовать компонент button с подписью «создать базу».

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

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


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

unit EconomInfo;

interface

uses

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

Dialogs, Grids, Menus, StdCtrls,shellapi;

type

TForm1 = class(TForm)

sg1: TStringGrid;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

Memo1: TMemo;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Button1: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

N8: TMenuItem;

procedure FormShow(Sender: TObject);

procedure cleansg(Sender: TObject);

procedure cleanedit(Sender:TObject);

procedure Button4Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure autorachet(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure sg1Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N5Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

type zap=record // объявление типа записи

prod:string[80];

onng:longint;

plan:longint;

onkg:longint;

svocep:extended;

end;

var

Mzap:array[1..200] ofzap; //объявление типа массива записей

filezap: file of zap;

filenamezap:string;

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

procedure TForm1.FormShow(Sender: TObject);

begin

with sg1 do begin

Cells[0,0]:='Наименование продукции';

Cells[1,0]:='ОнНГ';

Cells[2,0]:='ПВ';

Cells[3,0]:='ОнКГ';

Cells[4,0]:='ОР, шт';

Cells[5,0]:='СвОЦЕП, руб';

Cells[6,0]:='СвОЦВОР, т.руб';

end;

memo1.Lines.Insert(0,DateTimeToStr(Now)+' - Программа запущена!');

end;

//процедура очистки стринггрида

procedure Tform1.cleansg(Sender: TObject);

var n2:integer;

begin

with sg1 do begin

for n2:=1 to RowCount do begin

Rows[n2].Clear;

end;

end;

end;

//процедура очистки эдитов

procedure Tform1.cleanedit(Sender: TObject);

begin

edit1.Clear;

edit2.Clear;

edit3.Clear;

edit4.Clear;

edit5.Clear;

end;

//Создание новой базы

procedure TForm1.Button4Click(Sender: TObject);

begin

if messagedlg('Все несохраненные данные текушей базы будут стерты!',mtconfirmation,mbYesNoCancel,0)=mrYes then begin

cleansg(Sender);

memo1.Lines.Insert(0,DateTimeToStr(Now)+' - Новая база создана. Пожалуйста сохраните, задав новое имя.');

end;

end;

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

procedure TForm1.Button1Click(Sender: TObject);

var n,k,l:integer;o:extended;

begin

//проверка на пустые поля edit-ов

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

begin

try

n:=strtoint(edit2.text);

n:=strtoint(edit3.text);

n:=strtoint(edit4.text);

o:=strtofloat(edit5.text);

except

on EConvertError do messagedlg('Поля 2..5 должны быть числом!',mterror,mbOKCancel,1);

end;

//цикл очистки массива записей

n:=0;

repeat

Mzap[n].prod:='';

Mzap[n].onng:=0;

Mzap[n].plan:=0;

Mzap[n].onkg:=0;

Mzap[n].svocep:=0;

n:=n+1;

untiln>=200;

//цикл перевода строк stringgrid-a в массив записей

n:=1;

repeat

if sg1.Cells[0,n]<>'' then begin

Mzap[2*n].prod:=sg1.Cells[0,n];

Mzap[2*n].onng:=strtoint(sg1.cells[1,n]);

Mzap[2*n].plan:=strtoint(sg1.cells[2,n]);

Mzap[2*n].onkg:=strtoint(sg1.cells[3,n]);

Mzap[2*n].svocep:=strtofloat(sg1.cells[5,n]);

end;

n:=n+1;

until n>=sg1.RowCount;

//цикл нахождения количества записей больших добавляемого значения

n:=1;l:=0;

repeat

if (Mzap[2*n].prod<>'') and (CompareText(edit1.Text,Mzap[2*n].prod)>0) then l:=l+1;

n:=n+1;

untiln>=200;

//междустрочная запись в массив

k:=2*l+1;

Mzap[k].prod:=edit1.Text;

Mzap[k].onng:=strtoint(edit2.text);

Mzap[k].plan:=strtoint(edit3.text);

Mzap[k].onkg:=strtoint(edit4.text);

Mzap[k].svocep:=strtofloat(edit5.text);

cleansg(sender); //вызов очистки стрингрида

//цикл перевода массива записей в стринггрид

n:=1;k:=1;

repeat

if Mzap[n].prod<>'' then begin

sg1.Cells[0,k]:=Mzap[n].prod;

sg1.Cells[1,k]:=inttostr(Mzap[n].onng);

sg1.Cells[2,k]:=inttostr(Mzap[n].plan);

sg1.Cells[3,k]:=inttostr(Mzap[n].onkg);

sg1.Cells[5,k]:=floattostr(Mzap[n].svocep);

k:=k+1;

end;

n:=n+1;

until n>=200;

cleanedit(Sender); //вызов очистки эдитов

autorachet(sender);

end

elsemessagedlg('Все поля обязательна для заполенения!',mterror,mbOKCancel,1); //вызов предупреждения

end;

//Процедура автоматического расчета

procedure Tform1.autorachet(Sender: TObject);

var n,l:longint; max:extended;

begin

n:=1;

max:=0;

repeat

with sg1 do begin

if cells[0,n]<>'' then begin

cells[4,n]:=inttostr(strtoint(cells[1,n])+strtoint(cells[2,n])-strtoint(cells[3,n]));

cells[6,n]:=floattostr(strtoint(cells[4,n])*strtofloat(cells[5,n])/1000);

if strtofloat(cells[6,n])>max then begin l:=n; max:=strtofloat(cells[6,n]);end;

end;

end;

n:=n+1;

until n>=sg1.rowCount;

memo1.Lines.Insert(0,DateTimeToStr(Now)+' - Расчет произведен. Максимальный СвОЦВОР '+floattostr(max)+' руб. у '+sg1.cells[0,l]);

end;

procedure TForm1.Button6Click(Sender: TObject);

var n:longint;

begin

with savedialog1 do begin

title:='Сохранение базы';

if execute then

begin

filenamezap:=filename;

assignfile(filezap,filenamezap);

rewrite(filezap);

n:=0;

repeat

Mzap[n].prod:='';

Mzap[n].onng:=0;

Mzap[n].plan:=0;

Mzap[n].onkg:=0;

Mzap[n].svocep:=0;

n:=n+1;

until n>=200;

n:=1;

repeat

if sg1.Cells[0,n]<>'' then begin

Mzap[n].prod:=sg1.Cells[0,n];

Mzap[n].onng:=strtoint(sg1.cells[1,n]);

Mzap[n].plan:=strtoint(sg1.cells[2,n]);

Mzap[n].onkg:=strtoint(sg1.cells[3,n]);

Mzap[n].svocep:=strtofloat(sg1.cells[5,n]);

end;

n:=n+1;

until n>=sg1.RowCount;

for n:=1 to 100 do write(filezap,mzap[n]);

closefile(filezap);

end;

end;

memo1.Lines.Insert(0,DateTimeToStr(Now)+' - База сохранена под именем '+filenamezap);

end;

rocedure TForm1.Button5Click(Sender: TObject);

var n,k:longint;

begin

with opendialog1 do begin

title:= 'Открытие базы';

if execute then

begin

filenamezap:=filename;

assignfile(filezap,filenamezap);

reset(filezap);

n:=0;

repeat

Mzap[n].prod:='';

Mzap[n].onng:=0;

Mzap[n].plan:=0;

Mzap[n].onkg:=0;

Mzap[n].svocep:=0;

n:=n+1;

until n>=200;

n:=1;

while not eof(filezap) do

begin

read(filezap,mzap[n]);

n:=n+1;

end;

cleansg(sender);

n:=0;k:=1;

repeat

if Mzap[n].prod<>'' then begin

sg1.Cells[0,k]:=Mzap[n].prod;

sg1.Cells[1,k]:=inttostr(Mzap[n].onng);

sg1.Cells[2,k]:=inttostr(Mzap[n].plan);

sg1.Cells[3,k]:=inttostr(Mzap[n].onkg);

sg1.Cells[5,k]:=floattostr(Mzap[n].svocep);

k:=k+1;

end;

n:=n+1;

until n>=200;

autorachet(sender);

end;

end;

memo1.Lines.Insert(0,DateTimeToStr(Now)+' - База '+filenamezap+ ' открыта');

end;

//процедураудалениязаписи

procedure TForm1.Button3Click(Sender: TObject);

var n,k:longint;

begin

sg1.Rows[sg1.Row].Clear;

n:=0;

repeat

Mzap[n].prod:='';

Mzap[n].onng:=0;

Mzap[n].plan:=0;

Mzap[n].onkg:=0;

Mzap[n].svocep:=0;

n:=n+1;

until n>=200;

n:=1;

repeat

if sg1.Cells[0,n]<>'' then begin

Mzap[n].prod:=sg1.Cells[0,n];

Mzap[n].onng:=strtoint(sg1.cells[1,n]);

Mzap[n].plan:=strtoint(sg1.cells[2,n]);

Mzap[n].onkg:=strtoint(sg1.cells[3,n]);

Mzap[n].svocep:=strtofloat(sg1.cells[5,n]);

end;

n:=n+1;

until n>=sg1.RowCount;

cleansg(sender);

n:=0;k:=1;

repeat

if Mzap[n].prod<>'' then begin

sg1.Cells[0,k]:=Mzap[n].prod;

sg1.Cells[1,k]:=inttostr(Mzap[n].onng);

sg1.Cells[2,k]:=inttostr(Mzap[n].plan);

sg1.Cells[3,k]:=inttostr(Mzap[n].onkg);

sg1.Cells[5,k]:=floattostr(Mzap[n].svocep);

k:=k+1;

cleanedit(Sender); //вызов очистки эдитов

end;

n:=n+1;

until n>=200;

autorachet(sender);

end;

procedure TForm1.sg1Click(Sender: TObject);

begin

edit1.Text:=sg1.Cells[0,sg1.Row];

edit2.Text:=sg1.Cells[1,sg1.Row];

edit3.Text:=sg1.Cells[2,sg1.Row];

edit4.Text:=sg1.Cells[3,sg1.Row];

edit5.Text:=sg1.Cells[5,sg1.Row];

memo1.Lines.Insert(0,DateTimeToStr(Now)+' - Запись № '+inttostr(sg1.Row)+ ' выбрана');

end;

procedure TForm1.N8Click(Sender: TObject);

begin

ShellExecute(form1.Handle, nil,PChar('mailto:ultrix@tut.by?Subject=EcoInfo'),'','', 0);

end;

procedure TForm1.N5Click(Sender: TObject);

begin

halt;

end;

end.


8. Результаты проведенных расчетов и их анализ.

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

Таблица1. Сведения о выручке от реализации продукции за плановый период.

Наименование продукцииОстатки на начало годаПлан выпускаОстатки на конец годаОбъем реализации, шт.Стоимость в оптовых ценах единицы продукции, руб.Стоимость в оптовых ценах всего объема реализации, тыс. руб.
1234567
Яблоко71140000500200000
Апельсин23680000100500150
Ананас34860000200400000
Мандарин 1179000050550000
Грейпфрут28450000150450000
Банан17370000300350000
Абрикос51395000450300000
Персик28665000600250000
Виноград48285000300600000
Груша13640000150650000

Расчеты производились следующим образом:

· Рассчитаем объем реализации продукции за плановый период. Объем реализации, в нашем, случае равен сумме остатков на начало года с планом выпуска за вычетом остатков на конец года по каждому виду реализованной продукции (Табл. 2).


Таблица2. Сведения о выручке от реализации продукции за плановый период.

Наименование продукцииОстатки на начало годаПлан выпускаОстатки на конец годаОбъем реализации, шт.Стоимость в оптовых ценах единицы продукции, руб.Стоимость в оптовых ценах всего объема реализации, тыс. руб.
1234567
Яблоко7114000050040211200000
Апельсин2368000010080136500150
Ананас3486000020060148400000
Мандарин 117900005090067550000
Грейпфрут2845000015050134450000
Банан1737000030069873350000
Абрикос5139500045095063300000
Персик2866500060064686250000
Виноград4828500030085182600000
Груша1364000015039986650000

· Зная стоимость в оптовых ценах единицы продукции, мы можем рассчитать стоимость в оптовых ценах всего объема реализации произведением объема реализации и стоимости в оптовых ценах единицы продукции (Табл. 3).

Таблица3. Сведения о выручке от реализации продукции за плановый период.

Наименование продукцииОстатки на начало годаПлан выпускаОстатки на конец годаОбъем реализации, шт.Стоимость в оптовых ценах единицы продукции, руб.Стоимость в оптовых ценах всего объема реализации, тыс. руб.
1234567
Яблоко71140000500402112000008042200
Апельсин236800001008013650015040080020,4
Ананас348600002006014840000024059200
Мандарин 11790000509006755000049536850
Грейпфрут284500001505013445000022560300
Банан173700003006987335000024455550
Абрикос513950004509506330000028518900
Персик286650006006468625000016171500
Виноград482850003008518260000051109200
Груша136400001503998665000025990900

Анализируя данные расчета мы можем сказать, что наиболее выгодно для продавца производить и реализовывать по цене 600000 руб. виноград т.к. этот продукт наиболее востребован покупателем и производитель получит за него наибольшую прибыль (51109200 тыс. руб.). Также будет выгодно производить и реализовывать по цене 500150 и 550000 руб. апельсины и мандарины соответственно т.к. за реализацию этих продуктов производитель получит высокую прибыль (40080020,4 и 49536850 соответственно). При производстве таких продуктов как ананасы (400000 руб.), грейпфрут (22560300 руб.), банан (24455550 руб.), абрикос (28518900 руб.), персик (16171500 руб.), груша (25990900 руб.), производитель будет получать хорошую прибыль, но при разных объемах и цене от реализации, подстраиваясь под потребности покупателя. Эти продукты можно было производить под заказ для реализации сторонним покупателем в не основной деятельности. Не выгодным продуктом для производства и реализации по цене 200000 руб. и объеме 40000 шт. является яблоко т.к. этот продукт не приносит хорошей прибыли.

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

Все расчеты производились в созданной нами программе на алгоритмическом языке ObjectPascal в визуальной среде Delphi. Для удобства расчета и просматривания результатов все наименование товара автоматически располагается в алфавитном порядке. Наибольшую прибыль и результат расчета мы можем видеть в поле memoкуда эти данные также заносятся автоматически (рис. 5).

Рис.5. Общий вид приложения с расчетом и результатами.


Выводы

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

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


Список использованной литературы

1. Архангельский А.Я. Программирование в Delphi 6 ––М.: ЗАО «Издательство БИНОМ», 2002г. – 1200 с.

2. Кандзюба С.П., Громов В.Н. Delphi 6. Базы данных и приложения. Лекции и упражнения. – К.: Издательство «ДинСофт», 2001. – 576 с.

3. Фаронов В.В. Delphi 6. Учебный курс. Издательство Молгачев С.В., 2001. – 672с.

4. Программирование в среде Delphi: Лабораторный практикум для студентов всех специальностей. Под общей редакцией Синицына А.К. – Мн.; БГУИР, 1998. – 94 с.

5. Основы информатики и вычислительной техники. Методические указания к выполнению курсовой работы для студентов факультета предпринимательства и управления специальности Э 03. 02. 00 «Экономическая информатика». Фурунжиев Р.И. – Ротапринт БАТУ, Мн.: 2000. – 25 с.

6. Архангельский А.Я. Программирование в Delphi 6 ––М.: ЗАО «Издательство БИНОМ», 2002г. – 1200 с.

7. Кандзюба С.П., Громов В.Н. Delphi 6. Базы данных и приложения. Лекции и упражнения. – К.: Издательство «ДинСофт», 2001. – 576 с.

8. Фаронов В.В. Delphi 6. Учебный курс. Издательство Молгачев С.В., 2001. – 672с.

9. Программирование в среде Delphi: Лабораторный практикум для студентов всех специальностей. Под общей редакцией Синицына А.К. – Мн.; БГУИР, 1998. – 94 с.

10. Основы информатики и вычислительной техники. Методические указания к выполнению курсовой работы для студентов факультета предпринимательства и управления специальности Э 03. 02. 00 «Экономическая информатика». Фурунжиев Р.И. – Ротапринт БАТУ, Мн.: 2000. – 25 с.


Приложения

К данному курсовому проекта прилагается магнитный носитель информации (дискета 3,5’’, 1,44Mb) с электронной версией пояснительной записки, полученным Windows-приложением (файл EcoInfo.exe), исходными текстами программы (файл EconomInfo.pas), а также другими необходимыми файлами для компиляции приложения.


Нет нужной работы в каталоге?

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

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Филиал государственного бюджетного образовательного учреждения высшего образования Московской област
Спасибо Елизавете за оперативность. Так как это было важно для нас! Замечаний особых не бы...
star star star star star
РУТ
Огромное спасибо за уважительное отношение к заказчикам, быстроту и качество работы
star star star star star
ТГПУ
спасибо за помощь, работа сделана в срок и без замечаний, в полном объеме!
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

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

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно