马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
C#桌面应用制作浅易盘算器,可实现数字之间的加减乘除、AC按键清屏、Del按键扫除末了数字、+/-按键取数字相反数、%按键使数字缩小100倍、=按键表现运算效果等......
页面实现效果
功能实现
布局
盘算器主体利用Panel容器,然后将button控件分列放置Panel容器做为盘算器按键,表现主体利用groudBox容器,然后在groudBox容器里放置一个Panel容器作为表现屏,再在Panel容器放置一个label控件用于表现输入和运算效果。
布局效果
数字按键功能
点击数字按键使其数字投射到盘算器平面上,由于屏幕巨细有限,以是使其数字长度大于16时,字体缩小一倍,数字长度大于30时,弹窗提示"字符长度超出范围"。
数字按键功能实现效果
数字按键功能实当代码
- private void button8_Click(object sender, EventArgs e)
- {
- string seven = "7";
- if (label1.Text.Length < 30)
- {
- if (label1.Text == "+" || label1.Text == "-" || label1.Text == "×" || label1.Text == "÷")
- {
- label1.Text = null;//如果前面有运算符,则先消除运算符再把数字投射到屏幕上
- }
- label1.Text = label1.Text + seven;//将数字投射到屏幕上
- if (label1.Text.Length > 16)
- {
- label1.Font = new Font(label1.Font.FontFamily, 13f, label1.Font.Style);
- }
- else
- {
- label1.Font = new Font(label1.Font.FontFamily, 26f, label1.Font.Style);
- }
- }
- else
- {
- MessageBox.Show("字符长度超出范围");
- }
- }
复制代码 运算符按键功能
假如在输入运算符前未输入数字,则弹窗提示"无运算数字";假如输入运算符前已经输入数字且symbol(运算符)为null,则扫除已经输入的而且投射到屏幕上的数字并将其赋值至num1,然后将运算符赋值给symbol并投射到屏幕上;假如输入运算符前屏幕上已经表现了输入的运算符,则弹窗提示"您已输入运算符";假如输入运算符前已经输入数字且symbol(运算符)已被赋值,则扫除已经输入的而且投射到屏幕上的数字并将其赋值至num2并盘算num1 运算符 num2效果并将其赋值至num1,然后将运算符赋值给symbol并投射到屏幕上。
运算符按键功能实现效果
运算符按键功能实当代码
- private void button4_Click(object sender, EventArgs e)
- {
- string divide = "÷";
- if (symbol == null && label1.Text.Length<1&&num1==null)
- {
- MessageBox.Show("无运算数字");
- }
- else
- {
- if (symbol == null)
- {
- if(num1 == null)
- {
- num1 = label1.Text;
- }
- symbol = divide;
- label1.Text = symbol;
- }
- else
- {
- if (label1.Text == "+" || label1.Text == "-" || label1.Text == "×" || label1.Text == "÷") {
- MessageBox.Show("您已输入运算符");
- }
- else
- {
- num2 = label1.Text;
- rt = double.Parse(num1) / double.Parse(num2);
- num1 = rt.ToString();
- symbol = divide;
- label1.Text = symbol;
- num2 = null;
- }
- }
- }
- }
复制代码
AC按键功能
点击扫除全部信息。
AC按键功能实现效果
AC按键功能实当代码
- private void button1_Click(object sender, EventArgs e)
- {
- label1.Text = null;
- num1=null;
- num2=null;
- symbol = null;
- }
复制代码 Del按键功能
点击扫除末了字符,假如屏幕上末了字符表现的是输入的运算符,则点击后扫除运算符并把num1的值投射到屏幕上。
Del按键功能实现效果
Del按键功能实当代码
- private void button2_Click(object sender, EventArgs e)
- {
- if (label1.Text.Length == 0)
- {
- label1.Text = null;
- }
- else
- {
- if (label1.Text == "+" || label1.Text == "-" || label1.Text == "×" || label1.Text == "÷")
- {
- label1.Text = num1;
- symbol = null;
- }
- else
- {
- string del = label1.Text;
- label1.Text = del.Substring(0, del.Length - 1);
- if (label1.Text.Length < 30)
- {
- if (label1.Text.Length > 16)
- {
- label1.Font = new Font(label1.Font.FontFamily, 13f, label1.Font.Style);
- }
- else
- {
- label1.Font = new Font(label1.Font.FontFamily, 26f, label1.Font.Style);
- }
- }
- }
- }
- }
复制代码 +/-按键功能
点击取屏幕上数字的相反数并投射到屏幕上;但是假如点击+/-按键时屏幕上没有数字或屏幕上为运算符,则按键提示"error"(按键‘.’同样效果)。
+/-按键功能实现效果
+/-按键功能实当代码
- private void button3_Click(object sender, EventArgs e)
- {
- if (label1.Text.Length == 0)
- {
- MessageBox.Show("error");
- }
- else if (label1.Text == "+" || label1.Text == "-" || label1.Text == "×" || label1.Text == "÷")
- {
- MessageBox.Show("error");
- }
- else
- {
- double reserve = double.Parse(label1.Text);
- reserve = -reserve;
- label1.Text = reserve.ToString();
-
复制代码 |