我的第一个winform计算器小程序... ...

xiaolei2990 2011-05-28 04:51:18
有很多不尽人意的地方 请大家指导指导





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace 计算器
{
public partial class Form1 : Form

{
int i1=0;
public Form1()
{
InitializeComponent();
}

private void button_Click(object sender, EventArgs e)
{
string str1 = txt1.Text;
if (str1[0] == '0' && str1.Length == 1)
{
txt1.Text = Convert.ToString("1");
}
else
{
txt1.Text = Convert.ToString(str1 + "1");
}

}

private void btn2_Click(object sender, EventArgs e)
{
string str1 = txt1.Text;
if (str1[0] == '0' && str1.Length == 1)
{
txt1.Text = Convert.ToString("2");
}
else
{
txt1.Text = Convert.ToString(str1 + "2");
}
}

private void btn3_Click(object sender, EventArgs e)
{
string str1 = txt1.Text;
if (str1[0] == '0' && str1.Length == 1)
{
txt1.Text = Convert.ToString("3");
}
else
{
txt1.Text = Convert.ToString(str1 + "3");
}
}

private void btn4_Click(object sender, EventArgs e)
{
string str1 = txt1.Text;
if (str1[0] == '0' && str1.Length == 1)
{
txt1.Text = Convert.ToString("4");
}
else
{
txt1.Text = Convert.ToString(str1 + "4");
}
}

private void btn5_Click(object sender, EventArgs e)
{
string str1 = txt1.Text;
if (str1[0] == '0' && str1.Length == 1)
{
txt1.Text = Convert.ToString("5");
}
else
{
txt1.Text = Convert.ToString(str1 + "5");
}


}

private void btn6_Click(object sender, EventArgs e)
{
string str1 = txt1.Text;
if (str1[0] == '0' && str1.Length == 1)
{
txt1.Text = Convert.ToString("6");
}
else
{
txt1.Text = Convert.ToString(str1 + "6");

}


}

private void btn7_Click(object sender, EventArgs e)
{
string str1 = txt1.Text;
if (str1[0] == '0' && str1.Length == 1)
{
txt1.Text = Convert.ToString("7");
}
else
{
txt1.Text = Convert.ToString(str1 + "7");
}

}


private void btn8_Click(object sender, EventArgs e)
{
string str1 = txt1.Text;
if (str1[0] == '0' && str1.Length == 1)
{
txt1.Text = Convert.ToString("8");
}
else
{
txt1.Text = Convert.ToString(str1 + "8");
}


}

private void btn9_Click(object sender, EventArgs e)
{
string str1 = txt1.Text;
if (str1[0] == '0' && str1.Length == 1)
{
txt1.Text = Convert.ToString("9");
}
else
{

txt1.Text = Convert.ToString(str1 + "9");
}


}

private void btn0_Click(object sender, EventArgs e)
{
string str1 = txt1.Text;
if (str1[0] == '0' &&str1.Length==1)
{
txt1.Text = Convert.ToString("0");
}
else
{


txt1.Text = Convert.ToString(str1 + "0");
}


}

private void button10_Click(object sender, EventArgs e)
{
string str1 = txt1.Text;
int i=str1.Length;
i = i - 1;

if (str1[i] == '0' || str1[i] == '1' || str1[i] == '2' || str1[i] == '3' || str1[i] == '4' || str1[i] == '5' || str1[i] == '6' || str1[i] == '7' || str1[i] == '8' || str1[i] == '9')
{
txt1.Text = str1 + '.';
}
else
{
return;
}

}

private void btnjia_Click(object sender, EventArgs e)
{
string str1 = txt1.Text;
int i = str1.Length;
i = i - 1;
if ((str1[i] == '+') || (str1[i] == '-') || (str1[i] == '*') || (str1[i] == '/'))
{

return;
}

else
{
txt1.Text = str1 + '+';
}
}

private void btnjian_Click(object sender, EventArgs e)
{
string str1 = txt1.Text;
int i = str1.Length;
i = i - 1;
if ((str1[i] == '+') || (str1[i] == '-') || (str1[i] == '*') || (str1[i] == '/'))
{

return;
}

else
{
txt1.Text = str1 + '-';
}

}

private void btncheng_Click(object sender, EventArgs e)
{
string str1 = txt1.Text;
int i = str1.Length;
i = i - 1;
if ((str1[i] == '+') || (str1[i] == '-') || (str1[i] == '*') || (str1[i] == '/'))
{

return;
}

else
{
txt1.Text = str1 + '*';
}
}

private void btnchu_Click(object sender, EventArgs e)
{
string str1 = txt1.Text;
int i = str1.Length;
i = i - 1;
if ((str1[i] == '+') || (str1[i] == '-') || (str1[i] == '*') || (str1[i] == '/'))
{

return;
}

else
{
txt1.Text = str1 + '/';
}
}

private void button15_Click(object sender, EventArgs e)
{

double i1, i2, i3, i4, i5, i6, i7;
string str1 = txt1.Text;
i4 = str1.IndexOf('+');
if (i4 >= 0)
{
string[] str2 = str1.Split('+');

double.TryParse(str2[0], out i1);
double.TryParse(str2[1], out i2);
i3 = i1 + i2;
txt1.Text = Convert.ToString(i3);
}
else
{
i5=str1.IndexOf('-');
if (i5>= 0)
{
string[] str2 = str1.Split('-');

double.TryParse(str2[0], out i1);
double.TryParse(str2[1], out i2);
i3 = i1 -i2;
txt1.Text = Convert.ToString(i3);
}
i6 = str1.IndexOf('*');
if (i6 >= 0)
{
string[] str2 = str1.Split('*');

double.TryParse(str2[0], out i1);
double.TryParse(str2[1], out i2);
i3 = i1 * i2;
txt1.Text = Convert.ToString(i3);
}
else
{
i7 = str1.IndexOf('/');
if (i7>= 0)
{
string[] str2 = str1.Split('/');

double.TryParse(str2[0], out i1);
double.TryParse(str2[1], out i2);
i3 = i1 / i2;
txt1.Text = Convert.ToString(i3);
}
}
}
}

private void button2_Click(object sender, EventArgs e)
{
int i;
string str1 = txt1.Text;
i = str1.Length;
string str2 = str1.Substring(0, i - 1);
txt1.Text = str2;
}

private void button1_Click(object sender, EventArgs e)
{
txt1.Text = Convert.ToString(0);
}


}
}
...全文
224 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜鸟狂飞 2011-05-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zming 的回复:]

(1)每个数字按钮一个事件处理程序,看来楼主不懂多个控件共用一个事件处理程序。
(2)没有任何面向对象的编程思想体现出来。

建议楼主保留这个小练习,等过一段时间之后,再重写这个计算器程序。
[/Quote]

+++++
bios8086 2011-05-28
  • 打赏
  • 举报
回复
namespace 计算器

别用汉字!呵呵
lh1611 2011-05-28
  • 打赏
  • 举报
回复
支持!支持!
lovingshu 2011-05-28
  • 打赏
  • 举报
回复
呵呵~当时我也编了一个~我老师说我编的很帅气~嘿嘿~
十八道胡同 2011-05-28
  • 打赏
  • 举报
回复
支持!
threenewbee 2011-05-28
  • 打赏
  • 举报
回复
可以把这些按钮都发到一个处理过程里面:
private void btn_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
string str1 = txt1.Text;
if (str1[0] == '0' && str1.Length == 1)
{
txt1.Text = Convert.ToString(btn.Text);
}
else
{
txt1.Text = Convert.ToString(str1 + btn.Text);
}
}
zming 2011-05-28
  • 打赏
  • 举报
回复
(1)每个数字按钮一个事件处理程序,看来楼主不懂多个控件共用一个事件处理程序。
(2)没有任何面向对象的编程思想体现出来。

建议楼主保留这个小练习,等过一段时间之后,再重写这个计算器程序。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧