Помощь в написании студенческих работ
Антистрессовый сервис

Автоматизация функций планирования и контроля системы ведения проекта на примере

Дипломная Купить готовую Узнать стоимостьмоей работы

Тип Описание Table Работает с одной таблицей текущей базы данных. В этом случае данные можно индексировать, что ускоряет поиск записей и их сортировку. При поиске записей допустимо применять вместо метода Find метод Seek Dynaset Позволяет получать, анализировать, удалять и редактировать данные из нескольких динамически связанных таблиц. Этот тип соответствует указателю ключевого набора записей… Читать ещё >

Автоматизация функций планирования и контроля системы ведения проекта на примере (реферат, курсовая, диплом, контрольная)

Содержание

  • 1. Введение
  • 2. Анализ технического задания
    • 2. 1. Цель проекта
    • 2. 2. Анализ требований
      • 2. 2. 1. Социальные требования
      • 2. 2. 2. Экономические требования
    • 2. 3. Выбор показателей эффективности
    • 2. 4. Оценка показателей эффективности проекта
    • 2. 5. Определение энтропийного коэффициента согласия
    • 2. 6. Оценка системных показателей проекта
    • 2. 7. Выбор операционной системы и языка программирования
  • 3. Microsoft Visual Basic
    • 3. 1. Visual Basic: прошлое и настоящее
    • 3. 2. Литералы и их соответствие типам данных
    • 3. 3. Объявление переменных
    • 3. 4. Строковые функции
    • 3. 5. Математические операторы
    • 3. 6. Циклы
    • 3. 7. Логические операторы
    • 3. 8. Массивы
    • 3. 9. Процедуры и функции
    • 3. 10. Обработка ошибок в VB .NET
    • 3. 11. Формы Windows, графический вывод и печать
    • 3. 12. Доступ к
  • приложениям MICROSOFT OFFICE
    • 3. 13. Работа с базами данных в VB
  • 4. Разработка программного комплекса
    • 4. 1. Разработка алгоритма решения задачи
    • 4. 2. Организационно-экономический раздел
      • 4. 2. 1. Маркетинг
      • 4. 2. 2. Организационный план
      • 4. 2. 3. Расчет затрат
      • 4. 2. 4. Анализ экономической целесообразности
  • Список используемых источников

Windows. Forms. Знак # в строке 4 отмечает на-чалорегиона в автоматически сгенерированном коде. Помните, что при любых операциях в окне свойств или перетаскивании элементов в дизайнере генерируется программный код. По мере накопления опыта вы научитесь просматривать этот код и редактировать его.

В строках 6 и 7 начинается конструктор класса. Как обычно, в начале конструктора производного класса вызывается конструктор базового класса (за дополнительной информацией по этой теме обращайтесь к разделу «Иерархия классов пространства имен System.Windows.Forms» этой главы).

В строке 10 вызывается метод Initial izeComponent, определяемый в строках 33−35. Этот метод генерируется автоматически и преобразует в программный код все ваши действия на стадии конструирования и в окне свойств. Например, кнопка объявляется в строке 25; позже ее экземпляр создается в строке 34, а размещение кнопки на форме происходит в строке 50. Также обратите внимание на то, как в строках 44 и 52 программа задает свойство Text кнопки и формы в соответствии с данными, введенными в окне свойств.

Свойство Text в VB .NET заменяет свойство Caption, использовавшееся в предыдущих версиях VB.

В строках 40 и 42 методы пространства имен System. Drawl ng задают позицию и размеры кнопки, а в строках 48−49 аналогичные действия выполняются для формы. По умолчанию единицей измерения в графических операциях являются пикселы (!), а не твипы (twips).

Хотя старые свойства Left, Top, Width и Height по-прежнему поддерживаются, теперь удобнее работать со свойствами Location и Size. Свойство Location задает или возвращает структуру Point с информацией о точке. Свойство Size использует структуру System.Drawing.Size для хранения информации о прямоугольной области. Поскольку каждый из этих классов просто инкапсулирует два целых числа, в них предусмотрены свойства для задания отдельных компонентов (например, свойства Width для объекта Size и свойства Y для свойства Point).

В строках 17−24 реализуется версия метода Dispose, необходимого для приложений на базе форм Windows. Формат этого метода несколько отличается от простого метода Dispose, описанного в главе 5; в данном примере освобождаются все ресурсы, используемые всеми элементами формы, а также самой формой.

В строке 25 используется уже знакомый синтаксис (см. главу 6), указывающий на то, что кнопка является источником событий. Непосредственное подключение обработчика происходит в строках 59−61 с ключевым словом Handles. Синтаксис всех автоматически сгенерированных событий элементов и форм в .NET аналогичен приведенному в строке 59:

Sub ObjectName_eventname (ByVal sender As Object. Byval e As EventArgs)_.

Handles ObjectName.eventname.

В параметре sender передается ссылка на элемент, инициировавший событие. В параметре EventArgs инкапсулируется описание события (при таких событиях, как KeyPress или MouseDown, используются объекты классов, производных от EventArgs, — такие, как KeyEventArgs и MouseEventArgs; в них передается дополнительная информация).

Приложение на базе форм Windows можно запустить из процедуры Sub Main, являющейся точкой входа вашего приложениях. При этом вызывается метод Application. Run, которому передается имя формы:

Pubic Sub Main ().

Dim myForm As New Forml ().

Application.Run (myForm).

End Sub.

(Замаскированный вызов Application. Run присутствует везде, где форма используется в качестве стартового объекта. Интересная подробность: этот вызов обязателен в С#, но не в VB .NET.).

Вызов MsgBox в строке 60 характерен для программистов с большим стажем работы на VB. В пространство имен Windows. Forms входит класс MessageBox, по своим возможностям значительно превосходящий команду MsgBox, но старые привычки берут свое. Обратитесь к документации по этому классу, если вы предпочитаете работать с ним.

Свойства форм Ограниченный объем книги не позволяет нам рассмотреть все свойства класса Form, но мы хотим выделить существенные различия между поведением форм в прежних версиях VB и VB .NET. Одно из самых принципиальных изменений связано с использованием шрифтов. Вместо старых шрифтовых свойств (например, FontBold) используется класс Font пространства имен System. Drawing, самый распространенный конструктор которого выглядит следующим образом:

Sub New (ByVal family As FontFamily. ByVal emSize As Single._.

ByVal style As FontStyle).

Термин «семейство шрифтов» (font family) хорошо знаком пользователям Word. Семейством называется группа шрифтов (Times New Roman, Courier New, Arial и т. д.), объединенных сходным графическим стилем, но обладающих разным кеглем и атрибутами начертания (курсив, жирный шрифт и т. д.).

Например, поскольку оператор Or объединяет значения отдельных битов, следующая команда присваивает переменной MyFont объект полужирного курсивного шрифта Arial с кеглем 12 пунктов:

myFont =New System.Drawing.Font («Arial». 12._.

FontStyle.Bold Or FontStyle. Italic).

Следующая процедура события Button 1_C1ick изменяет шрифт при нажатии кнопки:

Private Sub Buttonl_Click (ByVal sender As System.Object. _.

ByVal e As System. EventArgs) Handles Buttonl.Click.

Dim myFont As System.Drawing.Font.

myFont = New System.Drawing.Font («Arial» .

12.

FontStyle.Bold Or FontStyle. Italic).

Me.Font = myFont End Sub.

При изменении свойства Font формы новый шрифт автоматически используется для вывода свойства Text всех элементов, расположенных на форме. Исключение составляют элементы, которым были назначены собственные шрифты.

В сочетании со свойствами Anchor и Dock часто используются свойства MinimumSize и MaximumSize, определяющие соответственно минимальные и максимальные размеры формы. Значения этих свойств представляют собой объекты Size. Например, следующая команда запрещает уменьшать форму до размеров, меньших размеров кнопки:

Me.MimmumSize =New Size (Buttonl.Size).

Поскольку свойство MinimumSize управляет изменением свойства Size, в заданные размеры включается размер заголовка окна. Таким образом, после выполнения предыдущей команды в уменьшенном окне почти не останется места для кнопки. Лучше воспользоваться командой вида.

Me.MinimumSize = New Size (Buttonl.Size.Width * 2, Button1.Size.Height * 2).

При изменении свойства MaximumSize часто используется класс System.Windows. Forms. Screen, предназначенный для работы с экранами (с поддержкой нескольких мониторов). Этот класс также используется при изменении свойств DesktopBounds и DesktopLocation.

Новое свойство ClientSi ze возвращает информацию о клиентской области формы (области, не включающей заголовок и рамку). Свойство Bounds предназначено для чтения/записи структуры Rectangle, содержащей ширину и высоту формы и позицию ее левого верхнего угла.

Класс Rectangle пространства имен System. Drawing содержит немало полезных мето-дов; подробное описание этой вспомогательной структуры данных приведено в документации. Мы часто используем метод Inflate, предназначенный для увеличения прямоугольников с заданным приращением.

Многие свойства, методы и события форм отличаются от своих прототипов из VB6. Важнейшие изменения перечислены в табл. 8.

1.

Таблица 8.

1. Изменения в свойствах, методах и событиях форм.

Старый элемент формы Новый элемент формы Activate/Deactivate (события) Переименованы в Activated/Deactivated Container (свойство) Переименовано в Parent DblClick (событие) Переименовано в DoubleClick hWnd (свойство) Переименовано в Handle MouseCursor (свойство) Переименовано в Cursor и возвращает экземпляр класса Cursor Parent (свойство) Заменено методом FindForm Picture (свойство) Заменено свойством Backgroundlmage SetFocus (метод) Переименован в Focus Startup (свойство) Заменено свойством StartPosition ToolTip (свойство) Заменено элементом ToolTip, который связывается с элементами через свойство ToolTip элемента Unload (команда) Unload (событие) Заменена методом Close.

Заменено событием hosing (также существует новое событие Closed, инициируемое после закрытия формы) ZOrder (метод) Заменен методами BriflgToFront и SendToBack.

3.

12. Доступ к приложениям MICROSOFT OFFICE.

программные идентификаторы приложений-серверов Automation.

В таблице приведены названия приложений, типов и классов объектов Automation, а также их программные идентификаторы, которые иногда нашиваются ProgID, используемые при программировании объектов Automa-tion. Обратите внимание на то, что если используется программный иден-тификатор без указания версии, то объект создается на основе наиболее со-временной установленной версии программы. В общем случае идентификатор ProgID имеет следующий синтаксис:

Appпате. Ob j e с t Type.

Appпате— имя приложения сервера; objectrype — тип или класс объектов.

Приложение Тип объекта Идентификатор MS Excel Application Excel. Application ИЛИ Excel.Application. 9 Workbook Excel. Sheet ИЛИ Excel.Sheet.8 Workbook Excel. Chart ИЛИ Excel.Chart.8 MS Access Application Access. Application ИЛИ Access.Application.9 CurrentData Access. CodeData, Access. CurrentData CurrentProj ect Access. CodeProject, Access. CurrentProj ect MS Word Application Word. Application, Word.Application.9 Document Word. Document, Word.Document.9, Word.Template.8 MS PowerPoint Application PowerPoint. Application, PowerPoint.Application.9 MS Outlook Application Outlook. Application, Outlook.Application.9 Функции доступа к объектам Automation.

Для доступа к объектам Automation приложения-сервера предназначена ФУНКЦИИ CreateObject И GetObject.

Функция.

CreateObject Описание Возвращает и создает ссылку на объект ActiveX. Синтаксис: CreateObject (Class, {Servername]) • Class— имя объекта Automation;

• Servername— параметр используется только при создании екта Automation в сети и устанавливает имя сервера, где был создан объект Automation.

GetObject Возвращает и создает ссылку на объект ActiveX, сохраненный в файле. Синтаксис:

GetObject ([Pathname] [, Class]).

Pathname— полное имя файла; если параметр опущен, то необходимо указать значение параметра class; Class — имя объекта Automation.

функция GetObject подобна функции CreateObject. Но есть и второе раз;

личие между ними. Функцию GetObject следует использовать для доступа к существующим документам, хранящимся в файлах. Функцию Getobject можно также применять и для доступа к объекту Application любого уже запущенного приложения MS Office. Для этого надо вызвать функцию Getobject без первого параметра. Этот способ доступа к объекту Application любого уже запущенного приложения MS Office применяется, когда нет необходимости в запуске еще одного экземпляра приложения, что происходит при работе функции CreateObject.

Позднее связывание (late binding) происходит, когда тип для переменной, которая будет представлять собой объект Automation, указывается как object. При позднем связывании переменная, задающая объект Automation, имеет тип Object. Данный тип позволяет создавать объекты любой природы. В этом смысле он подобен типу variant. Такая чрезмерная общность определения переменной понижает производительность приложения. Для достижения наилучшей производительности приложения необходимо задать конкретный тип для переменной, которая будет представлять собой объект Automation, Например, если используется MS Excel, то следует установить тип переменной Excel. Application.

Второй подход называется ранним связыванием (early binding) и происходит на этапе компиляции. При раннем связывании, чтобы определить переменную некоторого класса, перед написанием кода необходимо сослаться на библиотеку объектов серверов Automation. Для этого в редакторе Visual Basic необходимо выбрать команду Tools — References. В появившемся диалоговом окне References — VBAProject в списке Available References установить флажок подсоединяемой библиотеки объектов, например, Microsoft Word 9.0 Object.

3.

13. Работа с базами данных в VB.

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

Самым распространенным в настоящее время типом баз данных являются реляционные базы данных (relational database). Они хранят информацию во множестве таблиц, связанных по ключевым полям.

Хорошим примером базы данных с несколькими таблицами может служить учебная база данных Борей, хранимая в файле Bopeft. mdb и поставляемая вместе с MS Office. Давайте откроем эту базу в MS Access для того, чтобы взглянуть на ее структуру.

В базе данных Борей имеется восемь таблиц. Уже из их названий ясно, что некоторые из этих таблиц, скорее всего, связаны между собой, например, Заказано и Заказы. Чтобы получить более полную информацию о связях, выберите команду Сервис — Схема данных. На экране отобразится окно Схема данных.

Для связывания таблиц между собой используются отношения. Отношения обеспечивают сохранения целостности данных (data integrity). Целостность данных гарантирует, что пользователь будет работать только с непротиворечивыми данными и разрешенными операциями в отношении связанных таблиц. Например, при соблюдении целостности данных вы сможете добавить записи заказов только для существующих клиентов. Между таблицами в базе данных можно установить отношения трех типов: □ «Один-ко-многим». Это отношение обозначается в окне Схема данных линией 1 —. Например, таблицы Клиенты и Заказы связаны данным типом отношения. Это означает, что один клиент может сделать несколько заказов.

Учебная база данных Борей.

" Один-к-одному". Это отношение обозначается в окне Схема данных ли-нией 1 — 1. Отношение типа «один-к-одному» возникает, когда с каждой его стороны имеется ровно одна запись, например, когда информация о финансовом состоянии клиента должна быть отделена от остальных сведений о нем.

схема данных.

" Многие-ко-многим". Это отношение возникает тогда, когда каждая запись первой таблицы связана со многими записями второй таблицы и наоборот. В подобных случаях обычно строится промежуточная таблица, обеспечивающая отношение «один-ко-многим» с каждой из таблиц по отдельности. Классическим примером данного отношения является таблица товаров, приобретенных покупателями. Каждый покупатель может приобрести множество различных товаров, и каждый товар может быть преобретен различными покупателями.

Таблицы связываются друг с другом при помощи ключевых полей (key fields). Ключи бывают первичными (primary) и внешними (foreign). Первичный ключ уникальным образом идентифицирует запись. Он может содержать значащие данные или быть произвольным полем, созданным только для того, чтобы снабдить запись неповторяющимся идентификатором. Главное требование для первичного ключа — уникальность. Поле в таблице, которое хранит значение, связанное со значением другой таблицы, называется внешним ключом. Например, поле Код.

Типа в таблице Типы базы данный Борей является первичным ключом, а поле Код.

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

Задача разработчика баз данных состоит в структурировании данных таким образом, чтобы устранить ненужное дублирование и обеспечить быстрый путь поиска всей необходимой информации. Для этих целей информацию клят на структурные единицы — таблицы, а сам процесс этого деления называется нормализацией. Ключевым правилом нормализации является следующее: таблицы, которые содержат повторяющуюся информацию, должны быть разделены на отдельные таблицы, чтобы устранить дублирование значений. Например, если бы база данных состояла из одной таблицы, содержащей информацию как по заказам, так и по заказчикам, то сведения о заказчиках во многих записях повторялись бы. После разделения этой таблицы на две таблицы дублирование данных устраняется при существенном сокращении базы данных. Кроме того, устранение повторяемости данных уменьшает вероятность ввода ошибочных данных.

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

Microsoft Jet.

MS Jet — это ядро базы данных, которое обеспечивает возможность к данным из любого приложения, поддерживающего OLE Automation, вча-стности VBA и MS Excel. Ядро Jet обеспечивает доступ к данным независи-мо от интерфейса конкретной системы базы данных. Оно хранит свою ин-формацию по умолчанию в файлах с базами данных, имеющих расширение mdb. Такие файлы баз данных содержат таблицы, индексы, запросы, формы отчеты и модули. Конечно, mdb-формат — это не единственный формат баз данных, с которыми работает Microsoft Jet. Он также взаимодействует с ба-зами данных, созданными FoxPro, dBASE и т. д.

DAO.

Объектный доступ к данным (DAO, Data Access Objects) создавался как объ-ектно-ориентированный интерфейс ядра базы данных Jet, т. е. для обеспе-чения взаимодействия между приложением, например VBA, и ядром базы данных Jet. В MS Office 2000 была включена новая версия DAO — DAO 3.6 которая позволяет манипулировать данными в обход ядра Jet. В DAO3.6 можно напрямую связываться с источниками данных через ODBCDirect, что делает приложения более ресурсоемкими и быстродействующими.

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

На рис. приведена объектная модель DAO. Самым первым в иерархии является объект DBEngine. Все остальные объекты доступа к данным являются производными от него. Более того, во всех операциях с базами данных по умолчанию используется объект DBEngine, даже если на него не указана явная ссылка. Этот объект создается по умолчанию, когда VBA начинает работать с какой-либо базой данных.

Объектная модель DAO.

Семейства объекта DBEngine.

Объект DBEngine содержит два семейства объектов. Каждое из них, в свою очередь, включает ряд семейств объектов.

О Семейство workspaces состоит из объектов Workspace, которые представляют собой рабочие пространства.

□ Семейство Errors состоит из объектов Error, которые хранят информацию об ошибках, возникающих во время сеанса доступа к данным.

Объект Workspace.

Объект Workspace служит для идентификации сеанса доступа к базе данных со стороны пользователя. Этот объект управляет всем, что имеет отношение к тому, как отдельный пользователь взаимодействует с процессом базы данных. Объект workspace создается всякий раз, когда открывается база данных при помощи Microsoft Jet. Автоматически он создается в том случае, если не предпринимаются никакие усилия по его формированию в коде. Обращаться к объекту workspace по умолчанию надо следующим образом:

Set MyWorkspace = DBEngine. Workspaces (0).

Ноль — это индекс по умолчанию, т. е. данная инструкция задает первый объект, добавляемый в семейство workspaces.

Возможно также явное задание этого объекта для управления пользовательскими транзакциями и обеспечения определенного уровня зашиты при paботе с базами данных.

Объект workspace содержит три коллекции объектов.

Коллекция Databases состоит из объектов Database, которые представляют собой базы данных, открытые для данного объекта workspace.

Коллекция Groups состоит из объектов Group, которые представляют собой все группы пользователей, имеющих доступ к данному объект?

Коллекция users состоит из объектов User, которые представляют собой всех пользователей, имеющих доступ к данному объекту Workspace.

Объект Database содержит все определенные для базы данных таблицы, запросы и отношения. Объект Database создается всякий раз, когда база данных открывается при помощи метода OpenDatabase, и он существует до тех пор, пока не будет удален из памяти методом close.

Объект Database содержит 5 семейств объектов: TableDefs, QueryDefs,.

Relations, Containes, Recordsets!

Семейство TableDefs состоит из объектов TabieDef. Объект TabieDef содержит в себе детальное определение каждой таблицы базы данных.

Семейство QueryDefs СОСТОИТ ИЗ объектов QueryDef. Объект QueryDef хра-нит в себе информацию о хранимом SQL-запросе. Запросы могут использоваться, например, в качестве одного из параметров метода OpenRecordset.

Семейство Relations состоит из объектов Relation. Объект Relation содержит определения отношений между полями таблиц или запросами, хранимыми в базе данных. Отношения помогают поддерживать ссылочную целостность базы данных. Процесс установки отношения включает в себя выбор двух таблиц, которые вы хотите связать, указания поля, по которому эти таблицы будут связаны, и определения типа устанавливаемого отношения.

Семейство Containers СОСТОИТ ИЗ объектов Container. В объектах container группируются однотипные объекты.

Семейство Recordsets СОСТОИТ ИЗ объектов Recordset. Объект Recordset представляет набор записей в основной таблице или набор записей, который получается в результате выполнения запроса. Это наиболее широко применяемый объект при программировании баз данных. Этот объект обладает внушительным перечнем свойств и методов.

Порядок работы при объектном доступе к данным При извлечении информации с помощью объектного доступа к данным надо: создать рабочую область (объект workspace);

открыть базу данных (объект Database);

создать набор записей (объект Recordset);

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

Создание рабочей области.

Рабочую Область можно Создать МЕТОДОМ CreateWorkspace Объекта DBEngine.

Синтаксис:

Set workspace = CreateWorkspace [Name, UserName, Password, UseType).

Параметр

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

Workspace name строковое выражение, содержащее уникальное имя нового объекта.

Workspace UserName Строковое выражение, определяющее владельца нового объекта.

Workspace Password Строковое выражение, содержащее пароль для нового объекта.

Workspace UseType Тип рабочей области. Допустимые значения: • dbUseJet (создание рабочей области ядра Microsoft Jet); • dbUseODBC (создание рабочей области ODBCDirect) Например, для формирования рабочей области Microsoft Jet можно использовать следующие две инструкции:

Листинг. Создание рабочей области Microsoft Jet.

Dim ws As CreateWorkspace.

Set ws = DBEngine. CreateWorkspace (Name:="myWS", _.

UserName:="admin", Password:="", UseType:=dbUseJet).

Рабочую область ODBCDirect можно создать следующим образом (ссылка на объект DBEngine применяется по умолчанию, поэтому во второй инструкции объект DBEngine опущен):

Создание рабочей области ODBCDirect.

Dim ws As CreateWorkspace.

Set ws = CreateWorkspace (Name:="myWS", _.

UserName:="UID", Password:="", UseType:=dbUseODBC).

Открытие базы данных Открыть существующую базу данных можно методом OpenDatabase объек Workspace.

Синтаксис:

Set database = object. OpenDatabase (Name, Options, Readonly, Connect).

Параметр

database Описание Объектная переменная, представляющая создаваемый объект Database object Объектная переменная, представляющая существующий объект Workspace. Если этот параметр опущен, то метод OpenDatabase использует стандартную рабочую область Name Строковое выражение, задающее имя существующего файла базы данных с ядром Microsoft Jet или имя источника данных ODBC Options Для рабочей области ядра Microsoft Jet допустимыми являются следующие значения аргумента:

• True (открытие базы данных для монопольного доступа); • False (по умолчанию, открытие базы данных для общего доступа). Для рабочей области ODBCDirect допустимыми являются следующие значения аргумента: dbDriverNoPrompt, dbDriverPrompt, dbDriverComplete, dbDriverCompleteRequired Readonly Параметр, принимающий логические значения и определяющий, открывается ли база данных только для чтения Connect Дополнительный параметр, содержащий сведения о подключении, в том, числе и пароли Например, для открытия базы данных с ядром Microsoft Jet можно использовать следующие две инструкции:

Открытие базы данных.

Dim db As Database.

Set db = ws. OpenDatabase (Name:=ThisWorkbook.Path & «Пример.mdb» ,.

Options:=True).

Объект Recordset.

После открытия базы данных можно создать объект Recordset. Объект Recordset представляет собой записи исходной таблицы базы данных или результирующий набор записей, возвращаемый после выполнения запроса. Он позволяет управлять данными в базе данных на уровне записи. На уровне полей управление данными осуществляется объектом Field.

Имеются следующие типы Объекта Recordset:

Тип Описание Table Работает с одной таблицей текущей базы данных. В этом случае данные можно индексировать, что ускоряет поиск записей и их сортировку. При поиске записей допустимо применять вместо метода Find метод Seek Dynaset Позволяет получать, анализировать, удалять и редактировать данные из нескольких динамически связанных таблиц. Этот тип соответствует указателю ключевого набора записей ODBC Snapshot В этом режиме в общем случае нельзя редактировать базу данных, но скорость работы в рассматриваемом режиме больше чем в двух предыдущих Forward-only Статический режим с последовательным доступом. Перемещаться от записи к записи можно только вперед. Этот режим самый быстрый Dynamic Позволяет получать, анализировать, удалять и редактировать данные из нескольких динамически связанных таблиц. Этот тип соответствует динамическому указателю ODBC Создание объекта Recordset.

Объектная переменная типа Recordset создается при помощи метода openRecordSet. Как и для любой объектной переменной ее надо сначала объявить, а только потом установить ссылку на объект, возвращаемый методом.

OpenRecordSet.

Синтаксис ДЛЯ объекта Database:

Set recordset = object. OpenRecordset (Source, Type', Options, Lockedits).

Синтаксис ДЛЯ Объектов QueryDef, Recordset И TableDef:

Set recordset = object. OpenRecordset (Type, Options, Lockedits').

Параметр Описание recordset Объектная переменная, представляющая открываемый объект Recordset object Объектная переменная, представляющая существующий объект, используемый при создании нового объекта Recordset Source Строковое выражение, определяющее источник записей для новогс объекта Recordset. В качестве источника записей можно указать таблицы или запроса, а также SQL-инструкцию, которая возвращает записи. Для табличного объекта Recordset в базе данных MicrosoftJe: ■ в качестве источника допускается указание только имени таблицы Type Константа, задающая тип открываемого объекта Recordset. Допустимые значения: dbOpenTable, dbOpenDynaset, dbOpenSnaps. r DbOpenForwardOnly и DbOpenDynamic Options Специфицирует работу пользователя с объектом Recordset. Приведем 1 некоторые из допустимых значений:

• dbAppendOnly (пользователь может добавлять записи, но не мог редактировать уже существующие);

• dbReadOnly (запрещено вносить изменения в записи);

• dbDenyWrite (запрещено другим пользователям вносить изменения! Lockedits Устанавливает тип блокировки данных. Допустимые значения: dbReadOnly, dbPessimistic, dbOptimistic И dbOptimisticVaiue Методы и свойства объекта Recordset.

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

Методы объекта Recordset:

Метод Описание AddNew Создает и добавляет новую запись. После внесения изменений в новую запись следует вызвать метод update для сохранения изме- 1 нений и завершения процесса добавления записи в объект Recordset. До вызова метода update изменения в базу данных не заносятся Clone Создает копию объекта Recordset. Синтаксис:

Set Копия = Оригинал. Clone Close Закрывает открытый объект доступа к данным Delete Удаляет текущую запись в обновляемом объекте Recordset Edit Копирует текущую запись из обновляемого объекта Recordset в буфер для последующего изменения. После внесения изменений в новую запись следует вызвать метод update для сохранения изменений и добавления записи в объект Recordset MoveFirst, MoveLast, MoveNext, MooveFrevious Делают текущей первую, последнюю, следующую или предыдущую запись объекта Recordset FindFirst, FirdLaSt FindNext, Находят первую, последнюю, следующую или предыдущую запись, удовлетворяющую заданным условиям, и делают эту запись текущей. FindPrevious Синтаксис:

{FindFirst — FindLast I FindNext I FindPrevious} Criteria.

где Criteria— это выражение или переменная типа String, используемая для поиска записи.

Приведем несколько примеров критериев:

" [Оценка] > 3″ «[Фамилия] = 'Петров'» «[Оценка] =5 AND [Предмет] = 'Информатика'» «[Дата.

Экзамена] = #25/12/99#" Seek Находит в индексированном объекте Recordset типа Table запись, удовлетворяющую заданным условиям для текущего индекса, и делает эту запись текущей.

Синтаксис:

Seek Comparison, Keyl, Key2,… Key13 • Comparison — допустимые значения: <, <=, =, >= или >;

• Keyl, Key2… Кеу13— одно или несколько значений ключевых полей в текущем индексе объекта Recordset GetRows Загружает строки объекта Recordset в массив. Синтаксис:

Set Имя.

Массива = Набор

Записей.GetRows[NumRows) где NumRows — число строк Update Сохраняет вставки и изменения, произведенные в объекте Recordset при помощи методов AddNew и Edit CancelUpdate Отменяет все изменения объекта Recordset, выполненные при помощи методов AddNew И Edit.

Перечислим наиболее часто используемые свойства объекта Recordset.

Свойство Описание BOF Возвращает значение True, если указатель текущей записи расположен перед первой записью набора, и значение False, если указатель текущей записи расположен на первой записи набора или на любой записи после нее EOF Возвращает значение True, если указатель текущей записи расгаI ложен после последней записи набора, и значение False, если ука- 1 затель текущей записи расположен на последней записи набора или на любой записи перед ней Bookmark Устанавливает или возвращает закладку, которая однозначно деляет текущую запись в объекте Recordset. Обычно используется для возврата в объекте Recordset на определенное место, без указания конкретного адреса записи NoMatch Возвращаемое значение True, если нужная запись не найдена, и 1 False — в противном случае RecordCount Возвращает число записей, к которым был осуществлен доступ в.

объекте Recordset. Свойство RecordCount не показывает, сколько записей содержится в объекте Recordset до обращения ко всем записям. После обращения к последней записи набора значение свойства RecordCount становится равным полному числу неудаленных записей в объекте Recordset. Для принудительного обращения к последней записи следует вызвать для объекта Recordset метод MoveLast Filter Задает или возвращает значение, определяющее записи, которые будут включены в открываемый объект Recordset.

При указании критерия фильтрации имена полей заключаются в квадратные скобки. Приведем несколько примеров критериев:

[Оценка]=5 [Оценка]>=3 [Оценка]=5 AND [Предмет]="Информатика" [Оценка]=4 AND [Предмет]="Информатика" [Оценка]>=4 AND [Предмет] IN («Информатика», «Право») [Длина]*[Ширина]>100.

В критериях вместо знака равенства допустимо использование ключевого слова like, например [Оценка] LIKE 5 Sort Задает или возвращает порядок сортировки записей в объекте Recordset (только в рабочей области Microsoft Jet).

Для сортировки по возрастанию используется ключевое слово asc, а по убыванию — desc. Например: [Оценка] ASC [Фамилия] DESC.

и сортировка первоначально по полю Оценка, а потом по полю Фамилия.

[Оценка] ASC, [Фамилия] DESC.

Создание SQL-запроса Рассказывать об элементах управления данными и не сказать ничего о структурированном языке запросов SQL, было бы непростительным упущением. Команды языка SQL делятся на две большие категории: команды манипулирования данными (DML) и команды определения данных (DDL). В качестве значения параметра source метода OpenResordset можно задавать не имя таблицы, а оператор, созданный на основе команд языка SQL. Это позволяет отображать в форме не всю таблицу, а какую-то выборку данных из этой таблицы или даже из нескольких таблиц. Причем, выборка может производиться по довольно сложным критериям, с одновременным подведением итогов по выбираемым данным. В последующих разделах показано, как при помощи команды манипулирования данными строятся итоговые таблицы.

Оператор SELECT.

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

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

SELECT [Предикат] { * - Таблица.* I [Таблица. }Поле__1.

[AS Псевдоним__1] [, [ Таблица.] Пол е__2 [AS Псевдонмм2] [, …]]}.

FРОМ Выражение [,…].

[Where … ].

[GROUP BY... ] [HAVING... ] [ORDER BY… ].

Предикат — предикаты используются для ограничения числа возвращаемых записей. Если они отсутствуют, по умолчанию используется предикат all. Допустимые значения:

all (возвращает все записи);

distinct (исключает записи, которые содержат повторяющиеся значения в выбранных полях);

distinctrow (пропускает данные, основанные на целиком повторяющихся записях, а не на отдельных повторяющихся полях);

тор (возвращает определенное число записей, находящихся в начале или в конце диапазона, описанного с помощью предложения order by).

* — указывает, что выбраны все поля заданной таблицы или таблиц. таблица — имя таблицы, из которой должны быть отобраны записи поле_п — имена полей, из которых должны быть отобраны данные. Если включить несколько полей, они будут извлекаться в указанном порядке Псевдоним_п — имена, которые станут заголовками столбцов вместо ис-ходных имен столбцов в таблице.

выражение — имена одной или нескольких таблиц, которые содержат отбираемые данные.

Итак, перейдем к последовательной иллюстрации действия оператора select на примерах, построенных в учебной базе данных Борей.mdb.

В первом примере оператор возвращает записи одного поля Название таблицы Поставщики:

SELECT Название FROM Поставщики В следующем примере оператор возвращает записи двух полей (Название и Город) таблицы Поставщики:

SELECT Название, Город FROM Поставщики Для того чтобы получить все поля таблицы, т. е. всю таблицу Поставщики воспользуйтесь оператором:

SELECT * FROM Поставщики или, что равносильно.

SELECT ALL * FROM Поставщики Предложение ORDER BY.

Добавление в SQL-команду предложения order by обеспечивает упорядочи-вание набора выбранных записей. Добавление ключевого слова asc или dfs после имени поля задает порядок сортировки по этому полю (возрастающий или убывающий).

Следующий оператор возвращает всю таблицу Поставщики, записи которой упорядочены по полю Название в порядке возрастания:

SELECT * FROM Поставщики ORDER BY Название ASC.

Приводимый ниже оператор возвращает записи двух полей (Название и Го-род) таблицы Поставщики, причем, записи упорядочены по полю Название в порядке возрастания, а по полю Город — в порядке убывания:

SELECT Название, Город FROM Поставщики ORDER BY Название ASC, Город DESC.

Предложение WHERE.

Добавление в SQL-команду предложения where обеспечивает проведение выборки по критерию. В предложении where допустимо использование про-стых операций сравнения (=, <>, >, <, >=, <=), например, город = 'Париж' или Город<>" Париж", либо составных с использованием логических операторов AND и OR. В следующем примере возвращаются записи из двух полей (Страна.

Получателя и Стоимость.

Доставки) таблицы Заказы, соответствую-щие странам германия и Мексика, причем, записи упорядочены по полю Страна Получателя:

SELECT Страна.

Получателя, Стоимость.

Доставки FROM Заказы.

WHERE Страна.

Получателя = ' Германия' OR Страна.

Получателя = ' Мексика'.

ORDER BY Страна.

Получателя ASC.

В конструкции where допустимо использование следующих сравнений:

between and или not between and — для выборки записей, в которых значения специфицированного поля принадлежат указанному диапазону или лежат за его пределами. В первом из следующих двух примеров возвра;

щаются все заказы, сделанные от 8/6/94 до 12/7/95, а во втором — вне этого диапазона дат.

SELECT Дата.

Размещения, Страна.

Получателя FROM Заказы.

WHERE Дата.

Размещения BETWEEN #8/б/94# AND # 12/7/95#.

SELECT Дата.

Размещения, Страна.

Получателя FROM Заказы.

WHERE Дата.

Размещения NOT BETWEEN #8/6/94# AND #12/7/95#.

IN— для выборки записей, в которых значения специфицированного по;

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

мания, либо Мексика.

SELECT Дата.

Размещения, Страна.

Получателя FROM Заказы WHERE Страна.

Получателя-IN ('Германия', 'Мексика').

luke—для выборки записей, в которых значения специфицированного поля имеют определенный шаблон. Для создания шаблонов можно использовать символы * (для множества символов) и? (для одного символа). Например, Фамилия like 'ф*в' позволяет сделать выборку всех фамилий, Нач.

ИНаЮЩИХСЯ С бу.

КВЫ Ф И Заканчивающихся бу.

КВОЙ В, а Фамилия.

like т??? о' — фамилий, состоящих из девяти букв и начинающиеся с буквы г и заканчивающиеся буквой о.

Обратите внимание, что все строки в операциях сравнения заключаются в одинарные кавычки, например, 'Германия'. Подобным же образом, даты должны обрамляться символом #, например, #12/7/99#.

Предложение where можно также использовать для связи двух и более таб-лиц. В следующем примере объединяются две таблицы Клиенты и Заказы по общему столбцу с названиями стран:

SELECT Заказы.Дата.

Исполнения, Клиенты.Код.

Клиента.

FROM Клиенты, Заказы WHERE Заказы. Страна.

Получателя = Клиенты. Страна.

С целью сокращения длины кода допустимо использование ключевого слова AS для ввода новых обозначений таблиц. Предыдущий пример, используя ключевое слово as, можно записать в следующей укороченной форме:

SELECT За.Дата.

Исполнения, Кл.Код.

Клиента FROM Клиенты AS Кл, 3аказы AS За WHERE За.Страна.

Получателя = Кл. Страна Статистические функции Оператор select можно применять для выполнения вычислений со значениями, которые хранятся в таблицах. При этом используются следуют статистические функции, которые обрабатывают соответствующие значении полей в записях, отвечающих условию where.

Функция.

Avg Возвращает Среднее значение Count Число записей КЛп Минимальное число записей Max Максимальное число записей Sum Сумму StDev Среднеквадратичное отклонение StDevP Среднеквадратичное отклонение для генеральной совокупности Var Дисперсию значений VarP Дисперсию значений для генеральной совокупности Рассмотрим, например, как работает команда, возвращающая минимальную. максимальную, среднюю и суммарную стоимость доставок в Германию. а также общее число доставок. В этом случае запрос строится следующей командой:

SELECT Min (Стоимость.

Доставки) AS Мин, Мах (Стоимость.

Доставки) AS Макс, Avg (Стоимость.

Доставки) AS Среднее, Sum (Стоимость.

Доставки) AS Сумма, Count (Стоимость.

Доставки) AS [Количество доставок] FROM Заказы WHERE Страна.

Получателя = 'Германия'.

4. Разработка программного комплекса.

4.

1. Разработка алгоритма решения задачи.

VBAмодуль представляет собой следующую систему кнопок.

Кнопка «синхронизация».

Переводит данные из области основного листа На лист «план-график».

Кнопка «добавить работу» выводит форму, После заполнения которой данные вносятся в базу, и соответствующая строка окрашивается в коричневый цвет Кнопка «удалить работу» удаляет данные из последней строки, окрашивая ее в красный цвет Кнопка «работа выполнена».

Окрашивает последнюю строку в серый цвет Кнопка «цвет по умолчанию» возвращает всем ячейкам в таблице белый цвет Кнопка «рассчитать дельту» подсчитывает дельту и остаток по всем строкам в таблице справа Кнопка «добавить примечание».

Выводит форму для заполнения.

После чего примечание заносится в соответствующее поле последней строки.

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

Номер работыпервое поле формы.

Кнопка «рассчет трудозатрат» оценивает разницу между запланированным и выполненным объемом работ по месяцам для всех строк таблицы Дельта окрашивается в соответствующий цвет в зависимости от знака.

Код скрипта.

Private Sub CommandButton1_Click ().

MsgBox «обновление листа» .

For v = 0 To 11.

For w = 0 To 8.

Application.Workbooks (1).Worksheets («План-график»).Cells (w + 7, v + 2) = Application. Workbooks (1).Worksheets («План-задание»).Cells (3 + w, 2 + v).

Next w.

Next v.

End Sub.

Private Sub CommandButton2_Click ().

Application.ActiveWorkbook.Worksheets (1).Cells (10 000, 200) = 0.

ind_ = 0.

For w = 0 To 8.

cur = Application. Workbooks (1).Worksheets («План-задание»).Cells (3 + w, 2).

If cur = 0 Then.

ind_ = 3 + w.

Exit For.

End If.

Next w.

Application.ActiveWorkbook.Worksheets (1).Cells (10 000, 201) = ind_.

UserForm1.Show.

For v = 0 To 11.

Application.Workbooks (1).Worksheets («План-задание»).Cells (ind_, 2 + v).Interior.Color = RGB (200, 100, 2).

Next v.

End Sub.

Private Sub CommandButton3_Click ().

ind_ = 0.

For w = 0 To 8.

cur = Application. Workbooks (1).Worksheets («План-задание»).Cells (3 + w, 2).

If cur = 0 Then.

ind_ = 2 + w.

Exit For.

End If.

Next w.

For v = 0 To 11.

Application.Workbooks (1).Worksheets («План-задание»).Cells (ind_, 2 + v) = 0.

Application.Workbooks (1).Worksheets («План-задание»).Cells (ind_, 2 + v).Interior.Color = RGB (200, 2, 2).

Next v.

End Sub.

Private Sub CommandButton4_Click ().

ind_ = 0.

For w = 0 To 8.

cur = Application. Workbooks (1).Worksheets («План-задание»).Cells (3 + w, 2).

If cur = 0 Then.

ind_ = 3 + w.

Exit For.

End If.

Next w.

For v = 0 To 11.

Application.Workbooks (1).Worksheets («План-задание»).Cells (ind_, 2 + v).Interior.Color = RGB (100, 100, 100).

Next v.

End Sub.

Private Sub CommandButton5_Click ().

For v = 0 To 11.

For w = 0 To 8.

Application.Workbooks (1).Worksheets («План-задание»).Cells (3 + w, 2 + v).Interior.Color = RGB (255, 255, 255).

Next w.

Next v.

End Sub.

Private Sub CommandButton6_Click ().

ind_ = 0.

For w = 0 To 8.

cur = Application. Workbooks (1).Worksheets («План-задание»).Cells (3 + w, 2).

If cur = 0 Then.

ind_ = 3 + w.

Exit For.

End If.

Next w.

Delta = 0.

For w = 3 To ind_ - 1.

Delta = 0.

perz = 0.

For v = 0 To 12.

Delta = Delta + Application. Workbooks (1).Worksheets («План-задание»).Cells (w, 13 + 2 * v + 1) — Application. Workbooks (1).Worksheets («План-задание»).Cells (w, 13 + 2 * v).

perz = perz + Application. Workbooks (1).Worksheets («План-задание»).Cells (w, 13 + 2 * v).

Next v.

F = CStr (Delta).

Application.Workbooks (1).Worksheets («План-задание»).Cells (w, 37) = F.

Application.Workbooks (1).Worksheets («План-задание»).Cells (w, 38) = CStr (perz).

B = 0.

Next w.

End Sub.

Private Sub CommandButton7_Click ().

Application.ActiveWorkbook.Worksheets (1).Cells (10 000, 200) = 1.

ind_ = 0.

For w = 0 To 8.

cur = Application. Workbooks (1).Worksheets («План-задание»).Cells (3 + w, 2).

If cur = 0 Then.

ind_ = 3 + w.

Exit For.

End If.

Next w.

Application.ActiveWorkbook.Worksheets (1).Cells (10 000, 201) = ind_.

UserForm1.Show.

End Sub.

Private Sub CommandButton8_Click ().

ind_ = 0.

For w = 0 To 8.

cur = CInt (Application.Workbooks (1).Worksheets («План-задание»).Cells (25 + w, 2)).

If cur = 0 Then.

ind_ = 3 + w.

Exit For.

End If.

Next w.

For w = 0 To ind_ - 1.

cur_Plan = CInt (Application.Workbooks (1).Worksheets (2).Cells (25 + w, 7)).

cur_fact = 0.

For t = 0 To 11.

cur_fact = cur_fact + CInt (Application.Workbooks (1).Worksheets (2).Cells (25 + w, 8 + t)).

Next t.

Delta = cur_fact — cur_Plan.

Application.Workbooks (1).Worksheets (2).Cells (25 + w, 8 + 12) = Delta.

If Delta = 0 Then.

Application.Workbooks (1).Worksheets (2).Cells (25 + w, 8 + 12).Interior.Color = RGB (155, 155, 155).

Else.

If Delta < 0 Then.

Application.Workbooks (1).Worksheets (2).Cells (25 + w, 8 + 12).Interior.Color = RGB (255, 0, 0).

Else.

Application.Workbooks (1).Worksheets (2).Cells (25 + w, 8 + 12).Interior.Color = RGB (0, 255, 0).

End If.

End If.

Next w.

End Sub.

Private Sub CommandButton9_Click ().

Application.ActiveWorkbook.Worksheets (1).Cells (10 000, 200) = 2.

UserForm1.Show.

End Sub.

4.

2. Организационно-экономический раздел.

4.

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

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

Очевидные маркетинговые мероприятия, необходимые для продвижения на рынке разрабатываемого продукта:

публикации в специализированных изданиях;

участие в профильных конференциях;

создание Интернет ресурса;

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

4.

2.2. Организационный план Для выполнения работы создана лаборатория, в состав которой входят:

начальник отдела;

инженер первой категории;

лаборант.

Их взаимодействие осуществляется по следующей схеме:

Начальник отдела Инженер I категории Лаборант При планировании работы выделим следующие этапы разработки:

— Техническое задание (9 дней).

— Технические предложения (4 дня) Эскизно-технический проект:

— Постановка задачи (3 дня).

— Сбор, изучение и анализ литературы (33 дня).

— Проведение основных расчетов (17 дней).

— Изготовление экспериментальной модели (20 дней) Экспериментальная часть:

— Калибровка экспериментальной модели (5 дней).

3.6 — Отладка экспериментальной модели (4 дней)3.7- Оформление результатов (3 дней).

3.8 — Анализ результатов (7 дней).

4 — Подготовка документации и сдача темы (3 дней).

Общая продолжительность выполнения проекта 108 дней. Для сокращения общей продолжительности выполнения работы следующие друг за другом и выполняемые разными исполнителями, проводятся одновременно или, по крайней мере, с перекрытием по срокам, что отражено в календарном план-графике.

Календарный план-график.

Таблица 3.2 Основная заработная плата Этапы Исполнитель Трудоем кость в днях Оклад, руб. Оплата за 1 день, руб. Оплата за этап, руб. Техническое задание Начальник отдела 9 7 000 318 2 862 Технические предложения Инженер I категории 4 5 800 264 1056.

Постановка задачи Начальник отдела 2 7 000 318 636.

Инженер I категории 3 5 800 264 792 Сбор, изучение и анализ литературы Лаборант 33 4 800 218 7 194 Проведение основных расчетов Инженер I категории 12 5 800 264 3 168.

Лаборант 17 4 800 218 3 706 Изготовление экспериментальной модели Инженер I категории 15 5 800 264 3 960.

Лаборант 20 4 800 218 4 360 Калибровка экспериментальной модели Начальник отдела 1 7 000 318 318.

Инженер I категории 2 5 800 264 528.

Лаборант 5 4 800 218 1090.

Отладка экспериментальной модели Инженер I категории 2 5 800 264 528.

Лаборант 4 4 800 218 436 Оформление результатов Лаборант 3 4 800 218 654 Анализ результатов Инженер I категории 4 5 800 264 1056.

Лаборант 7 4 800 218 1526.

Подготовка документации и сдача темы Инженер I категории 1 5 800 264 264.

Лаборант 3 4 800 218 654 Итого 34 788.

4.

2.3. Расчет затрат Расчет затрат произведем методом постатейной сметной калькуляции. Под этим понимается предварительный расчёт ожидаемых затрат, выполненный по номенклатуре статей.

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

Проведем расчёт затрат по статьям.

Материалы и покупные изделия.

Материалы и покупные изделия см. таблицу 3.3:

Наименование Единицы измерений Стоимость единицы изделия, руб. Количество Итого, руб. Карандаш Шт. 5 5 25 Ручка Шт. 10 3 30 Ватман Лист 5 10 50 Ластик Шт. 6 3 18 Бумага Лист. 0,5 250 125 Линейка Шт.

10 3 30 Компакт Диск Шт. 12 5 60 Папка для бумаг Шт. 1 10 10 Картридж для принтера Шт. 380 1 380 ИТОГО: 728 Таблица 3.3.

Транспортные расходы составляют 15% от стоимости материалов и покупных изделий и равны 110 руб.

Всего расходы по статье «Материалы и покупные изделия» с учетом транспортных затрат составляют 728 + 110 = 838 руб.

Основная заработная плата.

Основная заработная плата персонала равна 34 788 рублей (см. таблицу 3.2).

Дополнительная заработная плата.

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

Размер дополнительной заработной платы в себестоимости изготовления изделия устанавливается в размере 20% от основной заработной платы, что составляет: 6 958 рублей.

Отчисления на социальные нужды.

Данная статья включает в себя отчисления в пенсионный фонд 28%, отчисления в фонд обязательного медицинского страхования 3,6%, в фонд социального страхования 4%, в фонд страхования по увечью 0%. Размер отчислений на социальные нужды составит 35,6% от фонда оплаты труда (суммы основной заработной платы и дополнительной заработной платы):

0,356 * (34 788 + 6 958) = 14 861 рублей.

Расходы на специальное оборудование на НИР.

Отсутствуют.

Оплата работ сторонних организаций.

Отсутствуют.

Прочие расходы.

Прочие расходы затраты на машинное время оплачиваются из расчета 10 руб/час. Учитывая что за компьютером работа проводилась в течении 80-ти дней (8 часовой рабочий день), затраты составляют 6400 рублей.

Накладные расходы.

Накладные расходы составляют 250% от основной заработной платы 86 970 руб.

Итоговая таблица — расчет стоимости разработки Таблица 3.4.

Наименование статей Сумма, руб. Материалы и покупные изделия 838 Основная заработная плата 34 788 Дополнительная заработная плата 6 958 Отчисления на социальные нужды 14 861 Расходы на специальное оборудование на НИР 0 Оплата работ сторонних организаций 0 Прочие расходы 6 400 Накладные расходы 86 970 Итоговая стоимость разработки 150 815 Расчет договорной цены Договорная цена определяется по договору между заказчиком и исполнителем и вычисляется по формуле:

Договорная цена = стоимость разраб. + норматив прибыль (25% от стоимости разработки) + НДС Так как разработка государственная то НДС не взимается, попадая под льготу.

150 815 руб. + 37 703 руб.= 188 519 руб.

Договорная цена равна 188 519 рублей.

4.

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

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

Заключение

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

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

Список используемых источников

.

1. Образовательный стандарт по специальности «Прикладная математика» .

http://www.edu.ru/db/portal/spe/index.htm.

2. Гарнаев А. Ю. Самоучитель VBA. — СПб: БХВ-Петербург, 2003.

3. Долженков В., Мозговой М. Visual Basic.NET: учебный курс. — СПб: Питер, 2003.

4. Брайан Сайлер, Джефф Споттс Использование Visual Basic 6. Специальное издание: пер. с англ. — М.: Изд. дом «Вильямс», 1999.

5. Макашарипов С. Программирование баз данных на Visual Basic 5 в примерах. — СПб: Питер, 1997.

6. Ананьев А. И., Федоров А. Ф. Самоучитель Visual Basic 6.

0. — СПб: БХВ-Петербург, 2000.

7. Microsoft Corporation. Руководство программиста по Visual Basic для Microsoft Office 97. Пер. с англ. — М.: Изд. отдел «Русская редакция» ТОО «Channel Trading Ltd», 1997.

Показать весь текст

Список литературы

  1. Образовательный стандарт по специальности «Прикладная математика» http://www.edu.ru/db/portal/spe/index.htm.
  2. А.Ю. Самоучитель VBA. — СПб: БХВ-Петербург, 2003.
  3. В., Мозговой М. Visual Basic.NET: учебный курс. — СПб: Питер, 2003.
  4. Брайан Сайлер, Джефф Споттс Использование Visual Basic 6. Специальное издание: пер. с англ. — М.: Изд. дом «Вильямс», 1999.
  5. С. Программирование баз данных на Visual Basic 5 в примерах. — СПб: Питер, 1997.
  6. А.И., Федоров А. Ф. Самоучитель Visual Basic 6.0. — СПб: БХВ-Петербург, 2000.
  7. Microsoft Corporation. Руководство программиста по Visual Basic для Microsoft Office 97. Пер. с англ. — М.: Изд. отдел «Русская редакция» ТОО «Channel Trading Ltd», 1997.
Заполнить форму текущей работой
Купить готовую работу

ИЛИ