Автор работы: Пользователь скрыл имя, 14 Декабря 2011 в 20:46, курсовая работа
Быстро увеличивается число ЭВМ, находящихся в эксплуатации, и возрастает их сложность. В результате растет численность обслуживающего персонала и повышаются требования к его квалификации. Увеличение надежности машин приводит к тому, что поиск и замена устаревших элементов и ремонт их производятся сравнительно редко. Поэтому наряду с повышением надежности машин наблюдается тенденция потери эксплуатационным персоналом определенных навыков отыскания и устранения неисправностей.
Введение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 5
1.Обзор и анализ подобных программ и выбор языка программирования . . . .7
Обзор и анализ подобных программ . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
1.2. Актуальность задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
1.3. Выбор языка программирования. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..17
2. Выбор модели жизненного цикла. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1. Каскадная модель жизненного цикла. . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
2.2 Спиральная модель жизненного цикла. . . . . . . . . . . . . . . . . . . . . . . . . . .. .29
3. Разработка алгоритмов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
3.1 Рассмотрение алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4. Эксплуатационная часть . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..38
4.1 Руководство программисту. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...39
4.2 Руководство пользователю. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
Заключение…………………………………………………………………………44
Используемая литература………………………………………………………….45
Перечень файлов на диске…………………………
Button17: TButton;
ListBox3: TListBox;
Button18: TButton;
Button19: TButton;
Memo6: TMemo;
OpenDialog1: TOpenDialog;
OpenDialog2: TOpenDialog;
btn1: TButton;
mmom: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Timer3Timer(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Timer4Timer(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
procedure Button21Click(Sender: TObject);
procedure Button22Click(Sender: TObject);
procedure Button23Click(Sender: TObject);
procedure Button24Click(Sender: TObject);
procedure
btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TWinVersion = (wvUnknown,
wv95, wv98, wvME, wvNT3, wvNT4, wvW2K, wvXP);
var
Form1: TForm1;
Computer: Array[1..100] of String[25];
ComputerCount : Integer;
MemoryStatus : TMemoryStatus;
implementation
{$R *.dfm}
const
DRIVER_INFORMATION
= 11;
type
TPDWord = ^DWORD;
TDriverInfo = packed record
Address: Pointer;
Unknown1: DWORD;
Unknown2: DWORD;
EntryIndex: DWORD;
Unknown4: DWORD;
Name: array [0..MAX_PATH + 3] of Char;
end;
var
NtQuerySystemInformation: function (infoClass: DWORD;
buffer: Pointer;
bufSize: DWORD;
returnSize: TPDword):
DWORD; stdcall = nil;
const SHFMT_DRV_A = 0;
const SHFMT_DRV_B = 1;
const SHFMT_ID_DEFAULT = $FFFF;
const SHFMT_OPT_QUICKFORMAT = 0;
const SHFMT_OPT_FULLFORMAT = 1;
const SHFMT_OPT_SYSONLY = 2;
const SHFMT_ERROR = -1;
const SHFMT_CANCEL = -2;
const SHFMT_NOFORMAT = -3;
function GetDriverInfo: string;
var
temp, Index, numBytes, numEntries: DWORD;
buf: TPDword;
driverInfo: ^TDriverInfo;
begin
if @NtQuerySystemInformation = nil then
NtQuerySystemInformation := GetProcAddress(
'NtQuerySystemInformation');
// Obtain required buffer size
NtQuerySystemInformation(
// Allocate buffer
buf := AllocMem(numBytes
* 2);
NtQuerySystemInformation(
numEntries := buf^;
driverInfo := Pointer(DWORD(buf) + 12);
Result := '';
for Index := 1 to numEntries do
begin
Result:= Result + '#0$D#0$A'+'Address: $' + IntToHex(DWORD(driverInfo^.
'Name: "' + (driverInfo^.Name) + '"'+#10+#13;
Inc(driverInfo);
end;
Delete(Result, 1, 2);
FreeMem(buf);
end;
function GetFileDate(FileName:
string): string;
var
FHandle: Integer;
begin
FHandle := FileOpen(FileName, 0);
try
Result :=
DateTimeToStr(
finally
FileClose(FHandle);
end;
end;
function SHFormatDrive(hWnd : HWND;
Drive : Word;
fmtID : Word;
Options : Word) : Longint
stdcall; external 'Shell32.dll' name 'SHFormatDrive';
function IPAddrToName(IPAddr : String): String;
var
SockAddrIn: TSockAddrIn;
HostEnt: PHostEnt;
WSAData: TWSAData;
begin
WSAStartup($101, WSAData);
SockAddrIn.sin_addr.s_addr:= inet_addr(PChar(IPAddr));
HostEnt:= gethostbyaddr(@SockAddrIn.sin_
if HostEnt<>nil then
begin
result:=StrPas(Hostent^.h_
end
else
begin
result:='';
end;
end;
function DoIExist(WndTitle : String) : Boolean;
var
hSem : THandle;
hWndMe,
hWndPrev : HWnd;
semNm,
wTtl : Array[0..256] of Char;
begin
Result := False;
//Copy the Pascal strings into the Arrays of Char;
StrPCopy(semNm, 'SemaphoreName');
StrPCopy(wTtl, WndTitle);
//Create a Semaphore in memory
hSem := CreateSemaphore(nil, 0, 1, semNm);
//Now, check to see if the semaphore exists
if ((hSem <> 0) AND (GetLastError() = ERROR_ALREADY_EXISTS)) then begin
CloseHandle(hSem);
//We'll first get the currently executing window's handle then change its title
//so we can look for the other instance
hWndMe := FindWindow(nil, wTtl);
SetWindowText(hWndMe, 'zzzzzzz');
//What we want to do now is search for the other instance of this window
//then bring it to the top of the Z-order stack.
hWndMe := FindWindow(nil, wTtl);
if (hWndMe <> 0) then begin
if IsIconic(hWndMe) then
ShowWindow(hWndMe, SW_SHOWNORMAL)
else
SetForegroundWindow(hWndMe);
end;
Result := True;
//Could put the Halt here, instead of in the FormCreate method,
//unless you want to do some extra processing.
//Halt;
end;
end;
procedure ShowDesktop(const YesNo : boolean);
var h : THandle;
begin
h := FindWindow('ProgMan', nil);
h := GetWindow(h, GW_CHILD);
if YesNo = True then
ShowWindow(h, SW_SHOW)
else
ShowWindow(h, SW_HIDE);
end;
procedure FindAllComputers(Workgroup: String);
Var EnumHandle: THandle;
WorkgroupRS : TNetResource;
Buf: Array[1..500] of TNetResource;
BufSize:cardinal; Entries:cardinal;
Result : Integer;
begin ComputerCount := 0;
Workgroup := Workgroup + #0;
FillChar(WorkgroupRS, SizeOf(WorkgroupRS) , 0);
With WorkgroupRS do begin
dwScope := 2;
dwType := 3;
dwDisplayType := 1;
dwUsage := 2;
lpRemoteName := @Workgroup[1];
end;
WNetOpenEnum( RESOURCE_GLOBALNET,
Repeat
Entries := 1;
BufSize := SizeOf(Buf);
Result :=WNetEnumResource(
EnumHandle,Entries,@Buf,
If (Result = NO_ERROR) and (Entries = 1) then
begin
Inc( ComputerCount );
Computer[ ComputerCount ] := StrPas(Buf[1].lpRemoteName);
end;
Until (Entries <> 1) or (Result <> NO_ERROR);
WNetCloseEnum( EnumHandle );
end; { Find All Computers }
function GetCurrentUserName: string;
const
cnMaxUserNameLen = 254;
var
sUserName: string;
dwUserNameLen: DWORD;
begin
dwUserNameLen := cnMaxUserNameLen - 1;
SetLength(sUserName, cnMaxUserNameLen);
GetUserName(PChar(sUserName), dwUserNameLen);
SetLength(sUserName, dwUserNameLen);
Result := sUserName;
end;
function GetComputerNetName: string;
var
buffer: array[0..255] of char;
size: dword;
begin
size := 256;
if GetComputerName(buffer, size) then
Result := buffer
else
Result := ''
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
button4.Enabled:=true;
memo3.Clear;
button5.Enabled:=false;
button6.Enabled:=false;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
if savedialog1.Execute then
memo1.Lines.SaveToFile(
end;
procedure TForm1.Button1Click(Sender: TObject);
const TokenSize = 800; // (SizeOf(Pointer)=4 *200)
var
hToken: THandle;
pTokenInfo: PTOKENPRIVILEGES;
ReturnLen: Cardinal;
i: Integer;
PrivName: PChar;
DisplayName: PChar;
NameSize: Cardinal;
DisplSize: Cardinal;
LangId: Cardinal;
begin
memo2.Lines.Clear;
edit1.text:=
edit2.text:= GetCurrentUserName;
GetMem(pTokenInfo, TokenSize);
if not OpenProcessToken(
hToken) then ShowMessage('OpenProcessToken error');
if not GetTokenInformation(hToken, TokenPrivileges, pTokenInfo, TokenSize, ReturnLen) then
Информация о работе Автоматизация отдела маркетинга, рекламы и ИТ “Завод-ВТО”