簡單計算器設計
-----------------------
如圖所示的頁面,當用戶選擇不同的運算類型時,下方文本框發生相應的變化。
若存在非法輸入,文本框輸出結果爲“?”。
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