শিখুন C# ডট নেট প্রোগ্রামিং [পর্ব-০৯] :: তৈরি করুন Scientific Calculator

শিখুন C# ডট নেট প্রোগ্রামিং

সুপ্রিয় বন্ধুরা, আশা করি ভাল আছেন। আজ আমি আপনাদের দেখাব কিভাবে C# এর মাধ্যমে একটি scientific calculator তৈরি করতে পারবেন।

১. নিচের মত ডিজাইন করুন।

২. Control গুলোর method name এবং text name change করুন নিচের মত।

Control name(Name)Text
button1button11
button2button22
button3button33
button4button44
button5button55
button6button66
button7button77
button8button88
button9button99
button10button00
button11btnPoint.
button12btnExpExp
button13btnDelDel
button14btnClearC
button15btnPlus+
button16btnMinus-
button17btnMul*
button18btnDiv

/

button19btnAnsAns
button20btnEqual=
button21btnSqrSqr
button22btnPowerx^y
button23btnRootRoot
button24btnInv1/x
button25btnSinSin
button26btnCoscos
button27btnTantan
button28btnLogLog
button29btnlnln
button30btnPIPi
button31btnFactx!
textBox1txtDisplayNull
Form1Form1Scientific Calculator

৩. Button1 এ double click করুন ও নিচের code লিখুন।


{
txtDisplay.Text = txtDisplay.Text + button1.Text;

}

এর অর্থ হল আপনি button1 এ যতবার click করবেন ততবার button1 এ টেক্সট হিসেবে 1 digit বারবার display তে দেখাবে।

৪.এবার button2 থেকে button 12 পর্যন্ত প্রতিটি button এ double click করে নিচের code গুলো লিখুন।


private void button2_Click(object sender, EventArgs e)
{
 txtDisplay.Text = txtDisplay.Text + button2.Text;
}

private void button3_Click(object sender, EventArgs e)
{
 txtDisplay.Text = txtDisplay.Text + button3.Text;
}

private void button4_Click(object sender, EventArgs e)
{
 txtDisplay.Text = txtDisplay.Text + button4.Text;
}

private void button5_Click(object sender, EventArgs e)
{
 txtDisplay.Text = txtDisplay.Text + button5.Text;
}

private void button6_Click(object sender, EventArgs e)
{
 txtDisplay.Text = txtDisplay.Text + button6.Text;
}

private void button7_Click(object sender, EventArgs e)
{
 txtDisplay.Text = txtDisplay.Text + button7.Text;
}

private void button8_Click(object sender, EventArgs e)
{
 txtDisplay.Text = txtDisplay.Text + button8.Text;
}

private void button9_Click(object sender, EventArgs e)
{
 txtDisplay.Text = txtDisplay.Text + button9.Text;
}

private void button0_Click(object sender, EventArgs e)
{
txtDisplay.Text = txtDisplay.Text + button0.Text;
}

private void btnPoint_Click(object sender, EventArgs e)
{
 txtDisplay.Text = txtDisplay.Text + btnPoint.Text;
}

private void btnExp_Click(object sender, EventArgs e)
{
 if (txtDisplay.Text.Length > 0)
 {
 total1 = total1 + double.Parse(txtDisplay.Text);

 txtDisplay.Clear();

 plusButtonClicked = false;

 minusButtonClicked = false;

 mulButtonClicked = false;

 divButtonClicked = false;

 pwrButtonClicked = false;

 expButtonClicked = true;

 }

}

৫. এই code গুলোর নিচে নিচের code গুলো লিখুন।

double total1 = 0;

double total2 = 0;

bool plusButtonClicked = false;//bool means that if u dont press the oprator buttons
//normally it contain false logic.

bool minusButtonClicked = false;

bool mulButtonClicked = false;

bool divButtonClicked = false;

bool pwrButtonClicked = false;

bool expButtonClicked = false;

এখানে total1 variable নেয়া হয়ছে button click করার পরে টেক্সট রাখার জন্য আর total2 variable নেয়া হয়েছে result রাখার জন্য। যেমন আপনি button1 এ click করলে 1 value টি total1 variable এ থাকবে। তারপর plus button এ ক্লিক করে button2 তে click করলে button2 এর value total1 এ থাকবে। তারপর equal button এ click করলে যোগফল 3 total2 variable এ জমা হবে।

৬. এবার plus, minus, multiply, division ও equal button গুলোতে double click করুন ও নিচের code গুলো লিখুন।


private void btnPlus_Click(object sender, EventArgs e)

{

if (txtDisplay.Text.Length > 0)

{

total1 = total1 + double.Parse(txtDisplay.Text);

txtDisplay.Clear();

plusButtonClicked = true;//true means that if u press plus button then it
//will perform the only plus button logic.

minusButtonClicked = false;

mulButtonClicked = false;

divButtonClicked = false;

pwrButtonClicked = false;

expButtonClicked = false;

}

}

private void btnMinus_Click(object sender, EventArgs e)

{

if (txtDisplay.Text.Length > 0)

{

total1 = total1 + double.Parse(txtDisplay.Text);

txtDisplay.Clear();

plusButtonClicked = false;

minusButtonClicked = true;

mulButtonClicked = false;

divButtonClicked = false;

pwrButtonClicked = false;

expButtonClicked = false;

}

}

private void btnMul_Click(object sender, EventArgs e)

{

if (txtDisplay.Text.Length > 0)

{

total1 = total1 + double.Parse(txtDisplay.Text);

txtDisplay.Clear();

plusButtonClicked = false;

minusButtonClicked = false;

mulButtonClicked = true;

divButtonClicked = false;

pwrButtonClicked = false;

expButtonClicked = false;

}

}

private void btnDiv_Click(object sender, EventArgs e)

{

if (txtDisplay.Text.Length > 0)

{

total1 = total1 + double.Parse(txtDisplay.Text);

txtDisplay.Clear();

plusButtonClicked = false;

minusButtonClicked = false;

mulButtonClicked = false;

divButtonClicked = true;

pwrButtonClicked = false;

expButtonClicked = false;

}

}

private void btnEqual_Click(object sender, EventArgs e)

{

if (plusButtonClicked == true)

{

total2 = total1 + double.Parse(txtDisplay.Text);

}

else if (minusButtonClicked == true)

{

total2 = total1 - double.Parse(txtDisplay.Text);

}

else if (mulButtonClicked == true)

{

total2 = total1 * double.Parse(txtDisplay.Text);

}

else if (divButtonClicked == true)

{

total2 = total1 / double.Parse(txtDisplay.Text);

}

else if (pwrButtonClicked == true)

{

total2 = Math.Pow(total1, (double.Parse(txtDisplay.Text)));

}

else if (expButtonClicked == true)

{

total2 = total1 * Math.Pow(10, (double.Parse(txtDisplay.Text)));

}

total1 = 0;

txtDisplay.Text = total2.ToString();

}

৭. এবার clear, del, ans, square, power, root ,inv, log, ln, PI,fact button গুলোতে double ক্লিক করুন ও নিচের কোড গুলো লিখুন।


private void btnClear_Click(object sender, EventArgs e)
{
 txtDisplay.Text = "";
}

private void btnDel_Click(object sender, EventArgs e)
{
 if (txtDisplay.Text.Length > 0)
  txtDisplay.Text = txtDisplay.Text.Remove(txtDisplay.Text.Length - 1);

}

private void btnAns_Click(object sender, EventArgs e)
{
double ans;

ans = total2;

txtDisplay.Text = ans.ToString();

}

private void btnSqr_Click(object sender, EventArgs e)
{
 double sqr;

  if (txtDisplay.Text.Length > 0)

  {

  sqr = Math.Pow(double.Parse(txtDisplay.Text), 2);

  txtDisplay.Text = sqr.ToString();

  }

}

private void btnPower_Click(object sender, EventArgs e)

{
 if (txtDisplay.Text.Length > 0)
 {
 total1 = total1 + double.Parse(txtDisplay.Text);

 txtDisplay.Clear();

 plusButtonClicked = false;

 minusButtonClicked = false;

 mulButtonClicked = false;

 divButtonClicked = false;

 pwrButtonClicked = false;

 expButtonClicked = false;

 pwrButtonClicked = true;

 }

}

private void btnRoot_Click(object sender, EventArgs e)
{
 double sqrt;
 if (txtDisplay.Text.Length > 0)

 {

 sqrt = Math.Sqrt(double.Parse(txtDisplay.Text));

 txtDisplay.Text = sqrt.ToString();

 }

}

private void btnInv_Click(object sender, EventArgs e)

{

 double inv;

 if (txtDisplay.Text.Length > 0)

 {

 inv = 1 / (double.Parse(txtDisplay.Text));

 txtDisplay.Text = inv.ToString();

 }

}

private void btnLog_Click(object sender, EventArgs e)
{

 double log;

 if (txtDisplay.Text.Length > 0)

 {

 log = Math.Log10(double.Parse(txtDisplay.Text));

 txtDisplay.Text = log.ToString();

 }

}

private void btnln_Click(object sender, EventArgs e)

{

 double ln;

 if (txtDisplay.Text.Length > 0)

 {

 ln = Math.Log(double.Parse(txtDisplay.Text));

 txtDisplay.Text = ln.ToString();

 }

}

private void btnPI_Click(object sender, EventArgs e)

{

 double pi;

 pi = Math.PI;

 txtDisplay.Text = pi.ToString();

}

private void btnFact_Click(object sender, EventArgs e)
{

 double n, i, f;

 f = 1;

 if (txtDisplay.Text.Length > 0)

 {

 n = double.Parse(txtDisplay.Text);

 for (i = 1; i <= n; i++)

 {

 f = f * i;

 }

 txtDisplay.Text = f.ToString();

 }

}

৮. Sin,cos,ও tan button এ double click করুন ও নিচের কোড গুলো লিখুন।


private void btnSin_Click(object sender, EventArgs e)

{

 double sin, res;

 if (txtDisplay.Text.Length > 0)

 {

 sin = (double.Parse(txtDisplay.Text) * Math.PI) / 180;

 res = Math.Sin(sin);

 txtDisplay.Text = res.ToString();

 }

}

private void btnCos_Click(object sender, EventArgs e)
{

 double cos, res;

 if (txtDisplay.Text.Length > 0)

 {

  cos = (double.Parse(txtDisplay.Text) * Math.PI) / 180;

  res = Math.Cos(cos);

  txtDisplay.Text = res.ToString();

 }

}

private void btnTan_Click(object sender, EventArgs e)

{

double tan, res;

 if (txtDisplay.Text.Length > 0)

 {

 tan = (double.Parse(txtDisplay.Text) * Math.PI) / 180;

 res = Math.Tan(tan);

 txtDisplay.Text = res.ToString();

 }

}

৯. এবার F5 press করে compile করুন।

Level New

আমি Salman Srabon। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 1 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 24 টি টিউন ও 49 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 4 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

ভাই, আজকের ক্যালকুলেটরের প্রোগ্রামটা বুঝলাম না, শুধু একটি বাটনে কোড লিখে কিভাবে ক্যালকুলেটরের অন্য বাটন কাজ করবে, প্লিজ ভাই যদি বুঝিয়ে দিতেন! আর একটি কথা- অনেক দিন পর কিন্তু আপনার পোস্ট পাইলাম, ভাই এ পর্যন্ত কমেন্ট করার দরকার হয় নাই, তাই করি নাই। চালিয়ে গেলে উপকৃত হতাম, আল্লাহ আপনার চলার পথ সুন্দর করুন……

    Level New

    @sksrabon: @Md. Rokibul Huq: ধন্যবাদ। প্রতিটা button এ double click করলে দেখবেন একটা method auto generate হয়েছে। সেখানে code গুলো লিখতে হবে।

Level New

ধন্যবাদ। প্রতিটা এ করলে দেখবেন একটা হয়েছে। সেখানে গুলো লিখতে হবে।

প্রিয় টিউনার,

আপনার টিউনটি টেকটিউনস চেইন টিউন হিসেবে অন্তর্ভুক্ত করা হয়েছে। অভিনন্দন আপনাকে!

টেকটিউনসে চেইন টিউন কীভাবে প্রক্রিয়া হয় তা জানতে টেকটিউনস সজিপ্র এর https://www.techtunes.io/faq “চেইন টিউন” অংশ দেখুন।

নিয়মিত চেইন টিউন করুন। এখন থেকে আপনার নতুন করা চেইন টিউন গুলো টেকটিউনস থেকে চেইন এ যুক্ত করা হবে। চেইন টিউনে যুক্ত হবার ফলে চেইনের প্রতিটি পর্ব একসাথে থাকবে।

চেইনে নতুন পর্ব যুক্ত হলে তা টেকটিউনসের প্রথম পাতায় দেখা যাবে এবং “সকল চেইন টিউনস” https://www.techtunes.io/chain-tunes/ পাতায় চেইন টিউনটি যুক্ত হবে।

নিয়মিত চেইন টিউন করে নতুন নতুন টিউন আপনার চেইনে যুক্ত করুন এবং অসম্পূর্ণ না রেখে আপনার চেইন টিউনে নিয়মিত পূর্ণাঙ্গ রূপ দিন।

মেতে থাকুন প্রযুক্তির সুরে আর নিয়মিত করুন চেইন টিউন!

Level New

আমার টিউনটি টেকটিউনস চেইন টিউন হিসেবে অন্তর্ভুক্ত করার জন্য সন্মানিত টেকটিউনস কত্রিপক্ষকে আন্তরিকভাবে অভিনন্দন। 🙂