项目需求:
设计一个四则运算计算器;通过计算器界面上的按钮输入计算数据,支持整型和小数输入;可以进行加、减、乘、除操作;支持退格(删除输入框内的最后一个字符)、CE(清空输入框)、C(清空输入框并重置计算器);有一个历史记录文本框,可以显示计算过的内容。
随着科学技术的发展,我们手机里的计算器也越来越强大,不仅可以实现加、减、乘、除的计算功能,还延伸出了汇率计算。同时数学公式是书写,各类符号也在计算器里可以看见,还有了专属于程序员的二级制、十进制、十六进制的换算,在未来的一天,我们的计算器还会出现许多新奇的功能,我们也会体验得到。正是在这种情况下,我们这次有了一个有趣的任务,实现一个计算器的设计,帮助大家去理解这计算背后的逻辑,让大家对计算器计算有一个大致的理解。
安装软件,我们用的是《Visual Studio Installer》这款软件,这款软件的Windows窗体应用可以设计出自己喜欢的页面,没有安装的小伙伴可以去安装一下,官网下载地址在下面。
官网下载地址:http://b.zhr33.cn/vs/
安装好软件之后,我们就可以选择适合自己的版本和插件,那下面就开始我们计算器的设计之旅了!
做一个漂亮的窗体页面,我们一定要认识控件,认识了控件的属于方便我们设计出引起眼球注意的界面,接下来就介绍本项目的控件属性。大家如果想了解更多的Visual Studio Installer控件属性,也可以去Microsoft官网的技术文档里了解,里面可以查到所有控件的详细信息。Microsoft官网的技术文档地址:https://learn.microsoft.com/zh-cn/docs/
标签控件用来显示一行文本信息,但文本信息不能编辑,常用来输出标题、显示处理结果和标记窗体上的对象。标签一般不用于触发事件。
控件详细讲解技术文档链接:https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.forms.label?view=windowsdesktop-7.0
用户单击按钮,触发单击事件,在单击事件处理函数中完成相应的工作。按钮(Button)控件的常用属性和事件。
控件详细讲解技术文档链接:https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.controls.button?view=windowsdesktop-7.0
TextBox控件是用户输入文本的区域,也叫文本框。
控件详细讲解技术文档链接 https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.forms.textbox?view=windowsdesktop-7.0
ComboBox控件中有一个文本框,可以在文本框中输入字符,其右侧有一个向下的箭头,单击此箭头可以打开一个列表框,可以从列表框中选择希望输入的内容。
控件详细讲解技术文档链接:https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.office.tools.excel.controls.combobox?view=vsto-2017
我们大概的控件布局就是这样,如果你喜欢更漂亮的设计界面,你只需在Form属性页更改样式、背景等实现不一样的视觉体验;如果你想更改控件的样式,同样的在属性页更改控件的设计样式就好啦!
String character;
Double One,Two,Three;
NumText.Text += "1"; //只需更改双引号里面的数字,假设我们运算的数字里面有1,双引号里就是1
One = Convert.ToDouble(NumText.Text);
character = "-"; //只需更改双引号+、-、*、/
NumText.Text = "";
int m = NumText.Text.IndexOf(".");
if (m == -1)
NumText.Text = NumText.Text + ".";
string old = NumText.Text;
if (old.Length > 0)
{
NumText.Text = old.Remove(old.Length - 1);
}
NumText.Text = "";
NumText.Text = "";
txt_result.Text = "";
int f = 1;
Two = Convert.ToDouble(NumText.Text);
if (character == "+")
Three = One + Two;
else if (character == "-")
Three = One - Two;
else if (character == "*")
Three = One * Two;
else if (character == "/")
{
if (Two == 0)
{
NumText.Text = "输入错误";
txt_result.Text = "错误\r\n\r\n";
return;
}
else
Three = One / Two;
}
else
Three = One / Two;
if (f == 1)
NumText.Text = Three.ToString();
txt_result.Text += String.Format("{0} {1} {2} = {3}", One, character, Two, Three) + "\r\n\r\n";
}
我们做界面设计时,也要做好界面控件的命名,下面是部分控件的命名:
我们做了这个实验的结果,大概就是以下这张截图,如果还没有实现功能的小伙伴不妨在检查一下自己的代码,看看是不是哪一步出现了问题。
演示视频:https://www.bilibili.com/video/BV1ku4y1o7Qr/?spm_id_from=333.999.0.0
我们这次有趣的任务就圆满结束了,还没明白的小伙伴可以多看几遍文章。如果还有其他问题,也可以在评论区留言,留下你的问题、观点和看法,我们都会帮你解决。谢谢大家的阅读,拜拜!