Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переделать Qvector в массивы 
:(
    Опции темы
Testero
Дата 22.10.2012, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.10.2012

Репутация: нет
Всего: нет



Здравствуйте, мне нужна помощь в следующем - у меня программа реализует перевод систем счисления из dec в hex, octal, bin. Реализовано путем Qvector, но надо реализовать через массивы, при изменении на обычные массивы с i(который реализует подсчет) вылетает ошибка. Кто сможет помочь с реализацией через обычные массивы, буду признателен. 

Вот код с Qvector.
Mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QGraphicsScene>
#include"dialog.h"
#include <QVector>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    QGraphicsScene scene;
    QString Binary(int);
        QString Octal(int);
        QString Hexadecmal(int);

private:
    Ui::MainWindow *ui;
    Dialog* dg;
public slots:
    void podshet();
    void opendial();
    void kart();//функция ресующая фигню в главной программе

};

#endif // MAINWINDOW_H

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <math.h>
#include <QVector>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    dg = new Dialog(this);
    QIntValidator *inter = new QIntValidator(0,99999,0);
    ui->lineEdit->setValidator(inter);
    ui->graphicsView->setScene(&scene); //переопределение для исп графика, связка объекта с переменной
    connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(opendial()));
    connect(ui->lineEdit,SIGNAL(textChanged(QString)),this,SLOT(podshet()));
    connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(kart()));
    connect(dg,SIGNAL(accepted()) ,this,SLOT(podshet()));
    dg->i=0;
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::podshet()
{
    int a;
    QString str1 = ui->lineEdit->text();//создается переменная qstring которая берет значение из lineedit
//text - функц которое возвращает значение введеное в поле lineedit
    a=str1.toInt();//перевод значения lineedit в int
    QString str2;//str2 - запис рез. вычисл



    if(dg->i==0) {
   //     str2.setNum(a, 2);
                    ui->lineEdit_2->setText(Binary(a));
                    ui->label_3->setText("b");
            }
            if(dg->i==1) {
   //             str2.setNum(a, 8);
                    ui->lineEdit_2->setText(Octal (a));
         ui->label_3->setText("o");

            }
                if(dg->i==2) {
   //                 str2.setNum(a, 16);
                        ui->lineEdit_2->setText(Hexadecmal (a));
            ui->label_3->setText("h");
            }

Mainwindow.cpp
}

void MainWindow::opendial()
{
    dg->show();
}

void MainWindow::kart()
{
    scene.clear();
    scene.addEllipse(ui->spinBox_1->value(),ui->spinBox_2->value(),ui->Radius->value(),ui->Radius->value());
}


QString MainWindow::Binary(int number)
{
    int N=0;
    QVector<int> B(200);
    while (number!=0)
    {
        N++; B[N-1]=number%2;  number/=2;
    }
    QString result;
    for (int i=N-1;i>=0;i--)
    {
        result.append(QString("%1").arg(B[i]));
    }
    return result;
}

QString MainWindow::Octal(int number)
{
    int N=0;
    QVector<int> B(200);
    while (number>=8)
    {
        N++; B[N-1]=number%8;  number/=8;
    }
    QString result;
    result.append(QString("%1").arg(number));
    for (int i=N-1;i>=0;i--)
    {
         result.append(QString("%1").arg(B[i]));
    }
    return result;
}

QString MainWindow::Hexadecmal(int number)
{
    const QString str="0123456789ABCDEF";
    int N=0;
    QVector<int> B(200);
    while (number>=16)
    {
        N++; B[N-1]=number%16;  number/=16;
    }
    QString result;
    result.append(str[number]);
    for (int i=N-1;i>=0;i--)
    {
         result.append(str[B[i]]);
    }
    return result;
}

Нужно сделать в кратчайшие сроки, буду очень признателен за помощь.
PM MAIL   Вверх
borisbn
Дата 22.10.2012, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Меняешь QVector<int> B(200); на int B[200]; и всё.
А ещё, не пояснишь для тугодума, зачем для перевода из одной системы исчисления в другую нужен QGraphicsScene???  smile 


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Testero
Дата 22.10.2012, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.10.2012

Репутация: нет
Всего: нет



Да это я эллипс делал)
PM MAIL   Вверх
borisbn
Дата 23.10.2012, 06:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



> Да это я эллипс делал) 
Восьмиричный?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0419 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.