رفتن به مطلب
مرجع رسمی سی‌پلاس‌پلاس ایران

rezaict

کاربـــر عـــــادی
  • تعداد ارسال ها

    6
  • تاریخ عضویت

  • روز های برد

    1

تمامی مطالب نوشته شده توسط rezaict

  1. rezaict

    سلام مجدد، بالاخره تونستم با راهنمایی شما مشکل رو حل کنم البته کدها رو به این شکل تغییر دادم (به عنوان مثال برای عمل جمع) BigInt result; result = previousVal + currentVal; ui->resultdisplay->setText(result.to_string().c_str()); و دستور زیر رو حذف کردم: //ui->resultdisplay->setText(ui->resultdisplay->text()+QString::number(currentVal)+"="+QString::number(previousVal + currentVal)); سپاس از شما
  2. rezaict

    سلام، واقعیتش تا الان درگیرش بودم ولی به نتیجه ای نرسیدم و نتونستم کد رو بزنم فک کنم چون من تازه وارد این حوزه شدم و مفاهیم رو به طور کامل بلد نیستم این اتفاق برام افتاده به هر حال ممنون از شما که برام وقت گذاشتین سپاسگزارم
  3. rezaict

    این کدهایی هست که من نوشتم (فایلی به اسم calculator.cpp) "calculator.h" #include "ui_calculator.h" #include "BigInt.hpp" calculator::calculator(QWidget *parent) : QWidget(parent) , ui(new Ui::calculator) { ui->setupUi(this); action=Action_Type::nothing; connect(ui->Button_0,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"0");}); connect(ui->Button_1,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"1");}); connect(ui->Button_2,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"2");}); connect(ui->Button_3,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"3");}); connect(ui->Button_4,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"4");}); connect(ui->Button_5,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"5");}); connect(ui->Button_6,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"6");}); connect(ui->Button_7,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"7");}); connect(ui->Button_8,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"8");}); connect(ui->Button_9,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"9");}); connect(ui->Button_dot,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+".");}); connect(ui->Button_add,SIGNAL(clicked(bool)),this,SLOT(onAdd())); connect(ui->Button_div,SIGNAL(clicked(bool)),this,SLOT(onDiv())); connect(ui->Button_sub,SIGNAL(clicked(bool)),this,SLOT(onSub())); connect(ui->Button_mul,SIGNAL(clicked(bool)),this,SLOT(onMul())); connect(ui->Button_result,SIGNAL(clicked(bool)),this,SLOT(onResult())); connect(ui->Button_clean,SIGNAL(clicked(bool)),this,SLOT(onClean())); connect(ui->Button_exit,SIGNAL(clicked(bool)),this,SLOT(onExit())); } calculator::~calculator() { delete ui; } void calculator::onAdd() { if(ui->display->text().isEmpty()) return; previousVal=ui->display->text().toDouble(); action=Action_Type::add; ui->resultdisplay->setText(ui->display->text()+"+"); ui->display->clear(); } void calculator::onSub() { if(ui->display->text().isEmpty()) return; previousVal=ui->display->text().toDouble(); action=Action_Type::sub; ui->resultdisplay->setText(ui->display->text()+"-"); ui->display->clear(); } void calculator::onMul() { if(ui->display->text().isEmpty()) return; previousVal=ui->display->text().toDouble(); action=Action_Type::mul; ui->resultdisplay->setText(ui->display->text()+"*"); ui->display->clear(); } void calculator::onDiv() { if(ui->display->text().isEmpty()) return; previousVal=ui->display->text().toDouble(); action=Action_Type::div; ui->resultdisplay->setText(ui->display->text()+"/"); ui->display->clear(); } void calculator::onResult() { if(ui->display->text().isEmpty()) return; double currentVal=ui->display->text().toDouble(); if(action!=Action_Type::nothing) { switch (action) { case Action_Type::add: ui->resultdisplay->setText(ui->resultdisplay->text()+QString::number(currentVal)+"="+QString::number(previousVal + currentVal)); break; case Action_Type::sub: ui->resultdisplay->setText(ui->resultdisplay->text()+QString::number(currentVal)+"="+QString::number(previousVal - currentVal)); break; case Action_Type::mul: ui->resultdisplay->setText(ui->resultdisplay->text()+QString::number(currentVal)+"="+QString::number(previousVal * currentVal)); break; case Action_Type::div: ui->resultdisplay->setText(ui->resultdisplay->text()+QString::number(currentVal)+"="+QString::number(previousVal / currentVal)); break; default: break; } ui->display->clear(); action=Action_Type::nothing; } } void calculator::onClean() { if(ui->display->text().isEmpty()) return; previousVal=ui->display->text().toDouble(); action=Action_Type::clean; // ui->resultdisplay->setText(ui->display->text()+""); ui->display->clear(); } void calculator::onExit() { calculator::close(); بنظرتون مشکل از کجاست
  4. rezaict

    آها ببخشین من کتابخانه رو به صورت <> تعریف کرده بودم در صورتیکه باید توی کوتیشن بود. ولی با این حال هیچ تفاوتی نکرد وقتی طول اعداد بزرگ باشه حاصلضرب رو کامل نمایش نمیده و به صورت عدد e خلاصه میکنه (یه عکس از خروجی براتون میفرستم) حاصلضرب دو عدد 123456789 و 987654321 رو نشون میده لینک عکس: ممنون میشم راهنماییم بفرمایین
  5. rezaict

    ممنونم از پاسختون جسارتا موقعی که اجراش میکنم با ارور مواجه میشم (من دارم از حالت widget application در QT استفاده میکنم. شاید به خاطر این باشه که از حالت console استفاده نمیکنم) error: multiple definition of `is_valid_number(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' debug/calculator.o: In function `ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE16_M_construct_auxIPcEEvT_S7_St12__false_type':
  6. سلام. اگر بخوایم برای ضرب دو عدد با طول بی نهایت در یک ماشین حساب که در محیط QT ساخته شده است به شرطی که نتیجه ضرب را نشان دهد و overflow رخ ندهد، از چه کتاب خانه ای می توان استفاده کرد؟
×
×
  • جدید...