文档介绍:面向对象课程设计报告
题目:简易计算器
专业:计算机科学与技术
学号:
姓名:
问题描述:
编程实现基本的加、减、乘、除。
基本要求:
1) 完成基本的加、减、乘、除等功能;
2) 具备异常处理机制;
3) 扩展功能。
系统分析:
做好的软件应该能正确的做加减乘除的基本运算,并且但做除法运算是当除数为0时,应该能做出异常处理并提示错误。
开始
数据流图:
输入一个算式:abc(a,b为数值,c为运算符)
判断c的值是否为/
执行其他运算
N
Y
判断b是否为0
提示出错
N
结束
显示相应的运算结果
Y
程序清单:
代码:
using System;
using ;
using ponentModel;
using ;
using ;
using ;
using ;
using ;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
String F = "";//用于存储符号运算符
double a, b, c;//a为第一个接收的值,b为第二个值,c为计算结果
long s = 1;//初始小数的位数
public Form1()
{
ponent();
}
public void anniu(double i)
{
if ((""))//是否当前有运算符
{
if (s == 1)//判断是否有小数点
{
a = a * 10 + i;//计算无小数的值
}
else
{
a = a + i / s;//计算有小数的值
s = s * 10;//计算下一个小数的位置
}
= ();//显示计算的结果
}
else //当前有运算符的方法
{
if (!(c == 0)) { b = 0; c = 0; }//当有计算结果就清除B的值
if (s == 1)//判断是否有小数点
{
b = b * 10 + i;//计算无小数的值
}
else
{
if (i == 0)//判断在小数位后添加0
{
s = s * 10;//计算下一个小数的位置
}
else
{
b = b + i / s;//计算有小数的值
s = s * 10;//计算下一个小数的位置
}
}
= ();//显示计算的结果
}
}
public void js()
{//数学计算的方法
if (F == "/")//判断是否除数等于0
{
if (b == 0) //是则不计算
{
= "Error";//显示被除数不能为0
return;//返回
}
else
{
c = a / b;
}
}
else//如果不是出发计算则执行其他计算
{
if (("+")) { c = a + b; }
if (("-")) { c = a - b; }
if (("*")) { c = a * b; }
}
= (); //显示计算结果
a = c;//将结果给第一个变量作为
}
public void f(string str) //接收运算符的方法
{
if ((""))//当前是否已经有运算符
{
F = str; s = 1;//没有则接收运算符,小数点失效
}
else
{
js(); s = 1; F = str;//有则计算当前的值,小数点失效
}
}
private void button13_Click(object sender, EventArgs e)
{
anniu(1);//调用按钮方法
}
private void button14_Click(object sender, EventArgs e)
{
anniu(2);
}
private void button1