Разработка программного комплекса для автоматизации информационных процессов служб сбыта пищевой продукции

Разработка проекта программного комплекса для автоматизации информационных процессов службы сбыта пищевой продукции. Разработка информационной базы данных и характеристика процесса создания клиентской и сервисной части приложения по технологии ASP.NET.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 24.06.2011
Размер файла 2,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

, (4.13)

где - коэффициент дополнительной заработной платы.

Коэффициент дополнительной заработной платы инженера-программиста составляет зд = 0,2. Таким образом, дополнительная заработная плата Зд, руб., инженера-программиста первой категории, вычисленная по формуле (4.14), равна:

Отчисления на социальные нужды Зс, руб., определяется по формуле

(4.14)

где норматив социальных отчислений.

Нормативные социальные отчисления равны 34%.

Найденные значения подставляются в формулу 4.14.

Затраты на потребляемую электроэнергию , руб., определяется по формуле

, (4.15)

где - мощность ЭВМ, кВт;

- время работы вычислительного комплекса, ч;

- стоимость 1 кВт-ч электроэнергии, руб./кВт-ч.

Фонд рабочего времени при создании программного продукта tв, ч, можно определить по формуле

, (4.16)

где - коэффициент, учитывающий затраты времени на профилактические работы.

kкор - коэффициент коррекции времени работы вычислительного комплекса, kкор=0,8.

Коэффициент, учитывающий затраты времени на профилактические работы равен 1.15.

Найденные значения подставляются в формулу 4.16:

Стоимость 1 кВтч электроэнергии составляет цэ = 2,82 руб./ кВтч.

Найденные значения подставляются в формулу 4.14:

Расходы на материалы и запасные части , руб., определяется по формуле

, (4.17)

где - перечень видов материалов;

- количество i-гo вида материалов, ед., шт.;

- цена одной единицы i-гo вида материалов, руб.

Расходные материалы, использованные во время разработки программного продукта следующие: краска для струйного принтера (используется СНПЧ) шесть цветов (1л.) по 300 рублей за каждый, бумага для печати 500 листов 160 рублей.

Найденные значения подставляются в формулу 4.17:

Затраты на техническое обслуживание и текущий ремонт:

, (4.18)

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

- годовой фонд времени работы вычислительной техники.

- норма отчислений на ремонт.

Балансовая стоимость вычислительной техники равна 80000 руб.

Годовой фонд времени работы вычислительной техники равен 2112 ч.

Найденные значения подставляются в формулу 4.18:

Затраты на амортизацию вычислительной техники , руб.:

, (4.19)

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

- норма отчислений на амортизацию вычислительной техники, %;

- годовой фонд времени работы вычислительной техники, ч.

Для расчётов по формуле (4.19) примем:

? балансовая стоимость вычислительной техники =80000,00 руб.;

? норма отчислений на амортизацию = 10 %;

? годовой фонд времени работы вычислительной техники при 40-часовой рабочей неделе в текущем году = 2112 ч.

Подставив все числовые значения параметров в формулу (4.19) получим, что затраты на амортизацию вычислительной техники составят:

руб.

Полные затраты на создание программного продукта З, руб., определяется по формуле 4.20

(4.20)

Найденные значения подставляются в формулу 4.20:

Таким образом, полные затраты на создание программного продукта составляют 68196,62 руб.

Поскольку разработка программного продукта ведется инженером-программистом информационного отдела предприятия, оптовая и договорная цена программного продукта не определяется. Капиталовложения при внедрении программного продукта равняются его себестоимости.

4.4.1 Оценка экономической эффективности внедрения программного продукта

Показатель эффекта определяет все позитивные результаты, достигаемые при использовании программного продукта. Прибыль от использования продукта за год П, руб., определяется по формуле

, (4.21)

где Э - стоимостная оценка результатов применения программного продукта в течение года, руб.;

3 - стоимостная оценка затрат при использовании программного продукта, руб.

Приток денежных средств из-за использования программного продукта Э, руб., в течение года составляет:

Э = (ЗРУЧ - ЗАВТ) + ЭДОП,(4.22)

где ЗРУЧ - затраты на ручную обработку информации, руб.;

ЗАВТ - затраты на автоматизированную обработку информации, руб.;

ЭДОП - дополнительный экономический эффект, связанный с уменьшением числа используемых бланков,

высвобождением рабочего времени и т. д., руб.

Затраты на ручную обработку информации , руб., определяется по формуле

,(4.23)

где - время, затрачиваемое на обработку информации вручную, ч;

- цена одного часа работы оператора, руб.;

- коэффициент, учитывающий дополнительные затраты времени на логические операции.

Коэффициент, учитывающий дополнительные затраты времени на логические операции равен 1,8.

Время, затрачиваемое на обработки информации вручную равно 40 ч.

Оклад оператора программного комплекса равен 7500 руб. премиальные равные 50% от оклада.

Цена одного часа работы оператора рассчитывается, по формуле 4.24.

(4.24)

Найденные значения подставляются в формулу 4.23.

Затраты на автоматическую обработку Завт, рассчитываются по формуле 4.24.

,(4.25)

где - затраты времени на автоматизированную обработку той же самой информации, ч.

Затраты времени на автоматическую обработку системы равны 10 ч.

Найденные значения подставляются в формулу 4.25.

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

За год величина будет равна 41321,28 руб.

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

На основании формулы (4.15), для персонального компьютера сотрудника затраты на электроэнергию при потребляемой мощности компьютера PВ =0,5 кВт составят (стоимость электроэнергии цЭ =2,82 руб./кВт-ч.):

Балансовая стоимость вычислительной техники = 80000,00 руб. Тогда, на основании формулы (4.17), для персонального компьютера сотрудника почтового отделения за 12 месяцев затраты на техническое обслуживание и текущий ремонт составят:

Затраты на амортизацию вычислительной техники:

Тогда, эксплуатационные затраты при использовании программного продукта составят:

З = ЗЭ + ЗП + ЗАМ = 169,2 + 181,81 +90,9 = 441,91 руб.

Прибыль рассчитаем по формуле (4.19):

П = Э - З = 41321,28 - 441,91 = 40879,37 руб.

Таким образом, мы имеем следующий денежный поток:

0 шаг (капиталовложения) - 68196,62 руб.;

1 шаг - 40879,37 руб.;

2 шаг - 40879,37 руб.;

3 шаг - 40879,37 руб.;

4 шаг - 40879,37 руб.;

5 шаг - 40879,37 руб.

Чистый дисконтированный доход ЧДД, руб., от использования программного продукта определим по формуле:

,(4.26)

где N - расчётный период, год;

- прибыль от использования программного продукта за k-й год его эксплуатации, руб.;

К - капиталовложения при внедрении программного продукта, руб.

Следовательно, ЧДД, руб., при N = 5, т. е. за пять лет использования программного продукта (срок до морального старения рассматриваемой информационной системы) при норме дисконта Е = 20 % в соответствие с формулой (4.26) составит:

= 34066,14 + 28388,45 + 23767,08 + 19719,9 + 16351,75 -

? = 54096,7 руб.

Приходим к выводу, что ЧДД положителен, т. е. проект эффективен.

Внутреннею норму доходности проекта , %, определим по формуле:

(4.27)

где ? максимальное значение внутренней нормы дисконта, %, при которой ЧДД является положительной величиной (ЧДД > 0);

? минимальное значение внутренней нормы дисконта, %, при которой ЧДД является отрицательной величиной (ЧДД < 0);

? ЧДД, руб., вычисляемый по формуле (4.26) при подстановке нормы дисконта E = ;

? ЧДД, руб., вычисляемый по формуле (4.26) при подстановке нормы дисконта E = .

Предполагаем, что лежит в диапазоне 50 … 100 %. При норме дисконта =50 % получаем ЧДД = 2795,537 руб. Таким образом, при XLL = 50 % ЧДД положителен.

При норме дисконта =60 % получаем ЧДД = -6561,94 руб. Таким образом, при XLL = 60% ЧДД отрицателен.

Следовательно, по формуле (4.26) имеем:

= 53 %.

Рассчитаем срок окупаемости проекта. Срок окупаемости проекта , год, найдём по формуле:

при котором (4.28)

где n - число периодов;

K - капиталовложения при внедрении программного продукта, руб.;

Эк - дисконтированная прибыль от использования программного

продукта за i-й год его эксплуатации, руб., вычисленная по формуле 4.29 при подстановке нормы дисконта E = 20%.

0 период (капиталовложения) - 68196,62 руб.;

1 период - 34066,14 руб.; 2 период - 28388,45 руб.; 3 период - 23767,08 руб.; 4 период - 19719,9 руб.; 5 период - 16351,75 руб.

Определяется период по истечении, которого проект окупается.
Сумма доходов за 1 и 2 период: 34066,14 + 28388,45 = 62454,59, что меньше размера инвестиции равного 68196,62.

Сумма доходов за 1, 2 и 3 период: 34066,14+28388,45+23767,08 = 86221,67 (Э123) больше 68196,62, это значит, что возмещение первоначальных расходов произойдет раньше 3 лет.

Учитывая, что приток денежных средств поступает равномерно в течении всего периода, а не в его конце, можно конкретизировать в какой момент на протяжении 3-его года эксплуатации будет окуплен проект:

Тогда срок окупаемости проекта Ток = 2,75 г.

4.5 Основные технико-экономические показатели проекта

Для удобства анализа, все основные технико-экономические показатели проекта сведены в таблицу 4.1.

Таблица 4.1 ? Основные технико-экономические показатели проекта

Основные характеристики

Единицы

измерения

Проект

Итоговая трудоемкость разработки

чел.-ч.

897,92

Полные затраты на создание программного продукта

руб.

68196,62

Годовой экономический эффект от внедрения программного продукта

руб.

41321,28

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

руб.

40879,37

Чистый дисконтированный доход

руб.

54096,7

Внутренняя норма доходности

%

53

Срок окупаемости проекта

год

2,75

Выводы

1. Итоговая трудоемкость разработки программного продукта составляет 897,92 чел.-ч.

2. Полные затраты на создание программного продукта составили 68196,62руб.

3. Годовой экономический эффект от внедрения программного продукта составляет 41321,28руб.

4. Прибыль от внедрения и использования программного продукта 40879,37руб.

5. Чистый дисконтный доход составляет: 54096,7

6. Внутренняя норма доходности 53%

7. Срок окупаемости проекта 2,75 года.

8. После внедрения программного комплекса фирме индивидуального предпринимателя Краснюк Н.Н. г. Михайловск, время на обработку информации снизилось с 40 за ручную обработку до 10 часов.

9. Разработка программного комплекса для автоматизации информационных процессов служб сбыта для фирмы индивидуального предпринимателя Краснюк Н.Н. г. Михайловск является экономически обоснованной и эффективной.

5. БЕЗОПАСНОСТЬ И ЭКОЛОГИЧНОСТЬ ПРОЕКТА

5.1 Общая характеристика опасных, вредных факторов на рабочем месте оператора информационной подсистемы

Опасные и вредные факторы по природе возникновения делятся на следующие группы:

- физические;

- химические;

- психофизиологические.

В помещении на работника могут негативно действовать следующие физические факторы:

- повышенная и пониженная температура воздуха;

- чрезмерная запыленность и загазованность воздуха;

- повышенная и пониженная влажность воздуха;

- недостаточная освещенность рабочего места;

- превышающий допустимые нормы шум;

- повышенный уровень ионизирующего излучения;

- опасность поражения электрическим током;

- блеклость экрана дисплея.

К химически опасным факторам, постоянно действующим на программиста относятся следующие:

-возникновение, в результате ионизации воздуха при работе компьютера, активных частиц.

К психологически вредным факторам, воздействующим на оператора в течение его рабочей смены можно отнести следующие:

-нервно-эмоциональные перегрузки;

-умственное напряжение;

-перенапряжение зрительного анализатора.

5.2 Общие мероприятия по обеспечению безопасности на рабочем месте

Помещение, где располагается оператор ЭВМ, расположено на втором этаже двухэтажного здания.

Помещение, в котором находится рабочее место оператора, имеет следующие характеристики:

1) длина помещения: 6,0 м;

2) ширина помещения: 5,5 м;

3) высота помещения: 3,0 м;

4) число рабочих мест: 4;

5) освещение: естественное (через 2 окна, размером 2,4x2 метра) и общее искусственное.

Схема помещения представлена на рисунке 5.1.

Рисунок 5.1 - Схема помещения офиса ИП

На рисунке 5.1 применены следующие обозначения:

1. Рабочий стол.

2. Стул.

3. Монитор.

4. Клавиатура.

Потолок окрашен белой краской. Стены оклеены обоями светло-бежевого цвета.

По затратам энергии деятельность программистов принадлежит к категории с затратами менее 120 Ккал/ч (категория 1а), так как основная работа происходит сидя за столом с компьютером, поэтому соблюдаются следующие требования СанПиН 2.2.2/2.4:

1) оптимальная температура воздуха 200 С;

2) оптимальная относительная влажность 40-60% (допустимая не более 75%);

3) скорость движения воздуха не более 0.1м/с.

Для создания и автоматического поддержания в помещении независимо от наружных условий оптимальных значений температуры, влажности, чистоты и скорости движения воздуха, в холодное время года используется водяное отопление, в теплое время года используется естественная вентиляция и кондиционер Panasonic CS-PE9CKE.

В помещении офиса используются ручные углекислотные огнетушители типа ОУ-5, (2,5 - ёмкость в литрах).

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

Обеспечение электробезопасности осуществляется техническими способами и средствами. Так как все токоведущие части ЭВМ надежно изолированы, то случайное прикосновение к токоведущим частям исключено.

Применяются следующие способы для обеспечения защиты от поражения электрическим током при прикосновении к металлическим нетоковедущим частям, которые могут оказаться под напряжением в результате повреждения изоляции.

1. Заземление корпуса ЭВМ обеспечено подведением заземляющей жилы к питающим розеткам.

2. Сопротивление заземления 4 Ом, согласно (ПУЭ) для электроустановок с напряжением до 1000 В.

5.3 Расчет освещения в рабочем помещении

5.3.1 Расчет естественного освещения

В рабочей зоне оператора ЭВМ необходимо рассчитать освещение по СанПиН 2.2.2/2.4. Следует рассчитать площадь светового проема по формуле:

, (5.1)

где:

So - площадь световых проемов (окон), м2;

Sп - площадь пола помещения, м2;

- нормированное значение КЕО, II световой пояс равен 0,7;

ho - световая характеристика окна;

Кз - коэффициент запаса;

фo - общий коэффициент светопропускания;

Кзд - коэффициент, учитывающий затенение окон противостоящими зданиями;

r1 - коэффициент, учитывающий повышение КЕО благодаря свету, отраженному от поверхностей помещения, равен 1,7.

Что бы найти световую характеристику окна нам потребуется таблица 5.1. Отношение длины (вдоль стены с окнами) помещения L к его ширине B мы получаем значение равное 0,97 ~ 1. Чтобы найти требуется найти отношение ширины помещения к высоте верхнего окна и оно равно 2,3 ~ 2. Из этого следует, что ho = 19;

Таблица 5.1 - Световая характеристика окна

Коэффициент запаса равен 1,2.

Общий коэффициент светопропускания отображен в таблице 5.2. На фирме используются двойные окна с алюминиевым переплетом. И так как здание находиться вне основных улиц города, здание относиться к группе B, поэтому коэффициент светопропускания равен 0,4. Окно расположено вертикально.

Таблица 5.2 - Коэффициент светопропускания

Отношение высоты противостоящего здания к расстоянию между зданием равно 5,45. Из таблицы 5.3 Кзд = 1,0.

Таблица 5.3 - Значение коэффициента, учитывающего затемнение окон противостоящими зданиями

При расчете, по формуле 5.1 получено следующее значение требуемой площади светового проема:

Площадь существующего светового проема равна 2*2*2,4=9,6 м2.

Площадь светового проема равна 9,6 м2, что вполне отвечает величине рассчитанного параметра. Отсюда следует, что световые проемы справляются со своей задачей и удовлетворяют требованиям СниП 2.2.2/2.4.

5.3.2 Расчет искусственного освещения

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

Для искусственного освещения используются люминесцентные лампы дневного света, марка ЛД-80, мощность данных ламп 80 Вт, световой поток 4250 Лм. Для расчета необходимого количества светильников используется метод коэффициентов использования светового потока. Метод светового потока сводится к определению количества светильников по следующей формуле:

(5.2)

где Ен - нормируемая минимальная освещённость на рабочем месте, лк, равна 300лк;

К - коэффициент запаса освещенности 1,2;

S - площадь помещения 33 м2;

Z - коэффициент неравномерности освещения 1,1;

F - световой поток светильника с одной лампой типа ЛД-80, 4250;

? коэффициент использования светового потока.

Для того чтобы определить , необходимо найти индекс помещения:

(5.3)

где А и В длина и ширина помещения, в метрах;

Нр - расчетная высота подвеса светильника, рассчитывается по формуле 5.4.

Нр = h - hрп, (5.4)

где h = 2,9 (высота подвеса светильника (от пола до светильника, в метрах); hрп = 0,7 (высота рабочей поверхности над полом, в метрах);

Нр = 2,9 - 0,7 = 2,2 м. (5.5)

Найденные значения подставляются в формулу (5.3), результатом подстановки является индекс помещения.

(5.6)

Требуемый нормативными документами коэффициент использования светового потока равняется = 0,52.

Найденные значения подставляются в формулу 5.2.

(5.7)

Для обеспечения требуемого уровня освещенности в офисе необходимо шесть светильников. Расположение светильников изображено на рисунке 5.2.

Рисунок 5.2 - Расположение светильников

3D модель офисного помещения представлена на рисунке 5.3

Рисунок 5.3 - 3D модель офисного помещения

Выводы

1. Анализ основных опасных и вредных факторов на рабочем месте показал, что офисное помещения удовлетворяет требованиям к организации и оборудованию рабочих мест со СниП 2.2.2/2.4.

2. ИП проводит мероприятия по обеспечению безопасности на рабочих местах:

- Корпуса ЭВМ заземлены, обеспечено подведение заземляющей

жилы к питающим розеткам;

- Предприняты все меры противопожарной безопасности;

- Обеспечено эргономичное оснащение рабочих мест, а также

специальные приспособления, облегчающие работу за столом.

3. Расчет естественного освещения на рабочем месте показал, что

площадь светового проема равна 9,6 м2. Отсюда следует, что световые проемы справляются со своей задачей и удовлетворяют требованиям СниП 2.2.2/2.4

4. Расчет искусственного освещения на рабочем месте показал, что

для требованного уровня освещенности в офисе требуется шесть люминесцентных ламп дневного света типа ЛД-80.

ЗАКЛЮЧЕНИЕ

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

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

Основные результаты проектирования:

? разработан программный комплекс;

? определен годовой экономический эффект от внедрения web-приложения -41321,28 руб.; рассчитан чистый дисконтированный доход за 5 лет использования программного продукта - 54096,7 руб.; срок окупаемости проекта составляет 2,75 года.

? описаны требования к безопасности и экологичности проекта, приведены опасные и вредные факторы на рабочем месте, выполнен расчет освещенности рабочего места: естественное и искусственное освещение.

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

В результате использования разработанного программного комплекса, клиент может дистанционно оформить свой заказ, после чего представить отчет об оформлении заказа в офисе индивидуального предпринимателя и получить свой товар на месте.

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Куликов, Ю. И., Цвиринько, И. А., Коровина, В. Д. Сборник нормативных документов по итоговой государственной аттестации выпускников Северо-Кавказского государственного технического университета [Текст]/ Ю. И. Куликов, И. А. Цвиринько, В. Д. Коровина - Ставрополь: СевКавГТУ, 2003. - 55 с.

2. Федорчук, А. Как создаются Web-сайты: краткий курс : [пособие для ускор. обучения / Алексей Федорчук]. - СПб. и др. : Питер, 2000. - 222 с. Шифр РНБ: 2000-3/16082

3. Фйо, А. Рентабельный WEB-дизайн: 7 этапов создания Web-сайтов, окупающих ваши инвестиции / Ани Фйо; пер. с англ. [Л.Ю. Пантюхин]. - М.: Кудиц-образ, 2004. - 336 с. Шифр РНБ: 2005-3/970

4. Шапошников, И. Web-сайт своими руками: [практ. рук.] / Игорь Шапошников. - СПб. : БХВ-Санкт- Петербург, 2000. - 224 с. Шифр РНБ: 2000-7/3189

5. Аверченков В. И. Информационный поиск в Интернете: [Учеб.пособие] / В.И. Аверченков, С.М. Рощин, Ю.Т. Трифанков; М-во образования Рос. Федерации, Брян. гос. техн. ун-т. - Брянск: Изд-во Брян. гос. техн. ун-та, 2002. - 303 с. Шифр РНБ: 2003-3/14559

6. Автоматизированная система научно-технической нформации-разработка и эксплуатация / [К.И. Володин, Л.Л. Гульницкий, И.Ф. Пожариский и др.]. - М.: Финансы и статистика, 2004. -190 с. Шифр РНБ: 2004-3/17232

7. Губин С. Ю. Введение в интернет-технологии: Учеб. пособие / С.Ю. Губин, В.Т. Матчин, В.А. Мордвинов; М-во образования Рос. Федерации, Моск. гос. ин-т радиотехники, электроники и автоматики (техн. ун-т). - М.: МИРЭА, 1999. -71 с. - Библиогр.: с. 68-69 (25 назв.). Шифр РНБ: 2000-4/2632

8. Леонтьев В. П. Поиск в Интернет. - М.: ОЛМА-Пресс Образование, 2004. - 47 с. : ил., цв. ил. - (Компьютер: Справ. пользователя). Шифр РНБ: 2004-4/2549

9. Максимов, В. В. Технологии создания Web-сайтов / В.В. Максимов, А.В. Алексеев С.Д. Лыткин ; Якут. гос. ун-т им. М.К. Аммосова, Центр дистанц. образования ЯГУ «Ситим», Прожект Хармонии, Инк. - Якутск : Якут. фил. Изд-ва СО РАН, 2002. - 44 с. Шифр РНБ: 2003-4/18815

10. Мартинес А. Секреты создания недорогого Web-сайта : Как создать и поддерживать удачный Web-сайт, не потратив ни копейки : [пер. с англ.] / Анна Мартинес - М. : ДМК Пресс, 2002. - 414 с. Шифр РНБ: 2003-7/1111

11. Михайлов О. А. Создание Веб-сайтов и их обновление / О.А. Михайлов ; Федер. арх. служба России, Рос. о-во историков-архивистов, Рос. гос. архив науч.-техн. документации. - М. : МАКС Пресс, 2003. - 47 с. Шифр РНБ: 2003-4/22893

12. http://sql.ru. Web-ресурс посвященный базам данных.

13. http://gotdotnet.ru Сообщество программистов технологий .NET

14. Компьютерные технологии обработки информации. - М., 1995. - 247с.

15. Мишенин А.И. Теория экономических информационных систем. - М.: Финансы и статистика, 1999г. - 239с.

16. Кириллов В.В. Основы проектирования реляционных баз данных - СПб.: ИТМО, 1995.

Приложение А

Приложение А.1 - Даталогическая модель базы данных

Приложение Б

Рисунок Б.1 - Диаграмма основных классов приложения

Рисунок Б.2 - Диаграмма классов административной панели

Рисунок Б.3 - Диаграмма классов DataSet

Приложение В

ПриложениеВ.1-Добавлениетоваравкорзину

ImageButtonBut=(ImageButton)sender;

stringIDs=But.ID;

IDs=IDs.Remove(0,6);

intDropIndexCount=0;

if(((Label)Master.FindControl("MainContent").FindControl("C"+IDs+"1")).Visible==true)

DropIndexCount=1;

if(((Label)Master.FindControl("MainContent").FindControl("C"+IDs+"2")).Visible==true)

DropIndexCount=2;

if(((Label)Master.FindControl("MainContent").FindControl("C"+IDs+"3")).Visible==true)

DropIndexCount=3;

stringCount;

Count=((Label)Master.FindControl("MainContent").FindControl("C"+IDs+DropIndexCount.ToString())).Text;

Count=Count.Remove(0,12);

DataSet1TableAdapters.orderTableAdapterOrderTable=newDataSet1TableAdapters.orderTableAdapter();

DataSet1TableAdapters.product_weightTableAdapterTableWeight=newDataSet1TableAdapters.product_weightTableAdapter();

intindexProduct,indexCount,indexWeight;

doubleindexPrice;

indexProduct=Convert.ToInt32(((Label)Master.FindControl("MainContent").FindControl("Label"+IDs+"3")).Text);

indexCount=Convert.ToInt32(((TextBox)Master.FindControl("MainContent").FindControl("TextBox"+IDs)).Text);

indexPrice=Convert.ToDouble(((Label)Master.FindControl("MainContent").FindControl("P"+IDs+DropIndexCount.ToString())).Text);

indexWeight=Convert.ToInt32(((DropDownList)Master.FindControl("MainContent").FindControl("DropDownList"+IDs)).Items[DropIndexCount-1].Value);

if(((TextBox)Master.FindControl("MainContent").FindControl("TextBox"+IDs)).Text!="")

{

if(Request.Cookies["UrlAuthz"]!=null)

{

stringtickets;

tickets=Request.Cookies["UrlAuthz"].Value.ToString();

DataSet1TableAdapters.usersTableAdapterUserTable=newDataSet1TableAdapters.usersTableAdapter();

intcartlogin;

cartlogin=Convert.ToInt32(UserTable.CartCheckQuery(FormsAuthentication.Decrypt(tickets).Name.ToString()));

if(UserTable.CartCheckQuery(FormsAuthentication.Decrypt(tickets).Name.ToString())!=null)

{

if(Convert.ToInt32(((TextBox)Master.FindControl("MainContent").FindControl("TextBox"+IDs)).Text)<=Convert.ToInt32(Count))

{

if(OrderTable.CheckProduct(cartlogin,indexWeight,indexProduct)==null)

{

OrderTable.InsertOrderQuery(cartlogin,indexProduct,indexCount,indexPrice,indexWeight);

TableWeight.UpdateCountQuery((Convert.ToInt32(Count)-indexCount),indexProduct,indexWeight,indexPrice);

((Label)Master.FindControl("MainContent").FindControl("C"+IDs+DropIndexCount.ToString())).Text="Количество:"+(Convert.ToInt32(Count)-indexCount).ToString();

DataSet1.orderDataTableOrderTable2=newDataSet1.orderDataTable();

OrderTable.FillCartSum(OrderTable2,cartlogin);

((Label)Master.FindControl("Label3")).Text="Вкорзине:"+OrderTable2.Rows[0][3].ToString();

((Label)Master.FindControl("Label4")).Text="Насумму:"+OrderTable2.Rows[0][4].ToString()+"руб.";

}

else

{

OrderTable.UpdateOrderQuery(cartlogin,indexProduct,indexCount,indexWeight);

TableWeight.UpdateCountQuery((Convert.ToInt32(Count)-indexCount),indexProduct,indexWeight,indexPrice);

((Label)Master.FindControl("MainContent").FindControl("C"+IDs+DropIndexCount.ToString())).Text="Количество:"+(Convert.ToInt32(Count)-indexCount).ToString();

DataSet1.orderDataTableOrderTable2=newDataSet1.orderDataTable();

OrderTable.FillCartSum(OrderTable2,cartlogin);

((Label)Master.FindControl("Label3")).Text="Вкорзине:"+OrderTable2.Rows[0][3].ToString();

((Label)Master.FindControl("Label4")).Text="Насумму:"+OrderTable2.Rows[0][4].ToString()+"руб.";

}

}

else

{

((TextBox)Master.FindControl("MainContent").FindControl("TextBox"+IDs)).Text="Наскладестольконет";

}

}

else

{

if(Convert.ToInt32(((TextBox)Master.FindControl("MainContent").FindControl("TextBox"+IDs)).Text)<=Convert.ToInt32(Count))

{

DataSet1TableAdapters.cartTableAdapterCartTable=newDataSet1TableAdapters.cartTableAdapter();

CartTable.InsertQuery(DateTime.Now);

intMaxIndex;

MaxIndex=Convert.ToInt32(CartTable.MaxQuery());

UserTable.UpdateUserCarQuery(MaxIndex,FormsAuthentication.Decrypt(tickets).Name.ToString());

OrderTable.InsertOrderQuery(MaxIndex,indexProduct,indexCount,indexPrice,indexWeight);

TableWeight.UpdateCountQuery((Convert.ToInt32(Count)-indexCount),indexProduct,indexWeight,indexPrice);

((Label)Master.FindControl("MainContent").FindControl("C"+IDs+DropIndexCount.ToString())).Text="Количество:"+(Convert.ToInt32(Count)-indexCount).ToString();

DataSet1.orderDataTableOrderTable2=newDataSet1.orderDataTable();

OrderTable.FillCartSum(OrderTable2,cartlogin);

((ImageButton)Master.FindControl("ImageButton1")).Visible=true;

((Label)Master.FindControl("Label3")).Visible=true;

((Label)Master.FindControl("Label4")).Visible=true;

((Label)Master.FindControl("Label3")).Text="Вкорзине:"+indexCount.ToString();

((Label)Master.FindControl("Label4")).Text="Насумму:"+(indexCount*indexPrice*indexWeight).ToString()+"руб.";

}

else

{

((TextBox)Master.FindControl("MainContent").FindControl("TextBox"+IDs)).Text="Наскладестольконет";

}

}

}

else

{

if(Request.Cookies["Cart"]!=null)

{

stringticket;

ticket=Request.Cookies["Cart"].Value.ToString();

ticket=FormsAuthentication.Decrypt(ticket).Name.ToString();

if(Convert.ToInt32(((TextBox)Master.FindControl("MainContent").FindControl("TextBox"+IDs)).Text)<=Convert.ToInt32(Count))

{

if(OrderTable.CheckProduct(Convert.ToInt32(ticket),indexWeight,indexProduct)==null)

{

OrderTable.InsertOrderQuery(Convert.ToInt32(ticket),indexProduct,indexCount,indexPrice,indexWeight);

TableWeight.UpdateCountQuery((Convert.ToInt32(Count)-indexCount),indexProduct,indexWeight,indexPrice);

((Label)Master.FindControl("MainContent").FindControl("C"+IDs+DropIndexCount.ToString())).Text="Количество:"+(Convert.ToInt32(Count)-indexCount).ToString();

DataSet1.orderDataTableOrderTable2=newDataSet1.orderDataTable();

OrderTable.FillCartSum(OrderTable2,Convert.ToInt32(ticket));

((Label)Master.FindControl("Label3")).Text="Вкорзине:"+OrderTable2.Rows[0][3].ToString();

((Label)Master.FindControl("Label4")).Text="Насумму:"+OrderTable2.Rows[0][4].ToString()+"руб.";

}

else

{

OrderTable.UpdateOrderQuery(Convert.ToInt32(ticket),indexProduct,indexCount,indexWeight);

TableWeight.UpdateCountQuery((Convert.ToInt32(Count)-indexCount),indexProduct,indexWeight,indexPrice);

((Label)Master.FindControl("MainContent").FindControl("C"+IDs+DropIndexCount.ToString())).Text="Количество:"+(Convert.ToInt32(Count)-indexCount).ToString();

DataSet1.orderDataTableOrderTable2=newDataSet1.orderDataTable();

OrderTable.FillCartSum(OrderTable2,Convert.ToInt32(ticket));

((Label)Master.FindControl("Label3")).Text="Вкорзине:"+OrderTable2.Rows[0][3].ToString();

((Label)Master.FindControl("Label4")).Text="Насумму:"+OrderTable2.Rows[0][4].ToString()+"руб.";

}

}

else

{

((TextBox)Master.FindControl("MainContent").FindControl("TextBox"+IDs)).Text="Наскладестольконет";

}

}

else

{

//Создаёмаутентификационныйбилет

DataSet1TableAdapters.cartTableAdapterCartTable=newDataSet1TableAdapters.cartTableAdapter();

CartTable.InsertQuery(DateTime.Now);

intMaxIndex;

MaxIndex=Convert.ToInt32(CartTable.MaxQuery());

FormsAuthenticationTicketticket1=newFormsAuthenticationTicket(MaxIndex.ToString(),false,20);

stringstrEncrypted=FormsAuthentication.Encrypt(ticket1);

Response.Cookies.Add(newHttpCookie("Cart",strEncrypted));

if(Convert.ToInt32(((TextBox)Master.FindControl("MainContent").FindControl("TextBox"+IDs)).Text)<=Convert.ToInt32(Count))

{

OrderTable.InsertOrderQuery(MaxIndex,indexProduct,indexCount,indexPrice,indexWeight);

TableWeight.UpdateCountQuery((Convert.ToInt32(Count)-indexCount),indexProduct,indexWeight,indexPrice);

((Label)Master.FindControl("MainContent").FindControl("C"+IDs+DropIndexCount.ToString())).Text="Количество:"+(Convert.ToInt32(Count)-indexCount).ToString();

DataSet1.orderDataTableOrderTable2=newDataSet1.orderDataTable();

OrderTable.FillCartSum(OrderTable2,MaxIndex);

((ImageButton)Master.FindControl("ImageButton1")).Visible=true;

((Label)Master.FindControl("Label3")).Visible=true;

((Label)Master.FindControl("Label4")).Visible=true;

((Label)Master.FindControl("Label3")).Text="Вкорзине:"+indexCount.ToString();

((Label)Master.FindControl("Label4")).Text="Насумму:"+(indexCount*indexPrice*indexWeight).ToString()+"руб.";

}

else

{

((TextBox)Master.FindControl("MainContent").FindControl("TextBox"+IDs)).Text="Наскладестольконет";

}

}

}

}

ПриложениеВ.2-РаботасКорзиной

protectedvoidPage_Load(objectsender,EventArgse)

{

intID=0;

DataSet1TableAdapters.orderTableAdapterOrderAdapter=newDataSet1TableAdapters.orderTableAdapter();

if(Request.Cookies["UrlAuthz"]!=null)

{

stringticket;

ticket=Request.Cookies["UrlAuthz"].Value.ToString();

stringlogin=FormsAuthentication.Decrypt(ticket).Name.ToString();

DataSet1TableAdapters.usersTableAdapterUserTable=newDataSet1TableAdapters.usersTableAdapter();

stringIDCart;

IDCart=(UserTable.CartCheckQuery(login)).ToString();

ID=Convert.ToInt32(IDCart);

Label5.Text=ID.ToString();

}

if(Request.Cookies["Cart"]!=null)

{

stringticket;

ticket=Request.Cookies["Cart"].Value.ToString();

Label5.Text=FormsAuthentication.Decrypt(ticket).Name.ToString();

}

if(Label5.Text=="")

{

Server.Transfer("404.aspx");

}

if(OrderAdapter.CheckCart(Convert.ToInt32(Label5.Text))==0)

{

Server.Transfer("404.aspx");

}

else

{

DataSet1TableAdapters.product_weightTableAdapterOrderTable=newDataSet1TableAdapters.product_weightTableAdapter();

if(IsPostBack==false)

{

string[]product=newstring[GridView1.Rows.Count];

for(inti=0;i<GridView1.Rows.Count;i++)

{

product[i]=GridView1.Rows[i].Cells[2].Text;

}

//GridView1.Columns[2].Visible=false;

for(inti=0;i<GridView1.Rows.Count;i++)

{

GridView1.Rows[i].Cells[1].Text=(Convert.ToInt32(OrderTable.CheckProductCount(Convert.ToInt32(product[i]),Convert.ToInt32(GridView1.Rows[i].Cells[5].Text)))+Convert.ToInt32(((TextBox)GridView1.Rows[i].Cells[0].FindControl("TextBox1")).Text)).ToString();

}

}

}

}

protectedvoidButton1_Click(objectsender,EventArgse)

{

boolfail=false;

Label6.Visible=false;

for(inti=0;i<GridView1.Rows.Count;i++)

{

if(Convert.ToInt32(((TextBox)GridView1.Rows[i].Cells[0].FindControl("TextBox1")).Text)>Convert.ToInt32(GridView1.Rows[i].Cells[1].Text))

{

GridView1.Rows[i].Cells[1].Text="!>"+GridView1.Rows[i].Cells[1].Text;

GridView1.Rows[i].Cells[1].ForeColor=System.Drawing.Color.Red;

fail=true;

}

}

if(fail==true)

{

Label6.Visible=true;

Label6.Text="Количествобольшечеместьнаскладе";

Label6.ForeColor=System.Drawing.Color.Red;

}

else

{

DataSet1TableAdapters.orderTableAdapterOrderAdapter=newDataSet1TableAdapters.orderTableAdapter();

DataSet1TableAdapters.orderTableAdapterOrderTable=newDataSet1TableAdapters.orderTableAdapter();

DataSet1TableAdapters.product_weightTableAdapterProductAdapter=newDataSet1TableAdapters.product_weightTableAdapter();

intcount,bufcount,product,weight,cart,countt;

for(inti=0;i<GridView1.Rows.Count;i++)

{

count=Convert.ToInt32(((TextBox)GridView1.Rows[i].Cells[0].FindControl("TextBox1")).Text);

product=Convert.ToInt32(GridView1.Rows[i].Cells[2].Text);

weight=Convert.ToInt32(GridView1.Rows[i].Cells[5].Text);

cart=Convert.ToInt32(Label5.Text);

bufcount=count-Convert.ToInt32(OrderAdapter.CheckCount(cart,product,weight));

countt=Convert.ToInt32(OrderAdapter.CheckCount(cart,product,weight));

if(((CheckBox)GridView1.Rows[i].Cells[8].FindControl("CheckBox1")).Checked==true)

{

OrderAdapter.DeleteOrder(cart,product,weight);

ProductAdapter.UpdateDelCartCountQuery(countt,product,weight);

GridView1.Rows[i].Visible=false;

DataSet1.orderDataTableOrderTable2=newDataSet1.orderDataTable();

OrderTable.FillCartSum(OrderTable2,cart);

((Label)Master.FindControl("Label3")).Text="Вкорзине:"+OrderTable2.Rows[0][3].ToString();

((Label)Master.FindControl("Label4")).Text="Насумму:"+OrderTable2.Rows[0][4].ToString()+"руб.";

}

else

{

bufcount=-bufcount;

ProductAdapter.UpdateDelCartCountQuery(bufcount,product,weight);

OrderAdapter.UpdateCountQuery(weight,product,count,cart);

DataSet1.orderDataTableOrderTable2=newDataSet1.orderDataTable();

OrderTable.FillCartSum(OrderTable2,cart);

((Label)Master.FindControl("Label3")).Text="Вкорзине:"+OrderTable2.Rows[0][3].ToString();

((Label)Master.FindControl("Label4")).Text="Насумму:"+OrderTable2.Rows[0][4].ToString()+"руб.";

}

}

}

}

protectedvoidButton2_Click(objectsender,EventArgse)

{

if(Request.Cookies["UrlAuthz"]!=null)

{

stringticket;

ticket=Request.Cookies["UrlAuthz"].Value.ToString();

stringlogin=FormsAuthentication.Decrypt(ticket).Name.ToString();

DataSet1TableAdapters.usersTableAdapterUserAdapter=newDataSet1TableAdapters.usersTableAdapter();

stringIDCart;

IDCart=(UserAdapter.CartCheckQuery(login)).ToString();

intID=Convert.ToInt32(IDCart);

DataSet1TableAdapters.orderTableAdapterOrderAdapter=newDataSet1TableAdapters.orderTableAdapter();

DataSet1.orderDataTableOrderTable=newDataSet1.orderDataTable();

OrderTable.Columns.Add("title",typeof(string));

OrderTable.Columns.Add("small_description",typeof(string));

OrderAdapter.OrderReadyFill(OrderTable,ID);

DataSet1TableAdapters.orderreadyTableAdapterOrderReadyAdapter=newDataSet1TableAdapters.orderreadyTableAdapter();

DataSet1TableAdapters.productTableAdapterProductAdapter=newDataSet1TableAdapters.productTableAdapter();

DataSet1.usersDataTableUserTable=newDataSet1.usersDataTable();

UserAdapter.CheckName(UserTable,ID);

intproduct,count,weight;

doubleprice;

stringfio,phone,title,description,manufacturer;

fio=UserTable.Rows[0][7].ToString()+""+UserTable.Rows[0][8].ToString();

phone=UserTable.Rows[0][4].ToString();

//OrderReadyAdapter.DeleteQuery(ID);

for(inti=0;i<OrderTable.Rows.Count;i++)

{

product=Convert.ToInt32(OrderTable.Rows[i][2]);

count=Convert.ToInt32(OrderTable.Rows[i][3]);

weight=Convert.ToInt32(OrderTable.Rows[i][5]);

price=Convert.ToDouble(OrderTable.Rows[i][4]);

title=OrderTable.Rows[i][6].ToString();

description=OrderTable.Rows[i][7].ToString();

OrderReadyAdapter.InsertQuery(ID,product,fio,phone,count,price,weight,title,description,DateTime.Now);

manufacturer=ProductAdapter.ScalarQuery(product);

OrderReadyAdapter.UpdateQuery(manufacturer,product);

OrderAdapter.DeleteCartOrder(ID);

}

((ImageButton)Master.FindControl("ImageButton1")).Visible=false;

((Label)Master.FindControl("Label3")).Visible=false;

((Label)Master.FindControl("Label4")).Visible=false;

Server.Transfer("Print.aspx");

}

if(Request.Cookies["Cart"]!=null)

{

Server.Transfer("NonReagistration.aspx");

}

}

ПриложениеВ.3-Печатьотчетов

protectedvoidPage_Load(objectsender,EventArgse)

{

stringid="";

if(Request.Cookies["UrlAuthz"]!=null)

{

stringticket;

ticket=Request.Cookies["UrlAuthz"].Value.ToString();

stringlogin=FormsAuthentication.Decrypt(ticket).Name.ToString();

DataSet1TableAdapters.usersTableAdapterUserTable=newDataSet1TableAdapters.usersTableAdapter();

stringIDCart;

IDCart=(UserTable.CartCheckQuery(login)).ToString();

intID=Convert.ToInt32(IDCart);

id=ID.ToString();

}

if(Request.Cookies["Cart"]!=null)

{

stringticket;

ticket=Request.Cookies["Cart"].Value.ToString();

id=FormsAuthentication.Decrypt(ticket).Name.ToString();

}

if(IsPostBack==false)

{

DataSet1TableAdapters.orderreadyTableAdapterOrderReadyAdapter=newDataSet1TableAdapters.orderreadyTableAdapter();

DataSet1.orderreadyDataTableOrderReadyTable=newDataSet1.orderreadyDataTable();

OrderReadyAdapter.FillByPrint(OrderReadyTable,Convert.ToInt32(id),DateTime.Now.AddDays(-1),DateTime.Now.AddDays(1));

ReportDataSourceds=newReportDataSource("DataSet1",(DataTable)OrderReadyTable);

ReportViewer1.LocalReport.DataSources.Clear();

ReportViewer1.LocalReport.DataSources.Add(ds);

ReportViewer1.LocalReport.Refresh();

Label5.Text=DateTime.Now.ToString();

Label6.Text=DateTime.Now.AddDays(1).ToString();

}

}

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.