Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 18.12.2019
Сообщений: 56
1

Вычислительная математика

17.07.2020, 08:20. Показов 2750. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день
у меня есть вопрос пожалуйста помогите: на форме несколько NumericUpDown, два TextBox,один человек за разные хорошие поступки целый день собирает пункты, каждые 60 пунктов даёт ему один бал который откладываются в НеделяTextBox2.
СегодняTextBox у меня сохраняется в DataGridView

VB.NET
1
2
3
4
СегодняTextBox.Text = Val(NumericUpDown1.Text) + Val(NumericUpDown2.Text) + Val(NumericUpDown3.Text) + Val(NumericUpDown4.Text) + Val(NumericUpDown5.Text) + Val(NumericUpDown6.Text) + Val(NumericUpDown7.Text)
 If СегодняTextBox.Text >= 60 Then
 НеделяTextBox2.Text = +1
 End If
первые 60 пунктов откладывают один бал, а вот следующие 60,60,60 не хотят,
за ранее благодарю за полный ответ
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2020, 08:20
Ответы с готовыми решениями:

Вычислительная геометрия
Задан квадрат со стороной R и некоторым числом N.На сторонах этого квадрата создается 4N точек. По...

Вычислительная библиотека на основе математичиских рядов
Здравствуйте, помогите создать вычислительную библиотеку на основе математичиских рядов. Мне нужно...

Вычислительная математика
Найдите последнюю цифру в записи числа X=(57oct)^2014hex. ответ дайте в hex сс.

Вычислительная математика
Здраствуйте,добрые,люди.Тут такое задание по вычислительной математике,кому не тяжело,будьте добры...

19
Лень — мое второе и
3206 / 2397 / 684
Регистрация: 28.11.2014
Сообщений: 3,587
Записей в блоге: 3
17.07.2020, 08:50 2
stragagor,
VB.NET
1
NumericUpDown.Value
VB.NET
1
If Cint(СегодняTextBox.Text) >= 60 Then
VB.NET
1
НеделяTextBox2.Text = Cint(НеделяTextBox2.Text)+1
0
0 / 0 / 0
Регистрация: 18.12.2019
Сообщений: 56
17.07.2020, 09:57  [ТС] 3
Добрый День

Orlangur,

говорит что ошибка здесь
VB.NET
1
НеделяTextBox2.Text = Cint(НеделяTextBox2.Text)+1
Дополнительная информация: Неверное преобразование из строки в тип integer.
0
Лень — мое второе и
3206 / 2397 / 684
Регистрация: 28.11.2014
Сообщений: 3,587
Записей в блоге: 3
17.07.2020, 10:00 4
Лучший ответ Сообщение было отмечено stragagor как решение

Решение

stragagor, а что находится в НеделяTextBox2.Text? Если пустота, то пропишите в дизайнере 0
0
0 / 0 / 0
Регистрация: 18.12.2019
Сообщений: 56
17.07.2020, 10:04  [ТС] 5
наверное пункты должны как то в DataGridView вместе прибавляться,но это мне не по силам
0
Лень — мое второе и
3206 / 2397 / 684
Регистрация: 28.11.2014
Сообщений: 3,587
Записей в блоге: 3
17.07.2020, 10:05 6
stragagor, на счет DataGridView из описания не совсем понятно, что и куда там записывается и что вы хотите увидеть
0
0 / 0 / 0
Регистрация: 18.12.2019
Сообщений: 56
17.07.2020, 10:12  [ТС] 7
Orlangur,

я 0 прописал теперь идёт благодарю,теперь мне надо только все NumericUpDown очищать
0
Лень — мое второе и
3206 / 2397 / 684
Регистрация: 28.11.2014
Сообщений: 3,587
Записей в блоге: 3
17.07.2020, 10:19 8
stragagor, сколько NumericUpDown?
0
0 / 0 / 0
Регистрация: 18.12.2019
Сообщений: 56
18.07.2020, 17:53  [ТС] 9
Orlangur,

я рано обрадовался не то,давайте ещё раз сосредоточимся,один я не справлюсь,за день Малыш набрал 55 пунктов я их сохранил,теперь у меня в ДБ сохранено 55,на следующий день мы с Малышом собираем дальше пункты,собрали 50,теперь сохранённое число из ДБ 55 и число из сегодняtextbox 50 надо сложить=105 ,автоматически откладывается за 60 пунктов 1 бал в неделяtextbox2,остаётся 45 пунктов в сегодняtextbox на следующий день,на следующий день мы собрали 55 пунктов и снова надо 45 прибавить 55 = 100, теперь в неделяtextbox2 2 балла и остаётся на следующий день 40 пунктов,всегда 60 пунктов 1 бал в неделяtextbox,как то так.Благодарю
Миниатюры
Вычислительная математика  
0
738 / 552 / 141
Регистрация: 27.01.2019
Сообщений: 1,243
19.07.2020, 08:53 10
stragagor, Может как то так.С DataGridView практически не работал и тут помочь не могу
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Public Class Form1
    Dim Segodny, Nedely As Integer
    Dim Zap As String = "Zap.txt"
    Dim Arr() As String
 
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If IO.File.Exists(Zap) Then 'Проверяем есть ли фаил в БД и если да,то считываем из него
            Arr = IO.File.ReadAllLines(Zap, System.Text.Encoding.Default)
        Else 'Если файла нет создаем его
            Arr = {0, 0}
            IO.File.WriteAllLines(Zap, Arr, System.Text.Encoding.Default)
        End If
        'Заносим в поля данные из БД
        SegodnyTextBox1.Text = Arr(0)
        NedelyTextBox2.Text = Arr(1)
    End Sub
  
    Private Sub Запись_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        Segodny = NumericUpDown1.Value + NumericUpDown2.Value + NumericUpDown3.Value + _
            NumericUpDown4.Value + NumericUpDown5.Value + NumericUpDown6.Value + NumericUpDown7.Value
 
        Segodny += Val(SegodnyTextBox1.Text)
        If Segodny >= 60 Then
            Nedely += 1
            Segodny -= 60
        End If
 
        SegodnyTextBox1.Text = Segodny
        NedelyTextBox2.Text = Nedely
        ' Запись в БД
        Arr = {Segodny, Nedely}
        IO.File.WriteAllLines(Zap, Arr, System.Text.Encoding.Default)
        'Обнуляем нумерики
        For i = 1 To 7
            Me.Controls("NumericUpDown" & i).Text = 0
        Next
    End Sub
End Class
Добавлено через 56 минут
stragagor, Обнаружил ошибку! После 15 строки добавьте
VB.NET
1
    Nedely = Val(NedelyTextBox2.Text)
1
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
19.07.2020, 14:05 11
Честно говоря смысла не понял. И причем здесь DataGridView, Имя, Фамилия, и почему неделя, а не месяц и т.д. Касаясь вычислений с накоплением, приведу пример.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private forDay1 As Integer
Private Sub Form8_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    forDay1 = 0
    TextBox1.ReadOnly = True
    TextBox2.ReadOnly = True
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    forDay1 += 10
    TextBox1.Text = forDay1
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    forDay1 += 9
    TextBox1.Text = forDay1
End Sub
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
    forDay1 += 14
    TextBox1.Text = forDay1
End Sub
Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
    forDay1 += 7
    TextBox1.Text = forDay1
End Sub
Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
    TextBox2.Text = forDay1 \ 60
    TextBox1.Text = forDay1 Mod 60 'если нужно
End Sub
Изображения
 
1
0 / 0 / 0
Регистрация: 18.12.2019
Сообщений: 56
29.07.2020, 23:02  [ТС] 12
Тим70

мне придётся теперь отказаться от DataGridVeiw,в Вашей БД я попробовал добавить так /Dim имя,фамилия As String/
и добавил ещё два TextBox, но не получилось не сохраняется,если бы помогли мне с добовлением Имя и Фамилии было бы хорошо не разу не создавал ДБ в тексовом файле, в вычеслениях вроде идёт,заранее благодарю
0
1976 / 1410 / 365
Регистрация: 26.06.2017
Сообщений: 4,009
30.07.2020, 10:26 13
Многоуважаемый ovva, я понимаю, что для образовательных целей (в данном конкретном случае) приведённого Вами кода более чем достаточно, но позволю себе внести поправку.
stragagor, можете на это моё сообщение не обращать внимания.
Делаем раз. Пишем класс некоторой переменной.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Class UserVal
    Implements INotifyPropertyChanged
 
    Private _val As Integer
 
    Property Val() As Integer
        Get
            Return _val
        End Get
        Set(ByVal value As Integer)
            _val = value
            OnValueChanged(Nothing)
        End Set
    End Property
 
    Protected Overridable Sub OnValueChanged(ByVal e As EventArgs)
        NotifyPropertyChanged("Val")
    End Sub
 
    Public Event PropertyChanged As PropertyChangedEventHandler _
        Implements INotifyPropertyChanged.PropertyChanged
 
    Private Sub NotifyPropertyChanged(ByVal info As String)
        RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
    End Sub
End Class
Делаем два. Создаём экземпляр нашего класса.
VB.NET
1
Dim PetrovVasya As New UserVal
Делаем три. Задаём привязки в Me.Load
VB.NET
1
Me.TextBox1.DataBindings.Add("Text", PetrovVasya, "Val")
В Вашем коде удаляем строки: 9, 13, 17, 21 и меняем forDay1 на PetrovVasya
В чём плюс такого подхода думаю объяснять не надо, но кое что поясню. Далее можно создать список экземпляров нашего класса, который можно добавлять куда угодно, например в DataGridVeiw. Также для подсчёта недельных баллов можно расширить класс соответствующим методом и всё.
1
738 / 552 / 141
Регистрация: 27.01.2019
Сообщений: 1,243
30.07.2020, 13:10 14
Лучший ответ Сообщение было отмечено stragagor как решение

Решение

stragagor, Тогда попробуйте так
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Public Class Form1
    Dim Segodny, Nedely As Integer
    Dim Zap As String = "Zap2.txt"
    Dim Arr(), Imy, Fam As String
 
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If IO.File.Exists(Zap) Then 'Проверяем есть ли фаил в БД и если да,то считываем из него
            Arr = IO.File.ReadAllLines(Zap, System.Text.Encoding.Default)
        Else 'Если файла нет создаем его
            Arr = {0, 0, "", ""}
            IO.File.WriteAllLines(Zap, Arr, System.Text.Encoding.Default)
        End If
        'Заносим в поля данные из БД
        SegodnyTextBox1.Text = Arr(0)
        NedelyTextBox2.Text = Arr(1)
        Nedely = Val(NedelyTextBox2.Text)
 
        ImyTextBox.Text = Arr(2)
        FamTextBox.Text = Arr(3)
        Imy = ImyTextBox.Text
        Fam = FamTextBox.Text
    End Sub
  
    Private Sub Запись_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        Segodny = NumericUpDown1.Value + NumericUpDown2.Value + NumericUpDown3.Value + _
            NumericUpDown4.Value + NumericUpDown5.Value + NumericUpDown6.Value + NumericUpDown7.Value
 
        Segodny += Val(SegodnyTextBox1.Text)
 
        If Segodny >= 60 Then
            Nedely += 1
            Segodny -= 60
        End If
 
        SegodnyTextBox1.Text = Segodny
        NedelyTextBox2.Text = Nedely
      
        ' Запись в БД
        Imy = ImyTextBox.Text
        Fam = FamTextBox.Text
        Arr = {Segodny, Nedely, Imy, Fam}
        IO.File.WriteAllLines(Zap, Arr, System.Text.Encoding.Default)
        'Обнуляем нумерики
        For i = 1 To 7
            Me.Controls("NumericUpDown" & i).Text = 0
        Next
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Process.Start(Zap) 'открыть ТХТ файл
    End Sub
End Class
Если вы к кому то обращаетесь,то просто кликните по его НИКУ и человек сразу увидит,что к нему обратились.
0
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
30.07.2020, 14:33 15
Uswer, если говорить о введении класса, который бы инкапсулировал всю текущую информацию по субъекту, а также фиксировал изменение значений свойств, то вероятно в этом есть смысл. Но как писал выше, мне непонятна постановка задачи, то и давать какие-то советы затруднительно. Да и для ТС, судя по всему, используемые термины, такие как класс, объект, интерфейс, реализация интерфейса и т.д. слишком новы.
Цитата Сообщение от Uswer Посмотреть сообщение
Многоуважаемый ovva,
Вижу колонный зал, звяканье орденов, цветы, венки …
1
0 / 0 / 0
Регистрация: 18.12.2019
Сообщений: 56
30.07.2020, 23:18  [ТС] 16
ovva,

Да и для ТС, судя по всему, используемые термины, такие как класс, объект, интерфейс, реализация интерфейса и т.д. слишком новы.


не всё так уж трагично, ещё раз напоминаю кто просто хочет мне помочь, мне под 60 лет, теперь выучить всё я определённо не смогу,по стариковски пытаюсь что то создать чисто для себя ,перестаньте меня подковыривать,просьба для модераторов( Uswer провоцирует всех)прошу его удалить


не обижайте эмигранта,я начинаю нервничать

Добавлено через 2 минуты
ovva,



Да и для ТС, судя по всему, используемые термины, такие как класс, объект, интерфейс, реализация интерфейса и т.д. слишком новы.


не всё так уж трагично, ещё раз напоминаю кто просто хочет мне помочь, мне под 60 лет, теперь выучить всё я определённо не смогу,по стариковски пытаюсь что то создать чисто для себя ,перестаньте меня подковыривать,просьба для модераторов( Uswer провоцирует всех)прошу его удалить


не обижайте эмигранта,я начинаю нервничать
0
738 / 552 / 141
Регистрация: 27.01.2019
Сообщений: 1,243
31.07.2020, 04:51 17
Цитата Сообщение от stragagor Посмотреть сообщение
перестаньте меня подковыривать
Тут вы не правы.Вас никто не подкавыривает!Uswer, и ovva, общаются между собой,к Вам это не имеет ни какого отношения.
0
1976 / 1410 / 365
Регистрация: 26.06.2017
Сообщений: 4,009
31.07.2020, 12:25 18
stragagor, добавьте в проект следующий класс
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
    Class UserVal
        Implements INotifyPropertyChanged
 
        Private _name As String
        Private _family As String
        Private _val As Integer
        Private _weekVal As Integer
 
        Property Name() As String
            Get
                Return _name
            End Get
            Set(ByVal value As String)
                _name = value
                OnNameChanged(Nothing)
            End Set
        End Property
 
        Property Family() As String
            Get
                Return _family
            End Get
            Set(ByVal value As String)
                _family = value
                OnFamilyChanged(Nothing)
            End Set
        End Property
 
        Shared ReadOnly Property WeeklyDenominator() As Short
            Get
                Return 60
            End Get
        End Property
 
        Property Val() As Integer
            Get
                Return _val
            End Get
            Set(ByVal value As Integer)
                _val = value
                _weekVal = Fix(_val / WeeklyDenominator)
                OnValueChanged(Nothing)
            End Set
        End Property
 
        ReadOnly Property WeeklyRate() As Integer
            Get
                Return _weekVal
            End Get
        End Property
 
        Protected Overridable Sub OnNameChanged(ByVal e As EventArgs)
            NotifyPropertyChanged("Name")
        End Sub
 
        Protected Overridable Sub OnFamilyChanged(ByVal e As EventArgs)
            NotifyPropertyChanged("Family")
        End Sub
 
        Protected Overridable Sub OnValueChanged(ByVal e As EventArgs)
            NotifyPropertyChanged("Val")
            NotifyPropertyChanged("WeeklyRate")
        End Sub
 
        Public Event PropertyChanged As PropertyChangedEventHandler _
          Implements INotifyPropertyChanged.PropertyChanged
 
        Private Sub NotifyPropertyChanged(ByVal info As String)
            RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
        End Sub
    End Class

Затем на уровне формы объявите следующие переменные
VB.NET
1
2
3
    Dim userList As New BindingList(Of UserVal)
    Dim currentUser As UserVal
    Dim UserCurrencyMannager As CurrencyManager = Me.BindingContext(userList)
Ну и далее добавляем процедуры
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    Sub InitUserList()
        For i = 1 To 3
            currentUser = New UserVal
            currentUser.Name = "User" & i.ToString
            currentUser.Family = "UserFamaly" & i.ToString
            userList.Add(currentUser)
        Next
    End Sub
 
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            InitUserList()
 
            Me.TextBox1.DataBindings.Add("Text", userList, "Val")
 
            DataGridView1.AutoGenerateColumns = True
            DataGridView1.DataSource = userList
    End Sub
 
    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        currentUser = UserCurrencyMannager.Current
        currentUser.Val = InputBox("Новое значение")
    End Sub
Кнопка Button1 вызывает запрос нового значения баллов для текущего пользователя, была добавлена для наглядности.
Имена, фамилии и общее кол-во баллов пользователей можно редактировать прямо в DataGridView1.
Вот пример добавления количества баллов за разные поступки (На примере кнопки "За дедушку"):
VB.NET
1
2
3
4
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        currentUser = UserCurrencyMannager.Current
        currentUser.Val = +9 'за дедушку
End Sub
Будут вопросы задавайте не стесняйтесь.

Добавлено через 8 минут
Добавлю.
Для записи/чтения данных в файл можно реализовать сериализацию класса.

Добавлено через 7 минут
Ох, что-то я перемудрил, ведь задачу можно было решить ещё проще внеся данные пользователей в DataTable. Короче, если ТСу будет интересно скину вариант на базе таблицы.
1
0 / 0 / 0
Регистрация: 18.12.2019
Сообщений: 56
01.08.2020, 19:18  [ТС] 19
Uswer,

мне очень интересно, скиньте пожалуйста вариант на базе таблицы

благодарю за ранее
0
1976 / 1410 / 365
Регистрация: 26.06.2017
Сообщений: 4,009
02.08.2020, 02:12 20
Цитата Сообщение от stragagor Посмотреть сообщение
мне очень интересно, скиньте пожалуйста вариант на базе таблицы
Да пожалуйста.
Вложения
Тип файла: zip UserBehavior.zip (64.6 Кб, 22 просмотров)
1
02.08.2020, 02:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.08.2020, 02:12
Помогаю со студенческими работами здесь

вычислительная математика!!!
Ребят, помогите!! Дело очень срочное!!! Человек стоит на отчислении, нужно сдать работы,...

Вычислительная математика
На рисунки представлен растровый графический файл размером 4х4 пикселей, содержащий все допустимые...

Вычислительная математика
Создавая программу в какой-то среде (Delphi, Visual C, ...), проводим вычисления в формате с...

Вычислительная математика
Помогите решить задачку, есть готовая программа, нужно только подставить значения. Сам в делфи и...

Вычислительная математика и паскаль
Люди помогите выполнить лабы. Математику всю забыл...не получается решить. кто может помочь во...

Вычислительная математика, Pascal
Огромная просьбище помочь с решением задачи. В прошлом семестре проблем с паскалем не было, а тут...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru