Смекни!
smekni.com

Электронный справочник по изучению Visual Basic (стр. 8 из 9)

Таблица 2

Расчет основной заработной платы по теме

Наименование работ Исполнитель Оклад (руб.) Дневная зарплата (руб.) Трудоем-ть(в человеко-днях) Затраты позарплате (руб.)
1.Подготовительный этап Ведущий инженер 1300 15 40 600
Инженер 1150 11 20 220
2.Разработка алгоритмов и программ Ведущий инженер 1400 20 30 600
Программист 1200 15 20 300
Инженер 1000 12 20 240
3.Оформление документации и подготовка к сдаче Инженер 1000 15 25 375
Итого: 2335

7.4. Расчет дополнительной заработной платы

На эту статью относятся выплаты, предусмотренные законодательством о труде за неотработанное по уважительным причинам время: оплата очередных и дополнительных отпусков и т.п. (принимается в размере 20% от суммы основной заработной платы):

20%:100=0,2

2335 * 0,2 = 467 руб.

7.5. Расчёт накладных расходов

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

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

250%:100=2,5

2335*2.5 = 5837,5руб.

7.6. Расчёт договорной цены разработки

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

Полная себестоимость разработки определяется суммированием пп.1-4 таблицы 3.

Полная себестоимость:

1064 + 2335 + 467 + 5837,5 = 9703,5

Оптовая цена определяется следующим образом:

Цопт = себестоимость + прибыль.

Прибыль составляет 30% от себестоимости:

30%:100=0,3

Прибыль =9703,5 *0.3 =2911,05 руб.

Цопт = 9703,5+2911,05=12614,55 руб.

При расчете договорной цены в общую стоимость включается НДС 18%

18% : 100 = 0,18

12614,55 * 0,18 = 2270,619

12614,55 + 2270,619 = 14885,169

Таблица 3

Калькуляция стоимости разработки

№ п/п Наименование статьи расхода Затраты (в руб.)
1. Материалы, покупные изделия, полуфабрикаты 970
2. Основная заработная плата 2335
3. Дополнительная заработная плата 467
4. Накладные расходы 5837,5
5. Полная себестоимость 9703,5
6. Прибыль 2911,05
7. Оптовая цена 12614,55
8. НДС 18% 2270,619
9. Договорная цена 14885,169

Заключение

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

Договорная цена на ПП, сформированная на основе нормативной себестоимости производства ПП и прибыли, составляет 14885,169 руб.

Экономический эффект от использования данного ПП за расчётный период (5 лет) составит 74425,845 руб., при этом эффективность разработки – примерно 0.68, т. е. разработчик покроет свои расходы на создание автоматизированной системы ориентировочно за год и затем начнёт получать прибыль.

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


Приложение 1

Исходный код программы «Электронный справочник по работе с программой

Visual Basic»

I. m_Tbook.frm

Основнаяформаучебника

Const SuperRootName = "NULL?+1234r55tegwegdsfasfgsdg"

Const SubjectFile = "Subject.htm"

Const ExampleFile = "Example.rtf"

Const TestFile = "Test\index.htm"

Const iThemeListWidth = 3000

Dim NavPath As String

Dim NavBKPath As String

Dim bFullMode As Boolean

Function CreateTheme(pName As String, rName As String)

Dim tmpNode As Node

Set tmpNode = m_ThemeList.Nodes.Add(, tvwFirst, rName, pName, 1, 3)

End Function

Function CreateSection(pName As String, rName As String)

Dim tmpNode As Node

Set tmpNode = m_ThemeList.Nodes.Add(rName, tvwChild, , pName, 2)

End Function

Private Sub Themes_Loading()

Dim sFile As String

Dim i As Integer

sFile = Dir(App.Path & "\Themes\", vbDirectory)

Do Until sFile = ""

If sFile <> "." And sFile <> ".." Then

CreateTheme sFile, "r" & CStr(i)

CreateSection SuperRootName, "r" & CStr(i)

End If

sFile = Dir

i = i + 1

Loop

End Sub

Private Sub Form_Load()

Load m_Password

m_Password.Show 1

Themes_Loading

bFullMode = False

m_CmdSwitch.Caption = "Ïðèìåð"

m_CmdSwitch.Enabled = False

m_ThemeView.Navigate2 App.Path & "&bsol;StartPage.htm", navNoHistory

End Sub

Function CtrlResize(iTheme As Integer)

On Error Resume Next

If m_TBook.Width <= iThemeListWidth + 110 Or m_TBook.Height <= 800 Then Exit Function

If m_TBook.WindowState = vbMinimized Then Exit Function

m_CmdSwitch.Left = iTheme + 10

m_CmdSwitch.Top = m_TBook.Height - 1000

m_CmdSwitch.Height = 400

m_CmdSwitch.Width = 1500

m_CmdTest.Left = m_CmdSwitch.Left + m_CmdSwitch.Width

m_CmdTest.Top = m_TBook.Height - 1000

m_CmdTest.Height = 400

m_CmdTest.Width = 1500

m_CmdCopyClip.Left = m_CmdTest.Left + m_CmdTest.Width

m_CmdCopyClip.Top = m_TBook.Height - 1000

m_CmdCopyClip.Height = 400

m_CmdCopyClip.Width = 1500

m_Back.Left = m_CmdCopyClip.Left + m_CmdCopyClip.Width

m_Back.Top = m_TBook.Height - 1000

m_Back.Height = 400

m_Back.Width = 1000

m_Home.Left = m_Back.Left + m_Back.Width

m_Home.Top = m_TBook.Height - 1000

m_Home.Height = 400

m_Home.Width = 1000

m_Forward.Left = m_Home.Left + m_Home.Width

m_Forward.Top = m_TBook.Height - 1000

m_Forward.Height = 400

m_Forward.Width = 1000

m_ThemeView.Left = iTheme + 100

m_ThemeView.Top = 0

m_ThemeView.Width = m_TBook.Width - (iTheme + 200)

m_ThemeView.Height = m_TBook.Height - 1000

m_BtnFullMode.Width = 100

m_BtnFullMode.Height = 1000

m_BtnFullMode.Left = iTheme

m_BtnFullMode.Top = m_TBook.Height / 2 - m_BtnFullMode.Height / 2

m_ExampleView.Left = iTheme + 100

m_ExampleView.Top = 0

m_ExampleView.Width = m_TBook.Width - (iTheme + 200)

m_ExampleView.Height = m_TBook.Height - 1000

m_ThemeList.Left = 0

m_ThemeList.Top = 0

m_ThemeList.Width = iTheme

m_ThemeList.Height = m_TBook.Height - 400

End Function

Private Sub Form_Resize()

If bFullMode Then

m_ThemeList.Visible = False

CtrlResize 0

Else

m_ThemeList.Visible = True

CtrlResize iThemeListWidth

End If

End Sub

Private Sub m_About_Click()

Load frmAbout

frmAbout.Show

End Sub

Private Sub m_NewBK_Click()

m_gBKPath = NavBKPath

Load m_FrmBookMark

m_FrmBookMark.Show 1

End Sub

Private Sub m_openBK_Click()

m_gBKPath = ""

Load m_FrmBookMark

m_FrmBookMark.Show 1

End Sub

Private Sub m_BtnFullMode_Click()

If bFullMode = True Then

bFullMode = False

Else

bFullMode = True

End If

Form_Resize

End Sub

Private Sub m_cmdCopyClip_Click()

Clipboard.SetText m_ExampleView.TextRTF

End Sub

Private Sub m_CmdSwitch_Click()

If m_CmdSwitch.Caption = "Òåìà" Then

m_CmdSwitch.Caption = "Ïðèìåð"

m_ThemeView.Visible = True

m_ExampleView.Visible = False

m_CmdCopyClip.Visible = False

ElseIf m_CmdSwitch.Caption = "Ïðèìåð" Then

m_CmdSwitch.Caption = "Òåìà"

m_ExampleView.Visible = True

m_ThemeView.Visible = False

m_CmdCopyClip.Visible = True

End If

End Sub

Private Sub m_CmdTest_Click()

If NavPath = "" Then Exit Sub

m_gTestPath = NavPath & "test.txt"

If Dir(m_gTestPath, vbNormal) <> "" Then

Load m_FrmTest

m_FrmTest.Show 1

End If

End Sub

Private Sub m_Back_Click()

On Error Resume Next

m_ThemeView.GoBack

End Sub

Private Sub m_Forward_Click()

On Error Resume Next

m_ThemeView.GoForward

End Sub

Private Sub m_Home_Click()

m_ThemeView.Navigate2 App.Path & "&bsol;StartPage.htm", navNoHistory

End Sub

Private Sub m_MenuPrint_Click()

On Error Resume Next

m_ThemeView.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT

End Sub

Private Sub m_MenuSave_Click()

m_ThemeView.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT

End Sub

Private Sub m_MenuFind_Click()

On Error Resume Next

' m_ThemeView.ExecWB OLECMDID_F, OLECMDEXECOPT_DODEFAULT

End Sub

Private Sub m_Quit_Click()

End

End Sub

Private Sub m_ThemeList_Expand(ByVal Node As MSComctlLib.Node)

Dim pNode As Node

Set pNode = Node.Child

If pNode.Text = SuperRootName Then

m_ThemeList.Nodes.Remove pNode.Index

Dim sFile As String

Dim i As Integer

sFile = Dir(App.Path & "&bsol;Themes&bsol;" & Node.Text & "&bsol;", vbDirectory)

Do Until sFile = ""

If sFile <> "." And sFile <> ".." Then

CreateSection sFile, Node.Key

End If

sFile = Dir

i = i + 1

Loop

End If

End Sub

Private Sub m_ThemeList_NodeClick(ByVal Node As MSComctlLib.Node)

If Node.Children Then Exit Sub

m_CmdSwitch.Enabled = True

NavPath = App.Path & "&bsol;Themes&bsol;" & Node.FullPath & "&bsol;"

NavBKPath = Node.FullPath

m_ThemeView.Navigate2 NavPath & SubjectFile, navNoHistory

If (Len(Dir(NavPath & ExampleFile))) <= 0 Then

m_ExampleView.Text = ""

Else

m_ExampleView.LoadFile NavPath & ExampleFile

End If

End Sub

II. mdl_Question.bas

Модуль для хранения глобальных переменных

TypeQuestion

Question As String

Answer(2) As String

True As Integer

End Type

Public m_gTestPath As String

Public m_gBKPath As String

Public m_gBKNewName As String

III. m_FrmBookMark.frm

Форма управления закладками

Private Sub Form_Load()

On Error GoTo EndLoadForm

Dim pLine As String

m_bFindName = False

Open App.Path & "&bsol;bookmark.txt" For Input As #1

Do Until EOF(1)

Line Input #1, pLine

m_BKList.AddItem pLine

If m_bFindName = False Then

If pLine = m_gBKPath Then m_bFindName = True

End If

Loop

If m_bFindName = False And m_gBKPath <> "" Then

m_BKList.AddItem m_gBKPath

End If

Close #1

EndLoadForm:

End Sub

Private Sub Form_Unload(Cancel As Integer)

On Error GoTo EndUnLoadForm

If m_gBKPath = "" Then

GoTo EndUnLoadForm

End If

Open App.Path & "&bsol;bookmark.txt" For Output As #1

For i = 0 To m_BKList.ListCount - 1

m_BKList.ListIndex = 0

Print #1, m_BKList.Text

m_BKList.RemoveItem m_BKList.ListIndex

Next

Close #1

EndUnLoadForm:

End Sub

Private Sub m_DeleteBK_Click()

If m_BKList.ListIndex <> -1 Then m_BKList.RemoveItem m_BKList.ListIndex

End Sub

IV. m_FrmTest.frm

Форма управления тестом

DimqcountAsInteger ' общее количество вопросов

DimrAsInteger ' количество правильный

' ответов

Dim curq As Integer

Dim rate(1 To 4) As Integer ' критерииоценок

Dim comment(1 To 4) As String ' комментарии

Dim f As String ' буферчтения

Dim qcycle() As Integer

Dim quest() As Question

Sub LoadQuestions()

Dim fquest As String

Dim ftrue As Integer

Dim fanswer() As String

Do While NextQuestion(fquest, ftrue, fanswer)

If qcount = 1 Then

ReDim quest(0)

Else

ReDim Preserve quest(qcount - 1)

End If

quest(qcount - 1).Question = fquest

quest(qcount - 1).True = ftrue

For i = 0 To 2

quest(qcount - 1).Answer(i) = fanswer(i)

Next

Loop

End Sub

Function NextQuestion(ByRef fquest As String, ByRef ftrue As Integer, ByRef fanswer() As String) As Boolean

IfNotEOF(1) Then ' файл не закончился

' считывание и ввод вопроса

LineInput #1, fquest

' считывание вариантов ответа

ReDimfanswer(2)

For i = 0 To 2

Line Input #1, f

fanswer(i) = f

Line Input #1, f

If f = "1" Then ftrue = i

Next

' верный ли ответ: 1 – верный 0 - нет

' 0 или 1 записывается в свойство Tag соответствующего компонента