好久没有做练习题了。
编写一个小的计算程序,用来进行三角运算(Sin , Cos ,tan… ),该程序通过交互接收用户输入,例如:
系统刚启动的时候处于提示状态:
Function>
这时用户可以输入函数名称,输入sin 表示想进行sin 运算,此时再提醒用户输入角度:
Angel>
用户可以输入角度,
计算完毕后,以Result< 方式输出结果,并且重新回到Function> 的状态下。
在任何时候用户输入非法,则显示Error< ,在其后描述具体的错误原因。然后重新回到 错误输入前状态。
(1 )语言不限
(2 )支持很方便的扩展
(3)变量的命名和使用要符合学习的内容
代码如下:
编写一个小的计算程序,用来进行三角运算(Sin , Cos ,tan… ),该程序通过交互接收用户输入,例如:
系统刚启动的时候处于提示状态:
Function>
这时用户可以输入函数名称,输入sin 表示想进行sin 运算,此时再提醒用户输入角度:
Angel>
用户可以输入角度,
计算完毕后,以Result< 方式输出结果,并且重新回到Function> 的状态下。
在任何时候用户输入非法,则显示Error< ,在其后描述具体的错误原因。然后重新回到 错误输入前状态。
(1 )语言不限
(2 )支持很方便的扩展
(3)变量的命名和使用要符合学习的内容
代码如下:
/** */
/**---------------------------------------------
* Class Name : YW2_Test01.java
* Purpose : 编写一个小的计算程序,用来进行三角运算(Sin, Cos,tan…),该程序通过交互接收用户输入
*
* @author realsmy
* @since 2007/10/16
*
* Copyright realsmy. All rights reserved.
*---------------------------------------------
*/
package com.neusoft.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
// 三角函数名的枚举类型
enum FuncName {
SIN,
COS,
TAN
}
public class YW5_Test01 {
// 三角函数名
private FuncName function;
// 表示角度
private double angel;
// 圆周率常量
private static double PAI = 3.14159265;
/** *//**
* ---------------------------------------------
* Method Name : YW5_Test01
* Exposition : 构造函数,执行运算过程
* ---------------------------------------------
*/
public YW5_Test01(){
// 是指三角函数名
setFunction();
// 设置角度
setAngel();
// 计算出结果
getResult();
}
/** *//**
* ---------------------------------------------
* Method Name : setFuncName
* Exposition : 设置三角函数名字
* ---------------------------------------------
*/
private void setFuncName(FuncName func) {
this.function = func;
}
/** *//**
* ---------------------------------------------
* Method Name : setFunction
* Exposition : 设置三角函数名字
* ---------------------------------------------
*/
private void setFunction(){
System.out.print("Function> ");
if ( !checkFunction(getFunction())) {
System.out.println("error: worng function name, please input again:");
setFunction();
}
}
/** *//**
* ---------------------------------------------
* Method Name : getFunction
* Exposition : 取得三角函数名字
* ---------------------------------------------
*/
private String getFunction(){
String func = null;
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
func = in.readLine().toUpperCase();
} catch (IOException e) {
}
return func;
}
/** *//**
* ---------------------------------------------
* Method Name : checkFunction
* Exposition : 检查三角函数名字
* ---------------------------------------------
*/
private Boolean checkFunction(String func){
for ( FuncName funcName : FuncName.values()) {
if( funcName.toString().equals(func)) {
setFuncName(funcName);
return true;
}
}
return false;
}
/** *//**
* ---------------------------------------------
* Method Name : setAngel
* Exposition : 设置角度
* ---------------------------------------------
*/
private void setAngel(){
System.out.print("Angel> ");
getAngel();
}
/** *//**
* ---------------------------------------------
* Method Name : getAngel
* Exposition : 取得角度
* ---------------------------------------------
*/
private double getAngel(){
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
angel = Double.parseDouble(in.readLine());
} catch(NumberFormatException ne){
System.out.println("The input is not a number, please input again:");
setAngel();
} catch (IOException e) {
}
return angel;
}
/** *//**
* ---------------------------------------------
* Method Name : getResult
* Exposition : 取得结果
* ---------------------------------------------
*/
private void getResult(){
double result = 0;
switch (function){
case SIN:
result = Math.sin(angel*PAI/180);
break;
case COS:
result = Math.cos(angel*PAI/180);
break;
case TAN:
result = Math.tan(angel*PAI/180);
break;
}
System.out.println("Result< "+ function + " " + angel + " = " + result);
}
/** *//**
* ---------------------------------------------
* Method Name : main
* Exposition : 测试用主函数
* ---------------------------------------------
*/
public static void main(String[] args){
new YW5_Test01();
}
* Class Name : YW2_Test01.java
* Purpose : 编写一个小的计算程序,用来进行三角运算(Sin, Cos,tan…),该程序通过交互接收用户输入
*
* @author realsmy
* @since 2007/10/16
*
* Copyright realsmy. All rights reserved.
*---------------------------------------------
*/
package com.neusoft.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
// 三角函数名的枚举类型
enum FuncName {
SIN,
COS,
TAN
}
public class YW5_Test01 {
// 三角函数名
private FuncName function;
// 表示角度
private double angel;
// 圆周率常量
private static double PAI = 3.14159265;
/** *//**
* ---------------------------------------------
* Method Name : YW5_Test01
* Exposition : 构造函数,执行运算过程
* ---------------------------------------------
*/
public YW5_Test01(){
// 是指三角函数名
setFunction();
// 设置角度
setAngel();
// 计算出结果
getResult();
}
/** *//**
* ---------------------------------------------
* Method Name : setFuncName
* Exposition : 设置三角函数名字
* ---------------------------------------------
*/
private void setFuncName(FuncName func) {
this.function = func;
}
/** *//**
* ---------------------------------------------
* Method Name : setFunction
* Exposition : 设置三角函数名字
* ---------------------------------------------
*/
private void setFunction(){
System.out.print("Function> ");
if ( !checkFunction(getFunction())) {
System.out.println("error: worng function name, please input again:");
setFunction();
}
}
/** *//**
* ---------------------------------------------
* Method Name : getFunction
* Exposition : 取得三角函数名字
* ---------------------------------------------
*/
private String getFunction(){
String func = null;
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
func = in.readLine().toUpperCase();
} catch (IOException e) {
}
return func;
}
/** *//**
* ---------------------------------------------
* Method Name : checkFunction
* Exposition : 检查三角函数名字
* ---------------------------------------------
*/
private Boolean checkFunction(String func){
for ( FuncName funcName : FuncName.values()) {
if( funcName.toString().equals(func)) {
setFuncName(funcName);
return true;
}
}
return false;
}
/** *//**
* ---------------------------------------------
* Method Name : setAngel
* Exposition : 设置角度
* ---------------------------------------------
*/
private void setAngel(){
System.out.print("Angel> ");
getAngel();
}
/** *//**
* ---------------------------------------------
* Method Name : getAngel
* Exposition : 取得角度
* ---------------------------------------------
*/
private double getAngel(){
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
angel = Double.parseDouble(in.readLine());
} catch(NumberFormatException ne){
System.out.println("The input is not a number, please input again:");
setAngel();
} catch (IOException e) {
}
return angel;
}
/** *//**
* ---------------------------------------------
* Method Name : getResult
* Exposition : 取得结果
* ---------------------------------------------
*/
private void getResult(){
double result = 0;
switch (function){
case SIN:
result = Math.sin(angel*PAI/180);
break;
case COS:
result = Math.cos(angel*PAI/180);
break;
case TAN:
result = Math.tan(angel*PAI/180);
break;
}
System.out.println("Result< "+ function + " " + angel + " = " + result);
}
/** *//**
* ---------------------------------------------
* Method Name : main
* Exposition : 测试用主函数
* ---------------------------------------------
*/
public static void main(String[] args){
new YW5_Test01();
}