Автор работы: Пользователь скрыл имя, 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
privateSystem.Windows.Forms.To
privateSystem.Windows.Forms.To
privateSystem.Windows.Forms.To
privateSystem.Windows.Forms.To
privateSystem.Windows.Forms.To
privateSystem.Windows.Forms.La
privateSystem.Windows.Forms.Bu
privateSystem.Windows.Forms.Bu
В разделе описания идентификаторов внесены следующие пункты:
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-
{
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(
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менюToolStripMenuIt
{
}
//Обработчик нажатия на пункт меню «О программе»
privatevoidоПрограммеToolStrip
{
newForm2().ShowDialog();
}
//
privatevoidвыходToolStripMenuI
{
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общееСведениеОСисте
{
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.
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(
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(
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 = "";
}
}
}
В выполненной курсовой работе был представлен метод перевода чисел из одной системыисчисления в другие. На базе изученного теоретического материала в работы были выделены:
Реализованная демонстрационнаяучебная программа позволяет выполнить:
Подобные демонстрации могут быть реализованы для разных баз систем счисление и с успехом применены в процессе преподавания.