资源简介
用编译原理知识编写的计算器,用Java语言实现。
本资源包括源代码和课程设计的报告。

代码片段和文件信息
package joe;
import java.io.*;
import java.util.*;
public class Calculator
{
public static void main(String[] args)
{
Calculator ca=new Calculator();
ArrayList alStr=new ArrayList();//存放每一行数据
ArrayList alNum=new ArrayList();
String patternL=“[A-Z]“; //是否是大写字符
String patternN1=“[\\+\\-]?[1-9][0-9]*([\\.][0-9]+)?“; //正常数值
String patternN2=“[\\+\\-]?[\\.]?[1-9][0-9]*“; //缺少整数部分的小数
float[] array=new float[26]; //存放26个大写字母代表的值
float result=0;
try
{
FileReader input=new FileReader(“in.txt“);
BufferedReader br=new BufferedReader(input);
String s=br.readLine();
while(s!=null)
{
StringBuffer temp=new StringBuffer();
temp=temp.append(s);
alStr.add(temp.toString());
s=br.readLine();
}
for(int i=0;i {
int counter=0;
ArrayList al=ca.analyseString(alStr.get(i));
// 解析每一个字符串
for(int j=0;j {
if(al.get(j).toString().matches(patternN1))
{//是否是正常数值
alNum.add(counterca.toNumber(al.get(j).toString()));
counter++;
}
else if(al.get(j).toString().matches(patternN2))
{ //是否是缺整数部分的小数
al.set(jca.insertZero(al.get(j).toString()));
alNum.add(counterca.toNumber(al.get(j).toString()));
counter++;
}else if(al.get(j).toString().matches(patternL))
{ //是否是大写字符
char c=ca.toChar(al.get(j).toString());
int n=(int)c-65;
if(j {
array[n]=alNum.get(0);
}else
{
alNum.add(counterarray[n]);
counter++;
}
}
else if(al.get(j).equals(“+“))
{
if(alNum.size()>1)
{
Float temp=alNum.get(counter-2)+alNum.get(counter-1);
counter=counter-2;
alNum.set(countertemp);
}
counter++;
}
else if(al.get(j).equals(“-“))
{
if(alNum.size()>1)
{
Float temp=alNum.get(counter-2)-alNum.get(counter-1);
counter=counter-2;
alNum.set(countertemp);
}
counter++;
}
else if(al.get(j).equals(“*“))
{
if(alNum.size()>1)
{
Float temp=alNum.get(counter-2)*alNum.get(counter-1);
counter=counter-2;
alNum.set(countertemp);
}
counter++;
}
else if(al.get(j).equals(“/“))
{
if(alNum.size()>1)
{
Float temp=alNum.get(counter-2)/alNum.get(counter-1);
counter=counter-2;
alNum.set(countertemp);
}
counter++;
}
else if(al.get(j).equals(“%“))
{
if(alNum.size()>1)
{
Float temp=alNum.get(counter-2)%alNum.get(counter-1);
counter=counter-2;
alNum.set(countertemp);
}
counter++;
}else if(al.get(j).equals(“sin“))
{
if(alNum.size()>0)
{
Float temp=(float)Math.sin((double)a
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6057 2010-01-01 16:01 Calculator.java
文件 63488 2010-01-01 16:01 编译原理课程设计报告06计1周娥200601030105.doc
文件 59 2009-12-31 16:41 in.txt
----------- --------- ---------- ----- ----
69604 3
- 上一篇:android 蓝牙SPP传输demo
- 下一篇:外文文献及翻译《JSP应用框架》
相关资源
- java做的聊天系统(包括正规课程设计
- Java综合程序设计——计算器(实现运
- java 人事管理系统 课程设计
- 数据库设备管理系统课程设计论文J
- Java课程设计(15个经典案例)
- JAVA计算器实验报告与源码
- 人事信息管理系统 java课程设计
- 学生信息管理系统 JAVA课程设计
- 自己用java写的计算器源代码(代码注
- JSP课程设计-留言本 jsp mysql tomcat实现
- Java写的递归下降分析程序
- 东南大学 JAVA课程设计 学生信息管理
- 自动出题系统(java 课程设计)
- 软件工程课程设计报告--java学生管理
- java课程设计《客房管理系统》
- 使用java语言编译一个计算器
- 数据库课程设计:图书管理系统
- java 课程设计机票管理系统Java+MySQL
- 基于SSH的网上书城_j2ee专周_源代码+数
- 山东大学数据结构课程设计
- 哈工大J2EE课程设计
- java课程设计保存计算过程的计算器
- 双鱼林JSP基于SSH2教务选课成绩管理系
- java课程设计游戏:急速飞行[绝不坑爹
- 多功能拼图游戏软件 java课程设计 含
- JAVA网吧计费管理系统
- java大作业,科学计算器
- Java课程设计酒店管理系统+报告文档
- java贪吃蛇课程设计156714
- 编译原理课程设计-java版
评论
共有 条评论