Калькулятор різних систем числення - Курсовая работа

бесплатно 0
4.5 65
Розробка програми калькулятора, що може виконувати найголовніші арифметичні операції над двома числами. Вимоги до апаратного і програмного забезпечення. Опис форм та компонентів програми. Розробка алгоритмів програмного забезпечення. Опис коду програми.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
ЗМІСТ ТЕХНІЧНЕ ЗАВДАННЯ ВТСУП 1. АНАЛІЗ ІСНУЮЧИХ ПРОГРАМНИХ РІШЕНЬ 2. Головною умовою задачі є можливість вибирати систему числення для чисел, над якими будуть виконуватись математичні операції. Наприклад, досить широко була поширена дванадцяткова Items->Add(bin); _comboBox->Items->Add(oct); _comboBox->Items->Add(dec); _comboBox->Items->Add(hex); _comboBox->ItemIndex = 0; m_curNumeralSystem.insert(std::make_pair(_comboBox,NS_BIN)); } //Зміна системи числення в ComboBox void TForm1::_changeComboBoxNumeralSystem(TComboBox *_comboBox ,NumeralSystem ns){ if(ns == m_curNumeralSystem[_comboBox]){ return; } AnsiString s = m_association[_comboBox]->Text; char *editStr = new char[s.Length()]; strcpy(editStr,s.c_str()); if( strlen(editStr) != 0 ){ char temp[256]; int digit = _getDigit(editStr,m_curNumeralSystem[_comboBox]); _convertIntToStr(digit,ns,temp); m_association[_comboBox]->Text = temp; } _comboBox->ItemIndex = ns; m_curNumeralSystem[_comboBox] = ns; delete[] editStr; } //ОтриманняComboBoxпривязувань до даногоeditBox TComboBox* TForm1::_getCurComboBox(TEdit* editBox){ for (std::map::iterator it = m_association.begin(); it != m_association.end(); it) { if(it->second == editBox){ return it->first; } } return NULL; } //Отримання значенняeditBox int TForm1::getDigitFromEditBox(TEdit* edit){ AnsiString s = edit->Text; char *editStr = new char[s.Length()]; strcpy(editStr,s.c_str()); if( strlen(editStr) != 0 ){ return _getDigit(editStr,m_curNumeralSystem[_getCurComboBox(edit)]); } return 0; } // Задати значення в editBox , система числення береться та, яка стоїть в // ComboBox int TForm1::setDigitToEditBox(int digit,TEdit* editBox){ char temp[256]; TComboBox* _comboBox = _getCurComboBox(editBox); if(digit Enabled = false; _convertIntToStr(abs(digit),m_curNumeralSystem[_comboBox],temp); char result[256]; sprintf(result,-%s,temp); m_association[_comboBox]->Text = result; ] } else{ _convertIntToStr(digit,m_curNumeralSystem[_comboBox],temp); m_association[_comboBox]->Text = temp; _comboBox->Enabled = true; } } // void __fastcall TForm1::FormCreate(TObject *Sender) { editBox1IsCorrect = true; editBox2IsCorrect = true; _initComboBox(ComboBox1); _initComboBox(ComboBox2); _initComboBox(ComboBox3); m_association.insert(std::make_pair(ComboBox1,Edit1)); m_association.insert(std::make_pair(ComboBox2,Edit2)); m_association.insert(std::make_pair(ComboBox3,Edit3)); } // При будь-яких змінах в компонентах editBox, робиться їх перевірка на // правильність вводу даних void __fastcall TForm1::Edit1Change(TObject *Sender) { TEdit* editBox = (TEdit*) Sender; if(editBox == Edit3) return; TComboBox* comboBox = (TComboBox*) _getCurComboBox(editBox); bool allGood = false; AnsiString s = m_association[comboBox]->Text; char *editStr = new char[s.Length()]; strcpy(editStr,s.c_str()); if(comboBox->ItemIndex == 0){ //двійкова система числення allGood = _correctDigitInBinSystem(editStr); }else if(comboBox->ItemIndex == 1){ //вісімкова система числення allGood = _correctDigitInOctSystem(editStr); }else if(comboBox->ItemIndex == 2){ //десяткова система числення allGood = _correctDigitInDecSystem(editStr); }else if(comboBox->ItemIndex == 3){ //шіснадцяткова система числення allGood = _correctDigitInHexSystem(editStr); } // Якщо вхідні дані введені не вірно, то фокусуєтьсяeditBox з невірними даними if(!.

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?