![]() |
|
|
![]()
|
|
| Testero |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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; } Нужно сделать в кратчайшие сроки, буду очень признателен за помощь. |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
Меняешь QVector<int> B(200); на int B[200]; и всё.
А ещё, не пояснишь для тугодума, зачем для перевода из одной системы исчисления в другую нужен QGraphicsScene??? -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| Testero |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 22.10.2012 Репутация: нет Всего: нет |
Да это я эллипс делал)
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
> Да это я эллипс делал)
Восьмиричный? -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |