Создать структуру, содержащую название улицы и количество жильцов - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Список содержит число жителей, проживающих в каждом доме на пяти улицах села. 1. Создать структуру, содержащую название улицы, номер дома, количество жильцов. 2. Получить отчет, содержащий два поля: название улицы и общее количество жильцов, проживающих на данной улице. 1 часть сделала а вот 2 не получается..
Листинг программы
  1. Public Class Form1
  2. Dim n As Integer
  3. Dim AllSum As Decimal
  4. Private Structure Persons
  5. Dim ULI As String 'название улицы
  6. Dim NOM As String 'номер дома
  7. Dim KOLVO As Double 'колличество жителей
  8. End Structure
  9. Dim MyPerson(100) As Persons
  10. Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
  11. End Sub
  12. Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click
  13. End Sub
  14. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  15. Static k As Integer
  16. MyPerson(k).ULI = TextBox1.Text
  17. MyPerson(k).NOM = Val(TextBox2.Text)
  18. MyPerson(k).KOLVO = Val(TextBox3.Text)
  19. TextBox4.Text = TextBox4.Text + " Улица " + MyPerson(k).ULI + " № дома " + _
  20. MyPerson(k).NOM + " Жильцов " + CStr(MyPerson(k).KOLVO) + " человек " + vbCrLf
  21. MessageBox.Show("Данные введены", "СПИСОК", MessageBoxButtons.OK, MessageBoxIcon.Information)
  22. TextBox1.Text = ""
  23. TextBox2.Text = ""
  24. TextBox3.Text = ""
  25. k = k + 1
  26. Label4.Text = "Всего записей: " + CStr(k)
  27. n = k
  28. End Sub
  29. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  30. End
  31. End Sub
  32. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  33. End Sub
  34. End Class

Решение задачи: «Создать структуру, содержащую название улицы и количество жильцов»

textual
Листинг программы
  1. Public Class Form2
  2.     Private Structure Persons
  3.         Public street As String         'название улицы
  4.         Public number As String         'номер дома
  5.         Public population As Integer    'количество жителей
  6.         Public Sub New(ByVal st As String, ByVal nm As String, ByVal pp As Integer)
  7.             street = st
  8.             number = nm
  9.             population = pp
  10.         End Sub
  11.     End Structure
  12.     Private MyPerson As List(Of Persons)
  13.     Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  14.         MyPerson = New List(Of Persons)
  15.         Label4.Text = ""
  16.         TextBox4.Font = New Font(FontFamily.GenericMonospace, 8)
  17.     End Sub
  18.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  19.         Try
  20.             Dim s1 As String = TextBox1.Text
  21.             Dim s2 As String = TextBox2.Text
  22.             MyPerson.Add(New Persons(s1, s2, CInt(TextBox3.Text)))
  23.             Dim ss As String = ("Улица " & s1).PadRight(25) & ("№ дома " & s2).PadRight(15) & _
  24.                                ("Жильцов " & TextBox3.Text) & vbCrLf
  25.             TextBox4.Text &= ss
  26.             TextBox1.Clear()
  27.             TextBox2.Clear()
  28.             TextBox3.Clear()
  29.             Label4.Text = "Записей: " & MyPerson.Count
  30.         Catch ex As Exception
  31.             MsgBox(ex.Message)
  32.         End Try
  33.     End Sub
  34.     Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
  35.         Dim sum As Integer
  36.         Dim myPrs() As Persons = sortMyPerson()
  37.         Dim w1 As String = "", w2 As String = myPrs(0).street
  38.         Dim rep As New List(Of Persons)
  39.         For i = 0 To myPrs.Length - 1
  40.             w1 = myPrs(i).street
  41.             If w1 = w2 Then
  42.                 sum += myPrs(i).population
  43.             Else
  44.                 rep.Add(New Persons(w2, "", sum))
  45.                 w2 = w1
  46.                 sum = 0
  47.                 sum += myPrs(i).population
  48.             End If
  49.         Next
  50.         rep.Add(New Persons(w2, "", sum))
  51.         w1 = ""
  52.         For Each prs As Persons In rep
  53.             w1 &= prs.street & " = " & prs.population & vbCrLf
  54.         Next
  55.         MsgBox(w1)
  56.     End Sub
  57.     Private Function sortMyPerson() As Persons()
  58.         Dim str(MyPerson.Count - 1) As String
  59.         For i = 0 To MyPerson.Count - 1
  60.             str(i) = MyPerson(i).street
  61.         Next
  62.         Dim mp() As Persons = MyPerson.ToArray
  63.         Array.Sort(str, mp)
  64.         Return mp
  65.     End Function
  66. End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы