精华内容
下载资源
问答
  • 计算器需求分析

    2012-11-27 21:18:06
    科学计算器需求分析文档,按照国际标准编写,有少量内容缺失
  • 科学计算器<!--red_end--> 科学型 计算器——电子计算器的一种。可进行乘方、开方、指数、对数、三角函数、统计等方面的运算,又称函数计算器。目前的<!--red_beg-->计算器有<!--red_end-->标准型...

     

      • 科学计算器<!--red_end--> 科学型 计算器——电子计算器的一种。可进行乘方、开方、指数、对数、三角函数、统计等方面的运算,又称函数计算器。目前的<!--red_beg-->计算器有<!--red_end-->标准型和科学型。 《用正则表达式处理字符串,只提取其中的数字和运算符,并转换成列。
         

    转载于:https://www.cnblogs.com/taolishuang/p/7494997.html

    展开全文
  • } // 计算器的基本布局,在一个BorderLayout上面放置了一个GridLayout一个BorderLayout public void init() { setLayout(new BorderLayout(2, 2)); // 设置2个Panel Panel p0 = new Panel(); Panel p1 = new Panel...

    展开全部

    package example;

    import java.awt.*;

    import java.awt.event.*;

    public class Calculator extends Frame {

    /**

    * 本实例实现功能如下 1.普通加减乘除运算 2.小数点的情况已经32313133353236313431303231363533e59b9ee7ad9431333332626130解决 3.开始按0已经解决 4.消去键可以起作用

    *

    */

    private static final long serialVersionUID = 1L;

    private String name[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",

    ".", "=", "+", "-", "*", "/", "Backspace", "", "", "C" };

    private Button button[] = new Button[name.length];

    private TextField textfield = new TextField("0.");

    // 设置2个字符A1,A2用于存放点击运算符号之前的String数据

    private String A1 = null, A2 = null;

    // 设置2个字符B1,B2用于存放点击运算符号之后的String数据

    private String B1 = null, B2 = null;

    // 存放运算符号前后的数据,douuble类型进行运算

    private double A, B;

    // s存放为哪种运算符号,Result存放最后的运行结果

    private String Result="0", s;

    // 判断这个数字是否为小数,小数的时为true不是时为false

    private boolean Decimal=false;

    // 构造器,显示在标题栏

    public Calculator() {

    super("TEST:Caculator");

    }

    // 计算器的基本布局,在一个BorderLayout上面放置了一个GridLayout一个BorderLayout

    public void init() {

    setLayout(new BorderLayout(2, 2));

    // 设置2个Panel

    Panel p0 = new Panel();

    Panel p1 = new Panel();

    // p0上添加所有按扭

    p0.setLayout(new GridLayout(5, 4, 1, 1));

    // 不同的按扭采用不同的监听事件0-9和"."采用ButtonListener()

    for (int i = 0; i < 11; i++) {

    button = new Button(name);

    // 设置字体颜色为蓝色

    button.setForeground(Color.blue);

    p0.add(button);

    button.addActionListener(new ButtonListener());

    }

    // 其余的运算符号采取ButtonListener2()另一监听事件

    for (int i = 11; i < name.length; i++) {

    button = new Button(name);

    // 设置字体颜色为红色

    button.setForeground(Color.RED);

    p0.add(button);

    button.addActionListener(new ButtonListener2());

    }

    // 设置中间2个按扭不可见,增加美观,对称

    button[17].setVisible(false);

    button[18].setVisible(false);

    // p1上添加文本输出区域

    p1.setLayout(new BorderLayout(5, 5));

    p1.add(textfield);

    // 不可以向文本框里随便写东西

    textfield.setEditable(false);

    // 设置文本框背景为白色

    textfield.setBackground(Color.WHITE);

    add(p0, BorderLayout.SOUTH);

    add(p1, BorderLayout.NORTH);

    pack();

    // 设置打开窗口在显示器的中间显示

    setLocationRelativeTo(null);

    // 关闭按扭,适配器模式

    addWindowListener(new WindowAdapter() {

    public void windowClosing(WindowEvent e) {

    System.exit(0);

    }

    });

    // 调整可见

    setVisible(true);

    }

    public class ButtonListener implements ActionListener {

    public void actionPerformed(ActionEvent e) {

    System.out.print(e.getActionCommand() + " ");

    // 当A2和B2同时为null时候表示程序第一次运行或者开始一次新的运行,即按"="之后,将按键获取的值赋给A2--setp1

    if (A2 == null && B2 == null) {

    // 所按的数字按扭不是"0"的时候对A2进行赋值,否则给A2值不变,但是让textfield恢复初始值"0."

    if (!"0".equals(e.getActionCommand())) {

    // 考虑第一次按小数点的情况,按小数点后将boolean类型的Decimal定义为true

    if (".".equals(e.getActionCommand())) {

    A2 = "0.";

    Decimal = true;

    textfield.setText(A2);

    } else {

    A2 = e.getActionCommand();

    textfield.setText(A2);

    }

    } else {

    if ("0".equals(e.getActionCommand())) {

    } else {

    A2 = e.getActionCommand();

    textfield.setText("0");

    }

    }

    // 当A2不等于null,B2和A为null,表示还没有按运算符号,仍然对A2进行赋值

    } else if (A2 != null && A1 == null && B2 == null) {

    // 已经是小数的在点小数点不做任何动作,不是小数的在按"."的时候追加赋值并且设置Decimal为true

    if (".".equals(e.getActionCommand())) {

    if (Decimal) {

    } else {

    Decimal = true;

    A2 += e.getActionCommand();

    textfield.setText(A2);

    }

    } else {

    A2 += e.getActionCommand();

    textfield.setText(A2);

    }

    // 当A,A2不等于null,B2为null,表示刚按过运算符号,开始对B2进行赋值

    // 仍要考虑"0"的情况,但要考虑0做为被减数,乘数和加数,此处B2可以等于0

    // B2也可以是小数将Decimal设置回false

    } else if (A2 != null && A1 != null && B2 == null) {

    Decimal = false;

    if (!"0".equals(e.getActionCommand())) {

    // 不为"0"但为"."的情况,原理同上

    if (".".equals(e.getActionCommand())) {

    Decimal = true;

    if (Decimal) {

    B2 = "0.";

    } else {

    Decimal = true;

    B2 = e.getActionCommand();

    textfield.setText(B2);

    }

    } else {

    B2 = e.getActionCommand();

    textfield.setText(B2);

    }

    } else {

    B2 = "0";

    textfield.setText(B2);

    }

    // 当A,A2,B2都不为null的时候表示B2已经被赋值,继续按数字按扭对B2继续赋值

    // 当B2等于0的时候不进行追加直接赋值,仅当B2不等于0的时候才进行追加

    } else if (A2 != null && A1 != null && B2 != null) {

    if ("0".equals(B2)) {

    // 考虑用户连续2次按"0"的情况

    if ("0".equals(e.getActionCommand())) {

    B2 = "0";

    textfield.setText(B2);

    } else {

    B2 = e.getActionCommand();

    textfield.setText(B2);

    }

    } else {

    // 不为"0"但为"."的情况,原理同上

    if (".".equals(e.getActionCommand())) {

    if (Decimal) {

    } else {

    Decimal = true;

    B2 += e.getActionCommand();

    textfield.setText(B2);

    }

    } else {

    B2 += e.getActionCommand();

    textfield.setText(B2);

    }

    }

    }

    }

    }

    public class ButtonListener2 implements ActionListener {

    public void actionPerformed(ActionEvent e) {

    System.out.print(e.getActionCommand() + " ");

    // 一旦按了运算符号"+-*/"A2赋值给A,使得A和A2都不为null,但此时B2还为null在按数字键的时候便会给B2赋值

    // 给s--运算符号赋值

    if ("+".equals(e.getActionCommand())) {

    if (A2 == null) {

    A2 = "0";

    }

    A1 = A2;

    s = "+";

    } else if ("-".equals(e.getActionCommand())) {

    if (A2 == null) {

    A2 = "0";

    }

    A1 = A2;

    s = "-";

    } else if ("*".equals(e.getActionCommand())) {

    if (A2 == null) {

    A2 = "0";

    }

    A1 = A2;

    s = "*";

    } else if ("/".equals(e.getActionCommand())) {

    if (A2 == null) {

    A2 = "0";

    }

    A1 = A2;

    s = "/";

    // 等号的时候把B2赋值给B,进行最后的运算

    } else if ("=".equals(e.getActionCommand())) {

    if (A2 == null) {

    A2 = "0";

    }

    if (B2 == null) {

    B2 = "0";

    }

    A1 = A2;

    B1 = B2;

    // 将String类型转换为double进行运算

    A = Double.parseDouble(A1);

    B = Double.parseDouble(B1);

    if ("+".equals(s)) {

    Result = String.valueOf(A + B);

    System.out.println();

    System.out.println(A + "+" + B + "=" + Result);

    } else if ("-".equals(s)) {

    Result = String.valueOf(A - B);

    System.out.println();

    System.out.println(A + "-" + B + "=" + Result);

    } else if ("*".equals(s)) {

    Result = String.valueOf(A * B);

    System.out.println();

    System.out.println(A + "*" + B + "=" + Result);

    }

    textfield.setText(Result);

    A1 = null;

    A2 = null;

    B1 = null;

    B2 = null;

    Decimal=false;

    } else if ("Backspace".equals(e.getActionCommand())) {

    String text = "0";

    if (A2 == null && A1 == null) {

    } else if (A2 != null && A1 == null && B2 == null) {

    int t = A2.length();

    text = A2;

    if (t == 1) {

    text = "0";

    } else {

    text = text.substring(0, t - 1);

    }

    A2 = text;

    } else if (A2 != null && A1 != null && B2 == null) {

    } else {

    int t = B2.length();

    text = B2;

    if (t == 1) {

    text = "0";

    } else {

    text = text.substring(0, t - 1);

    }

    B2 = text;

    }

    textfield.setText(text);

    System.out.println();

    System.out.println("text=" + text + " ");

    System.out.println(A1 + ":" + A2 + ":" + B1 + ":" + B2);

    // 选择"C"的时候将计算器重置,即恢复到开始的状态

    } else if ("C".equals(e.getActionCommand())) {

    textfield.setText("0.");

    A1 = null;

    A2 = null;

    B1 = null;

    B2 = null;

    Decimal=false;

    }

    }

    }

    public static void main(String[] args) {

    Calculator calculator = new Calculator();

    calculator.init();

    }

    }   下面还有

    2Q==

    已赞过

    已踩过<

    你对这个回答的评价是?

    评论

    收起

    展开全文
  • 科学计算器 科学型 计算器——电子计算器的一种。可进行乘方、开方、指数、对数、三角函数、统计等方面的运算,又称函数计算器。目前的计算器有标准型和科学型。 《用正则表达式处理字符串,只提取其中的数字和...

    科学计算器 科学型 计算器——电子计算器的一种。可进行乘方、开方、指数、对数、三角函数、统计等方面的运算,又称函数计算器。目前的计算器有标准型和科学型。

     

    《用正则表达式处理字符串,只提取其中的数字和运算符,并转换成列表

    编写一个函数,处理没有括号的基本运算的基本表达式

    再写一个函数递归处理带有括号的函数,先计算最内部括号中的表达式, 然后将最内部的括号替换为计算后的结果, 在递归外部一层的, 最后返回的就是所需的结果》

    转载于:https://www.cnblogs.com/xiaoluziwoaini/p/7486802.html

    展开全文
  • abacus 3 是一个小型简易计算器,可以用它作为计算机上的日常计算器使用,比系统自带计算器强大得多,比如它支持用户自定义运算符或者函数,支持使用变量和符号常量等。  2 . 总体描述  2.1 产品...

          引言:计算器 abacus 2 完成几个月了,越来越不满足于 abacus 的结构逻辑,总觉得好多地方不够完美,早就有全部重写的打算,苦于工作繁忙,一直没有机会,趁着清明节小假的机会,准备把 abacus 3 的设计给做了。

       1.简介

         abacus 3 是一个小型简易计算器,可以用它作为计算机上的日常计算器使用,比系统自带计算器强大得多,比如它支持用户自定义运算符或者函数,支持使用变量和符号常量等。

       2.总体描述

            2.1 产品目标

          abacus 3 的目标是打造一个日常使用的计算器,用于代替系统自带计算器,并提供更多实用的数学功能。

            2.2 产品功能

          abacus 3 需要具备如下功能:

    • 支持四则混合运算
    • 支持常用数学函数
    • 支持符号常量
    • 支持用户自定义变量并参与运算
    • 支持用户自定义运算符与函数
       3.详细需求

             3.1 界面需求

          abacus 3 暂不使用 GUI 界面,以命令行的方式运行程序。程序启动后,用户逐条输入计算命令,并等待计算器输出结果。

             3.2 功能需求

    • 支持四则混合运算,详细的运算符列表见下表,还需支持表达式的嵌套,嵌套括号限定为小括号,但允许任意层嵌套。 
    运算符形式 功能描述
    x + y 求 x 与 y 的和
    x - y 求 x 减去 y 的差
    x * y 求 x 与 y 的积
    x / y 求 x 除以 y 的商
    x % y 求 x 除以 y 的余数
    - x 求 x 的相反数
    x ^ y 求 x 的 y 次方
    x! 求 x 的阶乘
    x!! 求 x 的双阶乘

    • 支持常用数学函数,需要支持三角函数、指对函数等常用的数学函数,函数的详细列表见下表。
    函数形式 功能描述
    abs(x) 求 x 的绝对值
    pow(x, y) 求 x 的 y 次方
    pow10(x)
    求 10 的 x 次方
    exp(x)
    求 e 的 x 次方,e 是自然对数的底数
    log(x, y) 求 x 的以 y 为底的对数
    log10(x) 求 x 的以 10 为底的对数
    ln(x) 求 x 的以 e 为底的对数,e 是自然对数的底数
    sqrt(x) 求 x 的算术平方根
    sin(x) 求 x 的正弦,x 采用弧度制
    cos(x) 求 x 的余弦,x 采用弧度制
    tan(x) 求 x 的正切,x 采用弧度制
    arcsin(x) 求 x 的反正弦
    arccos(x) 求 x 的反余弦
    arctan(x) 求 x 的反正切
    sinh(x) 求 x 的双曲正弦
    cosh(x)
    求 x 的双曲余弦
    tanh(x)
    求 x 的双曲正切
    max(x1, x2, ..., xn)
    求 x1, x2, ..., xn 中的最大值
    min(x1, x2, ..., xn) 求 x1, x2, ..., xn 中的最小值
    ceil(x)
    求不小于 x 的最小整数
    floor(x) 求不大于 x 的最大整数

    • 支持符号常量,在表达式中可以使用圆周率、自然对数的底数等符号常量,例如求半径为 2.3 的圆的面积可以输入表达式 PI * 2.3 * 2.3,用户可以定义自己的符号常量并永久保存并使用,计算器内置符号常量列表如下:
    标识符
    描述
    PI 圆周率 3.141592654
    E 自然对数的底数 2.718281828

    • 支持用户自定义变量并参与运算,要求如下:
    1. 变量的名称中只能包含字母和数字,并且必须以字母开头
    2. 允许一次定义多个变量
    3. 定义变量的时候可以指定值也可以不指定
    4. 需有变量赋值的功能
    5. 如果使用未经赋值的变量参与运算,程序应当给出出错提示
    6. 允许用户定义符号常量并永久存储使用
    • 支持用户自定义运算符与函数,要求如下:
    1. 函数名称只能包含字母和数字,并且必须以字母开头
    2. 允许一次定义多个运算符或函数,运算符需指定优先级
    3. 定义运算符或函数时必须指定完成计算的表达式
    4. 自定义的运算符或函数不得与内置运算符或函数同名冲突
    5. 提供自定义运算符或函数的永久存储使用

             3.3 非功能需求

    • 程序应该跨平台
    • 运算响应速度应得到保证
    • 应具有简短易理解的错误提示
     


    转载于:https://my.oschina.net/zhcosin/blog/119886

    展开全文
  • 逆波兰计算器

    2019-07-20 16:34:23
    需求分析 输入一个逆波兰表达式,使用栈(Stack),计算其结果 支持小括号和多位数整数,因为这里目的是搞懂数据结构,而不是写计算器,所以,这里对计算器进行简化,只支持对整数的计算。 思路分析 从左至右...
  • C#简易版计算器

    2018-12-28 18:22:44
    计算器需求分析 1.界面分析 做一个显示屏 17个按钮(0~9 +-*/% =ce) 2.需要实现的功能 选择第一个数字 选择运算符 选择第二个数字 按下等号进行计算,结果显示在显示屏中 3.实现步骤 1)先做界面 a.显示...
  • C#计算器精简版的制作

    千次阅读 2019-06-03 22:51:12
    计算器需求分析 一、界面设计 1.做一个显示屏 2.17个按钮(0-9,±×÷%=,CE) 二、需要实现的功能 1.输入第一个数字 2.选择运算类型 3.输入第二个数字 4.按下等号计算出结果,结果显示在显示屏上 三、实现步骤 1....
  • 【作者声明】 本文所有文字均为作者原创,所有图片均为作者本人亲自拍摄或制作。 版权所有,仅供阅读欣赏,禁止任何单位或...前言 为了满足大家希望更好地使用手中的科学计算器需求,理解与熟悉计算器上的各种...
  • 接到一个需求 :要求计算器sin90=1,拿到知道很疑问 难道不等于一么?测试了四五个手机 ,有的满足,有的sin90=0.8939…。查了api文档后发现 jdk中Math.sin/cos/tan ()求值采用弧度值,目前觉大部分手机计算器 如果...
  • 基于文法分析的简单计算器实现

    千次阅读 2014-03-12 19:07:46
    《Programming: Principles and Practice Using C++》读书笔记(二) ...分析:程序规模越大,需求分析愈重要 设计:系统总体结构图,各部分实现及其相互关系,重要的是考虑实现方式,如用什么lib 实现:编码,
  • 针对不同的需求,通过四则运算规律实现以下两种计算器: 1.main()中自定义初始值,规定两个操作数和操作运算符(+、-、*、/) 2.自定义功能类(FourCalc.java)对于输入不同的操作运算符(+、-、x、/),在测试类...
  • 文章目录一、概述二、基于LR分析表编写语法分析器2.1 需求描述2.2 实现流程2.3 C++ 源码2.4 测试样例三、基于WINDOWS下FLEX与BISON的计算器实现3.1 需求描述3.2 Flex 源码3.3 Bison 源码3.4 测试样例四、相关草图4.1...
  • 一、需求实现 1、实现功能: 支持运算符:+, - , *, /, %(百分号), ^(幂次方), | |(绝对值),!(阶乘)。其他符号:( ) [ ] { } 支持数据类型:正负数、小数。 2、实现方法 符号优先级处理方法:符号等级制 ...
  • 简单计算机需求分析 第一篇引言 一 编写目的 在日常生活中各种各样的计算器出现在市场上各种各 样的齐全功能使人们能方便的使用计算器计算各种复杂的数据 但功能越强健的计算器价格昂贵 操作不方便 所以依靠自己学 ...
  • 房贷计算器.docx

    2020-05-10 13:29:34
    自己写的C++大作业报告,内容是一款房贷利息计算器的开发过程,包含需求分析、设计理念、调试分析和总结。
  • 简易计算器

    2015-10-07 21:01:00
    需求分析:创建一个简易计算器写一个能对0到10之间的整数进行四则运算的“软件” 程序,能够对用户填写的结果进行判断并且能计算出用户做题的正确率 设计思路:向窗体中添加各种控件 利用代码控件来实现这次...
  • C#计算器设计

    千次阅读 2019-06-11 13:03:40
    2.掌握和分析需求,并根据需求实现相应的功能 。 3.熟悉系统调试等相关能力,形成初步的有实用意义的计算器程序。 计算器运行结果如下: public static List<char> inputStr = new List<char>(1000); /...
  • 目录 1 课设任务及要求 1 1.1课设任务 1 1.2创新要求 1 1.3 设计要求 1 2 需求分析 1 2.1 设计背景 1 2.2 开发的技术及功能 2 3 设计思路 2 4 详细设计 4 4.1 功能实现 4 4.4 程序设计过程 5 5 系统调试 5 5.1 运行...
  • ios-计算器.zip

    2019-07-11 18:48:49
    相对于网络上的计算器分析,或者之前的计算器代码,添加了对0和.的特殊性处理,代码并没有最少话处理,部分代码需要需求者自己整理
  • 计算器设计

    2019-10-05 03:09:40
    做软件这个行业,我们必须知道,用户的需求是不断变化的,有时候,用户提的要求可能非常不过分,只是改动一些表面的小地方。但是面对已完成的代码,却是需要几乎重头来过的尴尬,实在痛苦不堪。 之所以会出现这种...
  • 房贷计算器文档.docx

    2020-07-08 21:49:26
    1 题目要求及对要求的分析(类似于需求分析) 2 设计思路,类的设计,及各个具体算法的流程图以及界面设计 3 运行结果的记录,对结果进行分析(包括结果正确性分析、效率分析) 4 调试过程的记录(可以贴图) 5 心得...
  • 高分小学计算器

    2018-09-11 15:13:00
    高分小学计算器 一、预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 780 995 • Estimate ...• 需求分析 (包括学习新技术) 60 60 ...
  • 简单计算机需求分析 第一篇引言 一 编写目的 在日常生活中各种各样的计算器出现在市场上各种各 样的齐全功能使人们能方便的使用计算器计算各种复杂的数据 但功能越强健的计算器价格昂贵 操作不方便 所以依靠自己学 ...
  • 简易计算器案例

    2020-07-10 15:07:11
    需求分析 ** 计算器基本功能: 实现单击数字按钮 录入数字 实现单击功能按钮 进行对应的运算 实现基本的四则运算(加减乘除) 实现正负号功能 实现退位功能 实现清屏功能 注意点: 7. 录入框不能通过其他方式更改...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 371
精华内容 148
关键字:

计算器需求分析