Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Code Block
languagejava
public class CalculatorProgram {

	private Calculator calculator;

	void init() {
		calculator = new Calculator();
	}

	void run() {
		BufferedReader reader        Scanner scanner = new BufferedReaderScanner(new InputStreamReader(System.in));
		        while (scanner.hasNextLine(true)) {
			            String line = readerscanner.readLinenextLine();
			            if (line == null || line.trim().length() == 0) {
				break;
			                System.err.println(calc1);
                break;
            }
			double arg = 0.0, result = 0.0;
			char firstChar = line.charAt(0);
			if (Character.isDigit(firstChar)) {
				arg = Double.valueOf(line);
			else {
				arg = Double.valueOf(line.substring(1)));
			}
			if (Character.isDigit(firstChar)) {
				result = calculator.setValue(arg);
			} else if (firstChar == '+') {
				result = calculator.add(arg);
			} else if (firstChar == '-') {
				result = calculator.subtract(arg);
			} else if (firstChar == '*') {
				result = calculator.multiply(arg);
			} else if (firstChar == '/') {
				result = calculator.divide(arg);
			}
		}
		System.out.println(result);
	}

	public static void main(String[] args) {
		CalculatorProgram calculatorProgram = new CalculatorProgram();
		calculatorProgram.init();
		calculatorProgram.run();
	}
}
PlantUML Macro
class "CalculatorProgram" as hovedprogram {
   init()
   run()
}

class "Calculator" as kalkulator {
   -double value
   +double getValue()
   +void setValue(double)
   +double add(double)
   +double subtract(double)
   +double multiply(double)
   +double divide(double)
}

hovedprogram --> kalkulator: calculator

...

ObjekttilstandsdiagramSekvensdiagram

 

 

PlantUML Macro
object "CalculatorProgram" as calculatorprogram0
object "CalculatorProgram" as calculatorprogram1
calculatorprogram0 -.down-.> calculatorprogram1: init()
object "Calculator" as calculator1 {
   value = 0.0
}
calculatorprogram1 -right-> calculator1: calculator
object "CalculatorProgram" as calculatorprogram2
calculatorprogram1 -.down-.> calculatorprogram2: run()

object "Calculator" as calculator2 {
   value = 0.0
}
calculatorprogram2 -right-> calculator2: calculator

 

 

PlantUML Macro
control main
actor User

main -> CalculatorProgram : init()
main -> CalculatorProgram : run()

User -> CalculatorProgram : "1.0"
CalculatorProgram -> Calculator: setValue(1.0)
CalculatorProgram -> User: "1.0"

User -> CalculatorProgram: "+2.0"
CalculatorProgram -> Calculator: add(2.0)
CalculatorProgram -> User: "3.0"

User -> CalculatorProgram: "*3.0"
CalculatorProgram -> Calculator: multiply(3.0)
CalculatorProgram -> User: "9.0"

 

 

...