PDA

View Full Version : مبتدی: مشکل در اجرای اپلیکیشن ماشین حساب



habiballahafg
دوشنبه 27 بهمن 1393, 23:56 عصر
با سلام دوستان
بعد از تلاش زیاد و کلاس و کتاب مختلف تونستم یک اپلیکیشنی را طراحی کنم برای پروژه کلاس درسی که داشتم.
ولی مشکل اینجا هست که وقتی عدد اول و عدد دوم رو با یکی از 4 عملگر ها انجام می دم در صورتی که نتیجه رو نشون بده عدد اول رو در خروجی نشون می ده.
کد این برنامه رو اینجا میگذارم در صورتی که دوستان می تونند کمک کنند خوشحال میشم که کمک کنند.
using System;using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace WindowsFormsApplication8
{
public partial class Form1 : Form
{
private bool rensa = false;
private float tal1;
private float tal2;
private float resultat;
private string knapp = null;
public Form1()

{

InitializeComponent();
}


private void Form1_Load(object sender, EventArgs e)
{

}


private void button1_Click(object sender, EventArgs e)
{
rensaDisplayen();
textBox1.Text = textBox1.Text + "1";
}


private void button2_Click(object sender, EventArgs e)
{
rensaDisplayen();
textBox1.Text = textBox1.Text + "2";
}


private void button3_Click(object sender, EventArgs e)
{
rensaDisplayen();
textBox1.Text = textBox1.Text + "3";
}


private void button4_Click(object sender, EventArgs e)
{
rensaDisplayen();
textBox1.Text = textBox1.Text + "4";
}


private void button5_Click(object sender, EventArgs e)
{
rensaDisplayen();
textBox1.Text = textBox1.Text + "5";
}


private void button6_Click(object sender, EventArgs e)
{
rensaDisplayen();
textBox1.Text = textBox1.Text + "6";
}


private void button7_Click(object sender, EventArgs e)
{
rensaDisplayen();
textBox1.Text = textBox1.Text + "7";
}


private void button8_Click(object sender, EventArgs e)
{
rensaDisplayen();
textBox1.Text = textBox1.Text + "8";
}


private void button9_Click(object sender, EventArgs e)
{
rensaDisplayen();
textBox1.Text = textBox1.Text + "9";
}


private void button10_Click(object sender, EventArgs e)
{
rensaDisplayen();
textBox1.Text = textBox1.Text + "0";
}
private void rensaDisplayen()
{
if (rensa == true)
{
textBox1.Text = " ";
rensa = false;
}
}


private void button11_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text + ",";
}
private float omvandlaTextTillTal()
{
string texten = textBox1.Text;
float returtalet= float.Parse(texten);
rensa = true;
return returtalet;
}
private void lagratal1()
{
tal1 = omvandlaTextTillTal();


}
private void lagratal2()
{
tal2 = omvandlaTextTillTal();


}
private void button12_Click(object sender, EventArgs e)
{
knapp = "+";
lagratal1();
}


private void button13_Click(object sender, EventArgs e)
{
knapp = "-";
lagratal1();
}


private void button14_Click(object sender, EventArgs e)
{
knapp = "*";
lagratal1();
}


private void button15_Click(object sender, EventArgs e)
{
knapp = "/";
lagratal1();
}


private void button16_Click(object sender, EventArgs e)
{
switch ((string)knapp)
{
case (string) "+":
resultat = tal1 + tal2;
break;


case (string) "-":
resultat = tal1 - tal2;
break;

case (string) "*":
resultat = tal1 * tal2;
break;

case (string) "/":
resultat = tal1 / tal2 ;
break;
}
textBox1.Text = resultat.ToString();
knapp ="";
}
}
}

alexmcse
سه شنبه 28 بهمن 1393, 02:23 صبح
سلام
مثال
دانلود بفرمایید

http://s5.picofile.com/file/8171449226/New_Folder_3_.rar.html

:تشویق::تشویق:

habiballahafg
سه شنبه 28 بهمن 1393, 11:39 صبح
سلام
مثال
دانلود بفرمایید

http://s5.picofile.com/file/8171449226/New_Folder_3_.rar.html

:تشویق::تشویق:
با سلام دستتون درد نکنه ولی من میخواستم که مشکل این رو حل کنم.

حسین.کاظمی
سه شنبه 28 بهمن 1393, 13:16 عصر
سلام
این rensaDisplayen(); تابع است؟؟اگر هست چه کاری انجام میدهد لطفاً یا توضیح بدهید یا کدشو بزارید

habiballahafg
سه شنبه 28 بهمن 1393, 13:33 عصر
سلام
این rensaDisplayen(); تابع است؟؟اگر هست چه کاری انجام میدهد لطفاً یا توضیح بدهید یا کدشو بزارید
نه این متدی هست که خودمون تعریف کردیم و کارش این هست وقتی کاربر بر روی یکی از عملگرها کلیک میکنه و عدد دوم را وارد می کنه بنابراین عدد اول رو از تکست باکس پاک می کنه.
این هم لینک دانلود پروژه می باشد: http://s5.picofile.com/file/8171520276/WindowsFormsApplication8.zip.html

SabaSabouhi
سه شنبه 28 بهمن 1393, 13:35 عصر
سلام
حالا که تازه‌کار هستی یه چیزی بهت بگم، البته ربطی به سوالت نداره.
شما 10 تا event handler نوشتی برای دکمه‌های 0 تا 9
بجای این کار می‌تونستی یه دونه بنویسی و با یک switch کارت رو انجام بدی.
هر چی source ساده‌تر و کوتاه‌تر باشه، هم مدیریتش راحت‌تره و هم رفع اشکالش و هم خوانایی‌اش.

صبا صبوحی

habiballahafg
سه شنبه 28 بهمن 1393, 13:47 عصر
سلام
حالا که تازه‌کار هستی یه چیزی بهت بگم، البته ربطی به سوالت نداره.
شما 10 تا event handler نوشتی برای دکمه‌های 0 تا 9
بجای این کار می‌تونستی یه دونه بنویسی و با یک switch کارت رو انجام بدی.
هر چی source ساده‌تر و کوتاه‌تر باشه، هم مدیریتش راحت‌تره و هم رفع اشکالش و هم خوانایی‌اش.

صبا صبوحی
تشکر از نصیحتتون :قلب:
ممکن است کد کوتاه ترش رو بذارید؟
تشکر

alexmcse
سه شنبه 28 بهمن 1393, 16:46 عصر
نه این متدی هست که خودمون تعریف کردیم و کارش این هست وقتی کاربر بر روی یکی از عملگرها کلیک میکنه و عدد دوم را وارد می کنه بنابراین عدد اول رو از تکست باکس پاک می کنه.
این هم لینک دانلود پروژه می باشد: http://s5.picofile.com/file/8171520276/WindowsFormsApplication8.zip.html

کد های برنامه شما رو اصلاح کردم

http://s4.picofile.com/file/8171559776/WindowsFormsApplication8.rar.html