Автор работы: Пользователь скрыл имя, 20 Декабря 2011 в 05:05, курсовая работа
Тема курсовой работы звучит так: разработка программы перевода чисел между системами счисления.
Целью курсовой работы является разработка программы, которая переводила бы числа одной системы счисления в любую другую, заданную пользователем программы и могла сохранять или открывать полученные результаты. Кроме того, она должна содержать в себе справочный материал для пользователя программы.
Введение 3
1 Теоретические основы разработки 4
1.1 Системные требования 4
1.2 Техническое задание 4
1.3 Жизненный цикл 5
1.3.1 Схемы модели ЖЦ ПО 5
1.3.2 Другие типы моделей ЖЦ ПО 10
1.3.3 Процессы жизненного цикла ПО 12
1.4 Проектирование программного обеспечения 15
2 Практические основы разработки 16
2.1 Реализация программного продукта 16
2.1.1 Описание программного кода 21
2.2 Тестирование и отладка программного продукта 28
2.3 Достоинства и недостатки программного продукта 29
2.4 Руководство пользователя 29
Заключение 31
Список использованных источников 32
Приложение А - UML - диаграмма программы 33
Приложение Б - Программный код 35
Приложение В - Презентация 43
;
Sign := 1;
if aStrXcimal[1] in ['+', '-'] then
begin
if aStrXcimal[1] = '-' then
Sign := -1;
StrXcimal := Copy(aStrXcimal, 2, Length(aStrXcimal) - 1);
end
else
begin
StrXcimal := aStrXcimal;
end;
Pos1 := Pos('.', StrXcimal);
if Pos1 = 0 then
Pos1 := Pos(',', StrXcimal)
;
if Pos1 = 0 then
begin
StrInt := StrXcimal;
StrFrac := '';
end
else
begin
StrInt := Copy(StrXcimal, 1, Pos1 - 1);
StrFrac := Copy(StrXcimal, Pos1 + 1, Length(StrXcimal) - Pos1);
end;
IntPart := 0;
Weight := 1;
for i := Length(StrInt) downto 1 do
begin
IntPart := IntPart + DigitToInt(StrInt[i], aBase) * Weight;
Weight := Weight * aBase;
end;
FracPart := 0;
Weight := 1;
for i := 1 to Length(StrFrac) do
begin
Weight := Weight * aBase;
FracPart := FracPart + DigitToInt(StrFrac[i], aBase) / Weight;
end;
Result := Sign * (IntPart + FracPart);
end;
function XcimalStrToYcimalStr(
aSrcBase: Byte;
aSrcNumStr: string;
aTrgBase: Byte;
aTrgPrecision: Byte
): string;
var
SrcNum: Extended;
StrSign: string;
IntPart: Int64;
FracPart: Extended;
StrInt: string;
StrFrac: string;
i: Integer;
TempNum: Extended;
begin
SrcNum := XcimalStrToNumber(aSrcNumStr, aSrcBase);
StrSign := '';
if SrcNum < 0 then
begin
SrcNum := -SrcNum;
StrSign := '-';
end;
IntPart := Trunc(SrcNum);
FracPart := Frac(SrcNum);
StrInt := '';
repeat
StrInt := IntToDigit(IntPart mod aTrgBase) + StrInt;
IntPart := IntPart div aTrgBase;
until IntPart = 0;
if FracPart = 0 then
begin
Result := StrSign + StrInt;
exit;
end;
StrFrac := '';
for i := 1 to aTrgPrecision do
begin
TempNum := FracPart * aTrgBase;
StrFrac := StrFrac + IntToDigit(Trunc(TempNum));
FracPart := Frac(TempNum);
if FracPart = 0 then
Break;
end;
Result := StrSign + StrInt + DecimalSeparator + StrFrac;
end;
procedure
TfrmMain.EdSrcNumChange(
begin
Restart8(Self);
Label9.Caption := '';
end;
procedure TfrmMain.BitBtn1Click(Sender: TObject);
var
TrgPrecision, i, s: Integer;
begin
try
Memo1.Text := XcimalStrToYcimalStr(
StrToInt(EdSrcBase.Text),
EdSrcNum.Text,
StrToInt(EdTrgBase.Text),
TrgPrecision
);
except
Label9.Caption := 'Неверное число';
EdSrcNum.SetFocus;
end;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
Memo1.Visible := true;
end;
procedure TfrmMain.N3Click(Sender: TObject);
begin
if opendialog1.execute then
memo1.Lines.loadFromFile(
end;
procedure TfrmMain.N4Click(Sender: TObject);
begin
if savedialog1.Execute then
memo1.Lines.SaveToFile(
end;
procedure TfrmMain.N5Click(Sender: TObject);
begin
close;
end;
procedure TfrmMain.N6Click(Sender: TObject);
begin
shellexecute(0, nil, PChar('Help.chm'), nil, nil, sw_normal);
end;
end.
Приложение В
(обязательное)
Презентация
Рисунок В.1
Рисунок
В.2
Рисунок В.3
Рисунок
В.4
Рисунок В.5
Рисунок
В.6
Рисунок В.7
Рисунок В.8
Рисунок В.9
Рисунок В.10
Рисунок В.11
Рисунок В.12
Рисунок В.13
Рисунок В.14
Рисунок В.15
Рисунок В.16
Рисунок В.17
Рисунок В.18
Рисунок В.19
Рисунок В.20
Рисунок В.21
Рисунок В.22
Рисунок В.23