Системы счисления, переводы чисел

Автор работы: Пользователь скрыл имя, 15 Мая 2015 в 16:20, курсовая работа

Описание работы

Целью курсовой работы является разработка программного продукта для перевода чисел из одной системы исчисления в другую.
Для достижения поставленной цели были установлены следующие целевые задачи:
Изучение и анализ систем счисления;
Изучить различные виды системы счисления;
Научиться правилу перевода из одной системы счисления в другую;
Реализовать интерфейс простой и приятный пользователю.

Содержание работы

Введение…………………………………………………………………….…….2
Глава 1.История развития систем счисления……..………………………..3
Зарождение систем счисления………………………………………………3
Образование десятичной системы счисления……………………………....6
Глава 2. Системы счисления…………….…………………………………..7
2.1Позиционные и непозиционные системы счисления………………………7
2.2 Двоичная(бинарная) система счисления…………………………………….8
2.3. Восьмеричная система счисления…………………………………………..9
2.4. Десятеричная система счисления…………………………………………...9
2.5. Шестнадцатеричная система счисления………………………………..…10
2.6 Представление двоичных чисел и перевод их в десятичные……………11
2.7 Преобразование десятичных чисел в двоичные…………………………..12
2.8 Метод деления………………………………………………………………12
2.9 Метод умножения…………………………………………………………..13
2.10Арифметические операции с числами в позиц-х системах счисления….15
Глава 3.Создание программного модуля…….…………………………...19 3 .1Постановка задачи……………….……………………………………….…19
3.2Внешнее проектирование программы……….…………………...…….…15
3.4Кодирование и отладка программы……………………………...….…..…21
3.5 Исходный код программы……………………………………………..…..23
Заключение……………………………………………………………….….….33
Список литературы………………………………………..…………………....34

Файлы: 1 файл

Тема курсового проекта (работы) «Системы счисления, переводы чисел».docx

— 262.92 Кб (Скачать файл)

privateSystem.Windows.Forms.ToolStripMenuItemменюToolStripMenuItem;

privateSystem.Windows.Forms.ToolStripMenuItemпомощьToolStripMenuItem;

privateSystem.Windows.Forms.ToolStripMenuItemвыходToolStripMenuItem;

privateSystem.Windows.Forms.ToolStripMenuItemоПрограммеToolStripMenuItem;

privateSystem.Windows.Forms.ToolStripMenuItemобщееСведениеОСистемахСчистленияToolStripMenuItem;

privateSystem.Windows.Forms.Label label5;

privateSystem.Windows.Forms.Button button2;

privateSystem.Windows.Forms.Button button3;

 

В разделе описания идентификаторов внесены следующие пункты:

Form1: TForm1; {форма окна}

 

 

3.5Исходный кодпрограммы

Фукнционал для для перевод чисел в различных систем счисления:

// Подключение пространств имен

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

namespace WindowsFormsApplication1

{

// Созданиеклассаформы

publicpartialclassForm1 : Form

    {

public Form1()

        {

InitializeComponent();// инициализациякомпонентов

        }

// Обработчикнажатиянакнопку “Перевести”

privatevoid button1_Click(object sender, EventArgs e)

{

// входные данные

intx = 0;

inty = 0;

int numeric1 = (Int32) numericUpDown1.Value;

int numeric2 = (Int32)numericUpDown2.Value;

string m = "";

intsch = 0;

 

string k = "";

int v = 0;

// Условиеконтроляввода

if(textBox1.Text.Trim() != "")

if (numeric1 == 10) // если 10-ричная система счисления

{

x = Convert.ToInt32(textBox1.Text);// значениевведенноепользователем

while (x> 0)// Основной цикл для перевода

                {

if (x % numeric2 != 0) //если делится с остатком

{

                        y = x % numeric2;

k = y.ToString();

if (numeric2 > 9)// условиедля 16-ричности

                        {

switch (y)

                            {

case 10: k = "A"; break;

case 11: k = "B"; break;

case 12: k = "C"; break;

case 13: k = "D"; break;

case 14: k = "E"; break;

case 15: k = "F"; break;

case 16: k = "G"; break;

case 17: k = "H"; break;

case 18: k = "I"; break;

case 19: k = "J"; break;

case 20: k = "K"; break;

case 21: k = "L"; break;

case 22: k = "M"; break;

case 23: k = "N"; break;

case 24: k = "O"; break;

case 25: k = "P"; break;

case 26: k = "Q"; break;

case 27: k = "R"; break;

case 28: k = "S"; break;

case 29: k = "T"; break;

case 30: k = "V"; break;

case 31: k = "W"; break;

case 32: k = "X"; break;

                            }

                        }

                        m = m.Insert(0, k);

                    }

else

                        m = m.Insert(0, "0");

                    x = x / numeric2;

}

            }

else//для остальных систем счисления

            {               

                textBox1.Text = textBox1.Text.ToUpper(); //Перевод всех букв в заглавные.

char[] b = textBox1.Text.ToCharArray();

int j = b.Length - 1;

for (inti = 0; i<b.Length; i++)//циклдляпереводасn-ричнойсистемыв 10-ричную

{

switch (b[i])

                    {

case'0': v = 0; break;

case'1': v = 1; break;

case'2': v = 2; break;

case'3': v = 3; break;

case'4': v = 4; break;

case'5': v = 5; break;

case'6': v = 6; break;

case'7': v = 7; break;

case'8': v = 8; break;

case'9': v = 9; break;

case'A': v = 10; break;

case'B': v = 11; break;

case'C': v = 12; break;

case'D': v = 13; break;

case'E': v = 14; break;

case'F': v = 15; break;

case'G': v = 16; break;

case'H': v = 17; break;

case'I': v = 18; break;

case'J': v = 19; break;

case'K': v = 20; break;

case'L': v = 21; break;

case'M': v = 22; break;

case'N': v = 23; break;

case'O': v = 24; break;

case'P': v = 25; break;

case'Q': v = 26; break;

case'R': v = 27; break;

case'S': v = 28; break;

case'T': v = 29; break;

case'V': v = 30; break;

case'W': v = 31; break;

case'X': v = 32; break;

default: break;

                    }

 

sch += v * Convert.ToInt32(Math.Pow(numeric1,j)); //Переводиз n-ричнойсистемыв 10-ричную

j--;

                }

x = sch;

while (x > 0)

{

if (x % numeric2 != 0) //если делится с остатком

{

 

                        y = x % numeric2;

                        k = y.ToString();

if (numeric2 > 9)

                        {

switch (y) //

                            {

case 10: k = "A"; break;

case 11: k = "B"; break;

case 12: k = "C"; break;

case 13: k = "D"; break;

case 14: k = "E"; break;

case 15: k = "F"; break;

case 16: k = "G"; break;

case 17: k = "H"; break;

case 18: k = "I"; break;

case 19: k = "J"; break;

case 20: k = "K"; break;

case 21: k = "L"; break;

case 22: k = "M"; break;

case 23: k = "N"; break;

case 24: k = "O"; break;

case 25: k = "P"; break;

case 26: k = "Q"; break;

case 27: k = "R"; break;

case 28: k = "S"; break;

case 29: k = "T"; break;

case 30: k = "V"; break;

case 31: k = "W"; break;

case 32: k = "X"; break;

                            }

}

                        m = m.Insert(0, k); //добавляет символ в начало строки

}

else

                        m = m.Insert(0, "0");

                    x = x / numeric2;

}

            }

textBox2.Text = m;

        }

//Процедуразагрузкиформы

privatevoid Form1_Load(object sender, EventArgs e)

        {

 

        }

//Обработчикнажатиянапунктменю

privatevoidменюToolStripMenuItem_Click(object sender, EventArgs e)

{

 

        }

//Обработчик нажатия на пункт меню «О программе»

privatevoidоПрограммеToolStripMenuItem_Click(object sender, EventArgs e)

        {

newForm2().ShowDialog();

        }

//Обработчикнажатиянапунктменю«Выход»

privatevoidвыходToolStripMenuItem_Click(object sender, EventArgs e)

{

this.Close();

        }

//Обработчикнажатиянакнопку очистки

privatevoid button2_Click(object sender, EventArgs e)

{

textBox1.Text = "";

textBox2.Text = "";

        }

//Обработчикнажатиянакнопку переставления введенного и полученного чисел и смены систем счисления

privatevoid button3_Click(object sender, EventArgs e)

        {

string t = "";

intnum = 0;

            t = textBox1.Text;

            textBox1.Text = textBox2.Text;

            textBox2.Text = t;

num = (int) numericUpDown1.Value;

            numericUpDown1.Value = numericUpDown2.Value;

            numericUpDown2.Value = num;

        }

//Обработчикнажатиянапунктменю«Общие сведения»

privatevoidобщееСведениеОСистемахСчистленияToolStripMenuItem_Click(object sender, EventArgs e)

{

newForm3().ShowDialog();

        }

Функционалдляарифметическихдействий:

//Обработчикнажатиянакнопку «Решать» 
privatevoid button1_Click(object sender, EventArgs e)

{

int x = 0;// первое значение

int y = 0;// второе значение

int u = 0;// вспомогательная переменнаят(остаток при делении)

intsch = 0;

char sign = Convert.ToChar(label6.Text.Trim());

int numeric = (Int32)numericUpDown1.Value;

string m = "";

string k = "";

int v = 0;

if (textBox1.Text.Trim() != ""&& textBox3.Text.Trim() != "")

if (numeric == 10) // если 10-ричнаясистемасчисления

                {

 

                    x = Convert.ToInt32(textBox1.Text);

                    y = Convert.ToInt32(textBox3.Text);

switch (sign)

                    {

case'+': sch = x + y; break;

case'-': sch = x - y; break;

case'*': sch = x * y; break;

case'/': sch = x / y; break;

}

                }

else//для остальных систем счисления

                {

 

                    textBox1.Text = textBox1.Text.ToUpper(); //Перевод всех букв в заглавные.

                    textBox3.Text = textBox3.Text.ToUpper(); //Перевод всех букв в заглавные.

char[] b = textBox1.Text.ToCharArray();

int j = b.Length - 1;

for (inti = 0; i<b.Length; i++)

                    {

switch (b[i])

                        {

 

case'0': v = 0; break;

case'1': v = 1; break;

case'2': v = 2; break;

case'3': v = 3; break;

case'4': v = 4; break;

case'5': v = 5; break;

case'6': v = 6; break;

case'7': v = 7; break;

case'8': v = 8; break;

case'9': v = 9; break;

case'A': v = 10; break;

case'B': v = 11; break;

case'C': v = 12; break;

case'D': v = 13; break;

case'E': v = 14; break;

case'F': v = 15; break;

case'G': v = 16; break;

case'H': v = 17; break;

case'I': v = 18; break;

case'J': v = 19; break;

case'K': v = 20; break;

case'L': v = 21; break;

case'M': v = 22; break;

case'N': v = 23; break;

case'O': v = 24; break;

case'P': v = 25; break;

case'Q': v = 26; break;

case'R': v = 27; break;

case'S': v = 28; break;

case'T': v = 29; break;

case'U': v = 30; break;

case'V': v = 31; break;

case'W': v = 32; break;

case'X': v = 33; break;

case'Y': v = 34; break;

default: break;

                        }

 

sch += v * Convert.ToInt32(Math.Pow(numeric, j)); //Переводиз n-ричнойсистемыв 10-ричную

j--;

                    }

                    x = sch;

 

sch = 0;

char[] a = textBox3.Text.ToCharArray();

int p = a.Length - 1;

for (inti = 0; i<a.Length; i++)

                    {

switch (a[i])

                        {

 

case'0': v = 0; break;

case'1': v = 1; break;

case'2': v = 2; break;

case'3': v = 3; break;

case'4': v = 4; break;

case'5': v = 5; break;

case'6': v = 6; break;

case'7': v = 7; break;

case'8': v = 8; break;

case'9': v = 9; break;

case'A': v = 10; break;

case'B': v = 11; break;

case'C': v = 12; break;

case'D': v = 13; break;

case'E': v = 14; break;

case'F': v = 15; break;

case'G': v = 16; break;

case'H': v = 17; break;

case'I': v = 18; break;

case'J': v = 19; break;

case'K': v = 20; break;

case'L': v = 21; break;

case'M': v = 22; break;

case'N': v = 23; break;

case'O': v = 24; break;

case'P': v = 25; break;

case'Q': v = 26; break;

case'R': v = 27; break;

case'S': v = 28; break;

case'T': v = 29; break;

case'U': v = 30; break;

case'V': v = 31; break;

case'W': v = 32; break;

case'X': v = 33; break;

case'Y': v = 34; break;

default: break;

                        }

 

sch += v * Convert.ToInt32(Math.Pow(numeric, p)); //Переводиз n-ричнойсистемыв 10-ричную

p--;

                    }

 

                    y = sch;

 

switch (sign)

                    {

case'+': sch = x + y; break;

case'-': sch = x - y; break;

case'*': sch = x * y; break;

case'/': sch = x / y; break;

}

 

while (sch> 0) // цикл для перевода с 10 - го на n-ричную систему

                    {

if (sch % numeric != 0) //если делится с остатком

{

 

                            u = sch % numeric;

                            k = u.ToString();

if (numeric > 9)

                            {

switch (u) //

                                {

case 10: k = "A"; break;

case 11: k = "B"; break;

case 12: k = "C"; break;

case 13: k = "D"; break;

case 14: k = "E"; break;

case 15: k = "F"; break;

case 16: k = "G"; break;

case 17: k = "H"; break;

case 18: k = "I"; break;

case 19: k = "J"; break;

case 20: k = "K"; break;

case 21: k = "L"; break;

case 22: k = "M"; break;

case 23: k = "N"; break;

case 24: k = "O"; break;

case 25: k = "P"; break;

case 26: k = "Q"; break;

case 27: k = "R"; break;

case 28: k = "S"; break;

case 29: k = "T"; break;

case 30: k = "U"; break;

case 31: k = "V"; break;

case 32: k = "W"; break;

case 33: k = "X"; break;

case 34: k = "Y"; break;

}

                            }

                            m = m.Insert(0, k); //добавляет символ в начало строки

                        }

else

                            m = m.Insert(0, "0");

sch = sch / numeric;

                    }

 

 

                }

            textBox2.Text = m.ToString();

        }

//Обработчикнажатияна кнопку «Стререть»

privatevoid button6_Click(object sender, EventArgs e)

        {

            textBox1.Text = "";

            textBox2.Text = "";

            textBox3.Text = "";

}

    }

}

 

 

 

 

 

 

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

В выполненной курсовой работе был представлен метод перевода чисел из одной системыисчисления в другие. На базе изученного теоретического материала в работы были выделены:

    1. основы систем счисления;
    2. принципы реализации перевода из десятичной в двоичную систему счисления;
    3. проблемы изучения данной темы в школьном курсе информатики.

Реализованная демонстрационнаяучебная программа позволяет выполнить:

    1. перевод числа из одной системы исчисление в другую с основаниями от 2 до 32.

Подобные демонстрации могут быть реализованы для разных баз систем счисление и с успехом применены в процессе преподавания.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список используемой литературы

  1. http://iguania.ru/stati-po-programmirovaniiu/sistemi-schisleniya.html.
  2. Гашков С. Б. Системы счисления и их применение Издательство: МЦНМО. 2012г.
  3. Джесси Рассел Двоичная система счисления Издательство:Книга по требованию. 2012г.
  1. Культин Н. Б. MicrosoftVisual C# в задачах и примерахИздательство: БХВ-Петербург. 2009г.

  1. http://www.coolreferat.com/
  2. http://www.kursachi.by/gotovye-raboty/kursovye-raboty/programmirovanie-1/informatika-i-programmirovanie-1/pozicionnye-sistemy-schisleniya/

 

 

 

 


Информация о работе Системы счисления, переводы чисел