Программа для вычисления конвертируемости рубля России в валюту заданных стран с учетом комиссии
Создание проекта, вычисляющего величину конвертируемого рубля России в разные валюты, банковские отчисления. Выдача итоговой суммы в таблице и графически. Разработка программы в интегрированной среде разработки (IDE) на языке программирования Delphi.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 09.11.2012 |
Размер файла | 1,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Оглавление
- 1. Цели и задачи курсовой работы
- 2. Постановка задачи курсовой работы
- 3. Задание на выполнение
- 4. Выполнение работы
- 5. Выводы по работе
- Литература
1. Цели и задачи курсовой работы
Развить практические навыки работы с современными информационными технологиями. Получить представление о создании табличных и графических объектов на языках высокого уровня.
2. Постановка задачи курсовой работы
Используя современные программные обеспечения создать программу для вычисления конвертируемости рубля России в валюту заданных стран с учетом комиссии и вывода графика полученных валютных значений.
3. Задание на выполнение
Вариант задания курсовой работы определяется последней M и предпоследней N цифрами номера студенческого билета и выбирается из табл. 1-4. В курсовой работе необходимо выполнить следующее:
3.1 В интегрированной среде разработки (IDE) на языке Delphi или другом Delphi-подобном языке (например, Free Pascal в IDE Lazarus) создать проект, вычисляющий величину конвертируемого рубля России в разные валюты, банковских отчислений и выдачи итоговой суммы клиенту в таблице и графически. Проект должен содержать таблицу для работы с массивами данных и средства построения графики.
Исходными данными для написания программы являются курсы валют заданных стран, банковские ставки и атрибуты графиков, представления процесса конвертируемости рубля. В табл. 1 приведены цифровые коды стран и процентные ставки банков в соответствии с номером варианта, а в табл. 2 - полный список стран и валютных курсов, из которых формируются варианты.
Таблица 1
M |
N |
Наименование |
Задания по варианту |
|||||
4 |
Цифровой код |
840 |
352 |
826 |
392 |
398 |
||
9 |
Процентная ставка |
4 |
3 |
5 |
2 |
6 |
Таблица 2
Цифровой код |
Буквенный код |
Единиц |
Валюта |
Курс* рубля |
|
840 |
USD |
1 |
Доллар США |
23,40 |
|
352 |
ISK |
1 |
Исландских крон |
44,60 |
|
826 |
GBP |
1 |
Английский фунт стерлингов |
45, 20 |
|
392 |
JPY |
1 |
Японских иен |
20, 20 |
|
398 |
KZT |
100 |
Казахских тенге |
16, 20 |
3.2 В качестве средства для работы с массивами данных использовать двумерную таблицу, в которую можно ввести исходные данные: названия валют (буквенный код), курс рубля, процентные ставки банка, необходимые для подсчета суммы выдачи, а также произвести расчет и вывод результатов вычислений комиссионного сбора и суммы выдачи в соответствующие ячейки.
3.3 В проектируемой таблице предусмотреть возможность редактирования содержимого ячеек с исходными данными в случае изменения курса валюты или процентных ставок, а также удаления и добавления строк и столбцов для ввода дополнительных данных.
3.4 По результатам расчета построить диаграмму валютного эквивалента исходной суммы по курсу заданных стран. Для построения диаграммы написать программу. Вид диаграммы выбрать по своему усмотрению. Исходные данные для диаграммы приведены в табл.3.
программа конвертируемость рубль графический
Таблица 3
М |
Цвета валютных эквивалентов исходной суммы |
Цвет заливки фона диаграммы |
Тип линии |
|
4 |
clLime, clYellow, clBlue, clRed, clTeal |
clMenu |
psDash |
3.5 На диаграмме отразить валютные эквиваленты и область построения заданными цветами, контуры эквивалентов очертить заданным типом линии, добавить легенду с поясняющими надписями. Для построения диаграммы предусмотреть отдельную форму с компонентами управления.
3.6 Дополнить программу решением задач, приведенных в табл.4 согласно варианту, предусмотрев для их решения элементы управления и элементы вывода результатов решений в соответствующие компоненты. Снабдить элементы интерфейса пояснительными надписями.
3.7 Дополнить компоненты управления соответствующими пиктограммами в виде битовых матриц
Таблица 4
N |
Вывести: |
|
9 |
Наименьшую из заданных процентных ставок; |
|
Отсортировать массив в порядке возрастания суммы выдачи; |
||
Используя поиск, заданный курс рубля; |
3.8 Создать (или загрузить готовый) значок приложения.
3.9 Используя пакет расширений Simulink (математической системы MATLAB), создать модель пересчета денежных сумм, реализующую поставленную задачу (п.3.1) и вывести статистические показатели по варианту п.3.6 (первое задание из табл.4).
3.10. Сравнить полученные результаты и сделать выводы.
4. Выполнение работы
Технология выполнения задания. Для создания формы необходимо соблюсти определенный порядок работы:
1. Открыть ИСР Lazarus.
2. Создать командой Файл\Создать\Project\Application приложение под графическую операционную систему. Можно увидеть окно стартовой формы, представляющее собой заготовку главного окна разрабатываемого приложения.
3. Новый проект сохранить в папке "KR": модуль под именем Tabl. pas, а код самого проекта под именем GraphTabl. dpr (*. lpr).
4. Разместить на форме компоненты, обеспечивающие требуемые режимы работы приложения, например: строковая таблица StringGrid1 (для ввода исходных данных, их редактирования и вывода результатов вычислений); кнопки Button1 - Button2 и BitBtn1 - BitBtn6 - для запуска расчета, редактирования содержимого ячеек таблицы, очистки расчетных данных, вызова средств построения графика и решения индивидуальных задач; метки Label1 - Label6 - для пояснительных надписей к каждому элементу интерфейса приложения и вывода расчетных данных; однострочные редакторы Edit1 - Edit3 - как средства ввода и редактирования данных.
5. Для всех компонентов, включая саму форму, установить свойства, соответствующие выполняемым ими функциям, создать необходимые процедуры и обработчики событий.
5.1 Для упрощения расчета поставленных задач создать процедуру Calculation, которая должна в соответствии с вводимой величиной конвертируемой суммы формировать взнос, вычислять комиссионные и сумму выдачи, а также отображать результаты расчета в соответствующих столбцах таблицы. Формирование взноса для конверсии, а также вычисление комиссионного сбора по процентным ставкам и результирующей суммы выдачи при конверсии рубля производится по формулам:
Взнос = СуммаКонверсии. (1)
Комиссионные = Взнос ПроцентСтавка / 100; (2)
СуммаВыдачи = (Взнос - Комиссионные) / КурсРубля; (3)
5.2 Для заполнения "шапки" таблицы с использованием фиксированных ячеек создать процедуру обработки события OnGreate Form1. В этой процедуре отразить:
· заполнение ячеек буквенными кодами валют, курсами рубля, процентными ставками;
· очистку полей ввода средств редактирования;
· отображение текущей даты в момент запуска проекта;
· отображение всплывающих подсказок по отношению к величине вводимых данных с клавиатуры.
5.3 Для заполнения ячеек таблицы расчетными показателями создать обработчик события OnClick для кнопки "Принято", при выполнении которого вызывается процедура Calculation и столбцы "Взнос", "Комиссионные" и "СуммаВыдачи" заполняются значениями, рассчитанные по формулам (1) - (3).
5.4 Для редактирования данных ячеек создать обработчик события OnClick для кнопки "ОК", при выполнении которого данные из "Редактора ячеек" при нажатии кнопки заносятся в таблицу по текущим координатам. А обработчик события OnDblClick для ячеек таблицы StringGrid1, позволил бы двойным щелчком мыши по одной из ячеек таблицы переносить данные из таблицы в окно "Редактора ячеек"l, для их дальнейшего редактирования, в случае изменении курса рубля или процентных ставок. Доступ к координатам текущей ячейки обеспечивается с помощью свойств Col и Row компонента StringGrid1.
5.5 Для увеличения /уменьшения количества строк /столбцов динамически в процессе выполнения программы создать обработчики события OnClick для соответствующих кнопок.
6. Сохранить изменения в проекте. Откомпилировать проект.
7. Создать адекватные процедуры для кнопок BitBth1 - BitBth 6. Для всех кнопок (кроме График), расположенных на панели, создать методы, при осуществлении которых возникают адекватные события: очистки столбцов от расчетных данных, завершения работы, нахождения минимального значения, сортировка элементов массива, поиска элемента в таблице по образцу.
8. Для кнопки График создать обработчик события OnClick, при выполнении которого, открывается вторая форма, используемая для создания графического интерфейса.
9. Создать в проекте новую форму Form2 и разместить на ней компоненты, обеспечивающие требуемые режимы работы приложения.
10. Для кнопки Построить создать обработчик события OnClick, при выполнении которого на компоненте строится график.
11. Сохранить, откомпилировать проект; проверить работоспособность.
Рис. 1. Интерфейс табличного представления данных в режиме разработки
Рис.2. Графический интерфейс в режиме разработки
Рис.3. Интерфейс табличного представления данных в режиме запуска
Рис.4. Графический интерфейс в режиме запуска
Модуль Tabl
unit Tabl;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Grids,
Buttons, StdCtrls, ExtCtrls;
Type
{ TForm1 }
TForm1 = class (TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
StringGrid1: TStringGrid;
procedure BitBtn1Click (Sender: TObject);
procedure BitBtn2Click (Sender: TObject);
procedure BitBtn3Click (Sender: TObject);
procedure BitBtn4Click (Sender: TObject);
procedure BitBtn5Click (Sender: TObject);
procedure BitBtn6Click (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 Label5Click (Sender: TObject);
private
{ private declarations }
public
{ public declarations }
procedure Kalkyljator; // обьявление поцедуры калькулятор
end;
var Form1: TForm1;
i,j,k: integer;
a: array [1.5] of real;
x,y: integer;
implementation
uses Graph;
{ TForm1 }
procedure TForm1. Kalkyljator;
var // Переменные
Vznos: real; // Взнос
Stavka: real; // Ставка
Komissionnie: real; // Комиссионные
Symma: real; // Сумма выдачи
begin
if (Edit2. Text='') or (StrToFloat (Edit2. Text) <=0) then
ShowMessage ('Данные введены не верно, Сумма для расчёта должна быть больше 0! ')
else
begin
with Form1 do
for j: =1 to 5 do // Расчёт данных
if StrToFloat (StringGrid1. Cells [1,j]) <>0 then
begin
Vznos: =StrToFloat (Edit2. Text);
Stavka: =StrToFloat (StringGrid1. Cells [3,j]);
Komissionnie: =Vznos*Stavka/100;
Symma: = (Vznos-Komissionnie) /StrToFloat (StringGrid1. Cells [1,j]);
StringGrid1. Cells [2,j]: =FloatToStrF (Vznos,ffFixed,12,2); // Вывод взноса в столбец
StringGrid1. Cells [4,j]: =FloatToStrF (Komissionnie,ffFixed,12,2); // Вывод комиссионных в столбец
StringGrid1. Cells [5,j]: =FloatToStrF (Symma,ffFixed,12,2); // Вывод суммы выдачи в столбец
end;
end;
end;
procedure TForm1. BitBtn2Click (Sender: TObject);
begin
close
end;
procedure TForm1. BitBtn3Click (Sender: TObject);
var
min: real; // номер минимального элемента массива
i: byte;
begin
for i: =1 to 5 do
a [i]: =StrToFloat (StringGrid1. Cells [3, i]);
min: =a [1];
for i: =1 to 5 do // поиск минимального элемента
if a [i] <min then
min: =a [i];
Label5. Caption: ='Наименьшая процентная ставка: '+ FloatToStr (min);
end;
procedure TForm1. BitBtn4Click (Sender: TObject);
var
d,v: byte;
m: byte;
i: byte;
buf: array [0.5] of string;
begin
Kalkyljator;
for v: =1 to StringGrid1. RowCount-1 do
begin
m: =v;
for
i: =v to StringGrid1. RowCount-1 do
if StrToFloat (StringGrid1. Cells [5, i]) <StrToFloat (StringGrid1. Cells [5,m]) then m: =i;
if v<>m then
begin
for d: =0 to 5 do
begin
buf [d]: =StringGrid1. Cells [d,v];
StringGrid1. Cells [d,v]: =StringGrid1. Cells [d,m];
StringGrid1. Cells [d,m]: =buf [d];
end;
end;
end;
end;
procedure TForm1. BitBtn1Click (Sender: TObject); // Очистить
begin
Edit1. Text: =''; // Редактирование компонента
Edit2. Text: ='';
Edit3. Text: ='';
for j: =1 to 5 do
StringGrid1. Cells [2,j]: =''; // Редактирование столбца
for j: =1 to 5 do
StringGrid1. Cells [4,j]: =''; // Редактирования столбца комиссионных
for j: =1 to 5 do
StringGrid1. Cells [5,j]: =''; // Редактирования столбца суммы выдачи
end;
procedure TForm1. BitBtn5Click (Sender: TObject); // Поиск
var
i: byte;
obr: real; // Образец для поиска заданного курса рубля
found: boolean; // совпадние образца с эллементом
begin
for i: =1 to 5 do
a [i]: =StrToFloat (StringGrid1. Cells [1, i]);
obr: =StrToFloat (Edit3. Text);
found: =false;
i: =1;
repeat
if a [i] =obr then found: =True
else i: =i+1;
until (i>5) or (found=True);
if found=True then ShowMessage ('Совпадение с элементом под номером'+inttostr (i) +#13+'поиск успешен')
else ShowMessage ('Совпадений с элементом нет');
end;
procedure TForm1. BitBtn6Click (Sender: TObject);
begin
Form2. Show;
end;
procedure TForm1. Button1Click (Sender: TObject);
begin
StringGrid1. Cells [StringGrid1. Col,StringGrid1. Row]: =Form1. Edit1. Text; // Перенос данных в таблицу
end;
procedure TForm1. Button2Click (Sender: TObject); // Вызов процедуры калькулятор
begin
Kalkyljator;
end;
procedure TForm1. Button3Click (Sender: TObject);
begin
if StringGrid1. RowCount>6 then
StringGrid1. RowCount: =StringGrid1. RowCount-1; // уменьшение числа строк на единицу.
end;
procedure TForm1. Button4Click (Sender: TObject);
begin
if StringGrid1. ColCount>6 then StringGrid1. ColCount: =StringGrid1. ColCount-1; // уменьшение числа столбцов на единицу
end;
procedure TForm1. Button5Click (Sender: TObject);
begin
StringGrid1. ColCount: =StringGrid1. ColCount+1; // увеличение числа столбцов на единицу
end;
procedure TForm1. Button6Click (Sender: TObject);
begin
StringGrid1. RowCount: =StringGrid1. RowCount+1; // увеличение числа строк на единицу.
end;
procedure TForm1. FormCreate (Sender: TObject);
begin
Edit1. Clear; // Очистка компонентов
Edit2. Clear;
Edit3. Clear;
end;
procedure TForm1. Label5Click (Sender: TObject);
begin
end;
initialization
{$I tabl. lrs}
end.
Результат работы программы
Рис.3. Интерфейс табличного представления данных
Модуль Graphic
unit Graph;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
Buttons, StdCtrls;
type
{ TForm2 }
TForm2 = class (TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Image2: TImage;
Label1: TLabel;
procedure BitBtn1Click (Sender: TObject);
procedure BitBtn2Click (Sender: TObject);
procedure BitBtn3Click (Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form2: TForm2;
h: array [1.5] of integer;
BarColor: array [1.5] of TColor= (clLime,clYellow,clBlue,clRed,clTeal);
implementation
uses Tabl;
{ TForm2 }
procedure TForm2. BitBtn3Click (Sender: TObject);
begin
close
end;
procedure TForm2. BitBtn2Click (Sender: TObject);
begin
Image2. Canvas. FillRect (Rect (0,0, Image2. Width, Image2. Height));
end;
procedure TForm2. BitBtn1Click (Sender: TObject);
const
WR=35;
DR=20;
var
m: byte;
i: byte;
x,y: integer;
begin
m: =1;
for i: =2 to 5 do
if StrToFloat (Form1. StringGrid1. Cells [5, i]) >StrToFloat (Form1. StringGrid1. Cells [5,m]) then m: =i;
for i: =1 to 5 do
h [i]: =Round ( (Form2. Image2. Height-20) *StrToFloat (Form1. StringGrid1. Cells [5, i]) /StrToFloat (Form1. StringGrid1. Cells [5,m]));
with Form2. Image2 do
begin
x: =20;
y: =Height;
Canvas. Brush. Color: =clMenu;
Canvas. Pen. Style: =psDash;
Canvas. Rectangle (0,0,Width,Height);
for i: =1 to 5 do
begin
Canvas. Brush. Color: =BarColor [i];
Canvas. Rectangle (x,y,x+WR,y-h [i]);
Canvas. Pen. Style: =psDash;
Canvas. Brush. Color: =clMenu;
Canvas. TextOut (x,y-h [i] - 15,Form1. StringGrid1. Cells [5, i] +' y. e. ');
x: =x+WR+DR;
end;
x: =x+80;
y: =20;
for i: =1 to 5 do
begin
Canvas. Brush. Color: =BarColor [i];
Canvas. Rectangle (x,y,x+25,y+14);
Canvas. Brush. Color: =clBtnHighlight;
Canvas. TextOut (x+WR+10,y,Form1. StringGrid1. Cells [0, i]);
y: =y+20;
end;
end;
end;
initialization
{$I graph. lrs}
end.
Результат работы программы
Рис.4. Графический интерфейс в режиме запуска программы
Компьютерное моделирование в Simulink
5. Выводы по работе
Выполнив данную работу, я получил практические навыки работы с современными информационными технологиями; получил представление о создании табличных и графических объектов на языках высокого уровня. Используя современные программные обеспечения, создал программу для вычисления конвертируемости рубля России в валюту заданных стран с учетом комиссии и вывода графика полученных валютных значений. Кроме привычных всем процедур, в мою программу были включены другие, которые значительно облегчили мою задачу, например процедура "Калькулятор", которая могла быть вызвана различными кнопками для подсчета данных.
Литература
1. И.А. Стефанова, М.А. Стефанов "Программирование оконного приложения в ИСР Lazarus"
2. Конспект лекций по дисциплине "Высокоуровневые методы информатики и программирования".
3. И.А. Стефанова, М.А. Стефанов "Задания и методические указания к курсовой работе по дисциплине "Высокоуровневые методы информатики и программирования"
Размещено на Allbest.ru
Подобные документы
Изучение основ программирования и создание полноценного приложения в среде программирования Delphi. Разработка эскизного и технического проектов программы. Внедрение выполнения программы. Разработка рабочего проекта, спецификация и текст программы.
курсовая работа [560,1 K], добавлен 18.07.2012Разработка головоломки на основе гравюры Альбрехта Дюрера "Магический квадрат". Главные составные части среды программирования Delphi, особенности ее стандартных компонентов и процесса сохранения программы. Компоненты и алгоритмы создаваемой программы.
курсовая работа [147,1 K], добавлен 05.02.2015Особенности среды визуального проектирования Borland Delphi 7.0. Этапы разработки программы и составления блок-схемы алгоритмов. Способы вычисления кусочно-заданной функции одной переменной. Рассмотрение компонентов среды Delphi, ее предназначение.
контрольная работа [703,8 K], добавлен 24.09.2012Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.
курсовая работа [1,2 M], добавлен 04.08.2014История интегрированной среды разработки, версии Delphi. Организация библиотеки компонентов. Страница Additional, ряд часто используемых компонентов общего назначения. Исполняемый файл программы "Архиватор текстовых файлов", интерфейс приложения.
курсовая работа [1019,0 K], добавлен 16.05.2017Разработка информационной системы административного управления. Выбор языка и среды программирования. Структура взаимодействия информации. Требования к программно-аппаратному окружению. Создание программы в Delphi и связывание ее с базой данных.
курсовая работа [1010,9 K], добавлен 08.10.2015Проектирование программного модуля в среде программирования Borland Delphi 7.0. Схемы алгоритмов решения задач по темам "Символьные переменные и строки", "Массивы", "Работа с файлами", "Создание анимации". Реализация программного модуля, код программы.
отчет по практике [961,6 K], добавлен 21.04.2012Запуск на инструментальном компьютере интегрированной системы программирования "Турбо Ассемблер-AVR" (CasmAVR.exe). Создание нового файла и сохранение его с именем demo2.asm. Создание демонстрационной программы с использованием редактора текста.
лабораторная работа [1,2 M], добавлен 26.06.2013Borland Delphi 7 как универсальный инструмент разработки, применяемый во многих областях программирования, функции: добавление информации об абитуриентах в базу данных, формирование отчетов. Рассмотрение и характеристика основных компонентов Delphi.
контрольная работа [3,6 M], добавлен 18.10.2012Формулирование и создание программы по вычислению определенного интеграла по формуле трапеций с тремя десятичными знаками и по формуле Симпсона. Выбор Delphi как программного средства разработки программы. Создание алгоритма и листинг программы.
курсовая работа [990,9 K], добавлен 15.06.2009