Расчет макроэкономических индексов цен - Курсовая работа

бесплатно 0
4.5 73
Составление алгоритма и разработка в среде программирования Delphi 7 программы, вычисляющей макроэкономические индексы цен. Реализация программы в виде 4 форм и 1 диалогового окна. Описание алгоритма решения задачи. Текст программы, руководство оператора.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Программу необходимо реализовать в среде Delphi 7 в виде приложения, ориентированного на рядового пользователя. программа алгоритм индекс цена На данной форме вводится количество товара, по значению которого строиться таблица на главной форме, умножая это число на 2 (2*n), создавая тем самым для каждого вида товара два столбца (Цена, Объем). Procedure btn2Click - клик по кнопке "Отформатировать таблицу"; Procedure Excel2Click - клик по кнопке "Сохранить в Excel"; procedure Excel2Click (Sender: TOBJECT);Разработанное в данной курсовой работе приложение является полностью законченным программным продуктом и может быть использовано самостоятельно или как компонент другой информационной системы.

План
Оглавление

Введение

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

Организация диалога

Описание алгоритма решения задачи

Текст программы

Руководство оператора

Заключение

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

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

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

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

Необходимо разработать приложение, автоматизирующее процесс нахождения необходимых индексов вида: 1. Индекс Ласпейреса

2. Индекс Пааше (Дефлятор)

3. Индекс Фишера

Программа должна поддерживать ввод количества видов продукции, ввод данных по двум периодам (текущий и базисный) в табличной форме, где q0 - объем потребления в базисном периоде, р1 и р0 - цены текущего и базисного периода, q1 - объем потребления в текущем периоде. Также результаты выводятся на экран и возможно импортирование в Excel. Программу необходимо реализовать в среде Delphi 7 в виде приложения, ориентированного на рядового пользователя. программа алгоритм индекс цена

Организация диалога

Программа реализована в виде 4 форм и 1 диалогового окна

1. Main Form (Расчет ценовых индексов) (Рис.1,2,3). Это главная форма, на которой расположены: · Панель инструментов, включающая в себя 5 вкладок (TMENUITEM);

· 5 кнопок (TBUTTON);

· Таблица (TSTRINGGRID) (Скрыта до введения количества продукции);

Рисунок 1. Главная форма.

Рисунок 2. Построение таблицы.

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

С помощью панели инструментов, можно экспортировать данные таблицы в Excel (Рис.4), вызвать справку, прочесть "О программе", а также закрыть программное обеспечение. Кнопки служат для введения начальных данных, формата таблицы с последующим введением основных данных, а так же выполнению основного алгоритма программы, расчета индексов Лайспереса, Пааше (он же дефлятор) и Фишера.

Рисунок 4. Диалоговое окно сохранения.

2. Form 2 (Продукция) (Рис.5). Это форма, на которой расположено: · Текст (TLABEL);

· Поле ввода (TEDIT);

· Кнопка (TBUTTON);

Рисунок 5. Форма "Продукция".

На данной форме вводится количество товара, по значению которого строиться таблица на главной форме, умножая это число на 2 (2*n), создавая тем самым для каждого вида товара два столбца (Цена, Объем).

3. Form 3 (О программе) (Рис.6). Третья форма служит небольшим информационным источником об авторе программы и цели, для которой была написана это программа. При нажатии "Ok", она закрывается. На ней имеются: · Текст (TLABEL);

· Кнопка (TBUTTON);

· Изображение (TPICTURE);

Рисунок 6. Форма "О программе".

4. Form 4 (Справка) (Рис.7). Это форма является небольшой инструкцией по работе в программе. В ней последовательно изложены шаги, как правильно работать в данном ПО. На ней расположен только текст (TLABEL), закрытие осуществляется нажатие на Крестик.

Рисунок 7. Форма "Справка".

Описание алгоритма решения задачи

Для решения поставленной задачи, необходимо организовать ввод данных, обработку их и вычисление индексов по формулам расчета (Лайспереса, Пааше (Дефлятор) и Фишера), для отображения их в таблице и последующим экспортированием данных в табличный процессор Excel, с вызовом диалогового окна. Приводятся блок-схемы алгоритмов (Рис.8,9,10, 11,12):

Рисунок 8. Блок-схема алгоритма Лайспереса.

Рисунок 9. Блок-схема алгоритма Пааше.

Рисунок 8. Блок-схема алгоритма Фишера.

Рисунок 8. Блок-схема алгоритма экспорта в Excel.

Рисунок 8. Блок-схема диалогового окна сохранения.

Текст программы

Программа содержит четыре модуля: Unit1 (Главная Форма), Unit2, Unit3, Unit4.

В первом модуле - Unit1 (Главная Форма) описано 10 процедур и 2 функции: 1. Procedure FORMCREATE - создание формы, центрирование;

2. Procedure N2Click - клик по кнопке "Выход";

3. Procedure btn1Click - клик по кнопке "Количество продукции";

4. Procedure btn2Click - клик по кнопке "Отформатировать таблицу";

5. Procedure Excel2Click - клик по кнопке "Сохранить в Excel";

6. Procedure N4Click - клик по кнопке "Помощь" - > "О программе";

7. Procedure btn3Click - клик по кнопке "Индекс Лайспереса";

8. Procedure btn4Click - клик по кнопке "Индекс Пааше";

9. Procedure btn5Click - клик по кнопке "Индекс Фишера";

10. Procedure N5Click - клик по кнопке "Помощь" - > "Справка";

11. Function REFTOCELL - функция ссылки на ячейку в Excele (позволяет точно перенести ячейки из Delphi в Excel);

12. Function SAVEASEXCELFILE - функция экспортирования из Delphi в Excel. unit Unit1;

interface uses

Windows, Messages, SYSUTILS, Variants, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, Menus, Grids, COMOBJ;

type

TFORM1 = class (TFORM) btn1: TBUTTON;

mm1: TMAINMENU;

Excel2: TMENUITEM;

N3: TMENUITEM;

N4: TMENUITEM;

N5: TMENUITEM;

N2: TMENUITEM;

strngrd1: TSTRINGGRID;

DLGSAVE1: TSAVEDIALOG;

btn2: TBUTTON;

btn3: TBUTTON;

btn4: TBUTTON;

btn5: TBUTTON;

procedure FORMCREATE (Sender: TOBJECT);

procedure N2Click (Sender: TOBJECT);

procedure btn1Click (Sender: TOBJECT);

procedure btn2Click (Sender: TOBJECT);

procedure Excel2Click (Sender: TOBJECT);

procedure N4Click (Sender: TOBJECT);

procedure btn3Click (Sender: TOBJECT);

procedure btn4Click (Sender: TOBJECT);

procedure btn5Click (Sender: TOBJECT);

procedure N5Click (Sender: TOBJECT);

private

{ Private declarations } public

{ Public declarations } end;

var

Form1: TFORM1;

m, n, i: integer;

Excel: Variant;

X: array [1.20,1.20] of integer;

const EXCEL_FILE_EXT = ". xls";

implementation

{$R *. dfm} uses Unit2, Unit3, Unit4;

procedure TFORM1. FORMCREATE (Sender: TOBJECT);

begin

Form1. Position: = POSCREENCENTER;

strngrd1. Hide;

end;

procedure TFORM1. btn1Click (Sender: TOBJECT);

begin

Form1. Hide;

Form2. Show;

end;

procedure TFORM1. N2Click (Sender: TOBJECT);

begin

Close;

end;

procedure TFORM1. btn2Click (Sender: TOBJECT);

var x, y, w, MAXWIDTH: Integer;

begin with Form1. strngrd1 do

CLIENTHEIGHT: = ROWCOUNT 5;

with Form1. strngrd1 do begin for x: = 0 to COLCOUNT - 1 do begin

MAXWIDTH: = 0;

for y: = 0 to ROWCOUNT - 1 do begin w: = Canvas. TEXTWIDTH (Cells [x,y]);

if w > MAXWIDTH then

MAXWIDTH: = w;

end;

COLWIDTHS [x]: = MAXWIDTH 5;

end;

end;

end;

function REFTOCELL (AROW, ACOL: Integer): string;

begin

Result: = Chr (Ord ("A") ACOL - 1) INTTOSTR (AROW);

end;

function SAVEASEXCELFILE (AGRID: TSTRINGGRID; ASHEETNAME, AFILENAME: string): Boolean;

const

XLWBATWORKSHEET = - 4167;

var

XLAPP, Sheet, Data: OLEVARIANT;

i, j: Integer;

begin

Data: = VARARRAYCREATE ([1, AGRID. ROWCOUNT, 1, AGRID. COLCOUNT], VARVARIANT);

for i: = 0 to AGRID. COLCOUNT - 1 do for j: = 0 to AGRID. ROWCOUNT - 1 do

Data [j 1, i 1]: = AGRID. Cells [i, j];

Result: = False;

XLAPP: = CREATEOLEOBJECT ("Excel. Application");

try

XLAPP. Visible: = False;

XLAPP. Workbooks. Add (XLWBATWORKSHEET);

Sheet: = XLAPP. Workbooks [1]. WORKSHEETS [1];

Sheet. Name: = ASHEETNAME;

Sheet. Range [REFTOCELL (1, 1), REFTOCELL (AGRID. ROWCOUNT, AGRID. COLCOUNT)]. Value: = Data;

try

XLAPP. Workbooks [1]. SAVEAS (AFILENAME);

Result: = True;

except end;

finally if not VARISEMPTY (XLAPP) then begin

XLAPP. DISPLAYALERTS: = False;

XLAPP. Quit;

XLAPP: = Unassigned;

Sheet: = Unassigned;

end;

end;

end;

procedure TFORM1. Excel2Click (Sender: TOBJECT);

begin

DLGSAVE1. Execute;

if SAVEASEXCELFILE (strngrd1, ‘Сводная таблица’, DLGSAVE1. FILENAME) then

SHOWMESSAGE (‘Данные успешно экспортированы! ’);

end;

procedure TFORM1. N4Click (Sender: TOBJECT);

begin

Form3. Show;

end;

procedure TFORM1. btn3Click (Sender: TOBJECT);

var i: Integer;

Pl, Il, Zl: Extended;

begin

Il: =0;

Zl: =0;

i: =1;

while (i<=2*n) do begin

Il: =Il STRTOINT (strngrd1. Cells [i,2]) *STRTOINT (strngrd1. Cells [i 1,1]);

Zl: =Zl STRTOINT (strngrd1. Cells [i,1]) *STRTOINT (strngrd1. Cells [i 1,1]);

i: =i 2 end;

Pl: = Il/Zl;

strngrd1. Cells [1,3]: = FLOATTOSTR (Pl);

end;

procedure TFORM1. btn4Click (Sender: TOBJECT);

var i: Integer;

Pp, Ip, Zp: Extended;

begin

Ip: =0;

Zp: =0;

i: =1;

while (i<=2*n) do begin

Ip: =Ip STRTOINT (strngrd1. Cells [i,2]) *STRTOINT (strngrd1. Cells [i 1,2]);

Zp: =Zp STRTOINT (strngrd1. Cells [i,1]) *STRTOINT (strngrd1. Cells [i 1,2]);

i: =i 2 end;

Pp: = Ip/Zp;

strngrd1. Cells [2,3]: = FLOATTOSTR (Pp);

end;

procedure TFORM1. btn5Click (Sender: TOBJECT);

var Pf, Pl, Pp: Extended;

Label LA;

begin if (strngrd1. Cells [1,3] =’Лайспереса’) or (strngrd1. Cells [2,3] =’Дефлятор’) then begin if messagedlg (‘Сначала посчитайте индекс Лайспереса и Дефлятор! ’, mtconfirmation, [MBOK], 0) = MROK then goto LA;

end;

if (strngrd1. Cells [1,3] ="") or (strngrd1. Cells [2,3] ="") then begin if messagedlg (‘Сначала посчитайте индекс Лайспереса и Дефлятор! ’, mtconfirmation, [MBOK], 0) = MROK then goto LA;

end;

Pl: = STRTOFLOAT (strngrd1. Cells [1,3]);

Pp: = STRTOFLOAT (strngrd1. Cells [2,3]);

Pf: = Sqrt ( (Pl*Pp));

strngrd1. Cells [3,3]: = FLOATTOSTR (Pf);

LA: end;

procedure TFORM1. N5Click (Sender: TOBJECT);

begin

Form4. Show;

end;

end.

Во втором модуле - Unit2 описаны 3 процедуры: 1. Procedure FORMCREATE - создание формы, центрирование;

2. Procedure btn1Click - клик по кнопке "Ok";;

3. Procedure FORMCLOSE - клик по крестику;

unit Unit2;

interface uses

Windows, Messages, SYSUTILS, Variants, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS;

type

TFORM2 = class (TFORM) lbl1: TLABEL;

edt1: TEDIT;

btn1: TBUTTON;

procedure FORMCREATE (Sender: TOBJECT);

procedure btn1Click (Sender: TOBJECT);

procedure FORMCLOSE (Sender: TOBJECT; var Action: TCLOSEACTION);

private

{ Private declarations } public

{ Public declarations } end;

var

Form2: TFORM2;

implementation

{$R *. dfm} uses Unit1, Unit3;

procedure TFORM2. FORMCREATE (Sender: TOBJECT);

begin

Form2. Position: = POSCREENCENTER;

edt1. Clear;

end;

procedure TFORM2. FORMCLOSE (Sender: TOBJECT; var Action: TCLOSEACTION);

begin

Form2. Hide;

Form1. Show;

end;

procedure TFORM2. btn1Click (Sender: TOBJECT);

var i, c, o: Integer;

Label LA;

begin if edt1. Text="" then begin if messagedlg (‘Введите количество видов продукции! ’, mtconfirmation, [MBOK], 0) = MROK then goto LA;

end;

n: =STRTOINT (edt1. Text);

if (n<0) or (n=0) then begin if messagedlg (‘Введите положительное количество видов продукции! ’, mtconfirmation, [MBOK], 0) = MROK then goto LA;

end;

Form1. strngrd1. COLCOUNT: =2*n 1;

Form1. strngrd1. ROWCOUNT: =4;

Form1. strngrd1. Cells [0,0]: =’№’;

c: =1;

o: =1;

for i: =1 to 2*n do if i mod 2 = 1 then begin

Form1. strngrd1. Cells [i,0]: =’Цена’ INTTOSTR (c);

Inc (c);

end else begin

Form1. strngrd1. Cells [i,0]: =’Объем’ INTTOSTR (o);

Inc (o);

end;

Form1. strngrd1. Cells [0,1]: =’Введите базисный год’;

Form1. strngrd1. Cells [0,2]: = ’Введите текущий год’;

Form1. strngrd1. Cells [0,3]: = ’Индексы цен’;

Form1. strngrd1. Cells [1,3]: =’Лайспереса’;;

Form1. strngrd1. Cells [2,3]: =’Дефлятор’;

Form1. strngrd1. Cells [3,3]: =’Фишера’;

Form1. strngrd1. Align: =ALCLIENT;

Form1. strngrd1. Show;

Form2. Hide;

Form1. Show;

LA: end;

end.

В третьем модуле - Unit3 описано 2 процедуры: 1. Procedure btn1Click - клик по кнопке "Ok";

2. Procedure FORMCREATE - создание формы, центрирование;

unit Unit3;

interface uses

Windows, Messages, SYSUTILS, Variants, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS, jpeg, EXTCTRLS;

type

TFORM3 = class (TFORM)

Image1: TIMAGE;

lbl1: TLABEL;

lbl2: TLABEL;

btn1: TBUTTON;

procedure btn1Click (Sender: TOBJECT);

procedure FORMCREATE (Sender: TOBJECT);

private

{ Private declarations } public

{ Public declarations } end;

var

Form3: TFORM3;

implementation uses Unit1, Unit2, Unit4;

{$R *. dfm} procedure TFORM3. btn1Click (Sender: TOBJECT);

begin

Form3. Close;

end;

procedure TFORM3. FORMCREATE (Sender: TOBJECT);

begin

Form3. Position: = POSCREENCENTER;

end;

end.

В четвертом и последнем модуле - Unit4 не описано ни одной процедуры, т.к. там информационное окно содержащий текст, закрыть форму можно кликнув на Крестик. unit Unit4;

interface uses

Windows, Messages, SYSUTILS, Variants, Classes, Graphics, Controls, Forms, Dialogs, STDCTRLS;

type

TFORM4 = class (TFORM)

Label1: TLABEL;

private

{ Private declarations } public

{ Public declarations } end;

var

Form4: TFORM4;

implementation uses Unit1, Unit2, Unit3;

{$R *. dfm} end.

Руководство оператора

Приложение разработано для операционной системы MS Windows.

Никакое дополнительное ПО или устройства для работы программы не требуется. Для работы приложения необходим только исполняющий файл

(Project1. exe или Расчет макроэкономических индексов цен. exe). Двойной клик по названию файла или ярлыку запускает программу.

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

Поля для ввода количества продукции защищены от введения отрицательных значений и значения "нуль". Кнопка "Индекс Фишера" сработает только после того, как будут посчитаны другие индексы и внесены в соответствующие ячейки таблицы, защищены от пустых значений.

Для завершения работы с программой необходимо закрыть все дополнительные форму кнопкой "Ok" или кликом на Крестик, в случае отсутствия такой кнопки. Выйти из главной формы, можно нажатием кнопки "Выход" на панели инструментов или нажатием на Крестик.

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

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

Список литературы
1. В.Д. Богатырев, А.Ю. Ситникова. Экономическая теория для бакалавров менеджмента: учебно-методический комплекс дисциплины, Самара: Изд-во Самар. гос. аэрокосм. ун-т, 2008. - 256 с.

2. А.Б. Закалюкин, С.В. Колосов. Программирование в среде Delphi, Минск. 1998.

3.

Рецензия на курсовую работу студентки 2-го курса факультета "Экономики и управления”

Швардыгулиной А.Ф. на тему "Расчет макроэкономических индексов цен”

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

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

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

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

Предложенное пожелание нисколько не влияет на проделанную работу, так как она соответствует всем требованиям, и заслуживает отличной оценки.

Рецензент: Шлыкова М.П.

__________________________

"30” апреля 2013 г. (подпись)

Рецензия на курсовую работу студентки 2-го курса факультета "Экономики и управления”

Швардыгулиной А.Ф. на тему "Расчет макроэкономических индексов цен”

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

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

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

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

Отмеченные недочеты работы не снижают ее высокого уровня. В целом, работа соответствует всем требованиям, предъявляемым к курсовой работе, и заслуживает отличной оценки.

Рецензент: Семенов В.В.

_____________________

"30” мая 2013 г (подпись)

Размещено на .ru

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?