20165337第五周实验报告
一.命令行下Java程序开发
1.输入mkdir指令建立文件夹。
2.输入javac -d . 目标文件夹/类名.java编译文件
3.输入javac 包名.类名运行文件
程序运行结果如下:
二.使用IDEA调试程序
1.编写程序及运行
2.依次向下单步调试
3.在循环内调试
4.调试过程中,语句只运行一次
三.编写并且调试运行程序
1.实验题目:实现简单四则运算(能支持分数,加减乘除,支持括号)
2.代码编写:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class hellojdk{
public static void main(String[] args){
BufferedReader reader=null;
InputStreamReader inputStreamReader=null;
try{
System.out.println("请输入表达式:或直接输入#结束运算!");
inputStreamReader=new InputStreamReader(System.in);
reader=new BufferedReader(inputStreamReader);
String str=reader.readLine();
while(!str.equals("#")){
System.out.println("运算结果为:"+opt(str)+"");
System.out.println("请输入表达式:或直接输入#结束运算!");
str=reader.readLine();
}
}catch(Exception e){
e.printStackTrace();
}
if(reader!=null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static float opt(String s) throws Exception{
if(s == null || "".equals(s.trim())) {
return 0f;
}
int a1=s.indexOf("+");
int a2=s.indexOf("-");
int a3=s.indexOf("*");
int a4=s.indexOf("/");
int a5=s.indexOf("(");
if(a1==-1&&a2==-1&&a3==-1&&a4==-1){
if(s.trim()==null||"".equals(s.trim())){
throw new Exception("operate error");
}
return Float.parseFloat(s.trim());
}
if(a5!=-1){
int a6=s.indexOf(")");
if(a6==-1){
throw new Exception("括号不匹配");
}else{
float f=opt(s.substring(a5+1,a6).trim());
s=s.replace(s.substring(a5,a6+1), String.valueOf(f));
return opt(s);
}
}
if(a1!=-1){
return opt(s.substring(0,a1))+opt(s.substring(a1+1,s.length()));
}
if(a2!=-1){
return opt(s.substring(0,a2))-opt(s.substring(a2+1,s.length()));
}
if(a3!=-1){
return opt(s.substring(0,a3))*opt(s.substring(a3+1,s.length()));
}
if(a4!=-1){
return opt(s.substring(0,a4))/opt(s.substring(a4+1,s.length()));
}
return Integer.parseInt(s.trim());
}
}
3.代码调试
分别对加减,乘除,混合运算以及括号优先级的运算测试以及负数结果的测试。
代码上传
https://gitee.com/BESTI-IS-JAVA-2018/20165337
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 30分钟 | 11.1% |
设计 | 3小时 | 66.7% |
代码实现 | 10分钟 | 3.7% |
测试 | 30分钟 | 11.1% |
分析总结 | 20分钟 | 7.4% |