当前位置:   article > 正文

手把手教你用C#语言写一个简单计算器窗体(附源代码文件和演示视频)_c#计算器

c#计算器

手把手教你用C#语言写一个简单计算器窗体(附源代码文件和演示视频)!

目录

C#简介:

开发工具的介绍和安装:

计算器的编写过程:

下面是源代码(Form1.cs文件):

彩蛋:

1.插入并载入新的窗体(窗口):

2.插入图片并让其适中显示:

下面是“彩蛋”源代码(Form2.cs文件):

最终效果演示:

帮人帮到底!源代码文件分享链接如下:


C#简介:

       C#是由C和C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。

开发工具的介绍和安装:

这里用的是VS2022,可以去官网下载安装(链接如下)Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器

Visual Studio2022除了体积较大,可以说是很强大的IDE了可以编写多种语言并且内置编译器,代码补全功能也十分优秀。

计算器的编写过程:

首先我们新建一个窗体文件以后,映入眼帘的是一个空白的窗体(窗口),默认为Form1,我们计算器的UI就是要在这上面绘制 这里我们就用到了“控件”,也就是像按钮和文本框这些我们在使用中所需要的东西。

 如果vs2022打开后没有显示旁边的工具箱,可以在视图-->工具箱里面打开,或者CTRL+ALT+X;

 这里面的分类可以方便我们查找我们所需的工具

放置文本的控件

计算器的主要控件按钮

 我们新建完控件会发现,我们需要设置他的标题,大小还有里面的内容的字体等等

这里就需要用到属性。

我们需要单击控件,选中后,右键,然后点击属性,然后对属性进行修改。

TextBox基础属性设置

 我们双击任何一个按钮(控件)进入代码编辑区

我们会发现,每一个控件包括窗体都对应着一个函数,我们剩下的工作就是编辑代码,补全这些函数,使其联系起来,让代码运行顺利,并且达到我们想要的逻辑效果。 

下面是源代码(Form1.cs文件):

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Runtime.Remoting.Messaging;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11. namespace 计算器
  12. {
  13. public partial class Form1 : Form
  14. {
  15. public Form1()
  16. {
  17. InitializeComponent();
  18. }
  19. private void button2_Click(object sender, EventArgs e)
  20. {
  21. textBox1.Text += "1";
  22. }
  23. private void button1_Click(object sender, EventArgs e)
  24. {
  25. textBox1.Text += "2";
  26. }
  27. private void button9_Click(object sender, EventArgs e)
  28. {
  29. textBox1.Text += "3";
  30. }
  31. private void button5_Click(object sender, EventArgs e)
  32. {
  33. textBox1.Text += "4";
  34. }
  35. private void button4_Click(object sender, EventArgs e)
  36. {
  37. textBox1.Text += "5";
  38. }
  39. private void button3_Click(object sender, EventArgs e)
  40. {
  41. textBox1.Text += "6";
  42. }
  43. private void button8_Click(object sender, EventArgs e)
  44. {
  45. textBox1.Text += "7";
  46. }
  47. private void button7_Click(object sender, EventArgs e)
  48. {
  49. textBox1.Text += "8";
  50. }
  51. private void button6_Click(object sender, EventArgs e)
  52. {
  53. textBox1.Text += "9";
  54. }
  55. private void button11_Click(object sender, EventArgs e)
  56. {
  57. textBox1.Text += "0";
  58. }
  59. private void button12_Click(object sender, EventArgs e)
  60. {
  61. if (textBox1.Text.Contains(".")) return;
  62. else
  63. { if (textBox1.Text != "") textBox1.Text += ".";
  64. }
  65. }
  66. private void button10_Click(object sender, EventArgs e)
  67. {
  68. textBox1.Text = "";
  69. textBox2.Text = "";
  70. chu.Enabled = true;
  71. cheng.Enabled = true;
  72. jia.Enabled = true;
  73. jian.Enabled = true;
  74. }
  75. private void button13_Click(object sender, EventArgs e)
  76. {
  77. if (textBox1.Text != ""&& textBox1.Text != "-") textBox1.Text = Convert.ToString(double.Parse(textBox1.Text) * -1);
  78. else if (textBox1.Text != "-") textBox1.Text += "-";
  79. }
  80. private void button14_Click(object sender, EventArgs e)
  81. {
  82. if(textBox1.Text!=""&& textBox1.Text != "-") textBox1.Text = Convert.ToString(double.Parse(textBox1.Text) * 0.01);
  83. }
  84. private void chu_Click(object sender, EventArgs e)
  85. {
  86. chu.Enabled = false;
  87. cheng.Enabled = true;
  88. jia.Enabled = true;
  89. jian.Enabled = true;
  90. if(textBox1.Text!="")
  91. {
  92. textBox2.Text = textBox1.Text;
  93. textBox1.Text = "";
  94. }
  95. else textBox2.Text = "0";
  96. }
  97. private void cheng_Click(object sender, EventArgs e)
  98. {
  99. chu.Enabled = true;
  100. cheng.Enabled = false;
  101. jia.Enabled = true;
  102. jian.Enabled = true;
  103. if (textBox1.Text != "")
  104. {
  105. textBox2.Text = textBox1.Text;
  106. textBox1.Text = "";
  107. }
  108. else textBox2.Text = "0";
  109. }
  110. private void jian_Click(object sender, EventArgs e)
  111. {
  112. chu.Enabled = true;
  113. cheng.Enabled = true;
  114. jia.Enabled = true;
  115. jian.Enabled = false;
  116. if (textBox1.Text != "")
  117. {
  118. textBox2.Text = textBox1.Text;
  119. textBox1.Text = "";
  120. }
  121. else textBox2.Text = "0";
  122. }
  123. private void jia_Click(object sender, EventArgs e)
  124. {
  125. chu.Enabled = true;
  126. cheng.Enabled = true;
  127. jia.Enabled = false;
  128. jian.Enabled = true;
  129. if (textBox1.Text != "")
  130. {
  131. textBox2.Text = textBox1.Text;
  132. textBox1.Text = "";
  133. }
  134. else textBox2.Text = "0";
  135. }
  136. private void button19_Click(object sender, EventArgs e)
  137. {
  138. double hou;
  139. double qian = double.Parse(textBox2.Text);
  140. if (textBox1.Text == "") hou = 0;
  141. else hou = double.Parse(textBox1.Text);
  142. if(chu.Enabled==false)
  143. {
  144. if (hou != 0)
  145. {
  146. textBox2.Text = "结果如下";
  147. textBox1.Text = Convert.ToString(qian / hou);
  148. chu.Enabled = true;
  149. }
  150. else
  151. {
  152. MessageBox.Show("除数不能为0", "温馨提示");
  153. textBox1.Text = "";
  154. return;
  155. }
  156. }
  157. if (cheng.Enabled == false)
  158. {
  159. textBox2.Text = "结果如下";
  160. textBox1.Text = Convert.ToString(qian * hou);
  161. cheng.Enabled = true;
  162. }
  163. if (jia.Enabled == false)
  164. {
  165. textBox2.Text = "结果如下";
  166. textBox1.Text = Convert.ToString(qian + hou);
  167. jia.Enabled = true;
  168. }
  169. if (jian.Enabled == false)
  170. {
  171. textBox2.Text = "结果如下";
  172. textBox1.Text = Convert.ToString(qian - hou);
  173. jian.Enabled = true;
  174. }
  175. if (mod.Enabled == false)
  176. {
  177. double s = double.Parse(textBox1.Text);
  178. int a = (int)s;
  179. if (a != s)
  180. {
  181. MessageBox.Show("小数不能取余数!");
  182. textBox1.Text = "";
  183. return;
  184. }
  185. else
  186. {
  187. textBox2.Text = "结果如下";
  188. textBox1.Text = Convert.ToString(qian % hou);
  189. mod.Enabled = true;
  190. }
  191. }
  192. }
  193. private void button15_Click(object sender, EventArgs e)
  194. {
  195. double r=double.Parse(textBox1.Text);
  196. if(r<0)
  197. {
  198. MessageBox.Show("被开方数不能为0");
  199. textBox1.Text = "";
  200. return;
  201. }
  202. else
  203. {
  204. textBox1.Text = Convert.ToString(Math.Sqrt(r));
  205. }
  206. }
  207. private void button16_Click(object sender, EventArgs e)
  208. {
  209. double s = double.Parse(textBox1.Text);
  210. int a=(int)s;
  211. if(a!=s)
  212. {
  213. MessageBox.Show("小数不能取余数!");
  214. textBox1.Text = "";
  215. return;
  216. }
  217. else
  218. {
  219. mod.Enabled = false;
  220. chu.Enabled = true;
  221. cheng.Enabled = true;
  222. jia.Enabled = true;
  223. jian.Enabled = true;
  224. if (textBox1.Text != "")
  225. {
  226. textBox2.Text = textBox1.Text;
  227. textBox1.Text = "";
  228. }
  229. else textBox2.Text = "0";
  230. }
  231. }
  232. private void button17_Click(object sender, EventArgs e)
  233. {
  234. if (textBox1.Text != "") textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1);
  235. else return;
  236. }
  237. private void button16_Click_1(object sender, EventArgs e)
  238. {
  239. Form2 B2 = new Form2();
  240. B2.Show();
  241. }
  242. private void button18_Click(object sender, EventArgs e)
  243. {
  244. double r = double.Parse(textBox1.Text);
  245. textBox2.Text = "结果如下";
  246. textBox1.Text = Convert.ToString(r*r);
  247. }
  248. private void button20_Click(object sender, EventArgs e)
  249. {
  250. double s = double.Parse(textBox1.Text);
  251. int a = (int)s;
  252. if (a != s)
  253. {
  254. MessageBox.Show("小数不能求阶乘");
  255. textBox1.Text = "";
  256. return;
  257. }
  258. else
  259. {
  260. if(a==0)
  261. {
  262. textBox1.Text = "1";
  263. return;
  264. }
  265. int cnt = 1;
  266. for(int i = 1; i <= a; i++)
  267. {
  268. cnt *= i;
  269. }
  270. textBox2.Text = "结果如下";
  271. textBox1.Text = Convert.ToString(cnt);
  272. }
  273. }
  274. }
  275. }

彩蛋:

本计算器还有另一个“彩蛋”功能(如下图)

 这里我们要学的东西分为两个:

1.插入并载入新的窗体(窗口):

 首先,在视图中打开解决方案资源管理器

然后选中项目,右键点击鼠标 ,然后在添加中找到窗体

2.插入图片并让其适中显示:

首先,插入所需控件PictureBox

 单击选中后,右键选择图像

 然后选择本地文件后插入

 然后修改图片属性,修改其尺寸填充方式

 然后我们仿照Form1的方式设计UI并且编写和填充函数。

下面是“彩蛋”源代码(Form2.cs文件):

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace 计算器
  11. {
  12. public partial class Form2 : Form
  13. {
  14. public Form2()
  15. {
  16. InitializeComponent();
  17. }
  18. private void button16_Click(object sender, EventArgs e)
  19. {
  20. if(textBox1.Text=="")
  21. {
  22. MessageBox.Show("请输入年收入!");
  23. return;
  24. }
  25. else
  26. {
  27. double r=double.Parse(textBox1.Text);
  28. double cnt = 0;
  29. if (r <= 36000) cnt = r * 0.03;
  30. else if (r <= 144000) cnt = 36000 * 0.03 + (r-36000) * 0.1;
  31. else if (r <= 300000) cnt = 36000 * 0.03 + (144000 - 36000) * 0.1+ (r- 144000)*0.2;
  32. else if (r <= 420000) cnt = 36000 * 0.03 + (144000 - 36000) * 0.1 + (300000- 144000) * 0.2+(r-30000)*0.25;
  33. else if (r <= 660000) cnt = 36000 * 0.03 + (144000 - 36000) * 0.1 + (300000 - 144000) * 0.2 + (420000 - 30000) * 0.25+(r-420000)*0.3;
  34. else if (r <= 960000) cnt = 36000 * 0.03 + (144000 - 36000) * 0.1 + (300000 - 144000) * 0.2 + (420000 - 30000) * 0.25 + (660000 - 420000) * 0.3+(r-660000)*0.35;
  35. else if (r > 960000) cnt = 36000 * 0.03 + (144000 - 36000) * 0.1 + (300000 - 144000) * 0.2 + (420000 - 30000) * 0.25 + (660000 - 420000) * 0.3 + (960000 - 660000) * 0.35+(r-960000)*0.45;
  36. textBox2.Text=Convert.ToString(cnt);
  37. }
  38. }
  39. private void Form2_Load(object sender, EventArgs e)
  40. {
  41. }
  42. }
  43. }

最终效果演示:

C#简单计算器效果演示

帮人帮到底!源代码文件分享链接如下:

点击我链接直达,记得点赞支持一下哦!icon-default.png?t=N7T8https://download.csdn.net/download/xiaozhang0316/87403972

(新人小白发帖 大佬不喜勿喷!) 

有问题欢迎随时联系我!!!

感谢支持!!!
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/555736
推荐阅读
相关标签
  

闽ICP备14008679号