99217

Разработка программы для магазина одежды

Курсовая

Информатика, кибернетика и программирование

Исходные данные в виде таблицы, где указаны наименования одежды, стоимость и количество проданной одежды за каждый день, отдел в котором продавалась одежда данного наименования; количество одежды, проданной в отделе «мужская одежда» за первый день; доход за 2 декаду в отделе «женская одежда»; доход за месяц по каждому отделу; наименование отдела, продажа одежды которого принесла наибольший доход за месяц магазину.

Русский

2016-08-08

2.86 MB

0 чел.

МИНОБРНАУКИ РОССИИ

ФГБОУ ВПО «МГИУ»

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

По дисциплине «Информатика»

Москва 2012


Содержание

[1]
1. Задание на курсовую работу

[2]
2. Описание переменных

[3] 3. Блок схема

[4] 4. Описание алгоритма

[5]
5. Листинг программы

[6]
7. Список использованной литературы

 


1. Задание на курсовую работу

Магазин одежды в течение месяца (30 дней) продавал одежду 20 различных наименований в 3 отделах (детская одежда, женская одежда, мужская одежда). Известно количество проданной одежды за каждый день и стоимость каждого вида одежды. Стоимость одежды не меняется.

Написать программу на языке VBA, которая вводит исходные данные, выполняет расчет и выводит на экран:

  •  исходные данные в виде таблицы, где указаны наименования одежды, стоимость и количество проданной одежды за каждый день, отдел в котором продавалась одежда данного наименования;
  •  количество одежды, проданной в отделе «мужская одежда» за первый день;
  •  доход за 2 декаду в отделе «женская одежда»;
  •  доход за месяц по каждому отделу;
  •  наименование отдела, продажа одежды которого принесла наибольший доход за месяц магазину.


2. Описание переменных

Исходные данные находятся на листе «Нач_д» (рис. 1) и содержат следующую информацию:

  1.  Наименование одежды.
  2.  Наименование каждого из отделов магазина продающих одежду.
  3.  Количество одежды каждого из 20 наименований, проданного за месяц работы магазина.
  4.  Стоимость продаваемой одежды  каждого наименования.

Результаты работы программы оформляются на листе «Результат» (рис. 2).

Рис.1. Лист с начальными данными

Рис.2. Полученные результаты

В программе переменные описаны следующим образом:

  1.   cena(20) — стоимость продаваемой единицы каждого наименования одежды представляет массив целых чисел

Dim cena(20) As Integer

  1.  koll(20, 30) — количество одежды каждого наименования, проданного в каждый из рабочих дней (по дням)  представляет двумерный массив целых чисел

Dim koll(20,30) As Integer

  1.  zar(3, 31) — доход за каждый день (от 1 до 30) и общий доход за
    весь период  представляет массив дробных чисел

Dim zar (31) As Double

  1.  koll_d(3, 1) — количество проданной одежды за день представляет массив целых чисел

Dim kol_d(3, 1) As Integer

  1.  koll_n(20) — количество одежды каждого наименования за истёкший период представляет массив целых чисел

Dim kol_n(20) As Integer

  1.  zarpl (3, 3 )— сумма дохода за каждую декаду представляет массив дробных чисел

Dim zarpl As Double

6) a, b, c, max — месячный доход магазина принёсшего наибольший доход за месяц представляет массив дробных чисел

Dim a, b, c, max As Double

7) otd_n — наименование отдела принёсшего наибольший доход за месяц представляет массив дробных чисел

Dim otd_n  As Double

В программе также были использованы вспомогательные переменные, счетчики циклов, i и j, являющиеся целыми числами.

Dim i As Integer, j As Integer

Переменные cena(20), zar(3, 31), zarpl(3, 3), a, b, c, max  —  могут быть и не целыми числами, поэтому они объявлены как действительные.  Переменные koll(20,30)  koll_n(20) koll_d(3, 1)  —  целые числа, так как мы считаем, что смена работника магазина составляет полный день, и он не может продать за смену половину единицы одежд ы. Переменная otd_n  —  целое число, так как номер отдела с наибольшим заработком (1- отд. "Детская одежда", 2 - отд. "Женская одежда", 3 - отдел "Мужская одежда") не может быть половиной этого отдела.


3. Блок схема

 

Рис.3. Блок-схема

Рис.3. Блок-схема (продолжение)

Рис.3. Блок-схема (продолжение)

Рис.3. Блок-схема (продолжение)

Рис.3. Блок-схема (продолжение)

Рис.3. Блок-схема (продолжение)

Рис.3. Блок-схема (окончание)

4. Описание алгоритма

Начало программы.

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

Открытие листа с начальными данными («Нач_д») и получение этих данных в рабочие переменные (массивы сеnа(20) и kоll(20, 30)).

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

Расчет сумм заработков по каждому виду одежды за каждый день, количество изготовленных деталей и вывод результатов по каждому отделу. Организуется два вложенных цикла: внешний по виду одежды, внутренний по дням. Для оптимизации процесса расчетная часть совмещена с выводом: во внутреннем цикле происходит вычисление суммы заработка по i-му виду в j-й день с выводом результата, во внешнем цикле (после получения результатов внутреннего цикла) — вывод стоимости одного вида одежды и по всем видам. Расчет заработка за каждый день организован в этом же внутреннем цикле.

Определение отдела с максимальным заработком. Используется алгоритм сравнения, при равенстве двух и более месячных сумм результативной считается первая сумма.


5. Листинг программы

Sub Kurs()

'1 Сначала объявляем переменные.

Dim cena(20) As Integer  'цена одежды;

Dim koll(20, 30) As Integer 'количество (по дням);

Dim zar(3, 31) As Double  'доход в день и за месяц;

Dim koll_d(3, 1) As Integer  'количество проданной одежды в день;

Dim koll_n(20) As Integer  'количество проданной одежды  за месяц;

Dim zarpl(3, 3) As Double  'сумма дохода за каждую декаду;

Dim a, b, c, max As Double  'месячный доход отдела принёсшего наибольший 'доход;

Dim otd_n As Integer  'наименование отдела с наибольшим доходом;

Dim i As Integer, j As Integer  'счетчики циклов.

'2 Далее всем переменным присваиваем нулевое значение.

'создаём цикл который считает проданную одежду за месяц.

For i = 1 To 20

koll_n(i) = 0

Next

zar(3, 31) = 0

zarpl(3, 3) = 0

max = 0

otd_n = 0

'3 Считываем начальные данные с листа "Нач_д".

Sheets("Нач_д").Select

'4 В каждую ячейку массива cena(i) записывается стоимость каждого вида одежды.

'для этого используем цикл.

For i = 1 To 6  'отдел " Детская одежда".

   cena(i) = Cells(3 + i, 2)

Next i

For i = 7 To 13 'отдел " Женская одежда".

   cena(i) = Cells(5 + i, 2)

Next i

For i = 14 To 20 'отдел "Мужская одежда".

   cena(i) = Cells(7 + i, 2)

Next i

'5 В каждую ячейку массива koll(i, j) записывается количество проданной одежды в 'день.

'так как массив двумерный цикл проходит по двум счетчикам.

For i = 1 To 6   'отдел "Детская одежда".

   For j = 1 To 30

       koll(i, j) = Cells(3 + i, 2 + j)

   Next j

Next i

For i = 7 To 13 'отдел "Женская одежда".

   For j = 1 To 30

       koll(i, j) = Cells(5 + i, 2 + j)

   Next j

Next i

For i = 14 To 20 'отдел "Мужская одежда".

   For j = 1 To 30

       koll(i, j) = Cells(7 + i, 2 + j)

   Next j

Next i

'6 Далее на  листе "Результат" в ячейку табл. 1 с определённым номером вводится её 'название.

Sheets("Результат").Select

Cells(1, 1) = "Количество проданной одежды"

Cells(2, 1) = "Наименование одежды"

Cells(2, 2) = "Стоимость 1 шт."

Cells(2, 3) = "Продано"

Cells(3, 1) = "ДЕТСКАЯ одежда"

Cells(3, 3) = "1-й день"

Cells(3, 4) = "2-й день"

Cells(3, 5) = "3-й день"

Cells(3, 6) = "4-й день"

Cells(3, 7) = "5-й день"

Cells(3, 8) = "6-й день"

Cells(3, 9) = "7-й день"

Cells(3, 10) = "8-й день"

Cells(3, 11) = "9-й день"

Cells(3, 12) = "10-й день"

Cells(3, 13) = "11-й день"

Cells(3, 14) = "12-й день"

Cells(3, 15) = "13-й день"

Cells(3, 16) = "14-й день"

Cells(3, 17) = "15-й день"

Cells(3, 18) = "16-й день"

Cells(3, 19) = "17-й день"

Cells(3, 20) = "18-й день"

Cells(3, 21) = "19-й день"

Cells(3, 22) = "20-й день"

Cells(3, 23) = "21-й день"

Cells(3, 24) = "22-й день"

Cells(3, 25) = "23-й день"

Cells(3, 26) = "24-й день"

Cells(3, 27) = "25-й день"

Cells(3, 28) = "26-й день"

Cells(3, 29) = "27-й день"

Cells(3, 30) = "28-й день"

Cells(3, 31) = "29-й день"

Cells(3, 32) = "30-й день"

Cells(3, 33) = "Всего"

Cells(4, 1) = "колготки"

Cells(5, 1) = "брюки"

Cells(6, 1) = "куртка"

Cells(7, 1) = "платье"

Cells(8, 1) = "футболка"

Cells(9, 1) = "шорты"

Cells(11, 1) = "ЖЕНСКАЯ одежда"

Cells(12, 1) = "брюки"

Cells(13, 1) = "джинсы"

Cells(14, 1) = "жакет"

Cells(15, 1) = "жилет"

Cells(16, 1) = "кардиган"

Cells(17, 1) = "карсажи"

Cells(18, 1) = "колготки"

Cells(20, 1) = "МУЖСКАЯ одежда"

Cells(21, 1) = "галстук"

Cells(22, 1) = "джемпер"

Cells(23, 1) = "джинсы"

Cells(24, 1) = "костюм"

Cells(25, 1) = "куртка"

Cells(26, 1) = "майка"

Cells(27, 1) = "ремень"

'7 В соответствующие ячейки записывается стоимость и количество каждого наименования проданной одежды в день по отделам.

For i = 1 To 6  'отдел "Детская одежда".

   Cells(3 + i, 2) = cena(i)

   For j = 1 To 30

       Cells(3 + i, 2 + j) = koll(i, j)

       koll_n(i) = koll_n(i) + koll(i, j)

   Next j

   Cells(3 + i, 33) = koll_n(i)

Next i

For i = 7 To 13 'отдел "Женская одежда".

   Cells(5 + i, 2) = cena(i)

   For j = 1 To 30

       Cells(5 + i, 2 + j) = koll(i, j)

       koll_n(i) = koll_n(i) + koll(i, j)

   Next j

   Cells(5 + i, 33) = koll_n(i)

Next i

For i = 14 To 20 'отдел "Мужская одежда"

   Cells(7 + i, 2) = cena(i)

   For j = 1 To 30

       Cells(7 + i, 2 + j) = koll(i, j)

       koll_n(i) = koll_n(i) + koll(i, j)

   Next j

   Cells(7 + i, 33) = koll_n(i)

Next i

'8 Далее выводится количество проданной одежды в первый день по отделам.

For i = 1 To 6        'отдел "Детская одежда".

   koll_d(1, 1) = koll_d(1, 1) + koll(i, 1)

Next i

For i = 7 To 13      'отдел "Женская одежда".

   koll_d(2, 1) = koll_d(2, 1) + koll(i, 1)

Next i

For i = 14 To 20    'отдел "Мужская одежда".

   koll_d(3, 1) = koll_d(3, 1) + koll(i, 1)

Next i

'9 Ниже происходит ввод названий соответствующих столбцов и строк табл. 2.

Cells(30, 1) = "Результат в денежном эквиваленте "

Cells(31, 1) = "Наименование одежды"

Cells(31, 2) = "Стоимость 1шт."

Cells(31, 3) = "Заработано"

Cells(32, 1) = "ДЕТСКАЯ одежда"

Cells(32, 3) = "1-й день"

Cells(32, 4) = "2-й день"

Cells(32, 5) = "3-й день"

Cells(32, 6) = "4-й день"

Cells(32, 7) = "5-й день"

Cells(32, 8) = "6-й день"

Cells(32, 9) = "7-й день"

Cells(32, 10) = "8-й день"

Cells(32, 11) = "9-й день"

Cells(32, 12) = "10-й день"

Cells(32, 13) = "11-й день"

Cells(32, 14) = "12-й день"

Cells(32, 15) = "13-й день"

Cells(32, 16) = "14-й день"

Cells(32, 17) = "15-й день"

Cells(32, 18) = "16-й день"

Cells(32, 19) = "17-й день"

Cells(32, 20) = "18-й день"

Cells(32, 21) = "19-й день"

Cells(32, 22) = "20-й день"

Cells(32, 23) = "21-й день"

Cells(32, 24) = "22-й день"

Cells(32, 25) = "23-й день"

Cells(32, 26) = "24-й день"

Cells(32, 27) = "25-й день"

Cells(32, 28) = "26-й день"

Cells(32, 29) = "27-й день"

Cells(32, 30) = "28-й день"

Cells(32, 31) = "29-й день"

Cells(32, 32) = "30-й день"

Cells(32, 33) = "Всего"

Cells(33, 1) = "колготки"

Cells(34, 1) = "брюки"

Cells(35, 1) = "куртка"

Cells(36, 1) = "платье"

Cells(37, 1) = "футболка"

Cells(38, 1) = "шорты"

Cells(39, 1) = "ИТОГО"

Cells(40, 1) = "ИТОГО по декадам"

Cells(41, 1) = "ЖЕНСКАЯ одежда"

Cells(42, 1) = "брюки"

Cells(43, 1) = "джинсы"

Cells(44, 1) = "жакет"

Cells(45, 1) = "жилет"

Cells(46, 1) = "кардиган"

Cells(47, 1) = "карсажи"

Cells(48, 1) = "колготки"

Cells(49, 1) = "ИТОГО"

Cells(50, 1) = "ИТОГО по декадам"

Cells(51, 1) = "МУЖСКАЯ одежда"

Cells(52, 1) = "галтук"

Cells(53, 1) = "джемпер"

Cells(54, 1) = "джинсы"

Cells(55, 1) = "костюм"

Cells(56, 1) = "куртка"

Cells(57, 1) = "майка"

Cells(58, 1) = "ремень"

Cells(59, 1) = "ИТОГО"

Cells(60, 1) = "ИТОГО по декадам"

Cells(61, 1) = "Количество за первый день в отд. Мужская одежда"

Cells(62, 1) = "Доход за вторую декаду в отд. Женская одежда"

Cells(63, 1) = "Доход за месяц"

Cells(64, 2) = "отд. Детская одежда"

Cells(65, 2) = "отд. Женская одежда"

Cells(66, 2) = "отд. Мужская одежда"

Cells(67, 1) = "номер отд. с наибольшим доходом"

Cells(67, 8) = "Заработано"

'10 Во внутреннем цикле происходит вычисление суммы заработка за каждый день, по 'i-му наименованию в j-й день с выводом результата, а во внешнем цикле (после получения 'результатов внутреннего цикла) происходит вывод стоимости одного и по всем 'наименованиям одежды . Расчет 'заработной платы за каждый день и за месяц организован 'в этом же внутреннем цикле.

For i = 1 To 6   'отдел "Детская одежда".

   For j = 1 To 30

       Cells(32 + i, 2 + j) = koll(i, j) * cena(i)

       zar(1, j) = zar(1, j) + koll(i, j) * cena(i)

       zar(1, 31) = zar(1, 31) + koll(i, j) * cena(i)

       Cells(39, 2 + j) = zar(1, j)

   Next j

   Cells(32 + i, 2) = cena(i)

   Cells(39, 33) = zar(1, 31)

   Cells(32 + i, 33) = cena(i) * Cells(3 + i, 33)

Next i

   

For i = 7 To 13  'отдел "Женская одежда".

   For j = 1 To 30

       Cells(35 + i, 2 + j) = koll(i, j) * cena(i)

       zar(2, j) = zar(2, j) + koll(i, j) * cena(i)

       zar(2, 31) = zar(2, 31) + koll(i, j) * cena(i)

       Cells(49, 2 + j) = zar(2, j)

   Next j

   Cells(35 + i, 2) = cena(i)

   Cells(49, 33) = zar(2, 31)

   Cells(35 + i, 33) = cena(i) * Cells(5 + i, 33)

Next i

For i = 14 To 20  'отдел "Мужская одежда".

   For j = 1 To 30

       Cells(38 + i, 2 + j) = koll(i, j) * cena(i)

       zar(3, j) = zar(3, j) + koll(i, j) * cena(i)

       zar(3, 31) = zar(3, 31) + koll(i, j) * cena(i)

       Cells(59, 2 + j) = zar(3, j)

   Next j

   Cells(38 + i, 2) = cena(i)

   Cells(59, 33) = zar(3, 31)

   Cells(38 + i, 33) = cena(i) * Cells(7 + i, 33)

Next i

'11 Далее вычисляется доход каждого отдела по декадам.

'отдел "Детская одежда".

For j = 1 To 10   'первая декада.

   zarpl(1, 1) = zarpl(1, 1) + zar(1, j)

Next j

   Cells(40, 12) = zarpl(1, 1)

For j = 11 To 20   'вторая декада.

   zarpl(1, 2) = zarpl(1, 2) + zar(1, j)

Next j

   Cells(40, 22) = zarpl(1, 2)

For j = 21 To 30   'третья декада.

   zarpl(1, 3) = zarpl(1, 3) + zar(1, j)

Next j

   Cells(40, 32) = zarpl(1, 3)

'отдел "Женская одежда"

For j = 1 To 10   'первая декада.

   zarpl(2, 1) = zarpl(2, 1) + zar(2, j)

Next j

   Cells(50, 12) = zarpl(2, 1)

   

For j = 11 To 20   'вторая декада.

   zarpl(2, 2) = zarpl(2, 2) + zar(2, j)

Next j

   Cells(50, 22) = zarpl(2, 2)

For j = 21 To 30   'третья декада.

   zarpl(2, 3) = zarpl(2, 3) + zar(2, j)

Next j

   Cells(50, 32) = zarpl(2, 3)

'отдел "Мужская одежда"

For j = 1 To 10   'первая декада.

   zarpl(3, 1) = zarpl(3, 1) + zar(3, j)

Next j

   Cells(60, 12) = zarpl(3, 1)

For j = 11 To 20   'вторая декада.

   zarpl(3, 2) = zarpl(3, 2) + zar(3, j)

Next j

   Cells(60, 22) = zarpl(3, 2)

For j = 21 To 30   'третья декада.

   zarpl(3, 3) = zarpl(3, 3) + zar(3, j)

Next j

   Cells(60, 32) = zarpl(3, 3)

'12 Далее происходит сравнение месячных заработков отделов.

'Для этого переменным присваиваем значения.

a = Cells(39, 33) 'заработок отдела "Детская одежда".

b = Cells(49, 33) 'заработок отдела "Женская одежда".

c = Cells(59, 33) 'заработок отдела "Мужская одежда".

If a >= b And a >= c Then

   max = a

ElseIf b >= c Then

   max = b

Else

   max = c

End If

'13 Ниже выводится на лист результат работы программы.

Cells(61, 6) = koll_d(3, 1) '1 количество за первый день в отд. Мужская 'одежда.

Cells(62, 6) = zarpl(2, 2) '2 доход за вторую декаду в отд. Женская одежда.

Cells(64, 6) = zar(1, 31)   '3 доход за месяц по отделам.

Cells(65, 6) = zar(2, 31)

Cells(66, 6) = zar(3, 31)

'14 Вывод отдела с наибольшим заработком.

If max = a Then

   otd_n = 1    'отдел "Детская одежда".

ElseIf max = b Then

       otd_n = 2   'отдел "Женская одежда".

ElseIf max = c Then

       otd_n = 3   'отдел "Мужская одежда".

End If

Cells(67, 6) = otd_n  'номер отдела с наибольшим доходом.

Cells(67, 10) = max  'заработок отдела с наибольшим доходом.

End Sub


6. Описание входных данных и результат вычислений

Проверка программы на всех единицах:

Проверка на всех нулях:

Проверка на произвольных данных:

Исходные данные для задания № 39 представлены на Рис.№1., решение – на Рис.2..


7. Список использованной литературы

  1.  MS Office XP, 2003 Word, Excel, Access, Outlook, PowerPoint, FrontPage, MS Project/ А. К. Гультяев: Корона-Век, 2006
  2.  VBA. Практическое программирование/ Туркин Олег: Солон-пресс,2007
  3.  VBA/ Кузьменко В.Г.: Бином,2008.
  4.  Информатика. Методическое пособие по выполнению практических работ в компьютерном классе (Word, Excel) / Гришин М.П. М.: МГИУ, 2005.
  5.  Информатика. Часть 1. Введение в информатику: учебное пособие / Гришин М.П., Иванов М.Н., Носова Т.К., Суворов С.В. М.: МГИУ, 2008.
  6.  Информатика. Часть 2. Программирование: Учебно-методическое пособие / Иванов М.Н., Суворов С.В. М.: МГИУ. 2006.
  7.  Самоучитель VBA/ Андрей Гарнаев: БХВ-Петербург,2004
  8.  Самоучитель программирования на VBA в Microsoft Office/В. Д. Хореев: Юниор, 2001

PAGE   \* MERGEFORMAT4


 

А также другие работы, которые могут Вас заинтересовать

3079. Особенности тоталитаризма в государственном и личностном понимании 64.94 KB
  Введение Государство — это особая форма организации общества, действующая на ограниченной территории. Государство обладает определёнными средствами и методами применения власти внутри общества, устанавливает определённый порядок взаимоотношений...
3080. Методика преподавания информатика на примере урока синтаксис языка запросов поисковой системы Yandex 51.58 KB
  Глава 1. Методика преподавания информатики 1.1  Методика преподавания информатики как педагогическая наука Вместе с введением в школу общеобразовательного предмета «Основы информатики и вычислительной техники» началось формирование новой област...
3081. Бизнес-идея, миссия, видение и цели 46.92 KB
  Бизнес-идея, миссия, видение и цели Фирма будет распространять косметику по уходу за волосами. Товары буду распространяться через медицинские базы в аптеки. Конкурентов в этой среде, распространяющих схожие товары, насчитывается четыре. Сегментом ры...
3082. Оценка стоимости имущества 50.61 KB
  Оценка стоимости имущества Введение Развитие рыночной экономики в России привело к многообразию форм собственности и возрождению собственника, к увеличению количества объектов собственности в хозяйственном обороте. У каждого, кто задумывается реализ...
3083. Оценка развития сферы услуг и выявление ее роли во внешней экономике 76.38 KB
  При исследовании спектра функций, осуществляемых городом, выявляются радикальные сдвиги, вызванные изменением типа хозяйства. Промышленная революция привела к постепенному замещению традиционных отраслей производства, и в первую очередь сел...
3084. Перевозка грузов на железнодорожном транспорте 77.56 KB
  В настоящее время грузовое хозяйство является одним из ведущих на железнодорожном транспорте страны. Грузовая и коммерческая работа как производственная сфера железнодорожного транспорта и как отрасль эксплуатационной науки имеет свою более...
3085. Экономическая безопасность функционирования предприятия 1.24 MB
  Защите экономических интересов предприятия до сих пор уделялось мало внимания, хотя эта проблема очень актуальна. В условиях развития рыночных механизмов в экономике, роста частного предпринимательства весьма важной задачей экономической науки и практики хозяйственной деятельности предприятий становится обеспечение экономической безопасности.
3086. Экологические проблемы литосферы 62.3 KB
  Введение Человек и природа неотделимы друг от друга и тесно взаимосвязаны. Для человека, как и для общества в целом, природа является средой жизни и единственным источником необходимых для существования ресурсов. Природа и природные ресурсы - база...
3087. Выбор профессии - Менеджер 39.14 KB
  Есть такая профессия – Менеджер. Выбирая профессию, каждый человек должен, прежде всего, самому себе ответить на вопрос: Почему я выбрал именно эту профессию. Целью моего реферата является ответить на вопрос: Почему я выбр...