Таблица 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 |
На эту статью относятся выплаты, предусмотренные законодательством о труде за неотработанное по уважительным причинам время: оплата очередных и дополнительных отпусков и т.п. (принимается в размере 20% от суммы основной заработной платы):
20%:100=0,2
2335 * 0,2 = 467 руб.
К этой статье относят расходы по управлению научно-исследовательской организацией, выполняющей данную разработку, а также расходы по содержанию и ремонту зданий, сооружений, оборудования, коммунальные услуги и т. п.
Накладные расходы принимаются в размере 250% от суммы основной заработной платы.
250%:100=2,5
2335*2.5 = 5837,5руб.
Калькуляция стоимости разработки приведена в таблице 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 & "\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 & "\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 & "\Themes\" & Node.Text & "\", 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 & "\Themes\" & Node.FullPath & "\"
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 & "\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 & "\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 соответствующего компонента