مشکل در پروژه ماشین حساب سی شارپ
درود بر دوستان برنامه نویس!
تازه وارد برنامه نویسی ویژوال سی شارپ شدم (زمینه درباره cpp دارم)
امودم با یک پروژه ماشین حساب ساده آغاز کنم که یک مشکلی دارم!
using System;
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 WindowsFormsApplication12
{
public partial class Form1 : Form
{
int sum = 0,neg=0;
int op;
bool i=true;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
tb1.Clear();
}
private void plus_Click(object sender, EventArgs e)
{
sum += int.Parse(tb1.Text);
tb1.Clear();
op = 1;
}
private void eq_Click(object sender, EventArgs e)
{
int total=0;
if (op == 1)
{
total = sum + int.Parse(tb1.Text);
op=0;
}
if(op == 2){
total = neg - int.Parse(tb1.Text);
}
tb1.Text = Convert.ToString(total);
total = 0;
sum = 0;
neg = 0;
}
private void button2_Click(object sender, EventArgs e)
{
while(i==true){
neg += int.Parse(tb1.Text);
i = false;
tb1.Clear();
return;
}
neg -= int.Parse(tb1.Text);
tb1.Clear();
op = 2;
}
}
}
بخش جمع چند تا عدد رو درست کردم و به خوبی کار میکنه ولی با شیوه ای مشابه بخش تفریق رو به مشکل خوردم!
شیوه کاری همانگونه که از کد مشخص هست اینه کاربر با وارد کردن نخستین عدد کلید منفی رو میزنه بعد نخستین عدد ورودی در متغیری بنام neg اضافه میشه ولی اعداد بعدی که با فشردن دکمه تفریق گرفته میشن از اون عدد اولیه کم میشن.
اشکال کار رو نمیدونم کجاس بخش های مختلفشو دیباگ کردم ولی حاصل تفریقی که نشون میده درست نیست!
بامهر
نقل قول: مشکل در پروژه ماشین حساب سی شارپ
درود
اگر برنامه شما درست کار می کرد اشکال داشت. شما متغییری را وارد کرده و بدون اینکه ذخیره کنید اعمال می کنید!:متفکر:
نقل قول: مشکل در پروژه ماشین حساب سی شارپ
نقل قول:
نوشته شده توسط
ScienceLover
درود
اگر برنامه شما درست کار می کرد اشکال داشت. شما متغییری را وارد کرده و بدون اینکه ذخیره کنید اعمال می کنید!:متفکر:
سپاس از پاسخ شما!
میشه خطی که چنین کاری انجام شده رو بگید که متوجه منظور شما بشم؟
شما متوجه مشکل من شدید؟
بامهر
نقل قول: مشکل در پروژه ماشین حساب سی شارپ
درود
شما در جای نامناسب و بدون دلیل محتوای tb1 رو Clear می کنید. در سه جای برنامه!:لبخند:
نقل قول: مشکل در پروژه ماشین حساب سی شارپ
چرا بدون دلیل:لبخند:
private void button1_Click(object sender, EventArgs e)
{
tb1.Clear();
}
اینجا که به دلیل فشرده شدن دکمه Reset محتوا رو clear کردم.
private void plus_Click(object sender, EventArgs e)
{
sum += int.Parse(tb1.Text);
tb1.Clear();
op = 1;
}
اینجا هم که پس افزودن مقدار به متغیر sum تکست باکس رو clear کردم.
private void button2_Click(object sender, EventArgs e)
{
while(i==true){
neg += int.Parse(tb1.Text);
i = false;
tb1.Clear();
return;
}
اینجا هم تنها برای نخستین بار پس از اینکه مقدار تکست باکس رو به متغیر neg افزودم clear انجام شده
}
neg -= int.Parse(tb1.Text);
tb1.Clear();
op = 2;
}
اینجا هم که برای دفعات بعدی که عدد وارد شده و بعد دکمه تفریق خورده پس از کم کردن عدد باکس رو clear کردم!
چرا پس بی دلیل؟:افسرده:
نقل قول: مشکل در پروژه ماشین حساب سی شارپ
درود اگر شما در tb1 مقداری باقی نگذارید چیزی وجود ندارد که جمع یا تفریق شود بنابراین یا برنامه متوقف می شود یا مقدار صفر باقی می کذارد. قسمت اول اشکالی ندارد. شما باید به tb1 مقدار دهید و مقدار داشته باشد در غیر اینصورت برنامه یا متوقف می شود یا حاصل تبدیل 0 است و در کل غلط. اگر شما یک مرحله را درست انجام ندهید به مشکل بر می خورید. شما مقدار می دهید و در آخر هم..... برنامه شما در هر بار فشار دادن کلید ها (هر سه) درtb1 باید مقداری وجود داشته باشد. اگر منطق برنامه شما درست باشد و این را هم انجام بدهید آن وقت برنامه شما درست کار خواهد کرد. علاوه بر این مشکل دیگر در متغییر op است. op در انتهای برنامه 2 می شود و فرصتی برای اعمال عمل تفریق باقی نمی ماند(eq)
نقل قول: مشکل در پروژه ماشین حساب سی شارپ
رویداد تفریق رو به صورت زیر تغییر بدید
if (neg == 0)
neg = int.Parse(tb1.Text);
else
neg -= int.Parse(tb1.Text);
tb1.Clear();
op = 2;
نقل قول: مشکل در پروژه ماشین حساب سی شارپ
نقل قول:
نوشته شده توسط
ronix3
رویداد تفریق رو به صورت زیر تغییر بدید
if (neg == 0)
neg = int.Parse(tb1.Text);
else
neg -= int.Parse(tb1.Text);
tb1.Clear();
op = 2;
سپاس فراوان درست شد!
میشه بگین کارم کجاش اشکال داشت؟
بامهر
نقل قول: مشکل در پروژه ماشین حساب سی شارپ
سلام یه ماشین حساب ساختم امیدوارم به دردت بخوره سورسش رو میتونی از اینجا دانلود کنی
دانلود
نقل قول: مشکل در پروژه ماشین حساب سی شارپ
نقل قول: مشکل در پروژه ماشین حساب سی شارپ
ماشین حساب ندید، ماشین حساب نوشتن رو یاد بدید:لبخند:
بامهر
نقل قول: مشکل در پروژه ماشین حساب سی شارپ
نقل قول:
نوشته شده توسط
sitetheme
ماشین حساب ندید، ماشین حساب نوشتن رو یاد بدید:لبخند:
بامهر
دوست عزیز من ماشین حساب ندادم! من سورس ماشین حساب بهتون دادم که یکم اگه علاقه داشته باشین کدشو نگاه کنید و حتما متوجه می شید، راستی اینم بهتون بگم که توی کد بالا که نوشتین خیلی بد کد نویسی کردین اصلا معلوم نیست کی به کیه!! خیلی ساده ترم میتونی کار کنی مثلا برای عملگر ها از متغیر رشته یا کاراکتر استفاده کن مثل : "+" یا "/" اینطوری بهتره بعد اصلا به حلقه احتیاج نیست.