48627 (588582), страница 5
Текст из файла (страница 5)
Таким образом, затраты времени на отладку и внедрение составляют 49 человеко-дней или 392 часов.
6.1.1 Расчёт стоимости одного машинного часа.
Стоимость одного машинного часа определяется по формуле
, где (7)
Эксп – эксплуатационные годовые затраты (в рублях);
Тф – количество часов, отработанных всеми машинами в год (час).
Эксплуатационные годовые затраты включают в себя:
-
Годовая амортизация оборудования (Аоб), формула 8;
-
Годовые затраты на ремонт оборудования (Роб), формула 9;
-
Расходы на электроэнергию (Зэл), формула 10;
-
Прочие расходы (Зпр), формула 14.
1. Годовая амортизация оборудования определяется:
, где (8)
Косн – коэффициент амортизации основного оборудования (в процентах);
Сосн – стоимость основного оборудования (в рублях);
Квсп – коэффициент амортизации вспомогательного оборудования (в процентах);
Свсп – стоимость вспомогательного оборудования (в рублях).
В данном случае стоимость одного принтера пропорционально распределена между двумя компьютерами.
руб.
2. Годовые затраты на текущий ремонт составляют 5% от общей стоимости используемого оборудования.
, где (9)
Собщ – общая стоимость оборудования (в рублях).
руб.
3. Затраты на электроэнергию складываются из расходов на освещение Вос (формула 10) и расходов на производственное потребление электроэнергии Вэ (формула 11).
Зэл=Вос+Вэ, где (10)
Вос – расходы на освещение (в рублях);
Вэ – расходы на производственное потребление электроэнергии (в рублях).
, где (11)
S – площадь помещения (в квадратных метрах);
Кэ – усреднённый расход энергии, для освещения одного квадратного метра площади помещения в год (кВт на квадратный метр);
Стар – тариф (в рублях).
руб.
, где (12)
Нуст – мощность одного компьютера (кВт);
Н – количество компьютеров (штук);
К – коэффициент учитывающий потери в сети;
Стар – тариф (в рублях);
Ф – годовой фонд времени работы оборудования рассчитывается по формуле:
, где (13)
Нг – число дней в году;
Нвых – число выходных дней в году;
Нпр – число праздничных дней в году;
Ксм – коэффициент сменности;
Фдн – продолжительность рабочего дня;
Кзаг – коэффициент загрузки оборудования;
Крем – коэффициент, учитывающий потери времени на ремонт оборудования.
часа.
Тогда расходы на производственное потребление электроэнергии (по формуле 12) равны
руб.
Затраты на электроэнергию (по формуле 10) равны
руб.
4. Прочие расходы составляют 5% от суммы расходов по предыдущим пунктам.
, где (14)
Аоб – сумма годовой амортизации (в рублях);
Робщ – годовые затраты на ремонт (в рублях);
Э – расходы на электроэнергию (в рублях).
руб.
Тогда эксплуатационные годовые расходы составляют:
, где (15)
Аоб – сумма годовой амортизации (в рублях);
Робщ – годовые затраты на ремонт (в рублях);
Э – расходы на электроэнергию (в рублях);
Зпр – прочие расходы (в рублях).
руб.
Количество часов, отработанных всеми машинами в год равно:
, где (16)
Н – количество компьютеров (в штуках);
Ф – годовой фонд времени работы оборудования (в часах).
часов
Тогда стоимость одного машинного часа (по формуле 7) равна:
руб.
6.1.2 Расчёт стоимости программного продукта.
Стоимость программного продукта определяется по формуле:
, где (17)
Тдн – затраты времени на разработку (чел.-дней);
Змес – среднемесячная зарплата (в рублях);
Ндн – количество рабочих дней в месяце (дни);
Тмаш – затраты времени на отладку и внедрение (в часах);
См.ч. – стоимость одного машинного часа (в рублях).
руб.
Заключение
В данном дипломном проекте представлена «Автоматизированная система контроля знаний на основе архитектуры клиент-сервер», реализованная в среде программирования Borland Delphi 6.0.
Дополнительные средства разработки и возможности среды программирования позволили осуществить формирование и ведение базы теста, вывод необходимых форм и отчета успеваемости, создать удобный пользовательский интерфейс включающий:
-
стандартная строка меню;
-
кнопки – для активизации функций системы;
-
сопроводительные сообщения.
Для повышения надежности хранения информации предусмотрены программные средства защиты информации:
-
резервное сохранение базы теста;
Наличие встроенной контекстной помощи позволяет упростить использование программы.
Дипломный проект был выполнен в заданный срок.
Приложение 1
Листинг кода серверной части программы
program HLServer;
uses
Forms,
BaseUnit in 'BaseUnit.pas' {MainForm},
QBaseWork in 'QBaseWork.pas',
UBaseWork in 'UBaseWork.pas';
{$R *.res}
begin
Application. Initialize;
Application. CreateForm (TServerForm, ServerForm);
Application. Run;
end.
unit BaseUnit;
interface
uses
QBaseWork, UBaseWork, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, Grids, StdCtrls, ExtCtrls, Menus, CommCtrl, ComCtrls,
IniFiles, WinSock, ComObj, OleServer, Word97, ShellCtrls, Buttons, Word2000;
const
NM_Register1 = 6; // прием списка групп
NM_Register2 = 7; // запрос на список студентов
NM_RegisterGetWorks = 66; // запрос / ответ 'список предметов'
NM_RegisterGetTeachers = 77; // запрос / ответ 'список преподователей'
NM_RegisterOK = 8; // клиент зарегистрирован
NM_Service = 31; // прием сервисной информации
NM_TestEvent = 55; // событие по ходу тестирования
NM_FileOperation = 10; // сетевая операция с файлами
NM_EndOfTest = 33; // окончание тестирования
NM_KickFromServer = 44; // отключение от сервера администратором
NM_OutOfTime = 50; // отключение по истечении времени
NM_DataError = 54; // проблема с БД
NM_Wait = 61;
type
PCustomWinSocket=TCustomWinSocket;
Questions=record // Структура вопроса
Passed:boolean; // пройден (да/нет)
Style:byte; // стиль вопроса {radio, check, memo}
UserAnswer: word; // ответ пользователя
TrueAnswer: word; // верный ответ
end;
PathID=record
WorkID:byte;
TeacherID:byte;
end;
Peoples=record // структура 'Пользователь'
SocketHandle: Integer; // дескриптор соединения
Ip:string[15]; //IP адрес
Num:byte; // номер клиента
Registered:boolean; // прошел регистрацию (да/нет)
TestingAbortedByTime:boolean;
Group:string[8]; // группа
Name:string[20]; // имя
Teacher:string[40]; // преподаватель
WorkName:string[40]; // наим. дисциплины
WorkPath:string[255]; // рабочая директория пользователя
UserWorkPathID: PathID; // идентификаторы дисциплины и преподавателя
ImageType:string[3]; // тип файла вопросов {зарезервировано}
QuestCount:byte; // количество вопросов
OpenQuest:byte; // Ссылка на билет из массива Questions
// для дальнейшего
TimeLater:TTime; // потрачено времени
SumTime:TTime; // общий бюджет бремени
PassedCount:byte; // пройдено вопросов
True_:byte; // верных ответов
False_:byte; // неверных ответов
Mark:byte; // оценка
PassTest:boolean; // тест пройден (да/нет)
Questions:array [1..255] of Questions; // массив пройденных вопросов
end;
type
TServerForm = class(TForm)
ServerSocket1: TServerSocket;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
ComboBox1: TComboBox;
ListBox1: TListBox;
Label2: TLabel;
Label3: TLabel;
Timer1: TTimer;
Label4: TLabel;
Label5: TLabel;
TabSheet4: TTabSheet;
ConnectionCount: TLabel;
Timer2: TTimer;
TabSheet8: TTabSheet;
Panel3: TPanel;
Button3: TButton;
Button4: TButton;
Image1: TImage;
RadioGroup1: TRadioGroup;
ShellTreeView1: TShellTreeView;
ShellListView1: TShellListView;
ComboBox2: TComboBox;
Bevel8: TBevel;
Label1: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label16: TLabel;
Label10: TLabel;
Label17: TLabel;
Label18: TLabel;
Bevel1: TBevel;
Bevel4: TBevel;
Bevel5: TBevel;
Bevel6: TBevel;
Bevel7: TBevel;
Bevel9: TBevel;
Bevel13: TBevel;
Bevel10: TBevel;
Bevel11: TBevel;
Bevel12: TBevel;
Bevel14: TBevel;
Bevel15: TBevel;
Bevel16: TBevel;
Bevel17: TBevel;
Bevel18: TBevel;
Bevel19: TBevel;
Bevel20: TBevel;
WordDocument1: TWordDocument;
SpeedButton1: TSpeedButton;
PageControl2: TPageControl;
TabSheet3: TTabSheet;
TabSheet5: TTabSheet;
StringGrid1: HLringGrid;
StringGrid2: HLringGrid;
TabSheet6: TTabSheet;
Memo1: TMemo;
Button7: TButton;
Button8: TButton;
SaveDialog1: TSaveDialog;
Panel2: TPanel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
TabSheet7: TTabSheet;
ReportGrid: HLringGrid;
Button1: TButton;
procedure ServerSocket1ClientConnect (Sender: TObject;
Socket: TCustomWinSocket);
procedure FormCreate (Sender: TObject);
procedure FormDestroy (Sender: TObject);
procedure ServerSocket1ClientRead (Sender: TObject;
Socket: TCustomWinSocket);
procedure ComboBox1Change (Sender: TObject);
procedure Timer1Timer (Sender: TObject);
procedure ServerSocket1ClientDisconnect (Sender: TObject;
Socket: TCustomWinSocket);
procedure Timer2Timer (Sender: TObject);
procedure StringGrid1DblClick (Sender: TObject);
procedure Button3Click (Sender: TObject);
procedure ShellListView1Change (Sender: TObject; Item: TListItem;
Change: TItemChange);
procedure ShellListView1DblClick (Sender: TObject);
procedure Image1Click (Sender: TObject);
procedure ShellTreeView1Enter (Sender: TObject);
procedure ServerSocket1ClientError (Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
procedure Button1Click (Sender: TObject);
, где (7)
, где (8)
, где (13)
, где (14)
руб.
, где (15)
, где (16)
часов
руб.
руб.














