一、Java基础练习
二、Java选择和循环
三、Java数组练习
四、Java类和对象练习
五、Java字符串练习
1、用Java编写程序,从键盘上输入一个double型的华氏温度,然后将其转换为摄氏温度输出。
package package1;
import java.util.*;
public class class1 {
public static void main(String[] args) {
// TODO Auto- generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入华氏度: ");
double g=in.nextFloat();
double w=(5.0/9)*(g-32);
System.out.println(+g+"华氏度"+"对应的摄氏度为: "+w);
}
}
2、 编写程序,从键盘输入a、b、c的值,计算下列表达式 (开根用Math.sqrt()方法)。
package package1;
import java.util.*;
public class class2 {
public static void main(String[] args) {
// TODO Auto- generated method stub
Scanner.gsq=new Scanner(System.in) ;
System.out.println("Please input the number of a,b,c : ");
int a=gsq.nextInt();
int b=gsq.nextInt();
int c=gsq.nextInt();
double result=(((-1)*b)+Math.sqrt(b*b-4*a*c))/(2*a);
if(b*b-4*a*c<0){
System.out.println("the number doesn't exit");
}e1se{
System.out.println("The result is : "+result);
}
}
}
3、编写程序读取一个0- 1000的整数,计算各位数之和。例如,输入923,则输出各位数之和为14。
package package1;
import java.util.*;
public class class3 {
public static void main(String[] args) {
// T0DO Auto- generated method stub
Scanner gg=new Scanner(System.in);
System.out.println("Please input the number between 0 and 1000: ");
int t=gg.nextInt();
while(t < 0 || t > 1000){
System.out.println("The number you input is invalid,please input again : ");
t=gg.nextInt();
int sum=0,i,a=t;
while(a!=0){
i=a%10;
a/=10;
sum+=i;
System.out.println(" the sum of”+t+”is "+sum);
}
}|
1、编写程序,要求用户从键盘输入一个double型数,输出该数的整数部分和小数部分。
package package2;
import java.util.*;
public class class1 {
public static void main(String[] args) {
System.out.println( "请输入一-个double数值: ");
Scanner gg =new Scanner(System.in);
String a=gg.nextLine();
int tmp=a.index0f('.');
System.out.println( "整数部分为: "+a. substring(0, tmp));
System.out.println("小数部分为: "+a. substring(tmp+1));
}|
2、编写程序,从键盘输入一个正整数,判断是奇数还是偶数。
package package2;
import java.util.*;
public class class2 {
publ1ic static void main(String[] args) {
// TODO Auto- generated method stub
System.out.print1n("请输入一个整数: ");
System.out.println();
Scanner gg = new Scanner(System.in);
int number = gg.nextInt();
if( (number&1) == 1){
System.out.println("您输入的是奇数!");
}else{
System.out.println("您输入的是偶数!");
}
}|
3、编写程序,要求用户从键盘输入4个正整数,找出其中最大值和最小值并打印输出。
package package2; .
import java.util.*;
public class class3 {
public static void main(String[] args) {
int a[]=new int [4];
Scanner input = new Scanner(System.in);
System.out.println("Please input four numbers: ");
for (int i=0;i<4;i++)
a[i]=input.nextInt();
int min=a[0];
int max=a[0] ;
for int i=0; i<4;i++)
if (a[i]max){
max=a[i];
}
System.out.println("The max number is " +max);
System.out.println("The min number is " +min);
}
}
4 、编写一个Java应用程序,输入1-9999之间的数字,判断是否为回文数。
package package2;
import java.util.*;
public class class4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner gg=new Scanner(System.in);
System.out.println("请输入1~9999之间的数字: ");
int a=gg.nextInt();
int b=0,c=0,d=a;
while(a!=0){
c=a%10; .
b=b*10+c;
a=a/10;
}
if(b==d){
System.out.println("该数为回文数! ");
}
else{
System.out.println("该数不是回文数! ");
}
5、编写程序,实现最大公约数程序
package package2;
import java.util.*;
public class class5{
public static void main(String[] args) {
Scanner gg= new Scanner(System.in);
System.out.println("请输入两个整数: ");
int a=gg.nextInt();
int b=gg.nextInt();
for(int c=Math.max(a,b);c>=1;c--){
if(a%c==0 && b%c==0){
System.out.println(" 最大公约数为: "+c);
break ;
}
6、编写程序,要求用户从键盘上输入一个月份,输入该年是否为闰年。符合下面两个条件之一的年份即为闰年;(能被4整除,但不能被100整除并且能被400整除。)
package package2;
import java.util.*;
public class class6 {
public static void main(String[] args) {
Scanner gg = new Scanner(System.in);
System.out.println("请输入今夕是何年: ");
int y=gg.nextInt();
if((y%4==0 && y%100!=0) || y%400==0) {
System.out.println(y+"是闰年");
else
System.out.println(y+"不是闰年");
}
}
7、编写程序,计算并输出1-1000之间含有7或者是7的倍数的整数之和及个数。
package package2;
import java.util.*;
public class class7 {
public static void main(String[ ] args) {
int s=0,c=0;
for(int i=1;i<=1000;i++){
if(i%7==0||i%10==7||(i/100)%10==7||(i/10)%10==7){
S+=i;
C++;
System.out.println("1-1000之间含有7或者是7的倍数的整数之和及个数分别是"+s+","+c+"个");
}
}
1、随机生成10个1-100之间的整数。存入到一个数组中。输出该数组的最大值、最小值、平均值和所有数组元素的和。
package package4;
public class class1;
public static void main(String[] args) {
int [] a=new int [10];
int sum=0, max=0, min=101;
System.out.println("随机生成的十个数字为: ");
for(int i=0;i<10;i++) {
a[i]=(int)(Math.random()*100)+1;//随机生成10个1-100的数
System.out.print(+a[i]+"、");
for(int i=0;i<10;i++) {
sum+=a[i];
if(a[i]max)
max=a[i]; //比较最大值
System.out.println(“该数组中最大值为" +max+" ,最小值为“+min+" ,数值总和为"+sum+" ,平均值为"+(sum)/10.0);
}
}
2、编写程序, 定义一个数组,并随机生成0-100之间的数.给它赋值,然后将值为0的项去掉,输出新数组。
package package4;
public class class3 {
public static void main(String[] args) {
// TODO Auto- generated method stub
int [] a=new int [7]; //定 义随机生成7个数
int k=0;
System.out.println("原来的数组为: ");
for(int i=0;i
3、编写程序、完成以下功能:
1)输入20个整数到数组中:
2)使用冒泡法对20个数按从小到大排序,输出排序后的数组:
3).输入一个整数X,在数组中用二分法查找X.找到输出X在数组中的下标,找不到输出-1。
package package4;
import java.util.Scanner;
public class class2 {
public static void main(String[] args) {
int [] a=new int[20];//定 义数组存放20个数
int gg;
System.out.print1n("生成的数组为: ");
for(int i=0; ia[j+1])团
gg=a[j];
a[j]=a[j+1];
a[j+1]=gg;
}|
}
//输出排序后的数组
System.out.println("\n排序后的顺序: ");
for(int i=0;i=0) {
k=(p+1)/2;
if(t
运行程序并检测,输入数字属于该数组时和不属于该数组时:
1、定义一个名为Person的类,其中含有一个String类型的成员变量和一个int类型的成员变量,分别为这两个变量定义访向方法和修改方法。另外再为该类定义一个名为speak的方法,输出其成员变量的值。画出该类的UML图,编写程序测试该类的所有方法。
(1)、UML图如下图所示:
(2)、编写程序如下:
package package3;
import java.util.*;
public class person {
String name;
int height;
public String getName() {
return name ;
}
public void setName(String name) {
this.name = name; .
}
public int getheight() {
return height;
}
public void setheight(int height) {
this.height = height;
public void set(String name, int height){
this.name=name;
this.height=height;
}
public void speak(){
System.out.print(name+" "+height);
public static void main(String[] args) {
person a=new person() ;
a.set("王帅",178);
a.speak();
}
2、定义一个名为Circle的类表示圆,定义求圆的面积和周长的方法,为其成员变量定义访问和修改方法(使用构造方法)。画出该类的UML图,编写程序测试该类的所有方法。
(1)画出UML图如下图所示:
(2)首先创建Circle类创建方法,代码如下图所示:
package package3;
public class Circle {
private double r;
public double getR() {
return r;
public void setR(double r) {
this.r = r;
}
public void setArea() {
System.out.println("面积为"+3.14*r*r);
public void setLength() {
System.out.println("周长为"+2*3.14*r);
(3)创建test类来调用输出,代码如下图所示:
package package3;
public class test {
public static void main(String[] args) {
Circle c=new Circle();
c.setR(2);
System.out.println("半径为"+c.getR());
c.setArea();
C.setLength();|
}
}
(4)运行程序并检测:
3、定义一个表示圆的类Circle,构建合理的方法和变量;定义一个名为Cylinder类表示圆柱,它继承Circle类,要求定义一个变量height表示圆柱高度。覆盖getArea()方法求圆柱的表面积,定义getVolume()方法求圆柱体积。定义默认构造方法和带radius和height两个参数的构造方法。编写测试程序,提示用户输入圆柱的底面圆的半径和高度,程序创建一个圆柱对象,计算并输出圆柱表面积和体积。用UML图画出类及其关系。
(1)画出UML图:
(2)编写父类Circle类,代码如下:
package day1;
import java.util.Scanner;
public class Circle {
double radius;
public double area() {
return radius*radius*3.14;
}
public double getRadius() {
return radius;
}
public void setRadius() {
System.out.println("请输入底面面的半径:");
Scanner sc =new Scanner(System.in);
radius=sc.nextDouble();
}
}
(3). 编写子类Cylinder继承父类Circle类,具体代码如下图所示:
package day1;
import java.util.Scanner;
public class Cylinder extends Circle {
double height;
public double getLength() {
return 2*3.14*radius;
}
public double getVolume() {
return height*area();
}
public double getArea() {
return 2*area()+height*getLength();
}
public double getHeight() {
return height;
}
public void setHeight() {
System.out.println("请输入圆柱的高:");
Scanner sc =new Scanner(System.in);
height=sc.nextDouble();
}
public static void main(String[] args) {
Cylinder a=new Cylinder();
a.setRadius();
a.setHeight();
System.out.println("圆柱的表面积为:"+a.getArea());
System.out.println("圆柱的体积为:"+a.getVolume());
}
}
(4). 运行代码并检测:
4、利用继承性与派生类来管理学生和教师档案。假设要管理下述几类人员的如下一些数据。
teacher(教师)类:姓名、性别、年龄、职称、担任课程;
student(学生)类:姓名、性别、年龄、学号、系别;
gradstudent(研究生)类:姓名、性别、年龄、学号、系别、导师。
要求每个类只设立构造函数以及显示类对象数据的成员函数。编写主函数,说明有关类对象,并对其类成员函数进行简单测试。用UML图画出类及其关系。
(1)画出UML图:
(2).编写父类Person类,代码如下所示:
package day1;
public class Person {
public String name;
public String sex;
public int age;
public void showInfo() {
System.out.println("姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("年龄:"+age);
}
}
(3).编写Teacher类继承person类,代码如下图所示:
package day1;
public class Teacher extends Person{
String name="王刚";
String sex="男";
int age=23;
String job="班主任";
String project="软件工程";
public void showInfo() {
System.out.println("姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("年龄:"+age);
System.out.println("职称:"+job);
System.out.println("担任课程:"+project);
}
public static void main(String[] args) {
Teacher teach =new Teacher();
teach.showInfo();
}
}
(4)编写Student类继承Person类,代码如下图所示:
package day1;
public class Student extends Person{
String name="小明";
String sex="男";
int age=19;
String number="20173344134";
String department="物联网";
public void showInfo() {
System.out.println("姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("年龄:"+age);
System.out.println("学号:"+number);
System.out.println("系别:"+department);
}
public static void main(String[] args) {
Student stu =new Student();
stu.showInfo();
}
}
(5)编写Gradstudent继承Student类,代码如下图所示:
package day1;
public class Gradstudent extends Student{
String name="老王";
String sex="男";
int age=19;
String number="20173344134";
String department="物联网";
String teacher="王刚";
public void showInfo() {
System.out.println("姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("年龄:"+age);
System.out.println("学号:"+number);
System.out.println("系别:"+department);
System.out.println("导师:"+teacher);
}
public static void main(String[] args) {
Gradstudent stu =new Gradstudent();
stu.showInfo();
}
}
(6)运行程序并检测:
5、设计一个汽车类,包含一个表示速度的成员变量,表示启动,加速,刹车的方法,再设计一个公共汽车类继承自汽车类,需要有表示乘客数量的成员变量,另外定义乘客上车和下车方法,编写测试这两个类的使用。(本程序比较简单,主要用来理解子类和继承,方法大家可以自己定义!)
(1)编写Car父类,定义变量和方法,如下图所示:
package day1;
public class Car {
public double speed;
public void start() {
System.out.println("车辆开始启动!");
}
public void speedUp() {
System.out.println("车辆开始加速!");
}
public void stop() {
System.out.println("车辆开始刹车!");
}
}
(2)编写publicCar类继承Car,代码如下图所示:
package day1;
public class publicCar extends Car {
int number;
void getIn() {
System.out.println("乘客上车!");
}
void getOff() {
System.out.println("乘客下车!");
}
public static void main(String[] args) {
publicCar c=new publicCar();
c.start();
c.speedUp();
c.stop();
c.getIn();
c.getOff();}
}
(3)运行程序并检测:
1、编写程序,输入一句话,将输入的每个单词按字符串从小到大的顺序排序后输出
package test56;
import java.util.Scanner;
public class Wordsorts {
public static void main(String[] args) {
char[] str=new char[100];
char temp;
String string= null;
Scanner sc=new Scanner(System.in);
System.out.println("输入一个字符串:");
string=sc.next();
str=string.toCharArray();
for(int i=0;ii;j--)
{
if(str[j]<=str[j-1])
{
temp=str[j];
str[j]=str[j-1];
str[j-1]=temp;
}
}
System.out.println(str);
sc.close();
}
}
2、编写一个加密程序,要求从键盘输入一个字符串, 然后输出加密后的字符串。加密规则是对每个字符串转换为下一个字母表示, 原来是a转换为b.原来是B转换为C.小写的转换为小写的a,大写的Z转换为大写的A。
package test56;
import java.util.Scanner;
public class Password {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s = sc.nextLine();
char[] ch = s.toCharArray();
System.out.println("加密后的字符串为:");
for (int i = 0; i < ch.length; i++) {
if (ch[i] >= 'A' && ch[i] <= 'Y') {
ch[i] = (char) (ch[i] + 1);
System.out.print(ch[i]);
} else if (ch[i] == 'Z') {
System.out.print('A');
}
else if (ch[i] >= 'a' && ch[i] <= 'y') {
ch[i] = (char) (ch[i] + 1);
System.out.print(ch[i]);
} else {
System.out.print('a');
}
}
}
}