资源简介

本人完成的一次完整的java大作业,压缩包中包含完整可直接运行的代码以及上交的详细文档。 可作为java大作业参考使用 已经获得学院老师的优秀评价,java基础学习者可以用来借鉴

资源截图

代码片段和文件信息

package clac;
import java.util.Scanner;
 
public class calc {//calc类
    public static void main(String[] args) {//主函数
        Scanner scannerString  = new Scanner(System.in);//Scanner实例化 接受键盘输入的数据
        System.out.println(“请输入算式,按回车键结束。如:1+1*2+5“);//提示输出
        String textString = scannerString.nextLine();//.nextLine()获取一行的数据
        System.out.println(calcTool(textString));//调用calcTool方法,并传入用户输入的一行的值textString
    }
 
    private static double calcTool(String textString) {//计算工具方法
 
        if (textString.equals(““))//如果传进来的值为空,那么就返回0
            return 0;
        System.out.println(“表达式为:“ + textString+“的计算结果是:“);//输出计算结果
        textString = textString.replaceAll(“[\\[\\{]“ “(“).replaceAll(“[\\]\\}]“ “)“);//replaceAll替换的意思,用户输入的括号等进行替换
        int cl = textString.lastIndexOf(‘(‘);//定位指定字符串出现的位置,从0开始: 这里定位的是括号 没有找到返回的是-1
 
        if (cl == -1)//没有找到(
            return cacController(textString);//确定没有优先级
        int cr = textString.indexOf(‘)‘ cl);//判断)出现的位置。定位指定字符串出现的位置,从0开始: 这里定位的是括号 没有找到返回的是-1
        String left = textString.substring(0 cl);//substring(参数)是java中截取字符串的一个方法,截取左边括号
        String right = textString.substring(cr + 1);//substring(参数)是java中截取字符串的一个方法,截取右边括号
        String middle = textString.substring(cl + 1 cr);//截取括号内的表达式
 
        return calcTool(left + cacController(middle) + right);//优先计算
    }
 
    public static double cacController(String textString) {
        if (textString.equals(““))//传进来的传输为空
            return 0;//返回0
 
        int ml = textString.indexOf(‘*‘);//indexOf包含的意思 也就是在传进来的字符串里去匹配有没有包含乘号和除号
        int dl = textString.indexOf(‘/‘);
 
        if (ml == -1 && dl == -1) {//为-1说明都没有 &&是并 且的关系
            return cacNo(textString);//没有乘除那就是计算加减
        }
        int index = ml == -1 ? dl : ml;//三目运算  三目运算符 (表达式1)?(表达式2):(表达式3),计算方法是这样的:表达式1是一个逻辑表达式,如果其值为true,则整个表达式的值为表达式2的值,否则为表达式3的值
 
        // 举例这如果是计算:4+5*6*7+8
        String left = textString.substring(0 index);// 先遍历4+5
        String m1 = NumberOfLast(left);
        left = left.substring(0 left.length() - m1.length());
        String right = textString.substring(index + 1);// 再遍历6*7+8
        String m2 = NumberOfFirst(right);// m2:6 获取优先级
        right = right.substring(m2.length());// *7+8右边的运算
        double d1 = Double.parseDouble(m1);//强制类型转换
        double d2 = Double.parseDouble(m2);
        double tmp = 0;
        if (index == ml) {//先乘数
            tmp = d1 * d2;
        } else if (index == dl) {
            tmp = d1 / d2;
        }
        return cacController(left + tmp + right);//后加减
 
    }
 
    private static String NumberOfLast(String textString) {//判断后面的数
        StringBuilder sb = new StringBuilder();
        for (int i = textString.length() - 1; i >= 0; i--) {//textString.length() 传进来的字符串的长度
            char c = textString.charAt(i);//charAt(int index)方法是一个能够用来检索特定索引下的字符的String实例的方法.charAt()方法返回指定索引位置的char值。索引范围为0~length()-1.
            if (!Character.isDigit(c) 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-06-06 12:28  java大作业(完整最终版)\
     文件         301  2017-12-16 23:41  java大作业(完整最终版)\.classpath
     文件         382  2017-12-16 23:41  java大作业(完整最终版)\.project
     目录           0  2018-06-06 12:28  java大作业(完整最终版)\.settings\
     文件         598  2017-12-16 23:41  java大作业(完整最终版)\.settings\org.eclipse.jdt.core.prefs
     文件         286  2017-12-16 23:42  java大作业(完整最终版)\File2.txt
     文件         274  2017-12-16 23:42  java大作业(完整最终版)\FileC.txt
     文件      127585  2017-12-17 00:48  java大作业(完整最终版)\Java大作业设计报告.docx
     目录           0  2018-06-06 12:28  java大作业(完整最终版)\bin\
     目录           0  2018-06-06 12:28  java大作业(完整最终版)\bin\clac\
     文件        3715  2017-12-18 10:21  java大作业(完整最终版)\bin\clac\calc.class
     目录           0  2018-06-06 12:28  java大作业(完整最终版)\bin\stu\
     文件        1537  2017-12-18 10:21  java大作业(完整最终版)\bin\stu\listSort.class
     文件        2921  2017-12-18 10:21  java大作业(完整最终版)\bin\stu\studentEnrol.class
     文件        4581  2017-12-18 10:21  java大作业(完整最终版)\bin\stu\studentList.class
     文件        2926  2017-12-18 10:21  java大作业(完整最终版)\bin\stu\studentManager.class
     文件         276  2017-12-18 10:21  java大作业(完整最终版)\bin\stu\studentRecord.class
     文件        4273  2017-12-18 10:21  java大作业(完整最终版)\bin\stu\userList.class
     文件        4241  2017-12-18 10:21  java大作业(完整最终版)\bin\stu\userManager.class
     目录           0  2018-06-06 12:28  java大作业(完整最终版)\src\
     目录           0  2018-06-06 12:28  java大作业(完整最终版)\src\clac\
     文件        4747  2017-12-16 15:29  java大作业(完整最终版)\src\clac\calc.java
     目录           0  2018-06-06 12:28  java大作业(完整最终版)\src\stu\
     文件        1234  2017-12-16 23:42  java大作业(完整最终版)\src\stu\listSort.java
     文件        2051  2017-12-16 23:42  java大作业(完整最终版)\src\stu\studentEnrol.java
     文件        3209  2017-12-16 23:42  java大作业(完整最终版)\src\stu\studentList.java
     文件        2400  2017-12-16 23:42  java大作业(完整最终版)\src\stu\studentManager.java
     文件         188  2017-12-16 23:42  java大作业(完整最终版)\src\stu\studentRecord.java
     文件        3163  2017-12-16 23:42  java大作业(完整最终版)\src\stu\userList.java
     文件        3464  2017-12-16 23:42  java大作业(完整最终版)\src\stu\userManager.java
     文件          29  2017-12-16 23:42  java大作业(完整最终版)\user.txt
............此处省略0个文件信息

评论

共有 条评论