《C计算器程序设计》课程设计报告
C#程序设计 课 程 设 计 报 告 (计算机学院) 2013-2014 学年度第二学期 题目: 计算器的开发与应用 班级: 网络 XX 班 姓名: XXX 指导教师: XXX i 目 录 1. 需求分析 1 1.1 计算器应用软件的功能分析(二级标题,四号黑体) . 1 1.2 计算器软件的功能图 . 1 2. 界面设计 1 3. 功能实现 3 3.1 计算数字现实的功能代码 . 3 3.2 小数点设置的功能代码 . 3 3.3 连续运算的功能代码 . 3 3.4 实现键盘控制的功能代码 . 4 3.5 删除的功能代码 . 5 4. 设计总结 5 参考文献 6 1 计算器的开发与应用 摘要: 计算器的产生和发展是建立在电子计算机基础之上的, 现代社会很需 要一个健全、 高效率的计算器。 为了提高自己的实践能力和将来开发一个更实用 更全能更智能的计算器, 以设计与实现计算器为课题。 此次设计的计算器应用软 件从 visual studio 2012 编程环境中开发,是一个简单的窗体应用程序,实现 简单的计算器功能。以微软自带的计算器为模板,设计了简单易懂的计算器。这 款计算器不仅实现了简单的四则运算的功能, 还能连续运算, 实现小键盘的操作, 光标的转移。 虽然这个简单的计算器只能实现这些功能, 但是具有简洁的图文外 观, 即时准确的获得所需要要计算的结果, 充分降低了数字计算器的难度和所需 要的时间,对人们生活和学习具有有很大的帮助。 关键词:计算器;功能 ;界面;窗口;事件。 1. 需求分析 通过对微软附件计算器软件进行调研、分析,研究,使用。我们了解到了作 为一个计算器所应该有的一些简单功能和界面的排版,我们知道了怎样使编写的 计算器程序向微软附件计算器靠拢。 1.1 计算器应用软件的功能分析 计算器软件的主要功能是: 1)可以显示计算数字 2)可以进行加减乘除四则运算 3)可以实现键盘操控的功能 4)可以进行清零运算 5)可以进行退格键运算 6)可以进行连续计算 1.2 计算器软件的功能图 根据以上需求分析,计算器软件功能如图 1-1 所示。 2. 界面设计 计算器主界面 显 示 计 算 数 字 连 续 计 算 功 能 图 1-1 计算器功能图 进 行 四 则 运 算 键 盘 操 控 清 零 运 算 退 格 键 功 能 2 计算器软件界面设计采用一个窗口() 、按钮控件和一个文本框控件组 成,完成如下图 2-1 的计算器界面 界面中控件的属性设置如下表 2-1 表 2-1 属性设置 控件名 属性 值 1 Maximizebox FALSE 事件 Keypress Button1 Text 1 Button1 Text 1 Button2 Text 2 Button3 Text 3 Button4 Text 4 Button5 Text 5 Button6 Text 6 Button7 Text 7 Button8 Text 8 Button9 Text 9 Button10 Text C Button11 Text 0 Button12 Text . Button13 Text + Button14 Text - Button15 Text * Button16 Text / Button17 Text = Button18 Text ← TextBox1 Readonly Ture TextAlign Right 3 3. 功能实现 要实现需求分析中软件各功能, 需要设计一些事件的功能代码。 利用所需的 代码,编写一些计算器的功能,使计算器更加灵活易懂。 3.1 计算数字现实的功能代码 以数字“1”为例: (其余的数字同样如此) 当文本框显示为“0” ,或 flag(按过运算符号按钮后 flag=1)后数字会替 换当前数字,否则追加 private void button1_Click(object sender, EventArgs e) { if (textBox1.Text == “0“ || flag == 1) //替换 { textBox1.Text = “1“; flag = 0; } else //追加 {textBox1.Text = textBox1.Text + “1“; } button17.Focus(); //焦距定于等号键,可使 enter 键用于等号运 } 3.2 小数点设置的功能代码 文本框里最多显示一个小数点, 利用 IndexOf 类来查找代码中小数点出现的 次数,且当文本框显示为“0” ,或 flag(按过运算符号按钮后 flag=1)后会用 “0.”替换当前数字,否则追加 private void button12_Click(object sender, EventArgs e) { if (textBox1.Text.IndexOf(“.“) == -1) //得到的是这个字符串 中字符“.”第一次出现的位置,如果没出现的话,得到的是-1,而且字符串的第 一个位置是0。 { if (textBox1.Text == “0“ || flag == 1) //替换 { textBox1.Text = “0.“; flag = 0; } else { textBox1.Text = textBox1.Text + “.“; //追加 } } button17.Focus(); } 3.3 连续运算的功能代码 以“+”号键为例: (同样如此,-,*,\,只需改变运算符 ysf 的取值) 4 用 yscs(运算次数)变量判断运算次数,次数为一次时,保存变量。次数为 两次以上时, 保存变量之后执行等号运算, 并且连续运算, 继续保存为第一个数, 继续进行四则运算。 private void button13_Click(object sender, EventArgs e) //加法运算 { flag = 1; dhcs = 0; //(等号次数) yscs++; // (运算次数) if (yscs == 1) { num1 = Convert.ToDouble(textBox1.Text);//保存输入进去的 第一个数 } if (yscs = 2) { num2 = Convert.ToDouble(textBox1.Text);//保存第二次运算 符前的那个数 switch (ysf) { case 1: textBox1.Text = (num1 + num2).ToString(); break; case 2: textBox1.Text = (num1 - num2).ToString(); break; case 3: textBox1.Text = (num1 * num2).ToString(); break; case 4: if (num2 == 0) { MessageBox.Show(“分母不能为“0”“); break; } else {textBox1.Text = (num1 / num2).ToStrin