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://www.cnblogs.com/y963976867/p/8687023.html

时间: 2024-12-12 15:45:21

20165337第五周实验报告的相关文章

2019JAVA第五周实验报告

Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.9.24 评分等级 实验三 String类的应用 一.实验目的 掌握类String类的使用: 学会使用JDK帮助文档: 二.实验内容 1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) 2.统计该字符串中字母s出现的次数. 3.统计该字符串中子串"is"出现的次数. 4.统计该字符串中单词"is"

信息安全系统设计第五周实验报告

处理器体系结构 一.Y86指令集体系结构 1.Y86是一个指令体系结构(ISA),它是计算机系统这本书的作者YY出的指令集.目的是为了让我们更加清晰的了解ISA. 2.Y86指令集: 3.Y86异常:Y86有四种不同的状态码,AOK(正常).HLT(执行halt指令).ADR(非法地址)和INS(非法指令). 二.HCL 1.组合电路和HCL布尔表达式 组合电路:讲很多的逻辑门组成一个网,就能构成计算块. 构建这些网有两条限制: ①两个或多个逻辑门的输出不能连接在一起,否则他们可能会使线上的信号

20182310 第一周实验报告

20182310 <数据结构与面向对象程序设计>第一周实验报告 课程:<数据结构与面向对象程序设计> 班级:1823 姓名:周烔 学号:20182310 实验老师:王志强 实验日期:2019/9/9 选修/必修:必修 1.实验内容: 1.基于命令行和IDE Intellj IDEA 简易教程进行简单的Java程序编辑.编译.运行和调试.(https://www.cnblogs.com/rocedu/p/4421202.html) 2.练习Linux基本命令: 3.学习Java程序的

java第五次实验报告

20144303<Java程序设计>第五次实验 一.实验要求 运行TCP代码,一人服务器,一人客户端 下载加解密代码,先编译运行代码,一人加密一人解密 集成代码,一人加密后通过TCP 发送,加密使用DES或AES,AES或DES加密密钥Key的发送,使用服务器的公钥加密,公钥算法用RSA或者DH 二.实验步骤 这次实验我和石宇森结对编程,我负责设计客户端的部分. 先获取本机的IP地址,输入cmd,然后输入ipconfig. 客户端代码如下: package net; import java.m

20165210 Java第五次实验报告

20165210 实验五 网络编程与安全 网络编程与安全一: 实验要求: 两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.java 上传测试代码运行结果截图和码云链接 实验截图: 网络编程与安全二: 实验要求: 结对编程:1人负责客户端,一人负责服务器 注意责任归宿,要会通过测试证明自己

2019JAVA第五次实验报告

Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间2019/10/11 评分等级 实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. 实验要求 掌握使用抽象类的方法. 掌握使用系统接口的技术和创建自定义接口的方法. 了解 Java 系统包的结构. 掌握创建自定义包的方法. 实验内容 (一)抽象类的使用 设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法. 继承该抽象类定义三角型.矩形.圆. 分别创建一个三角形

第五次实验报告:使用Packet Tracer理解OSPF路由协议

姓名:蔡金宇 学号:201821121070 班级:计算1813 目录 1 实验目的 2 实验内容 3. 实验报告 3.1 建立网络拓扑结构 4. 配置 4.1 配置并激活串行地址和以太网地址 4.1.1 R1 4.1.2 R2 4.1.3 R3 4.1.4 PC 4.2 配置OSPF 4.2.1 R1 4.2.2 R2 4.2.2 R3 5. 验证参数配置是否正确 5.1 检验IP地址正确并且接口处于激活状态 5.2 任意两台机器能Ping成功 6. 检验OSPF路由 6.1 修改路由ID 6

第七周课程总结&amp;第五次实验报告

实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. 实验要求 掌握使用抽象类的方法. 掌握使用系统接口的技术和创建自定义接口的方法. 了解 Java 系统包的结构. 掌握创建自定义包的方法. 实验内容 (一)抽象类的使用 1.设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法. 继承该抽象类定义三角型.矩形.圆. 分别创建一个三角形.矩形.圆存对象,将各类图形的面积输出. 注:三角形面积s=sqrt(p(p-a)(p-b)*(p-c))

第七周实验报告(五)&amp;周总结

(一)抽象类的使用 题目:设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法. 继承该抽象类定义三角型.矩形.圆. 分别创建一个三角形.矩形.圆存对象,将各类图形的面积输出.注:三角形面积s=sqrt(p*(p-a)*(p-b)*(p-c)) 其中,a,b,c为三条边,p=(a+b+c)/2 抽象类-形状 1 package com.itcast.atd.demo06; 2 3 public abstract class Shape { 4 private String t