作业一

2023-10-28

 

计算器思路;

 

 

单位数计算器

package com.marden.demo3;



//单位数表达式
public class Calculator {
	//判断是否为操作符
	public static boolean isOper(char value){
		return value=='+'||value=='-'||value=='*'||value=='/';
	}
	
	
	//判断优先级,优先级使用数字表示,数字越大,则优先级越高
	public static int priority(int i){
		if(i=='*'|| i=='/'){
			return 1;
		}else if(i=='+'|| i=='-'){
			return 0;
		}else{
			return -1;
		} 
	}
	
	//计算方法
	public static int cal(int num1,int num2,int oper){
		int temp = 0;
		switch (oper) {
		case '+':
			temp= num1+num2;
			break;
		case '-':
			temp= num2-num1;
			break;
		case '*':
			temp= num1*num2;
			break;
		case '/':
			temp= num2/num1;
			break;
		default:
			break;
		}
		return temp;
	}
	
	
	
	
	
	public static void main(String[] args) {
		String expression="3*6/2-1+3*3";
		//创建两个栈,完成表达式的计算
		ArrayStack numStack=new ArrayStack(10);   //数字栈
		ArrayStack operStack=new ArrayStack(10);  //符号栈
		//定义需要的相关变量
		int index=0;   //扫描的下标志
		int num1=0;		//数字栈中的第一个出栈元素
		int num2=0;		//数字栈中的第二个出栈元素
		int oper=0;		//操作符
		int rs=0;		//结果
		
		
		while(true){
			//将每次扫描得到的char保存到temp中
			char temp=expression.substring(index, index+1).charAt(0);
			//判断temp是什么,然后做相应的处理
			//判断字符是否为数字,如果是数字则直接压入数字栈
			if(!isOper(temp)){
				numStack.push(temp-48);   //次数获取到的是字符,根据ASCII表,转成对应的数字
			}else{
				//如果字符为符号,则分两种情况
				//1.如果符号栈为空,则直接入栈
				if(operStack.isEmpty()){
					operStack.push(temp);
				}else{
				//2.如果符号栈不为空,则分两种情况
					//2.1 如果当前符号的优先级比符号栈中栈顶的符号优先级高,则直接入栈
					if(priority(temp)>priority(operStack.topElement())){
						operStack.push(temp);
					}else{
						//2.2 如果当前符号的优先级比符号栈中栈顶的符号优先级低或者相同,则从数字栈中出栈两个数字,从符号栈中出栈一个符号进行计算,并将计算结果压入数字栈
						num1=numStack.pop();
						num2=numStack.pop();
						oper=operStack.pop();
						rs=cal(num1, num2, oper);
						numStack.push(rs);
						//符号直接入栈
						operStack.push(temp);
					}	
				}	
			}
			index++;
			
			
			if(index==expression.length()){
				break;
			}
		}
		
		
		while(!operStack.isEmpty()){
			num1=numStack.pop();
			num2=numStack.pop();
			oper=operStack.pop();
			rs=cal(num1, num2, oper);
			numStack.push(rs);
		}
		int sqc=numStack.pop();
		System.out.println(expression+"="+sqc);
		
		
		
	}
}

class ArrayStack{
	private int maxSize;
	private int [] stack;
	private int top;
	
	public ArrayStack(int maxSize){
		this.maxSize=maxSize;
		stack=new int [this.maxSize];
		top=-1;
	}
	
	//查看栈顶元素的内容
	public int topElement(){
		return stack[top];
	}
	
	
	//判断栈满
	public boolean isFull(){
		return top==maxSize-1;
	}
	
	
	//判断栈空
	public boolean isEmpty(){
		return top==-1;	
	}
	
	//入栈
	public void push(int value){
		//首先判断是否栈满,若栈满则无法入栈
		if(isFull()){
			System.out.println("栈满,无法入栈");
		}else{
			top++;
			stack[top]=value;
		}	
	}
	
	
	//出栈
	public int pop(){
		//首先判断是否栈空,若栈空则无法出栈
		if(isEmpty()){
			System.out.println("栈空,无法出栈");
			return -999;
		}else{
			int temp=stack[top];
			top--;
			return temp;
		}	
	}
	
	public void show(){
		//首先判断是否栈空,若栈空则无法显示
		if(isEmpty()){
			System.out.println("栈空,无法显示数据");
		}else{
			for(int i=top;i>=0;i--){
				System.out.println(stack[i]);
			}
		}
	}
	
	
	
	
}

多位数计算器

package com.marden.demo3;

/*
 * 分析思路:
 * 1.当处理多位数的时,不能发现是一个数就立即入栈,因为它可能是多位数
 * 2.在处理数据时,需要向expression的表达式的index后再看一位,如果是数就进行扫描,如果是符号则入栈
 * 3.因此,我们需要定义一个变量,用于拼接
 */




//多位数表达式
public class Calculator1 {
	public static boolean isOper(char value){
		return value=='+'||value=='-'||value=='*'||value=='/';
	}
	
	public static int priority(int i){
		if(i=='*'|| i=='/'){
			return 1;
		}else if(i=='+'|| i=='-'){
			return 0;
		}else{
			return -1;
		} 
	}
	
	public static int cal(int num1,int num2,int oper){
		int temp = 0;
		switch (oper) {
		case '+':
			temp= num1+num2;
			break;
		case '-':
			temp= num2-num1;
			break;
		case '*':
			temp= num1*num2;
			break;
		case '/':
			temp= num2/num1;
			break;
		default:
			break;
		}
		return temp;
	}
	

	
	
	
	
	
	public static void main(String[] args) {
		
		String expression="32+68-2*11";
		ArrayStack numStack=new ArrayStack(10);   //数字栈
		ArrayStack operStack=new ArrayStack(10);  //符号栈
		int index=0;
		int num1=0;
		int num2=0;
		int oper=0;
		int rs=0;
		char [] charTemp=expression.toCharArray();
		while(true){
			char temp=expression.substring(index, index+1).charAt(0);
			//判断字符是否为数字,如果是数字则直接压入数字栈
			if(!isOper(temp)){
				//numStack.push(temp-48);   //获取到的是字符,根据ASCII表,转成对应的数字
				
				//如果是多位数,则需找到完整的数字,首先确定完整数字的边界
				int end=charTemp.length-1;
				for(int i=index;i<charTemp.length;i++){
					if(isOper(charTemp[i])){
						end=i-1;
						break;
					}
				}
				//将字符类型的数据转换成真实数字
				int multiNum=0;
				int count=0;
				for(int i=end;i>=index;i--){
					multiNum+=(charTemp[i]-48)*Math.pow(10, count);   //根据ASCII表,将获取的字符转成对应的数字
					count++;
				}
				//System.out.println(multiNum);
				numStack.push(multiNum);
				index=end;
				
			}else{
				//如果字符为符号,则分两种情况
				//1.如果符号栈为空,则直接入栈
				if(operStack.isEmpty()){
					operStack.push(temp);
				}else{
				//2.如果符号栈不为空,则分两种情况
					//2.1 如果当前符号的优先级比符号栈中栈顶的符号优先级高,则直接入栈
					if(priority(temp)>priority(operStack.topElement())){
						operStack.push(temp);
					}else{
						//2.2 如果当前符号的优先级比符号栈中栈顶的符号优先级低或者相同,则从数字栈中出栈两个数字,从符号栈中出栈一个符号进行计算,并将计算结果压入数字栈
						num1=numStack.pop();
						num2=numStack.pop();
						oper=operStack.pop();
						rs=cal(num1, num2, oper);
						numStack.push(rs);
						//符号直接入栈
						operStack.push(temp);
					}	
				}
				
			}
			index++;
			
			
			if(index==expression.length()){
				break;
			}
		}
		
		
		while(!operStack.isEmpty()){
			num1=numStack.pop();
			num2=numStack.pop();
			oper=operStack.pop();
			rs=cal(num1, num2, oper);
			numStack.push(rs);
		}
		int sqc=numStack.pop();
		System.out.println(expression+"="+sqc);
		
		
		
	}
}

class ArrayStack1{
	private int maxSize;
	private int [] stack;
	private int top;
	
	public ArrayStack1(int maxSize){
		this.maxSize=maxSize;
		stack=new int [this.maxSize];
		top=-1;
	}
	
	//查看栈顶元素的内容
	public int topElement(){
		return stack[top];
	}
	
	
	//判断栈满
	public boolean isFull(){
		return top==maxSize-1;
	}
	
	
	//判断栈空
	public boolean isEmpty(){
		return top==-1;	
	}
	
	//入栈
	public void push(int value){
		//首先判断是否栈满,若栈满则无法入栈
		if(isFull()){
			System.out.println("栈满,无法入栈");
		}else{
			top++;
			stack[top]=value;
		}	
	}
	
	
	//出栈
	public int pop(){
		//首先判断是否栈空,若栈空则无法出栈
		if(isEmpty()){
			System.out.println("栈空,无法出栈");
			return -999;
		}else{
			int temp=stack[top];
			top--;
			return temp;
		}	
	}
	
	public void show(){
		//首先判断是否栈空,若栈空则无法显示
		if(isEmpty()){
			System.out.println("栈空,无法显示数据");
		}else{
			for(int i=top;i>=0;i--){
				System.out.println(stack[i]);
			}
		}
	}
	
	
	
	
}

带括号的多位数计算器:

package com.marden.demo3;

public class Calculator2 {
	public static void main(String[] args) {
		String expression = "2*(3+5)"; // 15//如何处理多位数的问题?
		//创建两个栈,数栈,一个符号栈
		ArrayStack2 numStack = new ArrayStack2(20);
		ArrayStack2 operStack = new ArrayStack2(20);
		//定义需要的相关变量
		int index = 0;
		int num1 = 0; 
		int num2 = 0;
		int oper = 0;
		int res = 0;
		char ch = ' '; //将每次扫描得到char保存到ch
		String keepNum = ""; //用于拼接 多位数
		//开始while循环的扫描expression
		while(true) {
			//依次得到expression 的每一个字符
			ch = expression.substring(index, index+1).charAt(0);
			//判断ch是什么,然后做相应的处理
			if(isOper(ch)) {//如果是运算符
				//判断当前的符号栈是否为空
				if(!operStack.isEmpty()) {					
					//如果符号栈有操作符,就进行比较,如果当前的操作符的优先级小于或者等于栈中的操作符,就需要从数栈中pop出两个数,
					//这里需要判断是否此时的栈顶是否为左括号,如果是左括号不进入此循环
					//我们设定的左括号是优先级大于加减乘除,所以当发现下一个进栈的符号的优先级比此时的栈顶的左括号优先级小的时候,
					//应该让符号直接进栈,不进行弹出左符号的运算(左括号弹出来运算是不行的)
					if(priority(ch) <= priority(operStack.topElement()) & operStack.topElement()!=40) {						
						num1 = numStack.pop();
						num2 = numStack.pop();
						oper = operStack.pop();
						res = cal(num1, num2, oper);
						//把运算的结果如数栈
						numStack.push(res);
						//然后将当前的操作符入符号栈
						operStack.push(ch);
						/**
						 * 进行右括号的判断。匹配左括号
						 * 当发现进入的是右括号时就优先进行括号内的计算
						 */
					} else if(ch==41){	
						//先让右括号进栈
						operStack.push(ch);
						if (ch==41) {
							//再把右括号弹出
							int oper1 = operStack.pop();
							//弹出右括号后开始进行括号内运算
							while(true) {
								//右括号								
								num1 = numStack.pop();
								num2 = numStack.pop();
								oper = operStack.pop();
								res = cal(num1, num2, oper);
								//把运算的结果如数栈
								numStack.push(res);
								//当运算到栈顶符号为左括号时候,就弹出栈顶元素左括号,结束循环
								if(operStack.topElement()==40) {
									int oper2 = operStack.pop();									
									break;
								}
							}
							
						}						
												
						//如果当前的操作符的优先级大于栈中的操作符, 就直接入符号栈.						
					}
					else {
						operStack.push(ch);
					}
				}else {
					//如果为空直接入符号栈
					operStack.push(ch);
				}
			} else { //如果是数,则直接入数栈
				
				//分析思路
				//1. 当处理多位数时,不能发现是一个数就立即入栈,因为他可能是多位数
				//2. 在处理数,需要向expression的表达式的index 后再看一位,如果是数就进行扫描,如果是符号才入栈
				//3. 因此我们需要定义一个变量 字符串,用于拼接
				
				//处理多位数
				keepNum += ch;
				
				//如果ch已经是expression的最后一位,就直接入栈
				if (index == expression.length() - 1) {
					numStack.push(Integer.parseInt(keepNum));
				}else{
				
					//判断下一个字符是不是数字,如果是数字,就继续扫描,如果是运算符,则入栈
					//注意是看后一位,不是index++
					if (isOper(expression.substring(index+1,index+2).charAt(0))) {
						//如果后一位是运算符,则入栈 keepNum = "1" 或者 "123"
						numStack.push(Integer.parseInt(keepNum));
						//重要的!!!!!!, keepNum清空
						keepNum = "";
						
					}
				}
			}
			//让index + 1, 并判断是否扫描到expression最后.
			index++;
			if (index >= expression.length()) {
				break;
			}
		}
		
		//当表达式扫描完毕,就顺序的从 数栈和符号栈中pop出相应的数和符号,并运行.
		while(true) {
			//System.out.println(operStack.peek());
			//如果符号栈为空,则计算到最后的结果, 数栈中只有一个数字【结果】
			if(operStack.isEmpty()) {
				break;
			}
				num1 = numStack.pop();
				num2 = numStack.pop();
				oper = operStack.pop();
				res = cal(num1, num2, oper);
				numStack.push(res);//入栈
			
		}
		//将数栈的最后数,pop出,就是结果
		int res2 = numStack.pop();
		System.out.printf("表达式 %s = %d", expression, res2);
	}
	
	//判断是否为操作符
	public static boolean isOper(char value){
		return value=='+'||value=='-'||value=='*'||value=='/' || value=='(' || value==')';
	}
		
		
		//判断优先级,优先级使用数字表示,数字越大,则优先级越高
		public static int priority(int i){
			if(i=='(' || i==')'){
				return 2;
			}
			else if(i=='*'|| i=='/'){
				return 1;
			}else if(i=='+'|| i=='-'){
				return 0;
			}else{
				return -1;
			} 
		}
		
		
		public static int cal(int num1,int num2,int oper){
			int temp = 0;
			switch (oper) {
			case '+':
				temp= num1+num2;
				break;
			case '-':
				temp= num2-num1;
				break;
			case '*':
				temp= num1*num2;
				break;
			case '/':
				temp= num2/num1;
				break;
			default:
				break;
			}
			return temp;
		}

}

class ArrayStack2{
	private int maxSize;
	private int [] stack;
	private int top;
	
	public ArrayStack2(int maxSize){
		this.maxSize=maxSize;
		stack=new int [this.maxSize];
		top=-1;
	}
	
	//查看栈顶元素的内容
	public int topElement(){
		return stack[top];
	}
	
	
	//判断栈满
	public boolean isFull(){
		return top==maxSize-1;
	}
	
	
	//判断栈空
	public boolean isEmpty(){
		return top==-1;	
	}
	
	//入栈
	public void push(int value){
		//首先判断是否栈满,若栈满则无法入栈
		if(isFull()){
			System.out.println("栈满,无法入栈");
		}else{
			top++;
			stack[top]=value;
		}	
	}
	
	
	//出栈
	public int pop(){
		//首先判断是否栈空,若栈空则无法出栈
		if(isEmpty()){
			System.out.println("栈空,无法出栈");
			return -999;
		}else{
			int temp=stack[top];
			top--;
			return temp;
		}	
	}
	
	public void show(){
		//首先判断是否栈空,若栈空则无法显示
		if(isEmpty()){
			System.out.println("栈空,无法显示数据");
		}else{
			for(int i=top;i>=0;i--){
				System.out.println(stack[i]);
			}
		}
	}
}

作业真题展示:

package com.bham.pij.assignments.calculator;

import java.util.regex.Pattern;

public class Calculator {
	private float result;
	
	public Calculator(){
		
	}
	
	public Calculator(String expression){
		result=evaculator(expression);
	}
	
	public float evaculator(String expression){
		//判断输入的字符串格式是否正确
		String pattern1="^[0-9]+([.]{1}[0-9]+){0,1}$";    //正整数或者正小数的正则表达式
		String pattern2="[-+*/]";                                           //四则运算的正则表达式
		String [] arr=expression.split(" ");
		float temp=0;
		//若输入的字符串不合法
		if(arr.length!=3 || Pattern.matches(pattern1, arr[0])&&Pattern.matches(pattern2, arr[1])&&Pattern.matches(pattern1, arr[2])==false
				 || arr[1].equals("/")&&arr[2].equals("0")){
			temp=Float.MIN_VALUE;
		}else{			//若输入的字符串合法
			float num1=Float.parseFloat(arr[0]);
			float num2=Float.parseFloat(arr[2]);
			if(arr[1].equals("+")){
				temp=num1+num2;
			}else if(arr[1].equals("-")){
				temp=num1-num2;
			}else if(arr[1].equals("*")){
				temp=num1*num2;
			}else{
				temp=num1/num2;
			}
		}
		return temp;
	}
	
	
	public float getCurrentValue(){
		if(result==Float.MIN_VALUE){
			return 0;
		}else{
			return result;
		}	
	}
	 
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	public static void main(String[] args) {
		Calculator cal=new Calculator("3 + 4");
		System.out.println(cal.getCurrentValue());
	}

}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

作业一 的相关文章

  • 使用datetime库,对当前日期输出3种不同日期输出方法。

    import datetime import time print datetime date today print time strftime Y m d time localtime time time 更详细time strftim
  • 开源的作业调度框架 - Quartz.NET

    开源的作业调度框架 Quartz NET Quartz NET是一个开源的作业调度框架 是OpenSymphony 的 Quartz API的 NET移植 它用C 写成 可用于winform和asp net应用中 它提供了巨大的灵活性而不牺
  • Sapir—Whorf Hypothesis (萨皮尔—沃尔夫假说)

    Sapir Whorf Hypothesis 萨皮尔 沃尔夫假说 Sapir Whorf Hypothesis 的思想源头可追溯到德国哲学家海德 G Herder 1744 1803 Wilhelm von Humboldt 1762 18
  • 《计算机组成原理实验》 单周期CPU

    计算机组成原理实验 单周期CPU 前言 这是中山大学2018年计算机组成原理实验中单周期CPU的实验报告 仿真与写板的内容暂略 所有源代码 包括写板 已经上传至我的github当中 欢迎大家访问 github个人主页 https stara
  • 计算机系统大作业

    摘 要 本文对hello c在Linux下的生命周期进行了分析 通过一些Linux平台的工具 如gcc objdump edb gdb readelf对程序代码的预处理 编译 汇编 链接 反汇编的过程进行了分析 对比 通过hello在she
  • 第二周作业 暴力破解——1.基于表单的暴力破解 2.验证码绕过(on client) 3.验证码绕过(on server)

    一 先将在课程重演中出现的问题放在最前面 1 在设置完代理后出现了BurpSuite不能拦截localhost 127 0 0 1的情况 最后发现火狐浏览器中有个地方引起的 把其中内容删除掉就能拦截成功了 2 导入字典后无法攻击 在路径上不
  • pikachu之不安全的文件下载概述

    不安全的文件下载概述 文件下载功能在很多web系统上都会出现 一般我们当点击下载链接 便会向后台发送一个下载请求 一般这个请求会包含一个需要下载的文件名称 后台在收到请求后 会开始执行下载代码 将该文件名对应的文件response给浏览器
  • kettle 教程(一):简介及入门

    介绍 kettle 是纯 java 开发 开源的 ETL工具 用于数据库间的数据迁移 可以在 Linux windows unix 中运行 有图形界面 也有命令脚本还可以二次开发 kettle 的官网是 https community hi
  • 理解矩阵(一)

    前不久chensh出于不可告人的目的 要充当老师 教别人线性代数 于是我被揪住就线性代数中一些务虚性的问题与他讨论了几次 很明显 chensh觉得 要让自己在讲线性代数的时候不被那位强势的学生认为是神经病 还是比较难的事情 可怜的chens
  • 【JavaWeb】练习五

    1 gt 过滤器实现登录过滤 WebFilter urlPatterns do initParams WebInitParam name driver value com mysql jdbc Driver public class Log
  • 对登录接口的简单图形验证码进行识别 20221004

    Python黑客编程原理与实战 作业 二 1 编程题 1 语言限定为python3 环境准备 使用虚拟python3环境 pip3 install virtualenv virtualenv python 3 10 vpy3 10 sour
  • Expect 编程教程

    http expect nist gov expect home 目录 1 摘要 2 关键字 3 简介 4 Expect综述 5 callback 6 passwd 和一致性检查 7 rogue 和伪终端 8 ftp 9 fsck 10 多
  • # HTB-Tier2- Oopsie

    HTB Tier2 Oopsie Tags PHP Web Custom Applications Session Handling Apache Penetration Tester Level 1 Reconaisance Web Si
  • python对文件的操作(一)序列化和反序列化

    1 文件操作 1 1 文件操作的流程 1 打开文件 得到文件句柄并赋值给变量 2 通过句柄对文件进行操作 3 关闭文件 1 2 从文件中读取数据 要使用文件中的信息 首先需要将信息读取到内存中 为此 那你可以一次读取文件的所有内容 也可以每
  • windows操作系统蓝屏错误对照表

    windows操作系统蓝屏错误对照表
  • Quartz.NET简明示例

    下面是一个 Quartz NET 的简单例子 初始化调度器工厂 ISchedulerFactory sf new StdSchedulerFactory 获取默认调度器 IScheduler scheduler sf GetSchedule
  • Hadoop命令大全

    Hadoop命令大全 1 列出所有Hadoop Shell支持的命令 bin hadoop fs help 2 显示关于某个命令的详细信息 bin hadoop fs help command name 3 用户可使用以下命令在指定路径下查
  • c语言发牌小程序

    include
  • 小学奥数题使用python解决(使用2倒9中不重复的数使得{}+{}={}{}-{}=1{}满足)

    使用2 9中不重复的数使得 1 满足 样子不太好看 1 利用for循环和if语句 代码 利用2 9不重复的数使得 1 i 0 for a1 in range 2 10 for a2 in range 2 10 if a1 a2 and a1
  • Python 输入圆半径,计算圆周长和面积

    用 Python 编写程序 输入圆半径 计算圆周长和面积 功能 输入圆半径 计算圆周长和面积 作者 Fulling 时间 2021年10月15日 import math 输入部分 r float input 输入圆的半径 处理部分 c 2

随机推荐

  • SDIO接口(2)——SD卡寄存器

    1 SD卡寄存器 SDIO接口中定义了8个寄存器 OCR CID CSD RCA DSR SCR SSR 仅sdio卡支持 CSR 仅sdio卡支持 这些寄存器只能通过对应的命令访问 其中OCR CID CSD SCR寄存器保存了卡 内容的
  • 聚类效果评价——Davies-Bouldin(DB指标)——内部评估标准(3)

    Davies David L and Donald W Bouldin A cluster separation measure IEEE transactions on pattern analysis and machine intel
  • Sql日志

    sql日志是为了记录一些之前的所有操作 一般是为了查看一些误操作之前的操作是什么 便于维护 node中常用的日志库是log4js 写好日志配置 专门写在一个文件中 导出日志对象 一个日志类别就是一个对象 const log4js requi
  • Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.解决办法

    电脑磕坏了 最近把公司给的mac屏幕给磕坏了 换成自己的macbookpro 本来想用时间机器做个无缝衔接 结果发现不能用了 跟客服沟通被告知macos版本在11以上不支持时间机器系统迁移 只能使用迁移助理做数据备份 非常痛苦 要重新安装各
  • 图形类设计——c++圆、矩形、三角形类的设计

    题目要求 设计三个图形类 Circle 圆 Rectangle 矩形 Triangle 三角形 1 Cirlce 类基本信息 圆心坐标 半径 Rectangle 类基本信息 长 宽 Triangle 类基本信息 三个顶点坐标 其中 成员变量
  • 排查Linux机器是否已经被入侵

    随着开源产品的越来越盛行 作为一个Linux运维工程师 能够清晰地鉴别异常机器是否已经被入侵了显得至关重要 个人结合自己的工作经历 整理了几种常见的机器被黑情况供参考 背景信息 以下情况是在CentOS 6 9的系统中查看的 其它Linux
  • 基于Yolov5环境配置详解(真的很方便很简单)

    目录 前言 写在前面 很重要 本文相应版本 一 查看CUDA 二 安装Anaconda 三 安装Pytorch环境 五 安装Pycharm 六 验证Pytorch 七 下载Yolov5 5 0源码和权重文件 八 安装Microsoft C
  • 祝贺姜宁当选 2022 Apache 软件基金会新任董事

    近日 Apache 软件基金会通过官方 blog 向大家公布了新一任董事的选举成果 在这周 Apache 软件基金会 下称 ASF 举行了一年一度的成员会议 并选举出了新的董事会 Rich Bowen 原董事 Bertrand Delacr
  • tftp服务器上传文件至华三ac,H3C命令行怎样实现TFTP呢【已解决】~

    设备基本配置 interface Ethernet0 0 用于连接client 的接口地址 port link mode route ip address 10 0 0 1 255 255 255 0 3 操作步骤 1 确认设备FTP功能使
  • 电子电路基础 (10)——场效应管的构造原理及使用

    一 场效应管的构造以及认识 非常重要 两只半引脚的 上面的是散热 和中间的半只引脚连在一起的 1 1 场效应管的构造 场效应管简称FET 与三极管一样也分三个极 其中D极称为漏极 也称为供电极 S极为源极 也称输出极 G极为栅极或称闸极 也
  • activiti实战系列 并行网关(parallelGateWay)

    流程图 13 2 部署流程定义 启动流程实例 13 3 查询我的个人任务 13 4 完成我的个人任务 说明 1 一个流程中流程实例只有1个 执行对象有多个 2 并行网关的功能是基于进入和外出的顺序流的 分支 fork 并行后的所有外出顺序流
  • eigen 总结(一)

    参考 https blog csdn net u012936940 article details 79706280 Matrix 类 Matrix
  • 前端vue uni-app自定义精美海报生成组件

    前端Vue Uni App自定义精美海报生成组件的技术实现 在当前软件开发中 随着技术的不断发展 软件开发的复杂度也在不断提高 为了解决这个问题 组件化开发逐渐成为了一种趋势 通过组件化开发 我们可以实现单独开发 单独维护 并且组件之间可以
  • java代码规范检查(遵循阿里巴巴开发)

    java代码规范检查 遵循阿里巴巴开发 基于代码的部署 后期测试与维护 需要对代码进行检查 在这里遵循阿里巴巴集团的开发规范 有兴趣的可以去参考阿里巴巴出版的一本书 阿里巴巴Java开发手册 eclipse安装代码规范检查插件 环境 JDK
  • 如何使用nuget中的FastReport.Core库

    https www cnblogs com wxchuachua p 10167508 html 下载FastReport Net最新版本 FastReport Net 2018新功能之一 使用nuget数据包 要安装软件包 必须创建一个本
  • c/c++将tuple展开/解包到不定参数列表中

    目录 问题引入 问题提出 引入templete lt size t Is gt 模板 获取不定参数模板的索引模板 问题引入 现在想实现这样一个模板类 将不定参通过commit函数提交到工作队列 然后由一个线程从队列中取出数据 调用proce
  • c# 创建自绘用户控件

    一 继承UserControl类 public class Chart UserControl 二 定义常量 私有成员变量 属性 加入属性的修饰 可以在图形界面配置 private const int LeftPos 60 private
  • 多因素方差分析中预测因素的筛多_用回归来理解方差分析(二):两因素方差分析...

    1 两因素方差分析的形式 多因素方差分析针对的是多因素完全随机设计 包含两个及以上的自变量 为便于讲解 本文以两因素方差分析为例 在一个两因素完全随机设计中 自变量 包含 共 个水平 自变量 包含 共 个水平 总共形成 个处理 各处理 之下
  • LUN磁盘、LVM及JFS2驱动内部关系

    复杂度2 5 机密度3 5 最后更新2021 04 30 LUN Logical Unit Number 是scsi专用概念 指在同一SCSI设备 同SCSI ID 下映射的逻辑子设备 这来自最早SCSI设备是总线结构 可以支持一个或两个i
  • 作业一

    计算器思路 单位数计算器 package com marden demo3 单位数表达式 public class Calculator 判断是否为操作符 public static boolean isOper char value re