【C#】 簡單計算器設計 & 字符提取和整數整除練習

簡單計算器設計

-----------------------

如圖所示的頁面,當用戶選擇不同的運算類型時,下方文本框發生相應的變化。

若存在非法輸入,文本框輸出結果爲“?”。



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 A._2._2_WinForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {

            if(radioButton1.Checked)
            {
                double sum, number1, number2;
                bool is1 = double.TryParse(textBox1.Text,out number1);
                bool is2 = double.TryParse(textBox2.Text,out number2);
                if (is1 & is2)
                {
                    sum = number1 + number2;
                    textBox3.Text = sum.ToString();
                }
                else
                    textBox3.Text = "?";
            }
            else if (radioButton2.Checked)
            {
                double minus, number1, number2;
                bool is1 = double.TryParse(textBox1.Text,out number1);
                bool is2 = double.TryParse(textBox2.Text,out number2);
                if (is1 & is2)
                {
                    minus = number1 - number2;
                    textBox3.Text = minus.ToString();
                }
                else
                    textBox3.Text = "?";

            }
            else if (radioButton3.Checked)
            {
                double multiplate, number1, number2;
                bool is1 = double.TryParse(textBox1.Text, out number1);
                bool is2 = double.TryParse(textBox2.Text,out number2);
                if (is1 & is2)
                {
                    multiplate = number1 * number2;
                    textBox3.Text = multiplate.ToString();
                }
                else
                    textBox3.Text = "?";
            }
            else if (radioButton4.Checked)
            {
                double divide,number1,number2;
                bool is1 = double.TryParse(textBox1.Text,out number1);
                bool is2 = double.TryParse(textBox2.Text,out number2);
                if (is1 & is2)
                {
                    divide = number1 / number2;
                    textBox3.Text = divide.ToString();
                }
                else
                    textBox3.Text = "?";
            }
            else if (radioButton5.Checked)
            {
                double modulo, number1, number2;
                bool is1 = double.TryParse(textBox1.Text, out number1);
                bool is2 = double.TryParse(textBox2.Text, out number2);
                if(is1&is2)
                {
                    modulo = number1 % number2;
                    textBox3.Text = modulo.ToString();
                }
                else
                    textBox3.Text = "?";
            }
            else
            {
                DialogResult result = MessageBox.Show("請選擇運算類型!");
            }

        }

        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            this.label3.Text = "加法";
            this.label4.Text = "+";
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            this.label3.Text = "減法";
            this.label4.Text = "-";
        }

        private void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
            this.label3.Text = "乘法";
            this.label4.Text = "×";
        }

        private void radioButton4_CheckedChanged(object sender, EventArgs e)
        {
            this.label3.Text = "除法";
            this.label4.Text = "÷";
        }

        private void radioButton5_CheckedChanged(object sender, EventArgs e)
        {
            this.label3.Text = "取模";
            this.label4.Text = "|";
        }
    }
}
Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace A._2._2_WinForm
{
    static class Program
    {
        /// <summary>
        /// 應用程序的主入口點。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}


---------------------------------------------------------------------------------------------


字符提取和整數整除練習

-----------------------

控制檯輸入如下信息,功能如圖所示。

使用兩種方法,字符提取法(提取單個字符進行類型轉換爲整型再逐個相加)和整數整除法(取整和求餘數來取得每一位的值再逐個相加)。




Method1.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace A._2._3_Console.Method1
{
    class Method1
    {
        //字符提取法
        public void func(int number)
        {
            string str = number.ToString();
            int sum = 0;
     
            Console.WriteLine("該整數共有{0}位。", str.Length);
            Console.Write("實現思路1:每一位的值爲");
            for (int i = 0; i < str.Length; ++i)
            {
                sum += int.Parse(str[i].ToString());
                if(i==str.Length-1)
                    Console.Write(str[i] + ",");
                else
                    Console.Write(str[i]+"、");
            }
            Console.WriteLine("這些位之和爲{0}", sum);
        }
    }
}

Method2.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace A._2._3_Console.Method2
{
    class Method2
    {
        //整數整除法
        public void func(int number)
        {
            string str = number.ToString();
            int sum = 0;

            Console.Write("實現思路2:每一位的值爲");
            for (int i = 0; i < str.Length; ++i)
            {
                if (i == str.Length - 1)
                    Console.Write(str[i] + ",");
                else
                    Console.Write(str[i] + "、");
            }

            int[] arr = new int[10000];
            int j = 0;
            while(number / 10 != 0)
            {
                arr[j] = number % 10;
                number /= 10;               
                ++j;
            }
            arr[j] = number % 10;
            for (int i = j; i >= 0; --i)
            {
                sum += arr[i]; 
            }
            Console.WriteLine("這些位之和爲{0}", sum);
        }
    }
}

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using A._2._3_Console.Method1;
using A._2._3_Console.Method2;

namespace ch
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("請輸入一個大於100的整數:");
            int number = int.Parse(Console.ReadLine());

            new Method1().func(number); //字符提取法

            new Method2().func(number); //整數整除法

            Console.WriteLine("按任意鍵結束");
            Console.ReadKey();
        }
    }
}

-------------------

2016.3.14


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章