none
Системы счисления)) RRS feed

  • Вопрос

  • Сделал кое как программу по переводу чисел из одной системы счисления в другую, но возникла проблема с написанием пользователького интерфеса. Я совершенно незнаю как это делать. Может кто, мне помоч с его написанием и обяснить как под мою програмку подогнать интерфейс, либо наоборот интерфейс под програмку.

    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    #include <string.h>
    #include <iostream>
    #pragma hdrstop
    #pragma argsused

    int CharToInt(char alpha)
    {
    if(alpha<58 )
    return alpha - 48;
    else
    return alpha - 55;
    }

    int ConvertToDec(char *input , int sinp )
    {
    int sum = 0;
    int pow = 1;
    for(int i = strlen(input)-1; i>=0; i--)
    {
    sum+=CharToInt(input[i]) * pow;
    pow*=sinp;
    }
    return sum ;
    }

    char *convertX(int input, int sout, char *out)
    {
    while(input!=0)
    {
    int j = input%sout;
    input/=sout;
    out--;
    if(j<10)
    *out = 48 + j;
    else
    *out = 55 + j;
    }
    return out;
    }

    int main(int argc, char* argv[])
    {
    setlocale(LC_ALL, "Russian");
    printf("Введите исходное число: " );
    char input[32] = "";
    scanf("%s", &input);

    printf("\nВведите начальную кодировку: ");
    int sinp;
    scanf("%i", &sinp);

    printf("\nВведите конечную кодировку: ");
    int sout;
    scanf("%i", &sout);

    printf("\n\n= ");

    char output[32];
    output[31] = 0;
    printf("%s", convertX(ConvertToDec(input, sinp), sout, output+31));

    printf("\n\nДля выхода нажмите любую клавишу... (c)Avarus");
    getch();
    return 0;
    }

    заранее спасибо)




Ответы

  • 	//попробуйте следующий вариант ввода
    	private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
    		try
    		{
    			// простой разбор строки - считывание целого числа
    			// строка должна содержать целое число
    			String^ text=textBox1->Text;
    			int sinp= System::Int32::Parse(text);
    		}
    		catch(Exception^ e)
    		{
    			//Уведомление пользователя.
    			String^ text=L"СС - sinp - целое число";
    			textBox1->Clear();
    			textBox1->Text = text;
    		}
    	 }
    
    
    • Помечено в качестве ответа Avarus 29 мая 2011 г. 9:42

Все ответы

  • Добрый вечер.

    Ваша программа практически написана на С.
    Пользовательский интерфейс Вы тоже на С собираетесь писать ?
    -------
    Сообщите дополнительно:
    1. Какая у Вас студия?
    2. Какие языки программирования Вы собираетесь использовать.
    (Если ограничений нет - может Вам на C# перейти ?)

  • Добрый)) 

    Да желательно на С написать интерфейс.

    Написана в  10 студии, в С++.

    Ограничения есть, но С# в рамках, так что его я могу использовать.

    Можно впринципе даже на билдере.

    Но я с пользовательским интерфейсом вообще никак, так что поэтому и обратился.

    Может мне кто поможет его написать или объясни все, как чайнику.

    -------------------------------------------------------------------------------------------------

    Это обычный конвертер, там должно быть окошко ввода, выбор сс исходной и конечной, и конечно  кнопочка старт после которой идет вывод ответа. Только еще надо чтобы из-за выбора сс был контроль за вводом.

    Мне сказали все это сделать, но забыли объяснить как)))

     

     


  • Добрый день.

    Интерфейсы в VS 2010 с окошками ввода-вывода и другими элементами управления:
    На С++, С#
     Приложение Windows Form
    ----
    На С++
     MFC - На основе диалоговых окон
    ----
    Попробуйте визуальное проектирование средствами студии.
    Элементы управления выбираются в "Панели элементов"
    ---------
    Код можно добавлять после размещения элементов управления.
    ---------
    P.S. Контроль за вводом - реализуется отдельно (способы зависят от типа выбранного приложения).

  • Добрый день.

    Интерфейсы в VS 2010 с окошками ввода-вывода и другими элементами управления:
    На С++, С#
     Приложение Windows Form
    ----
    На С++
     MFC - На основе диалоговых окон
    ----
    Попробуйте визуальное проектирование средствами студии.
    Элементы управления выбираются в "Панели элементов"
    ---------
    Код можно добавлять после размещения элементов управления.
    ---------
    P.S. Контроль за вводом - реализуется отдельно (способы зависят от типа выбранного приложения).


    #pragma endregion
    private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
    {
    //Эээээээээ

    }
    private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e)
    {
    //текст бокс 1
    textBox1->sinp = int sinp;
    scanf("%i", &sinp);
    }
    private: System::Void textBox2_TextChanged(System::Object^ sender, System::EventArgs^ e)
    {
    //текст бокс 2
    textBox2->sout = int sout;
    scanf("%i", &sout);
    }
    private: System::Void textBox3_TextChanged(System::Object^ sender, System::EventArgs^ e)
    {
    //текст бокс 3
    textBox3->input = char input[32] = "";
    scanf("%s", &input);
    char output[32];
    output[31] = 0;
    printf("%s", convertX(ConvertToDec(input, sinp), sout, output+31));
    }
    private: System::Void label1_Click(System::Object^ sender, System::EventArgs^ e)
    {
    //Lable

    }
    private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
    {
    //Start

    }
    };
    }
  • Создал эти окошки и вот их код я не знаю что туда писать чтобы оно работало.

    Окошки есть, нужно вписать код, так чтобы они работали с программой, а я незнаю как.

    Вот попробовал вписать так но совершенно не в курсе так надо или нет.

  • Форум из обсуждений нетривиальных и довольно сложных вопросов превратился в "напишите студенту программу для зачета, ибо ему учебник для начинающих лень читать".

  • 	//попробуйте следующий вариант ввода
    	private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
    		try
    		{
    			// простой разбор строки - считывание целого числа
    			// строка должна содержать целое число
    			String^ text=textBox1->Text;
    			int sinp= System::Int32::Parse(text);
    		}
    		catch(Exception^ e)
    		{
    			//Уведомление пользователя.
    			String^ text=L"СС - sinp - целое число";
    			textBox1->Clear();
    			textBox1->Text = text;
    		}
    	 }
    
    
    • Помечено в качестве ответа Avarus 29 мая 2011 г. 9:42
  • Добрый день, OlegGel.


    Если Вам вопрос не интересен - попробуйте его не просматривать (тема всегда видна).
    Качество форумов обеспечивается модераторами...
    Мнения - лучше высказывать в Избе...

  • Что-то получается, и кажется скоро может сделаю.

    Ладно спасибо большое, подскажите только книжку еще в которой это написано понятно)))))

    Чтобы я дальше сюда не лазил постоянно))

    Спасибо "1 'Без Петрова и сыновей' "))) помог)))

    OlegGel бяка, многие книги так написаны что лучше бы их не читать)))) еще больше потом вопросов и никаких ответов)))))

  • Насчёт литературы по С++ с Windows Forms затрудняюсь подсказать.
    Может быть другие посоветуют ?

    Попробуйте посмотреть документацию.
    Вам могут понадобиться другие функции из System

    Желаю успехов.