资源简介
做Java课程设计时做的一个项目,基本功能如下:
1、能输入算术表达式,表达式用的是数学符号表示,不是计算机专业符合,如乘是符合“X”,而不是“*”;
2、能保存和浏览计算记录,并能选择某条记录重新计算;
3、能修改输入的表达式;
4、按等号计算;
5、能计算+、-,X,/, 乘方、开方,对数等多种计算;
顺便附带课程设计报告,注意用的开发包为Java1.8_101。由于调用的用于计算的数学函数的关系,只能在Java1.8_101及其以下版本的jfk下运行。jdk1.8的2版本会出现调用函数错误的情况,更别说不兼容的javajdk9及其以上版本了。
代码片段和文件信息
package sample;
import java.math.BigDecimal;
import java.math.RoundingMode;
import javax.script.scriptEngine;
import javax.script.scriptEngineManager;
import javax.script.scriptException;
/**
* Analysis class
*
* @author 康勤
* @data 2019/07/08
*/
public class Analysis{
private String analysisObj;
// private String operatorChar[] = {“+““-““ד“÷““^““√““log““%“};
/**
* 运算符
* private char[] operator= {‘+‘‘-‘‘*‘‘/‘‘^‘‘v‘‘l‘};
* @下标0 + 加
* @下标1 - 减
* @下标2 * 乘
* @下标3 / 除
* @下标4 ^ 幂
* @下标5 v 开方
* @下标6 l 对数
* @下标7 % 百分比
*/
public Analysis(String analysisObj)
{
this.analysisObj = analysisObj;
}
private boolean isComplete(int[] count)
{
return count[0]+count[1]+count[2]+count[3]!=4;
}
private void AnalysisString() throws FormulaAnalysis
{
int[] count = new int[] {0000};
while(isComplete(count))
{
int index = analysisObj.lastIndexOf(“%“);
if(index!=-1)
//有%
{
int preIndex = getPreNumIndex(index);
if(preIndex==-1)
throw new FormulaAnalysis(“Math error“);
BigDecimal per_num = new BigDecimal(analysisObj.substring(preIndex index));
analysisObj=analysisObj.replace(analysisObj.substring(preIndex index+1)clearDecimal(percent(per_num).toString()));
}
else
{
count[0]=1;
System.out.println(“not found %“);
}
index = analysisObj.lastIndexOf(“√“);
if(index!=-1)
//有√--root
{
int nextIndex = getNextNumIndex(indexfalse);
if(nextIndex==-1)
throw new FormulaAnalysis(“Math error“);
if(nextIndex==analysisObj.length()-1)
nextIndex++;
BigDecimal root_num = new BigDecimal(analysisObj.substring(index+1 nextIndex));
analysisObj=analysisObj.replace(analysisObj.substring(index nextIndex) clearDecimal(square(root_num).toString()));
}
else
{
count[2]=1;
System.out.println(“not found root“);
}
index = analysisObj.lastIndexOf(“^“);
if(index!=-1)
//有幂
{
int nextIndex = getNextNumIndex(indexfalse);
int pretIndex = getPreNumIndex(index);
if(nextIndex==-1){
throw new FormulaAnalysis(“Math error“);
}
if(nextIndex==analysisObj.length()-1){
nextIndex++;
}
BigDecimal pow_num1 = new BigDecimal(analysisObj.substring(pretIndex index));
BigDecimal pow_num2 = n
相关资源
- JavaFX拖放操作
- javafx画板程序
- JavaFx开发的经典魔塔
- javafx删除table行的demo
- huffman.jar
- javafx实现五子棋。有下棋悔棋重新开
- JavaFX编写学生管理系统利用scene buil
- Java基于JavafxGUI界面家庭消费账单管理
- JavaFX战旗类游戏开发
- JavaFX小游戏编程含源代码!
- java画图工具(使用Highstock+angularjs+j
- JavaFx小案例,实现了登录和窗口跳转
- JavaFX tableview获取数据demo
- ATM系统java功能齐全!Windows图形界面
- java课程设计:风扇javafx
- 使用JavaFX实现的中缀转后缀 计算器(
- 利用javaFX写万年历
- javaFX TableView
- 带日程提醒的万年历
- javaFX不同窗口之间进行调用以及进行
- javaFX 教程
评论
共有 条评论