四则运算04
设计思想:
使用jsp实现java代码与网页的连接,利用数组实现数据的传输。Session对象页面的跳转功能。
源代码:
java源代码:
import java.text.DecimalFormat;//输出两位小数 import java.util.Scanner; public class test1 { static int simplify(int x,int y){ /*求两数最大公约数,用于分数化简*/ int t,xx,yy,k=1; if(x>y) { t=x;x=y;y=t; } for(int i=x;i>=2;i--) { xx=x%i;yy=y%i; if(xx==0&&yy==0) { k=i; break; } } return k; } public static void main(String[] args) { // TODO 自动生成的方法存根 int a1,a2,b1,b2,k; int count=0;//统计作对题目个数 /*控制题目个数*/ Scanner in=new Scanner(System.in); System.out.print("请输入题目个数(>0):"); int number=in.nextInt(); /*数值范围*/ System.out.print("请输入数值所取得最大值(>0):"); int max=in.nextInt(); /*判断括号*/ int backets; System.out.print("是否有括号:(0:无 1:有):"); backets=in.nextInt(); if(backets==0)//没有括号 { /*控制是否有乘除*/ System.out.print("是否有乘除法(0:无 1:有):"); int panduan; for(;;) { panduan=in.nextInt(); if(panduan==0||panduan==1) break; else panduan=in.nextInt(); } /*有无余数*/ int remainder=0; if(panduan==1) { System.out.print("是否有余数:(0:无 1:有):"); remainder=in.nextInt(); } /*算法的实现*/ for(int i=0;i<number;i++) { int index; if(panduan==0)//没有乘除法 { index=(int)(Math.random()*2); } else//有乘除法 { index=(int)(Math.random()*4); //随机产生,控制运算符 } a1=(int)(Math.random()*max); a2=(int)(Math.random()*(max-1)+1); b1=(int)(Math.random()*max); b2=(int)(Math.random()*(max-1)+1); k=(int)(Math.random()*2); //控制是否是整数或分数,随机产生 if(k==0)//k=1输出整数运算 { if(index==0) //加法运算 { System.out.print(a1+"+"+b1+"="); int rs=a1+b1; int result=in.nextInt(); if(result==rs) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } if(index==1)//减法运算 { //没有负数运算 for(;;) { if(a1<b1) { a1=(int)(Math.random()*max); b1=(int)(Math.random()*max); } else break; } System.out.print(a1+"-"+b1+"="); int rs=a1-b1; int result=in.nextInt(); if(result==rs) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } if(index==2)//乘法运算 { System.out.print(a1+"*"+b1+"="); int rs=a1*b1; int result=in.nextInt(); if(result==rs) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } if(index==3)//除法运算 { for(;;) //保证是真分数 { if(a1>b1||a1==0) { a1=(int)(Math.random()*max); b1=(int)(Math.random()*max); } else break; } if(remainder==0) {//没有余数 for(;;) { //余数不为0.继续生成随机数 if(a1!=0) { //判断分母是否为0 if(b1%a1!=0&&b1<1) { a1=(int)(Math.random()*max); b1=(int)(Math.random()*max); } else break; } else a1=(int)(Math.random()*max); } } System.out.print(b1+"/"+a1+"="); String rs; if(b1==0) { rs=0+"";//结果为0,不需要化简 } int cd=simplify(b1,a1); b1=b1/cd;a1=a1/cd; if(a1==1) { rs=b1+""; } else { rs=b1+"/"+a1; } String result=in.next(); if(result.equals(rs)) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } } else//分数计算 { /*保证是真分数*/ for(;;) { if(a1<a2) { a1=(int)(Math.random()*max); a2=(int)(Math.random()*(max-1)+1); } else if(b1<b2) { b1=(int)(Math.random()*max); b2=(int)(Math.random()*(max-1)+1); } else break; } for(;;)//保证至少有一个是分数 { if(a2==1&&b2==1) { a1=(int)(Math.random()*max); a2=(int)(Math.random()*(max-1)+1); b1=(int)(Math.random()*max); b2=(int)(Math.random()*(max-1)+1); } else break; } int s2=simplify(a1,a2); a1=a1/s2; a2=a2/s2; int s3=simplify(b1,b2); b1=b1/s3; b2=b2/s3; if(index==0) { /*分母不为1,分情况输出*/ if(a2!=1&&b2!=1) { System.out.print(a1+"/"+a2+"+"+b1+"/"+b2+"="); int denom=a2*b2; //分母 int molecule=a1*b2+b1*a2;//分子 int cd=simplify(molecule,denom);//最大公约数 denom=denom/cd; molecule=molecule/cd; String rs; if(denom==1) { rs=molecule+""; } else rs=molecule+"/"+denom;//化简结果 String result=in.next(); if(result.equals(rs)) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } else if(a2==1) { System.out.print(a1+"+"+b1+"/"+b2+"="); int denom=b2; //分母 int molecule=a1*b2+b1;//分子 int cd=simplify(molecule,denom);//最大公约数 String rs; denom=denom/cd; molecule=molecule/cd; if(denom==1) { rs=molecule+""; } else rs=molecule+"/"+denom;//化简结果 String result=in.next(); if(result.equals(rs)) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } else if(b2==1) { System.out.print(a1+"/"+a2+"+"+b1+"="); int denom=a2; //分母 int molecule=a1+b1*a2;//分子 int cd=simplify(molecule,denom);//最大公约数 denom=denom/cd; molecule=molecule/cd; String rs; if(denom==1) { rs=molecule+""; } else rs=molecule+"/"+denom;//化简结果 String result=in.next(); if(result.equals(rs)) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } } if(index==1)//减法运算 { for(;;)//保证结果是真分数 { if(a1/a2-b1/b2<1) { a1=(int)(Math.random()*max); a2=(int)(Math.random()*(max-1)+1); b1=(int)(Math.random()*max); b2=(int)(Math.random()*(max-1)+1); } else break; } if(a1/a2-b1/b2<0)//控制结果为正数 { int t1,t2; t1=a1;a1=b1;b1=t1; t2=a2;a2=b2;b2=t2; } if(a2!=1&&b2!=1) { System.out.print(a1+"/"+a2+"-"+b1+"/"+b2+"="); int denom=a2*b2; //分母 int molecule=a1*b2-a2*b2;//分子 int cd=simplify(molecule,denom);//最大公约数 denom=denom/cd; molecule=molecule/cd; String rs; if(denom==1) { rs=molecule+""; } else rs=molecule+"/"+denom;//化简结果 String result=in.next(); if(result.equals(rs)) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } else if(a2==1&&b1!=1) { System.out.print(a1+"-"+b1+"/"+b2+"="); int denom=b2; //分母 int molecule=a1*b2-b1;//分子 int cd=simplify(molecule,denom);//最大公约数 denom=denom/cd; molecule=molecule/cd; String rs; if(denom==1) { rs=molecule+""; } else rs=molecule+"/"+denom;//化简结果 String result=in.next(); if(result.equals(rs)) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } else if(b2==1) { System.out.print(a1+"/"+a2+"-"+b1+"="); int denom=a2; //分母 int molecule=a1-a2*b1;//分子 int cd=simplify(molecule,denom);//最大公约数 denom=denom/cd; molecule=molecule/cd; String rs; if(denom==1) { rs=molecule+""; } else rs=molecule+"/"+denom;//化简结果 String result=in.next(); if(result.equals(rs)) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } } if(index==2)//分数乘法 { if(a2!=1&&b2!=1) { System.out.println(a1+"/"+a2+"*"+b1+"/"+b2+"="); int denom=a2*b2; //分母 int molecule=a1*b1;//分子 int cd=simplify(molecule,denom);//最大公约数 denom=denom/cd; molecule=molecule/cd; String rs; if(denom==1) { rs=molecule+""; } else rs=molecule+"/"+denom;//化简结果 String result=in.next(); if(result.equals(rs)) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } else if(a2==1) { System.out.print(a1+"*"+b1+"/"+b2+"="); int denom=b2; //分母 int molecule=a1*b1;//分子 int cd=simplify(molecule,denom);//最大公约数 denom=denom/cd; molecule=molecule/cd; String rs; if(denom==1) { rs=molecule+""; } else rs=molecule+"/"+denom;//化简结果 String result=in.next(); if(result.equals(rs)) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } else if(b2==1) { System.out.print(a1+"/"+a2+"*"+b1+"="); int denom=a2; //分母 int molecule=a1*b1;//分子 int cd=simplify(molecule,denom);//最大公约数 denom=denom/cd; molecule=molecule/cd; String rs; if(denom==1) { rs=molecule+""; } else rs=molecule+"/"+denom;//化简结果 String result=in.next(); if(result.equals(rs)) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } } if(index==3)//分数除法 { for(;;)//保证结果是真分数 { if((a1/a2)/(b1/b2)<1) { a1=(int)(Math.random()*max); a2=(int)(Math.random()*(max-1)+1); b1=(int)(Math.random()*max+1); b2=(int)(Math.random()*(max-1)+1); } else break; } if(a2!=1&&b2!=1) { for(int kk=0;;) { //余数不为0.继续生成随机数 if(b1==0) { //判断分母是否为0 b1=(int)(Math.random()*max); } else break; } System.out.print("("+a1+"/"+a2+")"+"/"+"("+b1+"/"+b2+")"+"="); int denom=a2*b1; //分母 int molecule=a1*b2;//分子 int cd=simplify(molecule,denom);//最大公约数 denom=denom/cd; molecule=molecule/cd; String rs; if(molecule==0) { rs=0+""; } if(denom==1) { rs=molecule+""; } else rs=molecule+"/"+denom;//化简结果 String result=in.next(); if(result.equals(rs)) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } else if(a2==1&&a1!=0) { System.out.print(a1+"/"+"("+b1+"/"+b2+")"+"="); int denom=b1; //分母 int molecule=a1*b2;//分子 int cd=simplify(molecule,denom);//最大公约数 denom=denom/cd; molecule=molecule/cd; String rs; if(denom==1) { rs=molecule+""; } else rs=molecule+"/"+denom;//化简结果 String result=in.next(); if(result.equals(rs)) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } else if(b2==1&&b1!=0) { System.out.print("("+a1+"/"+a2+")"+"/"+b1+"="); int denom=a2*b1; //分母 int molecule=a1;//分子 int cd=simplify(molecule,denom);//最大公约数 denom=denom/cd; molecule=molecule/cd; String rs; if(denom==1) { rs=molecule+""; } else rs=molecule+"/"+denom;//化简结果 String result=in.next(); if(result.equals(rs)) { count+=1; System.out.println("回答正确!"); } else { System.out.println("回答错误!"); } System.out.println("正确结果是"+rs); } } } } } else//有括号 { int szgs,fhgs,x,z,y;//szgs数字个数 fhgs符号个数 double result;//结果 int sz[]=new int[20];//数字数组 char fh[]=new char[10];//字符数组 char operate[]={'+','-','*','/'}; for(int p=0;p<number;p++) { szgs=(int)(Math.random()*2+3);//生成3-4个数字 fhgs=szgs-1;//字符个数比数字少1 float rs[]=new float[20]; float c;String s; char op[]=new char[10];//储存字符 for(y=0;y<szgs;y++) { sz[y]=(int)(Math.random()*max+1);//随机生成数 } for(y=0;y<fhgs;y++) { x=(int)(Math.random()*4);//产生0~3的随机数 控制字符 fh[y]=operate[x]; } fh[fhgs]='='; if(fhgs%2==0)//偶数个运算符 { System.out.print(sz[0]);System.out.print(fh[0]); rs[0]=sz[0];op[0]=fh[0]; int d=1; for(y=1;y<fhgs;y++) { System.out.print("("); if(fh[y]=='/'||fh[y]=='-') //判断是否是真分数和负数 { if(sz[y]<sz[y+1]) {//交换 int temp; temp=sz[y]; sz[y]=sz[y+1]; sz[y+1]=temp; System.out.print(sz[y]); System.out.print(fh[y]); System.out.print(sz[y+1]); } else { System.out.print(sz[y]); System.out.print(fh[y]); System.out.print(sz[y+1]); } } else { System.out.print(sz[y]); System.out.print(fh[y]); System.out.print(sz[y+1]); } System.out.print(")"); if(fh[y]=='+') { rs[d]=sz[y]+sz[y+1]; } else if(fh[y]=='-') { rs[d]=sz[y]-sz[y+1]; } else if(fh[y]=='*') { rs[d]=sz[y]*sz[y+1]; } else if(fh[y]=='/') { c=(float)sz[y]/sz[y+1]; DecimalFormat df = new DecimalFormat("0.00");//格式化小数 s = df.format(c);//返回的是String类型 rs[d] = Float.valueOf(s); } System.out.print(fh[y+1]); op[d]=fh[y+1]; y=y+1; d=d+1; } //先算乘除 for(d=0;d<fhgs/2;d++) { if(op[d]=='*') { rs[d]=rs[d]*rs[d+1]; rs[d+1]=0; op[d]='+'; } if(op[d]=='/') { c=(float)rs[d]/rs[d+1]; DecimalFormat df = new DecimalFormat("0.00");//格式化小数 s = df.format(c);//返回的是String类型 rs[d] = Float.valueOf(s); rs[d+1]=0; op[d]='+'; } } float sum=rs[0]; //后算加减 for(int ii=0;ii<fhgs/2;ii++) { if(op[ii]=='+') { sum=sum+rs[ii+1]; } if(op[ii]=='-') { sum=sum-rs[ii+1]; } } result=in.nextDouble(); if(result==sum) { System.out.println("回答正确!"); count++; } else System.out.println("回答错误!"); System.out.println("正确结果:"+sum); } else//奇数运算符 { int id=0; for(y=0;y<fhgs;y++) { System.out.print("("); if(fh[y]=='/'||fh[y]=='-') //判断是否是真分数和负数 { if(sz[y]<sz[y+1]) { int temp; temp=sz[y]; sz[y]=sz[y+1]; sz[y+1]=temp; System.out.print(sz[y]); System.out.print(fh[y]); System.out.print(sz[y+1]); } else { System.out.print(sz[y]); System.out.print(fh[y]); System.out.print(sz[y+1]); } } else { System.out.print(sz[y]); System.out.print(fh[y]); System.out.print(sz[y+1]); } System.out.print(")"); //计算括号里的结果 if(fh[y]=='+') { rs[id]=sz[y]+sz[y+1]; } else if(fh[y]=='-') { rs[id]=sz[y]-sz[y+1]; } else if(fh[y]=='*') { rs[id]=sz[y]*sz[y+1]; } else if(fh[y]=='/') { c=(float)sz[y]/sz[y+1]; DecimalFormat df = new DecimalFormat("0.00");//格式化小数 s = df.format(c);//返回的是String类型 rs[id] = Float.valueOf(s); } System.out.print(fh[y+1]); op[id]=fh[y+1]; y=y+1; id=id+1; } //先算乘除 for(id=0;id<fhgs/2;id++) { if(op[id]=='*') { rs[id]=rs[id]*rs[id+1]; rs[id+1]=0; op[id]='+'; } if(op[id]=='/') { c=(float)rs[id]/rs[id+1]; DecimalFormat df = new DecimalFormat("0.00");//格式化小数 s = df.format(c);//返回的是String类型 rs[id] = Float.valueOf(s); rs[id+1]=0; op[id]='+'; } } float sum=rs[0]; //后算加减 for(int ii=0;ii<fhgs/2;ii++) { if(op[ii]=='+') { sum=sum+rs[ii+1]; } if(op[ii]=='-') { sum=sum-rs[ii+1]; } } result=in.nextDouble(); if(result==sum) { System.out.println("回答正确!"); count=count+1; } else System.out.println("回答错误!"); System.out.println("正确结果:"+sum); } } } System.out.println("计算正确的个数:"+count); } }
运行结果:
MyHtml.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | <!DOCTYPE html> <html> <head> <title>首页</title> <meta http-equiv= "Content-Type" content= "text/html; charset=gb2312" /> <meta name= "keywords" content= "keyword1,keyword2,keyword3" > <meta name= "description" content= "this is my page" > <!--<link rel= "stylesheet" type= "text/css" href= "./styles.css" >--> <style type= "text/css" > h1{ font-family:华文新魏; font-size:50px; } </style> </head> <body background= "image/64.jpg" > <h1 align= "center" >四则运算</h1> <!-- 传递参数的值给index.jsp处理 --> <form action= "index.jsp" method= "post" > <div align= "center" ><br> <span class = "STYLE2" >题目个数: <input name= "number" type= "radio" value= "20" checked> 20 <input type= "radio" name= "number" value= "40" > 40 <input type= "radio" name= "number" value= "60" > 60 <input type= "radio" name= "number" value= "80" > 80 <input type= "radio" name= "number" value= "100" > 100 <br> <br> 请选择范围最大值: <input name= "max" type= "radio" value= "10" checked> 10 <input type= "radio" name= "max" value= "30" > 30 <input type= "radio" name= "max" value= "50" > 50 <input type= "radio" name= "max" value= "70" > 70 <input type= "radio" name= "max" value= "100" > 100 <br> <!-- 多项选择,值可以有多个,在jsp中用数组保存 --> <br> 是否有括号:( 0 :无 1 :有): <input type= "radio" name= "backets" value= 0 > 0 <input type= "radio" name= "backets" value= 1 > 1 <br> <br> 是否有乘除:( 0 :无 1 :有): <input type= "radio" name= "c" value= 0 > 0 <input type= "radio" name= "panduan" value= 1 > 1 <br> <br> 是否有余数:( 0 :无 1 :有): <input type= "radio" name= " remainder" value= 0 > 0 <input type= "radio" name= " remainder" value= 1 > 1 </span> <br> <br> <input type= "submit" name= "submit" value= "确定" > </form> </body> </html> |
index.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | <%@ page language= "java" contentType= "text/html; charset=utf-8" pageEncoding= "utf-8" %> <%@ page import = "test5.*" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+ "://" +request.getServerName()+ ":" +request.getServerPort()+path+ "/" ; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" > <html> <head> <base href= "<%=basePath%>" > <title>答题</title> <meta http-equiv= "Content-Type" content= "text/html; charset=gb2312" /> <meta http-equiv= "pragma" content= "no-cache" > <meta http-equiv= "cache-control" content= "no-cache" > <meta http-equiv= "expires" content= "0" > <meta http-equiv= "keywords" content= "keyword1,keyword2,keyword3" > <meta http-equiv= "description" content= "This is my page" > <!-- <link rel= "stylesheet" type= "text/css" href= "styles.css" > --> </head> <body background= "images/A2.jpg" > <% String[] s= new String[ 30 ]; float k[]= new float [ 30 ]; Calculate a= new Calculate(); request.setCharacterEncoding( "UTF-8" ); String[] max = request.getParameterValues( "max" ); String[] backets= request.getParameterValues( "backets" ); String[] panduan= request.getParameterValues( "panduan" ); String[] remainder=request.getParameterValues( "remainder" ); int number; String str1=String.value(number); int max; String str2=String.value(max); str1=request.getParameter( "str1" ); str2=request.getParameter( "str2" ); a.SetValue(str1,str2()); for ( int i= 0 ;i<number;i++){ if (backets[i].equals( "1" )) { a.SetValue1( 1 ); } if (panduan[i].equals( "1" )) { a.SetValue2( 1 ); } if (remainder[i].equals( "1" )) { a.SetValue3( 1 ); } } %> <form action= "Myjsp.jsp" method= "post" > <center> <% a.main(); float temp; String[] se= new String[ 30 ]; for ( int i= 0 ;i< 30 ;i++){ s[i]=a.cs(i); se[i]= "name" ; se[i]=se[i]+i; k[i]=a.css(i); out.print( "<tr>" +s[i]+ "</tr>" ); out.println( "<br>" ); %> <input type= "text" name=<%=se[i] %>><br> <% } session.setAttribute( "v1" ,s); session.setAttribute( "v2" ,k); %> <br><input type= "submit" name= "submit" value= "提交" > </center> </form> </body> </html> |
运行结果截图:
编程总结:
所写的java程序要求基本已经完成,但是将代码改成网页并没有实现。在程序嵌入到网页过程中,我们遇到了很多困难,由于所有的代码都卸载主函数中,在分类调用时出现了很多困难,正确结果及用户输 入的结果也没有保存在数组里面,所以在网页中不能传递数组值进行判断。再加上对jsp和session语法掌握不熟悉,虽然参考了网上的已有程序但是并没能实现其功能。
周活动总结表
姓名:杜若憧 日期 2016/4/8
|
听课 |
编写代码 |
阅读课本 |
准备考试 |
|
|
日总计 |
周日 |
|
|
|
|
|
|
|
周一 |
|
50 |
|
|
|
|
50 |
周二 |
100 |
60 |
|
|
|
|
160 |
周三 |
|
22 |
|
|
|
|
22 |
周四 |
|
30 |
|
|
|
|
30 |
周五 |
|
100 |
|
|
|
|
160 |
周六 |
|
|
23 |
|
|
|
23 |
周总计 |
100 |
262 |
23 |
|
|
|
385 |
时间记录日志
学生:杜若憧 日期:2016/4/8
教师:王建民 课程:软件工程
日期 |
开始时间 |
结束时间 |
中断时间 |
净时间 |
活动 |
备注 |
C |
U |
4/4 |
4:32 |
7:00 |
18 |
130 |
编程序 |
休息 |
|
|
4/5 |
14:00 |
16:50 |
100 |
10 |
听课 |
课间休息 |
|
|
|
19:00 |
20:50 |
15 |
100 |
讨论,编程序 |
讨论,共同写程序 聊天 |
|
|
4/6 |
16:30 |
18:00 |
10+10 |
70 |
编程序 |
作业,玩手机,休息 |
|
|
4/7 |
16:30 |
17:30 |
10 |
50 |
编程序 写报告 |
查资料 |
|
|
4/8 |
19:00 |
23:00 |
30+15+20 |
175 |
编程序写报告 |
停电休息,玩手机,休息 |
|
|
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步