Разработка программы перевода чисел

Автор работы: Пользователь скрыл имя, 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

Содержимое работы - 1 файл

Курсовая.docx

— 4.23 Мб (Скачать файл)

           ;

       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(Sender: TObject);

     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(opendialog1.FileName);

     end;

     procedure TfrmMain.N4Click(Sender: TObject);

     begin

       if savedialog1.Execute then

         memo1.Lines.SaveToFile(SAVEdialog1.FileName);

     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

Информация о работе Разработка программы перевода чисел