Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet.doc
Скачиваний:
6
Добавлен:
13.11.2018
Размер:
626.18 Кб
Скачать

Разработка программного продукта

Программа «Интерактивная система тестирования» написанная в среде программирования Borland C++ Builder 6.0, предназначена для контроля знаний студентов по предложенной теме. В окне программы отображается тест – последовательность вопросов, на которые испытуемый должен ответить путем выбора правильного ответа. Вопросы загружаются из архива «Shadow Flare» используемого компанией «Blizzard». Имя файла архива передается программе при ее запуске – указывается в качестве параметра командной строки.

Рисунок1. Вид программы во время прохождения тестирования.

Рисунок2. В командной строке не задан тест.

// Test.cpp

#include <vcl.h>

#pragma hdrstop

//---------------------------------------------------------------------------

USEFORM("Unit1.cpp", Form1);

USEFORM("ToDocument.cpp", Form2);

//---------------------------------------------------------------------------

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

Application->Initialize();

Application->CreateForm(__classid(TForm1), &Form1);

Application->CreateForm(__classid(TForm2), &Form2);

Application->Run();

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

catch (...)

{

try

{

throw Exception("");

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

}

return 0;

}

// MPQ.cpp: implementation of the MPQ class.

//

//////////////////////////////////////////////////////////////////////

#include "MPQ.h"

#include "SFmpqapi_no-lib.h"

//////////////////////////////////////////////////////////////////////

// Construction/Destruction

//////////////////////////////////////////////////////////////////////

MPQ::MPQ()

{

}

//////////////////////////////////////////////////////////////////////

MPQ::~MPQ()

{

}

//////////////////////////////////////////////////////////////////////

void MPQ::ExtractFileFromMPQ(char *mpq, char *file, char *newFile)

{

HANDLE hMpq=NULL;

HANDLE hFile=NULL;

if(SFileOpenArchive(mpq,NULL,NULL,&hMpq))

{

if(SFileOpenFile(file,&hFile))

{

HANDLE hNewFile=CreateFileA(newFile,GENERIC_WRITE, NULL, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0);

char szBuffer[0x10000];

DWORD dwBytes = 1;

while(dwBytes > 0)

{

SFileReadFile(hFile, szBuffer, sizeof(szBuffer), &dwBytes, NULL);

if(dwBytes > 0)

WriteFile(hNewFile, szBuffer, dwBytes, &dwBytes, NULL);

}

CloseHandle(hNewFile);

SFileCloseFile(hFile);

SFileCloseArchive(hMpq);

}

}

else

return;

}

//////////////////////////////////////////////////////////////////////

char *MPQ::ReadINIBlock(char *SectionName, char *KeyName, char *mpq, char *fileName)

{

ExtractFileFromMPQ(mpq,fileName,".\\temp.ini");

char *lpReturnedString="";

GetPrivateProfileStringA(SectionName,KeyName,"-1",lpReturnedString,49,".\\temp.ini");

DeleteFileA("temp.ini");

return lpReturnedString;

}

//////////////////////////////////////////////////////////////////////

DWORD MPQ::GetMPQFileSize(char *mpq, char *file)

{

HANDLE hMpq=NULL;

HANDLE hFile=NULL;

DWORD size;

if(SFileOpenArchive(mpq,NULL,NULL,&hMpq))

{

if(SFileOpenFile(file,&hFile))

size=SFileGetFileSize(hFile,NULL);

SFileCloseFile(hFile);

}

SFileCloseArchive(hMpq);

return size;

}

//////////////////////////////////////////////////////////////////////

byte *MPQ::LoadFromMPQ(char *mpq, char *file)

{

HANDLE hMpq=NULL;

HANDLE hFile=NULL;

DWORD size;

byte *data=NULL;

if(SFileOpenArchive(mpq,NULL,NULL,&hMpq))

{

if(SFileOpenFile(file,&hFile))

{

size=SFileGetFileSize(hFile,NULL);

data=new byte[size];

SFileReadFile(hFile,data,size,NULL,NULL);

}

else

data=NULL;

SFileCloseFile(hFile);

}

else

data=NULL;

SFileCloseArchive(hMpq);

return data;

}

//////////////////////////////////////////////////////////////////////

bool MPQ::VerFile(char *mpq, char *file)

{

HANDLE hMpq=NULL;

HANDLE hFile=NULL;

if(SFileOpenArchive(mpq,NULL,NULL,&hMpq))

{

if(SFileOpenFile(file,&hFile))

return true;

else return false;

}

return false;

}

void MPQ::ExtractFileFromMPQ2(char *mpq, char *file, char *newFile)

{

HANDLE hMpq=NULL;

HANDLE hFile=NULL;

if(SFileOpenArchive(mpq,NULL,NULL,&hMpq))

{

if(SFileOpenFile(file,&hFile))

{

Перечислим атрибуты вышеназванных сущностей:

СОТРУДНИКИ (Табельный номер сотрудника, ФИО сотрудника, занимаемую должность, стаж работы, номер паспорта, ИНН, состав семьи, дату рождения, место проживания по паспорту, фактическое место проживания, телефон, образование).

ТРУДОВОЙ ДОГОВОР (наименование фирмы, номер приказа, дату составления приказа, дату принятия на работу, ФИО сотрудника, табельный номер сотрудника, структурное подразделение, должность, оклад, надбавки за совмещение должностей, надбавки за работу на крайнем севере, основание принятия на работу).

ОТПУСК (наименование фирмы, номер приказа об уходе в отпуск, дату составления приказа, структурное подразделение, ФИО сотрудника, табельный номер сотрудника, структурное подразделение, период работы, основной отпуск, дополнительный отпуск, количество дней, период к оплате).

БОЛЬНИЧНЫЙ (наименование фирмы, номер приказа, ФИО сотрудника, табельный номер сотрудника, структурное подразделение, занимаемую должность, основной отпуск, дополнительный отпуск в связи с болезнью, пункт «отпуск исчислять», пункт «всего отпуск»).

ПОВЫШЕНИЕ КВАЛИФИКАЦИИ (ПЕРЕВОД) (номер приказа об переводе, табельный номер сотрудника, ФИО сотрудника, пункт «вид перевода», прежнее место работы, новое место работы, основание перевода).

КОМАНДИРОВКИ (номер приказа об отправлении сотрудника в командировку, табельный номер сотрудника, ФИО сотрудника, структурное подразделение, занимаемую должность, место назначения, срок и цель командировки, пункт «за счет средств»).

ТАБЕЛЬ РАБОЧЕГО ВРЕМЕНИ (номер сотрудника, должность, количество отработанных дней, количество фактически отработанных дней, количество выходных, командировки, отпуска, больничные).

УВОЛЬНЕНИЕ (номер приказа об увольнении сотрудника из фирмы, дату составления приказа, дату увольнения, табельный номер сотрудника, структурное подразделение, занимаемую должность, основание, пункт «к оплате»).

http://www.bestreferat.ru/referat-215465.html

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]