0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 6
1

Необходимо дописать программу

02.05.2011, 21:41. Показов 1080. Ответов 9
Метки нет (Все метки)

Здравствуйте, помоготите пожалуйста.
Задача :
Склад готовой продукции цеха каждую смену принимает готовые изделия (гайки, болты, шайбы и т.п., всего 10 видов изделий)
и каждую смену отправляет готовые изделия другим цехам.
Склад, как цех, работает в 2 смены. В конце 2-й смены подсчитываются остатки.
Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:
1 исходные данные в виде таблицы, где указаны наименования изделий
и цена каждого вида изделия, остаток от предыдущих суток, поступления каждого вида изделия в каждую смену, отпуск каждого вида изделия в течение смены;
2 стоимость остатка от предыдущих суток;
3 остаток каждого вида изделий на начало следующего рабочего дня;
4 стоимость остатка в конце каждой смены;
5 наименование изделия, пользовавшегося в течение 2-х смен наибольшим спросом.
Примечание : На листе должны быть, как минимум, пять командных кнопок, вызывающих выполнений процедур:
1.Кнопка «Рассчитать данные» вызывает выполнения процедур расчета значений по всем заданиям варианта.
2.Кнопка «Сортировать». Алгоритм сортирует любой из результатных массивов и связанными с ним заголовками строк (столбцов) на свободной месте листа.
3.Кнопка «Проверить правильность алгоритма на 1». Результат отображается на Листе 2.
4.Кнопка «Проверить правильность алгоритма на 0». Результат отображается на Листе 3.
5.Кнопка «Очистить» восстанавливает исходные данные и удаляет все результаты вычислений на всех листах.
6.Процедуры кнопок вызывают вычисляющие процедуры через команду Call.
7.Использование типа данных Currency – обязательное требование.
Программный код по пунктам 1,2,4 написан.
Необходимо написать по 3 и 5 и сделать кнопки как в примечании
+ чтобы программа отвечала следующим требованиям :
1.Переменные должны быть описаны до первой процедуры.
2.Все исходные данные содержатся в одномерных и двумерных массивах. Обращение к ячейкам только при считывании и записи на лист.
Все массивы обрабатываются в циклах. В теле программы должны хотя бы однократно использоваться циклы Do While (Until) - Loop и For – Next.
3.Каждая процедура должна содержать комментарии по выполняющимся в этой процедуре действиям.
4.Сохранение исходных данных может осуществляться как на текущем листе (ниже), так и на другом листе или в новом файле.
Прикрепляю в Excele что есть на данный момент.
курсач в процессе с заданием 1 - копия.xls

Вот код программы
Visual Basic
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
Option Explicit
Option Base 1
 
Dim izdelia(10) As String
Dim czena_kazhdogo(10) As Currency
Dim ostatok_ot_prediduschih_sutok(10) As Single
Dim postuplenie_kazhdogo_vida_izdeliy_v_kazhduyusmenu(10, 2) As Single
Dim otpusk_kazhdogo_vida_izeliy_v_techenie_smeni(10, 2) As Single
Dim stoimost_ostatka_ot_prediduschih_sutok(10) As Currency
'стоимость остатка от предыдущих суток
Dim z As Single, f As String
'переменные для сортировки
Dim Sum_ob As Currency
Dim Min As Currency
Dim ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(10) As Single
'остаток каждого вида изделия на начало рабочего дня
Dim stoimost_ostatka_v_koncze_kazhdoy_rabochey_smeni As Currency
'стоимость остатка в конце каждой рабочей смены
Dim naimenovanie_izdelia, polzovavshegosya_v_techenie_dvuh_rabochih_smen_naibolshim_sprosom(2) As String
'ниаменование изделия, пользовавшегося в течение двух смен наибольшим спросом
Dim i As Integer, j As Integer, ind As Integer
'переменные цикла
 
 
 
 
 
Sub vichislit()
For i = 1 To 10
izdelia(i) = Cells(i + 3, 1)
czena_kazhdogo(i) = Cells(i + 3, 2)
ostatok_ot_prediduschih_sutok(i) = Cells(i + 3, 3)
 
 
j = 1
Do While j <= 2
postuplenie_kazhdogo_vida_izdeliy_v_kazhduyusmenu(i, j) = Cells(i + 3, j + 3)
otpusk_kazhdogo_vida_izeliy_v_techenie_smeni(i, j) = Cells(i + 3, j + 4)
j = j + 1
Loop
 
Next i
 
Sum_ob = 0
For i = 1 To 10
stoimost_ostatka_ot_prediduschih_sutok(i) = 0
 
stoimost_ostatka_ot_prediduschih_sutok(i) = stoimost_ostatka_ot_prediduschih_sutok(i) + czena_kazhdogo(i) * ostatok_ot_prediduschih_sutok(i)
 
Cells(i + 3, 8) = stoimost_ostatka_ot_prediduschih_sutok(i)
Sum_ob = Sum_ob + stoimost_ostatka_ot_prediduschih_sutok(i)
 
Next i
Cells(14, 8) = Sum_ob
 
For i = 1 To 10
ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i) = 0
For j = 1 To 2
ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i) = ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i) + postuplenie_kazhdogo_vida_izdeliy_v_kazhduyusmenu(i, j) - otpusk_kazhdogo_vida_izeliy_v_techenie_smeni(i, j)
Next j
Cells(i + 3, 9) = ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i)
Next i
 
Min = ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(1)
For i = 1 To 10
If Min >= ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i) Then
Min = ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i)
ind = i
End If
Next i
Cells(14, 9) = izdelia(ind)
 
 
 
 
 
 
End Sub
 
 
 
Sub sortirovka()
For i = 1 To 10
izdelia(i) = Cells(i + 3, 1)
ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i) = Cells(i + 3, 9)
Next i
 
For i = 1 To 10
For j = i + 1 To 10
If ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i) < ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(j) Then
z = ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i)
f = izdelia(i)
ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i) = ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(j)
izdelia(i) = izdelia(j)
ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(j) = z
izdelia(j) = f
End If
Next j
Next i
Cells(17, 1) = "Изделие"
Cells(17, 2) = "Остаток"
For i = 1 To 10
Cells(i + 17, 1) = izdelia(i)
Cells(i + 17, 2) = ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i)
Next i
 
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 
End Sub
Очень жду помощи, а то сдавать надо уже через неделю!Заранее Вам благодарна,спасибо!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2011, 21:41
Ответы с готовыми решениями:

Необходимо дописать код чтобы выделялись 100 строк до и после и сохранялись отдельным файлом
Всем доброго дня... Программированием на VB не занимаюсь. Веду лично-рабочий дневник в Екселе уже...

Необходимо Дописать Скрипт
Доброго дня есть потребность в доработке скрипта Есть база отвечающая за рассылку коректно...

Необходимо дописать задачу
В матрице целых чисел, размерности N*M в каждой строке найти максимальный элемент и все элементы,...

Необходимо дописать код. Массивы
Дан массив A размера N. Сформировать два новых массива B и C: в массив B записать все положительные...

9
1552 / 447 / 47
Регистрация: 10.04.2009
Сообщений: 7,697
03.05.2011, 05:19 2
так, а где сами кнопки, ставить не умеете на лист? если умеете, поставьте и выложите файл снова
0
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 6
03.05.2011, 10:40  [ТС] 3
Кнопки, к сожалению, не умею(
0
1552 / 447 / 47
Регистрация: 10.04.2009
Сообщений: 7,697
03.05.2011, 17:50 4
Возле меню справка чуть правее правой клавишей мишы шёлк и выбрать панель элементы управления, там кнопки есть, ОК???
0
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 6
03.05.2011, 18:21  [ТС] 5
Это в экселе,да?у меня самый последний эксель стоит и я там во вкладке файл нашла "Справка",но сделать как Вы сказали не смогла,могу прислать как должна выглядеть экселевская таблица готовая,уже с кнопками.Если я правильно поняла вопрос,то Вас интересует расположение кнопок.
Очень благодарна,что откликнулись
Миниатюры
Необходимо дописать программу  
0
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 6
03.05.2011, 19:48  [ТС] 6
Сделала код для 5го задания(наименование изделия,пользовавшегося в течение двух смен наибольшим спросом)...его не надо теперь)
основные проблемы с заданием под номером 4(стоимость остатка в конце каждой смены)...молю,ПОМОГИТЕ!!!
0
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 6
03.05.2011, 21:23  [ТС] 7
Вот обновленная таблица экселя с 5-ым заданием и кодом к нему:
Visual Basic
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
Option Explicit
Option Base 1
 
Dim izdelia(10) As String
Dim czena_kazhdogo(10) As Currency
Dim ostatok_ot_prediduschih_sutok(10) As Single
Dim postuplenie_kazhdogo_vida_izdeliy_v_kazhduyusmenu(10, 2) As Single
Dim otpusk_kazhdogo_vida_izeliy_v_techenie_smeni(10, 2) As Single
Dim stoimost_ostatka_ot_prediduschih_sutok(10) As Currency
'стоимость остатка от предыдущих суток
Dim z As Single, f As String
'переменные для сортировки
Dim Sum_ob As Currency
Dim Min As Currency
Dim Max As Single
Dim Max2 As Single
Dim ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(10) As Single
'остаток каждого вида изделия на начало рабочего дня
Dim stoimost_ostatka_v_koncze_kazhdoy_rabochey_smeni As Currency
'стоимость остатка в конце каждой рабочей смены
Dim naimenovanie_izdelia_polzovavshegosya_v_techenie_dvuh_rabochih_smen_naibolshim_sprosom(1) As String
'ниаменование изделия, пользовавшегося в течение двух смен наибольшим спросом
Dim i As Integer, j As Integer, ind As Integer
'переменные цикла
 
 
 
 
 
Sub vichislit()
For i = 1 To 10
izdelia(i) = Cells(i + 3, 1)
czena_kazhdogo(i) = Cells(i + 3, 2)
ostatok_ot_prediduschih_sutok(i) = Cells(i + 3, 3)
 
 
j = 1
Do While j <= 2
postuplenie_kazhdogo_vida_izdeliy_v_kazhduyusmenu(i, j) = Cells(i + 3, j + 3)
otpusk_kazhdogo_vida_izeliy_v_techenie_smeni(i, j) = Cells(i + 3, j + 4)
j = j + 1
Loop
 
Next i
 
Sum_ob = 0
For i = 1 To 10
stoimost_ostatka_ot_prediduschih_sutok(i) = 0
 
stoimost_ostatka_ot_prediduschih_sutok(i) = stoimost_ostatka_ot_prediduschih_sutok(i) + czena_kazhdogo(i) * ostatok_ot_prediduschih_sutok(i)
 
Cells(i + 3, 8) = stoimost_ostatka_ot_prediduschih_sutok(i)
Sum_ob = Sum_ob + stoimost_ostatka_ot_prediduschih_sutok(i)
 
Next i
Cells(14, 8) = Sum_ob
 
For i = 1 To 10
ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i) = 0
For j = 1 To 2
ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i) = ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i) + postuplenie_kazhdogo_vida_izdeliy_v_kazhduyusmenu(i, j) - otpusk_kazhdogo_vida_izeliy_v_techenie_smeni(i, j)
Next j
Cells(i + 3, 9) = ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i)
Next i
 
Min = ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(1)
For i = 1 To 10
If Min >= ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i) Then
Min = ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i)
ind = i
End If
Next i
Cells(14, 9) = izdelia(ind)
 
Max = postuplenie_kazhdogo_vida_izdeliy_v_kazhduyusmenu(10, 2)
For i = 1 To 10
For j = 1 To 2
If Max <= postuplenie_kazhdogo_vida_izdeliy_v_kazhduyusmenu(i, j) Then
Max = postuplenie_kazhdogo_vida_izdeliy_v_kazhduyusmenu(i, j)
ind = i
End If
Next j
Next i
Cells(15, 6) = izdelia(ind)
 
Max2 = otpusk_kazhdogo_vida_izeliy_v_techenie_smeni(10, 2)
For i = 1 To 10
For j = 1 To 2
If Max2 <= otpusk_kazhdogo_vida_izeliy_v_techenie_smeni(i, j) Then
Max2 = otpusk_kazhdogo_vida_izeliy_v_techenie_smeni(i, j)
ind = i
End If
Next j
Next i
Cells(15, 6) = izdelia(ind)
 
 
 
 
 
 
 
 
End Sub
 
 
 
Sub sortirovka()
For i = 1 To 10
izdelia(i) = Cells(i + 3, 1)
ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i) = Cells(i + 3, 9)
Next i
 
For i = 1 To 10
For j = i + 1 To 10
If ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i) < ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(j) Then
z = ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i)
f = izdelia(i)
ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i) = ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(j)
izdelia(i) = izdelia(j)
ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(j) = z
izdelia(j) = f
End If
Next j
Next i
Cells(17, 1) = "Изделие"
Cells(17, 2) = "Остаток"
For i = 1 To 10
Cells(i + 17, 1) = izdelia(i)
Cells(i + 17, 2) = ostatok_kazhdogo_vida_izdeliy_na_nachalo_novogo_rabochego_dnya(i)
Next i
 
End Sub
Необходимо сделать кнопки и 4-е задание.
Вложения
Тип файла: xls курсач в процессе с заданием 1 - копия.xls (45.5 Кб, 14 просмотров)
0
1552 / 447 / 47
Регистрация: 10.04.2009
Сообщений: 7,697
04.05.2011, 05:28 8
Цитата Сообщение от katushka9213 Посмотреть сообщение
у меня самый последний эксель стоит
и в то же время файл прикреплен
курсач в процессе с заданием 1 - копия.xls
как это понять
???
0
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 6
04.05.2011, 11:19  [ТС] 9
действительно, office 2010 стоит, а надо в другом формате, каком?
это как то влияет на то, что не могу найти меню с этими кнопками?
0
1552 / 447 / 47
Регистрация: 10.04.2009
Сообщений: 7,697
04.05.2011, 17:52 10
кнопки в 10м Экселе Вкладка разработчик, называются Элементы управления, насчёт расширения xls - я в ступоре, помоему начиная с 2007 расширение Экселя и Ворда с 4 букв, сейчас не пойму!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2011, 17:52
Помогаю со студенческими работами здесь

Необходимо дописать значение в вывод текстового файла
Имеется программа, которая выводит из списка кучи данных, требуемые нам данные (назовём &quot;1.txt&quot;)....

Mod_rewrite: какие правило и условие необходимо дописать в .htaccess?
Добрый вечер! Необходимо в .htaccess создать правила и условия для следующих ситуаций: 1....

Php DOM необходимо дописать код выдергивания текста
Всем привет! Подскажите пож-та как выдернуть кусок с сайта. Сейчас парсер работает вот так: Код...

Необходимо дописать дешифровщик скрытого текста из фотографии типа bmp (код на шифровку приложен ниже)
Добрый час, уважаемые посетители, нужна хелпа по дописанию кода, в интернете нашел интересный код...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru