martes, 1 de septiembre de 2015

Simulacion de Recibo en C++ QT Creator & QTableWidget

QT Creator es uno de los mejores IDE para c++ en especial cuando se trata de crear formularios, maneja todos los controles como cuadro de texto, botones, Table, combos box, listas, conexion a base de datos, generacion de archivos pdf, archivos de texto, tiene otros temas como qt network, es excelente.
 

File mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <cmath>
#include <QDateTime>
#include <QTimer>
#include <QMessageBox>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)

{
    ui->setupUi(this);
    setWindowTitle("Simulacion de Recibo");
    QStringList titu;
    ui->tblPro->setColumnCount(4);
    titu<<"Producto"<<"Precio_U"<<"Cantidad"<<"Importe";
    ui->tblPro->setHorizontalHeaderLabels(titu);
    ui->tblPro->setColumnWidth(0,150);
    cargar_combo();
    cargar_cli();
    setHora();
}

MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::setHora()
{
    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(cargar_fecha()));
    timer->start(1000);
}

void MainWindow::on_btnAdd_clicked()
{
    //ui->txtPrecio->setText(ui->txtNombre->text());
    ui->tblPro->insertRow(ui->tblPro->rowCount());
    ui->tblPro->setItem(ui->tblPro->rowCount()-1,0,new QTableWidgetItem(ui->cmbPro->currentText()));
    ui->tblPro->setItem(ui->tblPro->rowCount()-1,1,new QTableWidgetItem(ui->txtPrecio->text()));
    ui->tblPro->setItem(ui->tblPro->rowCount()-1,2,new QTableWidgetItem(ui->txtCan->text()));
    calTot();
}
void MainWindow::cargar_combo()
{
    ui->cmbPro->addItem("PlayStation 4");
    ui->cmbPro->addItem("Laptop Dell i7");
    ui->cmbPro->addItem("Hard disk 1Tb");
    ui->cmbPro->addItem("TV 60 LED Sony");
    ui->cmbPro->addItem("Laptop Apple i7");
    ui->cmbPro->addItem("Samsung Galaxy S6");
}
void MainWindow::calTot()
{
    double imp;
    double precio;
    double can;
    double S=0;
    double tax=0;
    double total=0;
    int i;
    for(i=0;i<ui->tblPro->rowCount();i++){
        precio=ui->tblPro->item(i,1)->text().toDouble();
        //precio=ui->tblPro->takeItem(i,1)->text().toDouble();
        can=ui->tblPro->item(i,2)->text().toDouble();
        imp=precio*can;
        ui->tblPro->setItem(i,3,new QTableWidgetItem(QString::number(imp)));
        S=S+imp;
        S=redo(S);
        tax=0.09*S;
        tax=redo(tax);
        total=1.09*S;
        total=redo(total);
        ui->lblSub->setText(QString::number(S));
        ui->lblTax->setText(QString::number(tax));
        ui->lblTotal->setText(QString::number(total));
    }
}
double MainWindow::redo(double n)
{
    n=n*100;
    n=round(n);
    n=n/100;
    return n;
}
void MainWindow::cargar_cli()
{
    ui->cmbCli->addItem("Miguel Nunez Varillas");
    ui->cmbCli->addItem("Rosa Castro");
    ui->cmbCli->addItem("Soila Monge");
    ui->cmbCli->addItem("Luis Salvatierra");
    ui->cmbCli->addItem("Alberto Lozano");
    ui->cmbCli->addItem("Fernando Garcia");
    ui->cmbCli->addItem("Julio Ortiz Jason");
}
void MainWindow::cargar_fecha()
{
    QDateTime tiempo2=QDateTime();
    ui->lblFecha->setText(tiempo2.currentDateTime().toString());
    QString h=QString::number(tiempo2.currentDateTime().time().hour());
    QString m=QString::number(tiempo2.currentDateTime().time().minute());
    QString s=QString::number(tiempo2.currentDateTime().time().second());
    ui->lblRelog->setText(h+":"+m+":"+s);
}

void MainWindow::on_cmbPro_currentIndexChanged(const QString &arg1)
{   QString cad;
    switch (ui->cmbPro->currentIndex()) {
    case 1:cad="500";break;
    case 2:cad="89";break;
    case 3:cad="700";break;
    case 4:cad="800";break;
    case 5:cad="200";break;
    default:cad="220";
        break;
    }
    ui->txtPrecio->setText(cad);
    ui->txtCan->setText("1");
}

void MainWindow::on_btnDel_clicked()
{   QMessageBox mensa;
    if (ui->tblPro->currentRow()>-1){
        ui->tblPro->removeRow(ui->tblPro->currentRow());
    }else{
        mensa.setText("Seleccione una fila");
        mensa.exec();
    }
}

sábado, 2 de mayo de 2015

sábado, 24 de enero de 2015

Metodo de Newton - Metodos Numericos con Java

package pktNewton;
import javax.swing.table.DefaultTableModel;
public class frmNewton extends javax.swing.JFrame {
    DefaultTableModel modelo=new DefaultTableModel();
    public frmNewton() {
        initComponents();
        tblCoe.setModel(modelo);
        tblCoe.setVisible(false);
    }
 private void btnGenActionPerformed(java.awt.event.ActionEvent evt) {                                      

        int i;
        int n=Integer.parseInt(txtN.getText());
        String titu[]=new String[n+1];
        String dato[]=new String[n+1];
        for(i=0;i<=n;i++){ titu[i]="X^"+(n-i); dato[i]="1"; }
        tblCoe.setVisible(true);
        modelo.setColumnIdentifiers(titu);
        modelo.addRow(dato);
    }                                     
    private double df(double x0){
        double n=Double.parseDouble(txtN.getText());
        double s=0;
        for(int i=0;i<modelo.getColumnCount();i++){
            if ((n-i)!=0){
            s=s+(n-i)*Double.parseDouble(modelo.getValueAt(0, i).toString())*Math.pow(x0,n-1-i);
            }
        }
        return s;
    }
    private double f(double x0){
        double n=Double.parseDouble(txtN.getText());
        double s=0;
        for(int i=0;i<modelo.getColumnCount();i++){
            s=s+Double.parseDouble(modelo.getValueAt(0, i).toString())*Math.pow(x0, n-i);
        }
        return s;
    }
    private void btnCalcularActionPerformed(java.awt.event.ActionEvent evt) {                                           
        double x0,x1;
        double error=1,e=0.01;
        double n=6,i=0;
        if (mayor()+menor()==0){ x0=mayor();
        }else{ x0=(mayor()+menor())/2; }
        while (error>=e || i==n){
            x1=x0-f(x0)/df(x0);
            i=i+1;
            error=Math.abs((x1-x0)/x1);
            txtR.setText(txtR.getText()+"iteraccion="+i+"\n"+"x1="+x1+"\n"+"f(x1)="+f(x1)+"\n");
            if (f(x1)==0){ txtR.setText(txtR.getText()+"Raiz="+x1+"\n"); break; }
            x0=x1;
        }
        lblF.setText("f(x0):"+f(x0)+" mayor:"+mayor()+" menor:"+menor()+" x0="+x0+" df(x0)="+df(x0));
    }                                          
    private double mayor(){
        double may;
        may=Double.parseDouble(modelo.getValueAt(0, 0).toString());
        for(int i=1;i<modelo.getColumnCount();i++){
            if (Double.parseDouble(modelo.getValueAt(0, i).toString())>may){
                may=Double.parseDouble(modelo.getValueAt(0, i).toString());
            }
        }
        return may;
    }
    private double menor(){
        double men;
        men=Double.parseDouble(modelo.getValueAt(0, 0).toString());
        for(int i=1;i<modelo.getColumnCount();i++){
            if (Double.parseDouble(modelo.getValueAt(0, i).toString())<men){
                men=Double.parseDouble(modelo.getValueAt(0, i).toString());
            }
        }
        return men;
    }
El programa calcula una raiz del polinomio ingresado en la tabla, se ingresan los coheficientes.
el metodo f evalua un valor x0, el metodo df evalua un valor en la derivada del polinomio, el metodo mayor calcula el coheficiente mayor del polinomio, el metodo menor calcula el coheficiente menor del polinomio.
Se realizan Proyectos de Programacion de Computadoras en Java, Visual Basic, SQL, MySql.
e-mail: minuvasoft10@gmail.com

jueves, 1 de enero de 2015

Mysql Select 3 tables inner join

Se tiene las siguientes tablas
lineas
 ordentrabajo
 actividad
select o.N_O, o.fecha, l.N_L, l.Origen, l.Fin, a.programa from ordentrabajo as o 
inner join lineas as l on o.N_L = l.N_L 
inner join actividad as a on a.id_Activi = o.N_O  
where o.N_L = 73760 order by o.N_O
-- El objetivo es seleccionar campos de las tres tablas, relacionados por su llave primaria y foranea.
Se realizan Proyectos de Programacion por Internet  minuvasoft10@gmail.com
Miguel Nunez

Buscar por Codigo de Barras en Excel con Java Netbeans

  import java.io.File; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; import jxl.Sheet; import jxl.Workbook; pu...