powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Приложение на Бейсике
3 сообщений из 3, страница 1 из 1
Приложение на Бейсике
    #32297685
LEELOO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пожалуйста, помогите. Мы сами люди не местные, и мозгов на Бейсик нам бог не дал. Кто может, сделайте это чертово приложение, или ...или я не знаю, как я сдам курсовую... 3. ПРИМЕР ВЫПОЛНЕНИЯ ЗАДАНИЯ
НА VISUAL BASIC

Задание:
Разработать приложение для расчета значения наращенной суммы платежа по кредиту по формуле сложных процентов при выплате процентов один раз в год. Построить график зависимости наращенной суммы (S) от срока платежа (n).
Расчетная формула:

S=P*(i+1)^n.
Вводимые параметры:
P – первоначальный размер кредита;
i – проценты по кредиту;
n – число лет наращения.

Пример разработанного приложения
Для выполнения данного задания была создана форма:


Имена и типы используемых объектов управления:
Text1 - объект типа TextBox (текстовое окно) для задания суммы кредита;
Text2 - объект типа TextBox (текстовое окно) для задания процентной ставки;
Text3 - объект типа TextBox (текстовое окно) для задания срока кредита;
Text4 - объект типа TextBox (текстовое окно) для задания суммы кредита;
Text5 - объект типа TextBox (текстовое окно) для задания процентной ставки;
Text6 - объект типа TextBox (текстовое окно) для задания срока кредита;
Text7 - объект типа TextBox (текстовое окно) для задания шага построения графика;
Text8 - объект типа TextBox (текстовое окно) для вывода результатов расчета показателя;
Frame1 - объект типа Frame (рамка) для группировки объектов, используемых для задания параметров расчета показателя ("Расчет показателя");
Frame2 - объект типа Frame (рамка) для группировки объектов, используемых для задания параметров графика ("Построение графика");
Command1 - объект типа CommandButton (командная кнопка) для активизации фрейма "Расчет показателя" (кнопка "Расчет показателя");
Command2 - объект типа CommandButton (командная кнопка) для активизации фрейма "Построение графика" (кнопка "Построение графика");
Command3 - объект типа CommandButton (командная кнопка) для вызова процедуры расчета показателя (кнопка "ОК");
Command4 - объект типа CommandButton (командная кнопка) кнопка "ОК", для вызова процедуры построения графика (кнопка "ОК");
Command5 - объект типа CommandButton (командная кнопка) для завершения работы проекта (кнопка "Выход");
Picture1 - объект типа PictureBox для вывода графика;
Label1, Label2, Label3, Label4, Label5, Label6, Label7, Label8, Label9 – поясняющие метки;
Label10 – метка для вывода наращенной суммы при построении графика.

Форма работает по следующей логике:
§ при запуске программы на форме должны быть активными (доступными) три командные кнопки («Построение графика», «Расчет показателя» и «Выход»);
§ при нажатии кнопки «Расчет показателя» становится активным фрейм «расчет показателя»;
§ при нажатии кнопки «Построение графика» становится активным фрейм «Построение графика».
§ после активизации соответствующего фрейма все остальные элементы формы, кроме кнопки «Выход» становятся недоступными.
§ вывод результата расчета показателя производится в текстовое окно «Сумма платежа» после нажатия кнопки «ОК» во фрейме «расчет показателя»;
§ текстовое окно «Сумма платежа» недоступно для редактирования;
§ вывод графика производится в элемент PictureBox после нажатия кнопки «ОК» во фрейме «Построение графика»;
§ при повторном построении графика производится очистка элемента PictureBox от предыдущего построенного графика.
При вводе данных в текстовые окна осуществляется проверка:
§ на непустоту данных (ввод всех необходимых данных для расчета во все окна ввода, при ошибке выводится сообщение);
§ на положительность вводимых данных и неравенство нулю (в случае ошибки производится очистка окна от введенных символов);
§ осуществляется проверка на ввод только числовых данных, в случае ошибки данные сбрасываются;
Примечание: при выполнении индивидуальных заданий при разработке внешнего вида форм и логике их работы приветствуются собственные решения студентов, развивающие возможности рассматриваемого примера.

Процедуры обработки событий

Private Sub Form_Load()
‘При загрузке формы производится задание начального вида формы и задание недоступности фреймов.
Picture1.Cls 'очистка PictureBox
Label1.Enabled = False 'метка недоступна
Label2.Enabled = False 'метка недоступна
Label3.Enabled = False 'метка недоступна
Label4.Enabled = False 'метка недоступна
Label5.Enabled = False 'метка недоступна
Label6.Enabled = False 'метка недоступна
Label7.Enabled = False 'метка недоступна
Label9.Caption = "" 'очистка текста метки
Label10.Visible = False 'метка невидима
Text1.Text = "" 'очистка текстовых окон
Text2.Text = "" 'очистка текстовых окон
Text3.Text = "" 'очистка текстовых окон
Text4.Text = "" 'очистка текстовых окон
Text5.Text = "" 'очистка текстовых окон
Text6.Text = "" 'очистка текстовых окон
Text7.Text = "" 'очистка текстовых окон
Text8.Text = "" 'очистка текстовых окон
Frame1.Enabled = False 'фрейм недоступен
Frame2.Enabled = False 'фрейм недоступен
End Sub

Private Sub Command1_Click()
‘После нажатия кнопки «Расчет показателя» становится доступным фрейм «Расчет показателя», остальные элементы формы становятся недоступными.
Frame1.Enabled = True 'фрейм доступен
Frame2.Enabled = False 'фрейм недоступен
Text1.SetFocus 'курсор переводится в
текстовое окно Text1
Command1.Enabled = False 'командная кнопка не
доступна
Command2.Enabled = False 'командная кнопка не
доступна
Label1.Enabled = True 'метка доступна
Label2.Enabled = True 'метка доступна
Label3.Enabled = True 'метка доступна
Label9.Caption = "" 'очистка текста метки
Label10.Visible = False 'метка невидима
End Sub

Private Sub Text1_Change()
‘При вводе значений показателя в текстовом окне производится проверка вводимых данных на их положительность и тип (число). Для этого Ascii- код введенного символа сравнивается с Ascii- кодами цифр (от 48 до 57) и символа-разделителя (точки - Ascii- код 46). Эта проверка происходит при вводе каждого символа в текстовом окне (событие Change).
' Используются встроенные функции Len (string) – возвращает длину строки и Mid(string, start[, length]) – возвращает часть строки, начиная с позиции start длины length
Dim i As Integer ' счетчик цикла
Dim KeyAscii As Integer ' пераменная, сщдержащая
код Ascii символа
For i = 1 To Len(Text1.Text) ' для каждого симво
ла в строке
KeyAscii = Asc(Mid(Text1.Text, i, 1)) ' получим
код ASCII это–
го символа
If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 46) Then ' если код не лежит в диапазоне
кодов цифр или точки
Text1.Text = "" ' очистить текстовое окно
Exit Sub ' выход из процедуры
End If
Next
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
'После нажатия кнопки «Enter» производится перевод курсора в следующее текстовое окно.
If KeyAscii = 13 Then ' если нажата клавиша Enter
Text2.SetFocus ' перевести курсор в текстовое ок
но
End If
End Sub

Private Sub Text3_KeyPress(KeyAscii As Integer)
'После заполнения всех текстовых окон значениями и нажатия клавиши «Enter» курсор переводится на кнопку «ОК» фрейма.
If KeyAscii = 13 Then ' если нажата клавиша
Enter
Command3.SetFocus ' перевести курсор на
командную кнопку
End If
End Sub

Private Sub Command3_Click()
'Производится проверка на заполненность текстовых окон (если окно незаполненно, то происходит выдача сообщения и курсор переводится в соответствующее текстовое окно)
'После проверки происходит вызов функции для расчета финансового показателя (в качестве параметров передаются значения текстовых окон)
'Результаты расчета передаются в текстовое окно «Сумма платежа»
'Оба фрейма становятся недоступными (доступ возможен к командным кнопкам «Построение графика», «Расчет показателя» и «Выход»)
Dim p As Single ' первоначальная сумма долга
Dim i As Single ' ставка наращения
Dim n As Integer ' срок ссуды
If Text1.Text = "" Or Val(Text1.Text) = 0 Then ' если нулевые или пустые параметры
Call MsgBox("Не заданы параметры для расчета", vbExclamation, "Ошибка при задании параметров") ' вывести сообщение
Text1.SetFocus ' перевести курсор в текстовое ок
но
Exit Sub
End If
If Text2.Text = "" Or Val(Text2.Text) = 0 Then
Call MsgBox("Не заданы параметры для расчета", vbExclamation, "Ошибка при задании параметров")
Text2.SetFocus
Exit Sub
End If
If Text3.Text = "" Or Val(Text3.Text) = 0 Then
Call MsgBox("Не заданы параметры для расчета", vbExclamation, "Ошибка при задании параметров")
Text3.SetFocus
Exit Sub
End If
p = Val(Text1.Text) ' Val(string) – возвращает
числовую составляющую стро–
ки
i = Val(Text2.Text) ' присвоение переменным зна–
чений введенных параметров
из
n = Val(Text3.Text) ' текстовых окон
Text8.Text = s(p, i, n) ' в текстовое окно пере
дать результаты расчета
показателя
Frame1.Enabled = False 'фрейм недоступен
Frame2.Enabled = False 'фрейм недоступен
Command1.Enabled = True 'командная кнопка дос–
тупна
Command2.Enabled = True 'командная кнопка дос
тупна
Picture1.Cls 'очистка PictureBox
Label1.Enabled = False 'метка недоступна
Label2.Enabled = False 'метка недоступна
Label3.Enabled = False 'метка недоступна
Label4.Enabled = False 'метка недоступна
Label5.Enabled = False 'метка недоступна
Label6.Enabled = False 'метка недоступна
Label7.Enabled = False 'метка недоступна
End Sub

Private Sub command4_Click()
'Производится проверка на заполненность текстовых окон (если окно незаполненно, то происходит выдача сообщения и курсор переводится в соответствующее текстовое окно).
'Очистка объекта PictureBox от предыдущего графика.
'Построение графика в объекте PictureBox (масштабирование объекта PictureBox, рисование координатных осей и графика).
'Рисование графика осуществляется в следующей последовательности: задается система координат формы, для чего находятся минимальное и максимальное значения функции на отрезке; рисуются координатные оси; рисуется жирная точка в начале графика; на отрезке определения функции с шагом, заданным пользователем, рисуется график.
'Фреймы делаются недоступными (доступ возможен только к командным кнопкам «Построение графика», «Расчет показателя» и «Выход»).

Dim p As Single ' первоначальная сумма долга
Dim i As Single ' ставка наращения
Dim n As Integer ' срок ссуды
Dim m As Single ' счетчик цикла
Dim st As Single ' счетчик цикла
Dim minfx As Single ' функции
Dim maxfx As Single ' функции
Dim minx As Single ' минимальное значение аргу–
мента
Dim maxx As Single ' максимальное значение ар
гумента
Dim step_t As Double ' шаг построения графика
If Text4.Text = "" Or Val(Text4.Text) = 0 Then
Call MsgBox("Не заданы параметры для расчета", vbExclamation, "Ошибка при задании параметров")
Text4.SetFocus
Exit Sub
End If
If Text5.Text = "" Or Val(Text5.Text) = 0 Then
Call MsgBox("Не заданы параметры для расчета", vbExclamation, "Ошибка при задании параметров")
Text5.SetFocus
Exit Sub
End If
If Text6.Text = "" Or Val(Text6.Text) = 0 Then
Call MsgBox ("Не заданы параметры для расчета", vbExclamation, "Ошибка при задании параметров")
Text6.SetFocus
Exit Sub
End If
If Text7.Text = "" Or Val(Text7.Text) = 0 Then
Call MsgBox("Не заданы параметры для расчета", vbExclamation, "Ошибка при задании параметров")
Text7.SetFocus
Exit Sub
End If
Picture1.Cls ' очистка элемента PictureBox
p = Val(Form1.Text4.Text) ' Val(string) – возвра–
щает числовую состав
ляющую cтроки
i = Val(Form1.Text5.Text) ' присвоение перемен–
ным значений введен–
ных параметров из
n = Val(Form1.Text6.Text) ' текстовых окон
' зададим систему координат формы
' для чего найдем максимальное и минимальное значение принимаемое
' функций на отрезке
' начальное значение выбираем произвольное
minfx = s(p, i, n) ' минимальное значение
функции
maxfx = s(p, i, n) ' максимальное значение
функции
minx = 0 ' минимальное значение аргумента
maxx = 0 ' максимальное значение аргумента
step_t = Val(Text7.Text) ' переменной присвоим
значение шага построе–
ния графика
For st = 0 To n Step step_t ' вычислим минималь–
ное и максимальное
значения функции
If minfx > s(p, i, st) Then ' вычислим минималь–
ное значение функ–
ции
minfx = s(p, i, st)
minx = st
End If
If maxfx < s(p, i, st) Then ' вычислим максимальное значение функции
maxfx = s(p, i, st) '
maxx = st '
End If '
Next st
'задание пользовательской системы координат в окне изображения
Picture1.Scale (0, maxfx)-(n, 0) 'установка мас–
штаба
Picture1.DrawWidth = 2 ' толщина точки равна 2
' рисуем ось X
Picture1.Line (0, 0 + 0.01 * maxfx)-(n, 0 + 0.01 * maxfx), RGB(0, 255, 0) ' при рисовании оси Х задается отступ от края объекта PictureBox на 0.01 * maxfx для лучшей видимости координатной оси
' рисуем ось Y
Picture1.Line (0 + 0.01 * n, 0)-(0 + 0.01 * n, maxfx), RGB(0, 255, 0) ' при рисовании оси Y задается отступ от края объекта PictureBox на 0.01 * n для лучшей видимости координатной оси
Picture1.DrawWidth = 1 ' толщина точки рав–
на 1
Picture1.CurrentX = minx ' задание координат пера
Picture1.CurrentY = s(p, i, minx) ' задание коор–
динат пера
Picture1.DrawWidth = 8 ' толщина точки равна 8
Picture1.PSet (Picture1.CurrentX, Picture1.CurrentY) ' рисование точки в начале графика
Picture1.DrawWidth = 1 ' толщина точки равна 1
Picture1.CurrentX = 0 ' задание координат пера
Picture1.CurrentY = s(p, i, 0) ' задание ко–
ординат пера
' рисование графика
For m = 0 To n Step step_t
Picture1.DrawWidth = 5 ' толщина точки равна 5
Picture1.PSet (Picture1.CurrentX, Picture1.CurrentY) ' рисование точек построения графика
Picture1.DrawWidth = 1 ' толщина точки равна 1
Picture1.Line -(m, s(p, i, m)) ' рисование графи–
ка
Next m
Label9.Caption = maxfx ' значение метки - сумма наращенного платежа
Label10.Visible = True ' метка видима
Frame1.Enabled = False ' фрейм недоступен
Frame2.Enabled = False ' фрейм недоступен
Command1.Enabled = True ' командная кнопка
доступна
Command2.Enabled = True ' командная кнопка
доступна
Label1.Enabled = False ' метка недоступна
Label2.Enabled = False ' метка недоступна
Label3.Enabled = False ' метка недоступна
Label4.Enabled = False ' метка недоступна
Label5.Enabled = False ' метка недоступна
Label6.Enabled = False ' метка недоступна
Label7.Enabled = False ' метка недоступна
End Sub

Private Sub Command5_Click()
End ' завершение работы проекта при нажатии
кнопки «Выход».
End Sub

Public Function s(ByVal p As Single, ByVal i As Single, ByVal n As Single) As Single
' Функция для расчета финансового показателя
On Error GoTo err1 ' в случае ошибки - перейти
на метку err1
s = p * (1 + i) ^ n ' функция наращения при
сложных процентах
On Error GoTo 0
Exit Function ' выйти из функции
err1: 'обработка ошибки
If Err.Number = 6 Then ' если ошибка - переполнение, вывести на экран сообщение
Dim Msg As String
Msg = "Ошибка при вычислении!"
MsgBox Msg, , "Переполнение"
Err.Clear ' очистка поля ошибки
End If
End ' завершение работы проекта
End Function


Работа приложения

Расчет показателя:


Построение графика:

Пример окна сообщения:



Вариант №10

Задание. Вычислить значение наращенной суммы платежа по формуле начисления при непрерывном наращении процентов и построить график зависимости наращенной суммы (S) от срока платежа (n).
Расчетная формула:

S=P*e^(n*d),

где n – число периодов наращения;
d – непрерывная ставка наращения;
P – сумма кредита;
S – наращенная сумма.
Комментарий. Непрерывное наращение – наращение за бесконечно малые отрезки времени.
Пример. Сумма, на которую начисляются проценты, равна 2 млн. руб., сила роста – 10%, срок – пять лет. Наращенная сумма составит

S = 2.000.000 * e0,1*5= 3.297.744,25 руб.

Непрерывное наращение по ставке &#948; = 10% равнозначно наращению за тот же срок сложных годовых процентов по ставке

i=e0,1-1 =0,1051709, или 10,51709%.

В самом деле, мы получим ту же наращенную сумму, применив эту ставку.

S = 2.000.000(1 + 0.1051.709)5 = 3.297.744,25 руб.
...
Рейтинг: 0 / 0
Приложение на Бейсике
    #32298156
Flare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно такие задачи не в форумах вывешиваются, а заказываются за деньги. Приложение будет стоить денег и потребует некоторого времени. Если есть желание - можем поторговаться.
...
Рейтинг: 0 / 0
Приложение на Бейсике
    #32299775
DionX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полностью согласен с Flare... Посмарел бы на человека делающего ента просто так, по добрате душевной не слишком радивому+незнакомому студенту
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Приложение на Бейсике
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]