Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет 24ПиА.docx
Скачиваний:
9
Добавлен:
03.05.2015
Размер:
251.12 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ

Государственное образовательное учреждение высшего профессионального образования

Московский технический университет связи и информатики

Кафедра информатики

Курсовая работа

по дисциплине «Модули. Введение в объектно-ориентированное программирование»

Выполнил: Шальнев И. В.

Факультет: ЗОТФ

Группа БАП 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