1.把已知字符串 "a=3.2&b=20&c=1.1" 作为一元二次方程 ax2+bx+c=0 的a、b、c三个参数值的取值描述,并求解此方程的根
/*
完成一个 java application应用程序,把已知字符串(在程序中赋初值或通过键盘输入)
"a=3.2&b=20&c=1.1" 作为一元二次方程 ax2+bx+c=0 的a、b、c三个参数值的取值描述,并求解此方程的根。
【提示:利用String类的字符串分离数据的函数,利用Math包中相关数值类的构造函数或数值转换函数】。
*/
public class Demo1 //类名
{
public static void main(String[] args) {
String s = "a=3.2&b=20&c=1.1";//定义String类型的变量s用于存储已知字符串
String[] ss = s.split("&|="); //使用split()将字符串由&或者=进行分割,定义String类型数组ss用于存储分割后的元素
//定义a,b,c三个变量为float类型
float a=0;
float b=0;
float c=0;
//遍历数组
for(int i=0;i< ss.length;i++)
{
//当数组元素中有字符串为3.2时,将其转换为float类型赋值给a
if (ss[i].equals("3.2"))
{
a = Float.parseFloat(ss[i]);//使用Float.parseFloat将String类型转换为float类型
}else if (ss[i].equals("20"))//当数组元素中有字符串为20时,将其转换为float类型赋值给b
{
b = Float.parseFloat(ss[i]);//使用Float.parseFloat将String类型转换为float类型
}
else if (ss[i].equals("1.1"))//当数组元素中有字符串为1.1时,将其转换为float类型赋值给c
{
c = Float.parseFloat(ss[i]);//使用Float.parseFloat将String类型转换为float类型
}
}
//输出a,b,c的值
System.out.println("a的值为:"+a);
System.out.println("b的值为:"+b);
System.out.println("c的值为:"+c);
//求解ax^2+bx+c=0的根
double x1=(-b+Math.sqrt(b*b-4*a*c))/(2*a); //使用求根公式求解根x1
double x2=(-b-Math.sqrt(b*b-4*a*c))/(2*a); //使用求根公式求解根x2
System.out.println("ax^2+bx+c=0的两个根为:"+"x1="+x1+",x2="+x2);//将求出的根显示出来
}
}
2.通过键盘输入,输入1则调用运行windows记事本程序,输入2则调用运行windows画图程序……。如下所示:
import java.io.IOException;
import java.util.Scanner;
public class Demo2 //类名
{
public static void main(String[] args) throws IOException //抛出异常
{
Scanner sc=new Scanner(System.in);//从键盘录入数据
//使用while的死循环
while(true)
{
System.out.print("请输入1或者2或者3");
int i=sc.nextInt(); //定义int类型变量i接收键盘录入的数据
if(i==1) //如果键盘录入为1运行记事本
{
System.out.println("打开记事本");
/*
Runtime类封装了运行时的环境。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。
一般不能实例化一个Runtime对象,应用程序也不能创建自己的 Runtime 类实例,
但可以通过 getRuntime 方法获取当前Runtime运行时对象的引用。
exec()方法返回一个Process对象,可以使用这个对象控制Java程序与新运行的进程进行交互
*/
Process p=Runtime.getRuntime().exec("notepad.exe");//使用exec()方法使用记事本
}
else if(i==2) //如果键盘录入2运行画图
{
System.out.println("打开画图程序");
Process p=Runtime.getRuntime().exec("mspaint.exe");//使用exec()方法使用画图程序
}else if(i==3)//如果键盘录入为3,则退出循环
{
System.out.println("退出");
break;
}
else //当输入不是1或者2或者3则重新输入
{
System.out.println("输入错误,请重新输入");
}
}
}
}
3.输出一份当前所在时区当前时间的一个月的日历(1号到28/29/30/31号,以及每天对应为星期几)。如下所示:
import java.time.LocalDate;
public class Demo4//类名
{
public static void main(String[] args)
{
// 调用LocalDate.now会创建一个新对象,并把对象的日期初始化为当前的日期
LocalDate day = LocalDate.now();
System.out.println(day); //得到当前的日期
int month = day.getMonthValue();//使用getMonthValue方法得到月份
int today = day.getDayOfMonth();//使用getMonthValue方法得到日
System.out.println(month +"月"+today);//输入多少月多少日
//LocalDate minusDays(int n):生成当前日期之前 n 天的日期
day=day.minusDays(today-1);//这里用today-1就能得到这个月第一天的日期
int wd=day.getDayOfWeek().getValue(); //使用getDayOfWeek().getValue()得到这个月第一天是星期几的数值
//下面开始打印日历的1~7的七个星期
System.out.println(" 一 二 三 四 五 六 日");
for (int i=1;i<wd;i++) {
//打印前面的空白部分
System.out.printf(" ");
}
while (day.getMonthValue()==month)//如果由日得到的月与今天得到的月相等就表明还在当前月,就执行循环
{
System.out.printf("%3d",day.getDayOfMonth());//输出该日是当前月的第几天
if (day.getDayOfMonth()==today)//当本月得某一天与今天相等时,后面加上*
{
System.out.print("*");
}else{
System.out.print(" ");//不相等就加上空格
}
//执行完一天就将将天数加1
day=day.plusDays(1);
//如果是星期一就换行
if (day.getDayOfWeek().getValue()==1)//判断是否是星期1
{
System.out.println();//换行
}
}
}
}
结果如下图所示: