资源简介
本人完成的一次完整的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
相关资源
- JSP企业人事管理系统设计(源代码+论
- 当当网完整项目、包括js、css、html
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- android-support-v4.jar已打包进去源代码
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论