资源简介
本人完成的一次完整的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个文件信息
- 上一篇:黑马IDEA版本2018Java基础+就业课程
- 下一篇:黑马JAVA49.txt
相关资源
- mysql数据处理,java用户登录处理
- 法律咨询信息系统(java+jsp+sqlserver)
- Java快速开发平台源码(renren-fast)
- 锐聘学院QST青软JavaWeb十二个打包
- 3.3.6微信支付JAVA版demo
- javaweb网上购物系统源码(附数据库脚
- javaweb校园宿舍系统(附数据库脚本)
- JavaWeb书城项目(附数据库脚本)
- 基于JAVA_JSP电子书系统(源码+数据库
- Java网络编程知识点总结.xmind
- 一站式Java网络编程 BIO-NIO-AIO资料源码
- jsp讲解
- 基于SSH框架的JavaWeb项目—人员信息管
- javaweb实现的邮件收发系统(附数据库
- Java 仿QQ(附客户端以及服务端源码)
- Java TCP IP Socket
- java定时发送邮件(基于quartz)
- Java Swing开发的《星际争霸》游戏
- java+数据库商品交易管理系统(附数据
- 使用java语言编译一个计算器
- java swing工资管理系统(源码+数据库
- Android代码-多功能拨号盘源码.zip
- JAVALibrary
- 微信企业号回调模式Java版
- 顺丰丰桥接口开发详细教程源码含下
- Java博客概要设计文档
- 基于JSP学生成绩管理系统软件的开发
- 药品进销存管理系统(论文范文_JSP
- 奖学金管理系统java+jsp+mysql
- 毕设参考——基于java酒店管理
评论
共有 条评论