PDA

View Full Version : non visualizzo il risultato corretto


giangi_luca
06-09-2009, 16:11
ciao Ragazzi ho creato un form.
il mio problema è il seguente:
io premo il pulsante del numero 2, poi il pulsante del prodotto,poi il pulsante del numero 3, ma nel campo di testo invece di visualizzami 6 mi vsializza 2*3

dove sto sbagliando e perchè cosi capico l'errore. grazie
--------------------
using System;
using System.Collections.Generic;
using System.Text;

namespace Calcolatrice
{
class Operazioni
{
public String uguale (int num1, int num2, string operaz)
{
return num1 + operaz + num2;

}

}
}
-------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Calcolatrice
{
public partial class Form1 : Form
{
public int operando1;
public int operando2;
public String operazione;

public Form1()
{
InitializeComponent();
}

//pulsante del numero 1
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = Convert.ToString(1);
}

private void button4_Click(object sender, EventArgs e)
{
textBox1.Text = Convert.ToString(2);
}

private void button3_Click(object sender, EventArgs e)
{
textBox1.Text = Convert.ToString(3);
}

//pulsante svuota campo di input dei numeri
private void button5_Click(object sender, EventArgs e)
{
textBox1.Text = "";
}

//moltiplicazione
private void button1_Click(object sender, EventArgs e)
{
operando1 = Convert.ToInt32(textBox1.Text);
operazione = "*";
}

private void button6_Click(object sender, EventArgs e)
{
Operazioni risultato = new Operazioni();
operando2 = Convert.ToInt32(textBox1.Text);
textBox1.Text = risultato.uguale(operando1, operando2, operazione);
//textBox1.Text = Convert.ToString(Val);
}
}
}

giangi_luca
06-09-2009, 17:00
Ci sto sbattendo ma niente.
è come se non facesse la moltiplicazione ma mi sembre strano!!!!:muro:

anonimizzato
06-09-2009, 17:41
Sorry, conosco a malapena Java quindi non ti posso aiutare.

Ricorda però che, come da regolamento, deve inserire il nome del linguaggio nel titolo del thread, pena la chiusura.

Ciao.

MEMon
06-09-2009, 17:50
non la fa no... il tuo risultato è un Int+String+Int quindi è una stringa.

giangi_luca
06-09-2009, 17:59
ok, e come faccio per far visualizzare il risultato?

grazie

MEMon
06-09-2009, 18:05
il tuo risultato deve essere semplicemente
return num1*num2

per fare varie operazioni magari ci metti una struttura di controllo.
Oppure fai una classe per ogni operazione diversa.

giangi_luca
06-09-2009, 18:26
ho capito quello che dici ma mi daresti un mano a come scriverlo?
come metteresti una condizione di cotrollo?
non ci sto riuscendo da solo.
grazie mille

giangi_luca
06-09-2009, 18:36
fatto grazie mille!!!!
scusate se ho sbagliato a scirvere il titolo

class Operazioni
{
public int a;
public int uguale (int num1, int num2, string operaz)
{
if (operaz == "*")
{
a = num1 * num2;
}
return a;


}

}

MEMon
06-09-2009, 18:36
ho capito quello che dici ma mi daresti un mano a come scriverlo?
come metteresti una condizione di cotrollo?
non ci sto riuscendo da solo.
grazie mille


class Operazioni{

public int uguale (int num1, int num2, string operaz){
switch(operaz){
case "*":
return num1*num2;
case "+":
return num1+num2;
}
}
}


Così ad esempio... oppure se vuoi usare le classi fai una classe per ogni operazione

class Calculation{
public int getResult(Operation op){
return op.solve();
}
}

abstract class Operation{

public int num1,num2;

public Operation(oint num1,int num2){
this.num1=num2;
this.num2=num2;
}
public int solve(int num1,int num2);
}

class Multiplication extends Operation{
public Multiplication(int num1,int num2){
super(num1,num2);
}
public int solve(int num1,int num2){
return this.num1*this.num2;
}
}

class Addition extends Operation{
public Addition (int num1,int num2){
super(num1,num2);
}
public int solve(int num1,int num2){
return this.num1+this.num2;
}
}