- •Vvod(ad(),kat(),s(),kom(),pr(),sum())
- •Vivod(p1, TextBox1)
- •Vivod(p2, TextBox2)
- •Vivod(p3, TextBox3)
- •Vivod(p4, TextBox4)
- •Vivod(p5, TextBox5)
- •Vivod(p6, TextBox6)
- •Vivod(p1, TextBox7)
- •Vivod(p2, TextBox8)
- •Vivod(p3, TextBox9)
- •Vivod(p4, TextBox10)
- •Vivod(p5, TextBox11)
- •Vivod(p6, TextBox12)
- •Процедура vvod
- •Выполнение приложения и получение результатов
ФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ
Государственное образовательное учреждение высшего профессионального образования
Московский технический университет связи и информатики
Кафедра информатики
Курсовая работа
по дисциплине «Модули. Введение в объектно-ориентированное программирование»
Выполнил: Шальнев И. В.
Факультет: ЗОТФ
Группа БАП 1251
3 курс
Проверил: Юскова И. Б.
|
|
Москва 2014 г.
Задание на разработку проекта: один стандартный модуль и две формы
Условие 24го варианта задания:
На продажу выставлено N квартир. О каждой квартире известно: адрес, категория дома
(кирпичный, монолитный, панельный), общая площадь, количество комнат, цена 1 кв. м.
Составить алгоритм и программу, которые для обратившегося клиента формируют
списки подходящих квартир (все сведения) с разбивкой по категориям в порядке
уменьшения их стоимости. Квартира считается подходящей, если ее общая площадь не
менее требуемой, а ее цена не превышает требуемую.
Формализация задания
Для решения задачи необходимо:
1) Определить входные данные:
n - количество адресов (As Integer)
ad(n) - одномерный массив адресов (As String)
kat(n) - одномерный массив категорий домов (As String)
s(n) - одномерный массив площадей домов (As Integer)
kom(n) - одномерный массив кол-ва комнат (As Integer)
s(n) - одномерный массив площадей домов (As Integer)
pr(n) - одномерный массив цен за 1 кв. м. (As Integer)
sum(n) - одномерный массив стоимостей квартир (As Integer)
2) Определить выходные данные:
Адрес, тип дома, площадь квартиры, кол-во комнат, цена за 1 кв. м., цена квартиры, удовлетворяющие заданным условиям
Исходные данные вводятся с клавиатуры и отображаются на 1-ой форме; результаты отображаются на 1-ой форме.
Разработка схемы алгоритма
Начало
Ввод n
Vvod(ad(),kat(),s(),kom(),pr(),sum())
Vivod(p1, TextBox1)
Vivod(p2, TextBox2)
Vivod(p3, TextBox3)
Vivod(p4, TextBox4)
Vivod(p5, TextBox5)
Vivod(p6, TextBox6)
Vivod(p1, TextBox7)
Vivod(p2, TextBox8)
Vivod(p3, TextBox9)
Vivod(p4, TextBox10)
Vivod(p5, TextBox11)
Vivod(p6, TextBox12)
reshenie(ad1(),kat1(),s1(),kom1(),pr1(),sum1(),p1,p2,p3,p4,p5,p6)
Конец
Процедура vvod
Начало
n = CInt(Val(InputBox))
For I = 0 to n -1
ad(i) = InputBox("Адрес")
p1 = p1 & ad(i) & vbNewLine
kat(i) = InputBox("Категория дома")
p2 = p2 & kat(i) & vbNewLine
s(i) = InputBox("Общая площадь")
p3 = p3 & s(i) & vbNewLine
kom(i) = InputBox("Количество комнат")
p4 = p4 & kom(i) & vbNewLine
pr(i) = InputBox("цена за кв. м")
p5 = p5 & pr(i) & vbNewLine
sum(i) = s(i) * pr(i)
p6 = p6 & sum(i) & vbNewLine
Конец
Процедура reshenie
Начало
s2 = CInt(Val(InputBox))
sum2 = CInt(Val(InputBox))
I = 0 to n -1
s1(i) >= s2 And sum1(i) <= sum2
ad1(i) = ad(i)p1 = p1 & ad1(i) & vbNewLine
kat1(i) = kat(i) p2 = p2 & kat1(i) & vbNewLine
s1(i) = s(i)
p3 = p3 & s1(i) & vbNewLine
kom1(i) = kom(i)
p4 = p4 & kom1(i) & vbNewLine
pr1(i) = pr(i)
p5 = p5 & pr(i) & vbNewLine
sum1(i) = s(i) * pr(i)
p6 = p6 & sum1(i) & vbNewLine
Конец
Процедура sort
Начало
J = 0 to n - 2 - I
I = 0 to n -1
sum1(J) < sum1(J + 1)
Tmpsum = sum1(J)
sum1(J) = sum1(J + 1)
sum1(J + 1) = Tmpsum
Tmpad = ad1(J)
ad1(J) = ad1(J + 1)
ad1(J + 1) = Tmpad
Tmpkat = kat1(J)
kat1(J) = kat1(J + 1)
kat1(J + 1) = Tmpkat
Tmps = s1(J)
s1(J) = s1(J + 1)
s1(J + 1) = Tmps
Tmpkom = kom1(J)
kom1(J) = kom1(J + 1)
kom1(J + 1) = Tmpkom
Tmppr = pr1(J)
pr1(J) = pr1(J + 1)
pr1(J + 1) = Tmppr
Конец
Процедура vivod
Программный код
Код решения задачи на языке высокого уровняVisual Basic реализован с использованием процедур, стандартного модуля и двух форм, которые обрабатывают события нажатия на кнопки в интерфейсе и ввод данных.
Для запуска приложения в среде операционной системы семейства MicrosoftWindows, необходимо двойным щелчком мыши открыть исполняемый файл курсач рабочий.sln. Листинг исходного кода программы представлен ниже и состоит из 3х частей: код первой формы, код второй формы и код стандартного модуля.
Программный код стандартного модуля Module1
Module Module1
Public tb As TextBox
Public n As Integer
Public ad() As String
Public kat() As String
Public s() As Integer
Public kom() As Integer
Public pr() As Integer
Public sum() As Integer
Sub vvod(ByRef ad() As String, ByRef kat() As String, ByRef s() As Integer, ByRef kom() As Integer, ByRef pr() As Integer, ByRef sum() As Integer, ByRef p1 As String, ByRef p2 As String, ByRef p3 As String, ByRef p4 As String, ByRef p5 As String, ByRef p6 As String, ByRef n As Integer)
Dim i As Integer
n = CInt(Val(InputBox("Введите количество адресов")))
ReDim ad(n - 1), kat(n - 1), s(n - 1), kom(n - 1), pr(n - 1), sum(n - 1)
For i = 0 To n - 1
ad(i) = InputBox("Адрес")
p1 = p1 & ad(i) & vbNewLine
kat(i) = InputBox("Категория дома")
p2 = p2 & kat(i) & vbNewLine
s(i) = InputBox("Общая площадь")
p3 = p3 & s(i) & vbNewLine
kom(i) = InputBox("Количество комнат")
p4 = p4 & kom(i) & vbNewLine
pr(i) = InputBox("цена за кв. м")
p5 = p5 & pr(i) & vbNewLine
sum(i) = s(i) * pr(i)
p6 = p6 & sum(i) & vbNewLine
Next i
End Sub
Sub reshenie(ByRef ad1() As String, ByRef kat1() As String, ByRef s1() As Integer, ByRef kom1() As Integer, ByRef pr1() As Integer, ByRef sum1() As Integer, ByRef p1 As String, ByRef p2 As String, ByRef p3 As String, ByRef p4 As String, ByRef p5 As String, ByRef p6 As String)
Form1.TextBox7.Text = ""
Form1.TextBox8.Text = ""
Form1.TextBox9.Text = ""
Form1.TextBox10.Text = ""
Form1.TextBox11.Text = ""
Form1.TextBox12.Text = ""
Dim i As Integer
Dim s2 As Integer
Dim sum2 As Integer
s2 = CInt(Val(InputBox("Введите требуемую площадь")))
sum2 = CInt(Val(InputBox("Введите требуемую цену")))
For i = 0 To n - 1
If s1(i) >= s2 And sum1(i) <= sum2 Then
ad1(i) = ad(i)
p1 = p1 & ad1(i) & vbNewLine
kat1(i) = kat(i)
p2 = p2 & kat1(i) & vbNewLine
s1(i) = s(i)
p3 = p3 & s1(i) & vbNewLine
kom1(i) = kom(i)
p4 = p4 & kom1(i) & vbNewLine
pr1(i) = pr(i)
p5 = p5 & pr(i) & vbNewLine
sum1(i) = s(i) * pr(i)
p6 = p6 & sum1(i) & vbNewLine
End If
Next i
End Sub
Public Sub vivod(ByVal p As String, ByVal tb As TextBox)
tb.Text = p
End Sub
Sub sort(ByRef ad1() As String, ByRef kat1() As String, ByRef s1() As Integer, ByRef kom1() As Integer, ByRef pr1() As Integer, ByRef sum1() As Integer, ByRef p1 As String, ByRef p2 As String, ByRef p3 As String, ByRef p4 As String, ByRef p5 As String, ByRef p6 As String)
Dim I As Integer
Dim J As Integer
Dim Tmpsum As Integer
Dim Tmpad As String
Dim Tmpkat As String
Dim Tmps As Integer
Dim Tmpkom As Integer
Dim Tmppr As Integer
For I = 0 To n – 1
For J = 0 To n - 2 - I
If sum1(J) < sum1(J + 1) Then
Tmpsum = sum1(J)
sum1(J) = sum1(J + 1)
sum1(J + 1) = Tmpsum
Tmpad = ad1(J)
ad1(J) = ad1(J + 1)
ad1(J + 1) = Tmpad
Tmpkat = kat1(J)
kat1(J) = kat1(J + 1)
kat1(J + 1) = Tmpkat
Tmps = s1(J)
s1(J) = s1(J + 1)
s1(J + 1) = Tmps
Tmpkom = kom1(J)
kom1(J) = kom1(J + 1)
kom1(J + 1) = Tmpkom
Tmppr = pr1(J)
pr1(J) = pr1(J + 1)
pr1(J + 1) = Tmppr
End If
Next J
Next I
End Sub
End Module
Программный код формы Form1
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim p1 As String
Dim p2 As String
Dim p3 As String
Dim p4 As String
Dim p5 As String
Dim p6 As String
p1 = ""
p2 = ""
p3 = ""
p4 = ""
p5 = ""
p6 = ""
Call vvod(ad, kat, s, kom, pr, sum, p1, p2, p3, p4, p5, p6, n)
Call vivod(p1, TextBox1)
Call vivod(p2, TextBox2)
Call vivod(p3, TextBox3)
Call vivod(p4, TextBox4)
Call vivod(p5, TextBox5)
Call vivod(p6, TextBox6)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim p1 As String
Dim p2 As String
Dim p3 As String
Dim p4 As String
Dim p5 As String
Dim p6 As String
p1 = ""
p2 = ""
p3 = ""
p4 = ""
p5 = ""
p6 = ""
Call reshenie(ad, kat, s, kom, pr, sum, p1, p2, p3, p4, p5, p6)
Call sort(ad, kat, s, kom, pr, sum, p1, p2, p3, p4, p5, p6)
Call vivod(p1, TextBox7)
Call vivod(p2, TextBox8)
Call vivod(p3, TextBox9)
Call vivod(p4, TextBox10)
Call vivod(p5, TextBox11)
Call vivod(p6, TextBox12)
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
End
End Sub
End Class
Программный код формы Form2
Public Class Form2
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Form1.Show()
End Sub
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
End Class