Построение диаграмм по выбору пользователя - VB

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

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

есть программа(во вложении), которая генерирует 1000 случайных чисел и на основе этих чисел рассчитывает частоту повторения каждой из цифры и строит гистограмму... нужно что бы она ещё строила точечную гистограмму и круговую диаграмму по выбору то есть чтобы сгенерировала числа и пользователь выбрал какую диаграмму построить.. получиться должно примерно так как показано на рисунке(во вложении)

Решение задачи: «Построение диаграмм по выбору пользователя»

textual
Листинг программы
Private Sub Command1_Click()
   ' Main "Gist"
  Main "Circle"
End Sub
 
Sub Main(ByVal S As String)
    Dim Arr(1 To 1000) As Byte, i As Integer, sum As Single ' тут добавил сумму
    Dim nArr(10) As Integer, max As Integer, min As Integer
    Randomize
    List1.Clear
    Picture1.Cls
    For i = 1 To 1000
        Arr(i) = Int(Rnd * 11)
        List1.AddItem Arr(i)
        nArr(Arr(i)) = nArr(Arr(i)) + 1
    Next i
    min = 1000
    For i = 0 To 10
        If nArr(i) > max Then max = nArr(i)
        If nArr(i) < min Then min = nArr(i)
        sum = sum + nArr(i)
    Next i
    Select Case S
           Case "Gist"
                Picture1.Scale (0, max + 10)-(111, 0)
                For i = 0 To 10
                    Picture1.Line (10 * i + 1, 8)-(10 * i + 10, nArr(i)), RGB((nArr(i) - min) * 20, max - nArr(i), (nArr(i) - min) * 5), BF
                    Picture1.CurrentX = Picture1.CurrentX - 8
                    Picture1.CurrentY = Picture1.CurrentY + 8
                    Picture1.Print nArr(i)
                    Picture1.CurrentY = 8: Picture1.CurrentX = 10 * i + 4
                    Picture1.Print i
                Next i
             Case "Circle"    ' тут само построение круговой диаграммы
                   Dim a As Single, b As Single
                   Picture1.Scale (-10, 10)-(10, -10)
                   Picture1.FillStyle = vbFSSolid
                 For i = 0 To 10
                     b = b + 6.28 * nArr(i) / sum
                     Picture1.FillColor = QBColor(i) ' Мне эти цвета не понравились-> : RGB((nArr(i) - min) * 20, max - nArr(i), (nArr(i) - min) * 5)
                     Picture1.Circle (0, 0), 5, , -a, -b
                     a = a + 6.28 * nArr(i) / sum
                 Next i
             
    End Select
End Sub
 
Private Sub Command2_Click()
End
End Sub

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


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

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

15   голосов , оценка 4.067 из 5
Похожие ответы