2022.6.17 java练习

第一题
设计一个猜数字游戏,即系统随机出一个 0-100 的整数,用户输入数字,提示输出大还是小,超过
4 次则为用户失败,游戏结束后询问用户是否下一轮。
package Exercise.HomeWork01;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        /*
        * 设计一个猜数字游戏,即系统随机出一个0-100的整数,
        * 用户输入数字,提示输出大还是小,超过 4次则为用户失败,
        * 游戏结束后询问用户是否下一轮。*/
        Scanner scanner = new Scanner(System.in);

        char key ;
    do{
        System.out.println("游戏开始=============");
        int m = 0;//统计成功次数
        int n = 0;//统计失败次数
            do{
                System.out.println("请输入一个整数");
                int num = scanner.nextInt();
                int num2 = (int)(Math.random() * 100) + 1;//1-100随机生成数字
                if(num>num2){
                    m++;
                    if(m==4){
                        System.out.println("你成功了");
                        break;
                    }
                    System.out.println("你输入的数大");
                }else if(num == num2){
                    System.out.println("两数相等");
                }else{
                    System.out.println("你输入的数小");
                    n++;
                    if(n==4){
                        System.out.println("你失败了");
                        break;
                    }
                }
                System.out.println("游戏继续");

            }while(true);
        System.out.println("是否下一轮(y/n)");
        key = scanner.next().charAt(0);
    }while (key!='n');


    }
}

第二题                                                            

设计一个名字叫做图形的父类,在设计集成他的子类,分别是矩形、三角、圆形和椭圆形。自己 考找出共同特征(点的个数,边的个数等等,还有一些方法,比如画等),具体细节自由发挥, 中除了打印不可以出现汉字。

package Exercise.HomeWork02;

public class Test {
    public static void main(String[] args) {
        Triangle triangle = new Triangle("三角形", 3, 3);
        Rectangle rectangle = new Rectangle("矩形", 4, 4);
        Ellipse ellipse = new Ellipse("椭圆", 0, 1);
        Circular circular = new Circular("圆", 0, 1);
        System.out.println(triangle.toString());
        System.out.println(rectangle.toString());
        System.out.println(ellipse.toString());
        System.out.println(circular.toString());


    }
}
package Exercise.HomeWork02;

public class Circular extends Graphical{//圆形


    public Circular(String name, int spotNum, int edgeNum) {
        super(name, spotNum, edgeNum);

    }
    }


package Exercise.HomeWork02;

public class Ellipse extends Graphical{//椭圆
    public Ellipse(String name, int spotNum, int edgeNum) {
        super(name, spotNum, edgeNum);
    }
    }

package Exercise.HomeWork02;
/*
 * 设计一个名字叫做图形的父类,在设计集成他的子类,
 * 分别是矩形、三角、圆形和椭圆形。
 * 自己思考找出共同特征(点的个数,边的个数等等,还有一些方法,比如画等),
 * 具体细节自由发挥,程 序中除了打印不可以出现汉字。*/
public class Graphical {//父类
    private String name;
    private int spotNum;//点的个数
    private int edgeNum;//边的个数

    public Graphical(String name, int spotNum, int edgeNum) {
        this.name = name;
        this.spotNum = spotNum;
        this.edgeNum = edgeNum;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getSpotNum() {
        return spotNum;
    }

    public void setSpotNum(int spotNum) {
        this.spotNum = spotNum;
    }

    public int getEdgeNum() {
        return edgeNum;
    }

    public void setEdgeNum(int edgeNum) {
        this.edgeNum = edgeNum;
    }

    @Override
    public String toString() {
        return "Graphical{我正在画" +
                "name='" + name + '\'' +
                ",它的点数spotNum=" + spotNum +
                ",它的边数edgeNum=" + edgeNum +
                '}';
    }
}
package Exercise.HomeWork02;

public class Rectangle extends Graphical{//矩形

    public Rectangle(String name, int spotNum, int edgeNum) {
        super(name, spotNum, edgeNum);
    }
}
package Exercise.HomeWork02;

public class Triangle extends Graphical{//三角形

    public Triangle(String name, int spotNum, int edgeNum) {
        super(name, spotNum, edgeNum);
    }
}

第三题                                                            

生物届共有三大类(界门纲目科属种),分别是植物动物微生物,以动物的生活方式划分又可以 为海陆空,他们的呼吸方式分别是靠鳃呼吸和靠肺呼吸。不同的动物运动方式又不一样,比如鱼可 以游泳,猫可以爬树,鸟可以飞。不同动物的饮食方式又不一样,鱼吃蚯蚓、猫吃鱼、狗吃肉、鸟 吃种子。但是对于人来说,不同的动物功能不同,猫可以抓老师、狗可以看家、鱼和鸟可以供人观 。每一个动物年龄的速度又不一样,比如张三的猫(欢欢)速度是5m/s,而李四家的猫(花      )7m/s,(名字和速度应该是对象一旦被创建就不可以被修改,提示final关键字)。题目自  由发挥,应用封装继承多态完成本题,程序中除了打印不可以出现汉字。

package Exercise.HomeWork03;

/*
* 生物届共有三大类(界门纲目科属种),分别是植物动物微生物,
* 以动物的生活方式划分又可以分 为海陆空,他们的呼吸方式分别是靠鳃呼吸和靠肺呼吸。
* 不同的动物运动方式又不一样,比如鱼可 以游泳,猫可以爬树,鸟可以飞。
* 不同动物的饮食方式又不一样,鱼吃蚯蚓、猫吃鱼、狗吃肉、鸟 吃种子。
* 但是对于人来说,不同的动物功能不同,猫可以抓老鼠、狗可以看家、鱼和鸟可以供人观 赏。
* 每一个动物年龄的速度又不一样,比如张三的猫(欢欢)速度是5m/s,
* 而李四家的猫(花花)是7m/s,
* (名字和速度应该是对象一旦被创建就不可以被修改,提示final关键字)。
* 题目自 由发挥,应用封装继承多态完成本题,程序中除了打印不可以出现汉字。*/
public class Test {
    public static void main(String[] args) {
        Dog dog = new Dog("小黑", 3, 5, "陆地生活",
                "靠肺呼吸", "用腿跑", "爱吃骨头", "会看门");
        Cat cat = new Cat("欢欢", 3, 3, "陆地生活",
                "靠肺呼吸", "用腿跑", "爱吃老鼠", "会抓老鼠,会撒娇");
        System.out.println(dog.toString());
        System.out.println(cat.toString());
    }
}
package Exercise.HomeWork03;

public class Animal {//父类
     private String name;
    private int age;
     private int speed;
    private String life;//生活方式
    private String breath;//呼吸方式
    private String run;//运动方式
    private String eat;//饮食方式
    private String function;//对人的功能

    public Animal(String name,int age, int speed, String life, String breath, String run, String eat, String function) {
        this.name = name;
        this.age = age;
        this.speed = speed;
        this.life = life;
        this.breath = breath;
        this.run = run;
        this.eat = eat;
        this.function = function;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setSpeed(int speed) {
        this.speed = speed;
    }

    public int getSpeed() {
        return speed;
    }


    public String getLife() {
        return life;
    }

    public void setLife(String life) {
        this.life = life;
    }

    public String getBreath() {
        return breath;
    }

    public void setBreath(String breath) {
        this.breath = breath;
    }

    public String getRun() {
        return run;
    }

    public void setRun(String run) {
        this.run = run;
    }

    public String getEat() {
        return eat;
    }

    public void setEat(String eat) {
        this.eat = eat;
    }

    public String getFunction() {
        return function;
    }

    public void setFunction(String function) {
        this.function = function;
    }

    @Override
    public String toString() {
        return "我叫"+name+"我今年"
                 + age +
                "岁了,我的速度=" + speed +
                "m/s,我的生活方式是" + life  +
                " \n我的呼吸方式是" + breath +
                " 我的运动方式是" + run +
                " 我的饮食方式是" + eat +
                "我可以" + function
                ;
    }
}
package Exercise.HomeWork03;

public class Cat extends Animal{
    public Cat(String name,int  age, int speed, String life, String breath, String run, String eat, String function) {
        super(name,age, speed, life, breath, run, eat, function);
    }
}
package Exercise.HomeWork03;

public class Dog extends Animal{
    public Dog(String name,int age, int speed, String life, String breath, String run, String eat, String function) {
        super(name,age, speed, life, breath, run, eat, function);

    }
}

第四题                                                                               

使用list  ( List的子类),只可以插入学生类(学生包含学号、姓名、年龄、性别(使用bool) 联系式等、其他自由发挥,注意不要使用基本数据类型、使用包装类型)。

1.使用迭代器打印出所有的学生信息(不同的信息之间使用三个":"分割,英文的冒号)  2.只打印出年龄大于20的学生信息

3.打印出性别为男的学生姓名和学号

4.打印出字为张三的学生信息,没有则提示没有该学生信息

package Exercise.HomeWork04;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListTest {

    public static void main(String[] args) {
        List<Student> list = new ArrayList<Student>();
        Student student1 = new Student(1,"张三",19,true,"3329293493");
        Student student2 = new Student(2,"李四",17,false,"1693709760");
        Student student3 = new Student(3,"王五",15,true,"1302093838");

        list.add(student1);
        list.add(student2);
        list.add(student3);

        Iterator iterator = list.iterator();

        while(iterator.hasNext()) {
            System.out.println(iterator.next());
        }

        System.out.println();
        System.out.println("==============================");

        iterator = list.iterator();
        while(iterator.hasNext()) {
            Student student = (Student)iterator.next();
            if((int)student.age >= 20)
                System.out.println(student);
        }

        System.out.println();
        System.out.println("==============================");

        iterator = list.iterator();
        while(iterator.hasNext()) {
            Student student = (Student)iterator.next();
            if((boolean)student.sex == true)
                System.out.println("name=" + student.name + " number=" + (int)student.number );
        }

        System.out.println();
        System.out.println("========================================");

        iterator = list.iterator();
        boolean flag =true;
        while(iterator.hasNext()) {
            Student student = (Student)iterator.next();
            if(student.name.equals("张三")) {
                System.out.println("S=name=" + student.name + "number=" + (int)student.number );
                flag = false;
            }
        }
        if(flag) {
            System.out.println("张三不存在");
        }
    }
}
package Exercise.HomeWork04;

class Student {
    Integer number;
    String name;
    Integer age;
    Boolean sex;
    String email;
    public Student(Integer number, String name, Integer age, Boolean sex, String email) {
        this.number = number;
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.email = email;
    }
    public Integer getNumber() {
        return number;
    }
    public void setNumber(Integer number) {
        this.number = number;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public Boolean getSex() {
        return sex;
    }
    public void setSex(Boolean sex) {
        this.sex = sex;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    @Override
    public String toString() {
        return "Student age=" + age + "email=" + email + " name=" + name + "number=" + number + "sex=" + sex;
    }


}

第五题                                                            

使Java现有的set集合存储上述的学生信息,分别展现出增删改查(注意:不可以插入学号相同的学 生)

package Exercise.HomeWork05;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;

public class SetTest {

    Set<Student> set = new HashSet<Student>();

    public static void main(String[] args) {
        SetTest setTest = new SetTest();
        Student student1 = new Student(1,"张三",19,true,"3329293493");
        Student student2 = new Student(2,"李四",17,false,"1693709760");
        Student student3 = new Student(3,"王五",15,true,"1302093838");
        setTest.add(student1);
        setTest.add(student2);
        setTest.add(student3);
        setTest.traverse(2);
        System.out.println("=============");
        setTest.delete(2);
        setTest.traverse(2);
        System.out.println("=============");
        setTest.set(1);
        setTest.traverse(1);
    }

    public void add(Student student) {
        boolean flag = true;
        Iterator iterator = set.iterator();
        while(iterator.hasNext()) {
            Student stu = (Student) iterator.next();
            if((int)stu.number == (int)student.number) {
                flag = false;
                System.out.println("添加失败");
                break;
            }
        }
        if(flag) {
            set.add(student);
            System.out.println("添加成功");
        }

    }

    public void delete(Integer number) {
        boolean flag = true;
        Iterator iterator = set.iterator();
        while(iterator.hasNext()) {
            Student stu = (Student) iterator.next();
            if((int)stu.number == number) {
                System.out.println("成功删除");
                flag = false;
                set.remove(stu);
                break;
            }
        }
        if(flag) {
            System.out.println("你删除的对象不存在");
        }
    }

    public void traverse(Integer number) {
        boolean flag = true;
        Iterator iterator = set.iterator();
        while(iterator.hasNext()) {
            Student stu = (Student) iterator.next();
            if((int)stu.number == number) {
                System.out.println(stu);
                flag = false;
                break;
            }
        }
        if(flag) {
            System.out.println("你查找的学生不存在");
        }
    }

    public void set(Integer number) {
        boolean flag = true;
        Iterator iterator = set.iterator();
        Scanner scanner = new Scanner(System.in);
        while(iterator.hasNext()) {
            Student stu = (Student) iterator.next();
            if((int)stu.number == number) {
                set.remove(stu);
                System.out.println("修改后的名字");
                stu.name = scanner.next();
                System.out.println("修改后的年龄:");
                stu.age = (Integer)scanner.nextInt();
                System.out.println("修改后的性别:");
                stu.sex = (Boolean)scanner.nextBoolean();
                System.out.println("修改后的地址:");
                stu.email = scanner.next();
                flag = false;
                set.add(stu);
                break;
            }
        }
        if(flag) {
            System.out.println("你修改的学生不存在");
        }
    }
}
package Exercise.HomeWork05;

class Student {
    Integer number;
    String name;
    Integer age;
    Boolean sex;
    String email;
    public Student(Integer number, String name, Integer age, Boolean sex, String email) {
        this.number = number;
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.email = email;
    }
    public Integer getNumber() {
        return number;
    }
    public void setNumber(Integer number) {
        this.number = number;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public Boolean getSex() {
        return sex;
    }
    public void setSex(Boolean sex) {
        this.sex = sex;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    @Override
    public String toString() {
        return "Student age=" + age + "email=" + email + " name=" + name + "number=" + number + "sex=" + sex;
    }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值