Day10实验

Day10## 实验9整理的部分题

1.编写出一个通用的人员类(Person),该类具有姓名(Name)、年龄(Age)、性别(Sex)等域。然后对Person 类的继承得到一个学生类(Student),该类能够存放学生的5门课的成绩,并能求出平均成绩。最后在Main函数中对student类的功能进行验证。

public class Person {

private String name;

private int age;

private String sex;

public String getName() {

    return name;

}

public void setName(String name) {

    this.name = name;

}

public int getAge() {

    return age;

}

public void setAge(int age) {

    this.age = age;

}

public String getSex() {

    return sex;

}

public void setSex(String sex) {

    this.sex = sex;

}

}

public class Student extends Person{

private int grade1;

private int grade2;

private int grade3;

private int grade4;

private int grade5;

public int getGrade1() {

    return grade1;

}

public void setGrade1(int grade1) {

    this.grade1 = grade1;

}

public int getGrade2() {

    return grade2;

}

public void setGrade2(int grade2) {

    this.grade2 = grade2;

}

public int getGrade3() {

    return grade3;

}

public void setGrade3(int grade3) {

    this.grade3 = grade3;

}

public int getGrade4() {

    return grade4;

}

public void setGrade4(int grade4) {

    this.grade4 = grade4;

}

public int getGrade5() {

    return grade5;

}

public void setGrade5(int grade5) {

    this.grade5 = grade5;

}

public int avg(){

    return (grade1+grade2+grade3+grade4+grade5)/5;

}

}

public class test {



public static void main(String[] args) {

    Student s = new Student();

    s.setGrade1(90);

    s.getGrade1();

    s.setGrade2(100);

    s.getGrade2();

    System.out.println(s.avg());

}

  }
  1. 创建一程序,该程序包括一个筛子类,后者有三个数据成员,即筛子的面数,筛子的点数以及包含随机数类的静态数据成员。为这个类声明一个名为roll()的成员方法,它以随机的方式返回下一次掷筛子得的点数。

public class shaizi {

private int mian;

private int dian;

public static int random;

public void roll(){

    random = (int)(Math.random()*6+1);

}

}

3…(1)定义一个游戏中Hero 英雄的类,在该类中定义英雄的名字, 生命值和等级3 个属性,定义一个构造函数完成对生命值和等级的初始化,分别赋初值为100,1。同时实现名字的输入和英雄信息的输出。

public class Hero {

private String name;

private int ph=100;

private int grade=1;

public Hero(int ph, int grade) {

    super();

    this.ph = ph;

    this.grade = grade;

}

}

(2)在上一题的基础上,为英雄再定义拥有一个参数的构造方法,传入一个英雄类型的值,如果为1,则为普通英雄,生命值为100,如果该值为2,则为高级英雄,生命值初始化为200。

public class Hero {

private String name;

private int ph=100;

private int grade=1;

public Hero(int ph, int grade) {

    super();

    this.ph = ph;

    this.grade = grade;

}

public Hero(int type){

    if(type==1){

       
 this.ph = 100;

        this.grade = 1;

    }else if(type==2){

        this.ph = 200;

        this.grade = 2;

    }else {

        System.out.println("");

    }

 }

}

(3)在上两英雄类型的基础上,为英雄添加一个基本战斗的方法, 该方法拥有一个英雄类型的参数,当传入另一个英雄时,能降低对方100 点血。 再增加一个绝招的重载方法,加入一个战斗类型参数,通过输入不同绝招参数,降低对方不同的血量。

public class Hero {

private String name;

private int ph=100;

private int grade=1;

public Hero(int ph, int grade) {

    super();

    this.ph = ph;

    this.grade = grade;

}

public Hero(int type){

    if(type==1){

        this.ph = 100;

        this.grade = 1;

    }else if(type==2){

        this.ph = 200;

        this.grade = 2;

    }else {

        System.out.println("");

    }

}

public String getName() {

    return name;

}



public void setName(String name) {

    this.name = name;

}



public void zhanDou(Hero h){

    h.grade -= 10;

}

public void jueZhao(JueZhao j,Hero h){



}

}

 public interface JueZhao {

}

public class JYZJ implements JueZhao {

}

public class QKDNY implements JueZhao {

}

4.、设计一个BankAccount类,实现银行某账号的资金往来账目管理,包括建账号、存入、取出等。BankAccount类包括,账号(BankAccountId)、开户日期Date(日期),Rest(余额)。另有一个构造函数和三个成员函数Bankin()(处理存入账),Bankout()处理取出账)和和一个负责生成账号的自动增长的函数。

5、 编写一个程序,已有若干学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。

思路:

设计一个学生类Stud,除了包括no(学号)、name(姓名)、和deg(成绩)数据成员外。有两个静态变量sum和num,分别存放总分和人数,另有一个构造函数、一个普通成员函数disp()和一个静态成员函数avg(),它用于计算平均分。

6.编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。

思路:

设计一个学生类Stud,除了包括no(学号)、name(姓名)和deg(成绩)数据成员外,有两个静态变量sum和num,分别存放总分和人数,另有成员函数disp(),用于输出数据成员的值,另有一个静态成员函数avg(),它用于计算平均分。在main()函数中定义了一个对象数组用于存储输入的学生数据。

7编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求只输出成绩在80~89分的学生数据。

思路:
设计一个学生类Stud,包括no(学号)、name(姓名)和deg(成绩)数据成员,和成员函数 disp(),用于只输出成绩在80~89分数段的学生数据。在main()函数中定义了一个学生对象数组,用于存储输入的学生数据。

8.编写一个程序,统计学生成绩,其功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前%70的学生定为合格(PASS),而后30%的学生定为不合格(FAIL)

思路:

设计一个类student,包含学生的姓名和成绩等数据。

设计一个类Compute,这个类中包含了多个学生的信息,方法有 sort()、disp(),,它们分别用于按成绩排序和输出数据。

public class Student {

 private String name;

    private int score;

    public student(String name, int score) {

        this.name = name;

        this.score = score;

    }



    public String getName() {

        return name;

    }



    public void setName(String name) {

        this.name = name;

    }



    public int getScore() {

        return score;

    }



    public void setScore(int score) {

        this.score = score;

    }



    @Override

    public String toString() {

        return "student{" +

                "name='" + name + '\'' +

                ", score=" + score +

                '}';

    }

}



public class MyCom implements Comparator {

public int compare(Object o1, Object o2) {

    student s1 = (student)o1;

    student s2 = (student)o2;

    if(s1.getScore()>s2.getScore()){

        return -1;

    }else if(s1.getScore()<s2.getScore()){

        return 1;

    }

    return 0;

}

}

public class Test {

public static void main(String[] args){

    student[] students = new student[10];

    for (int i=0;i<10;i++){

        student s = new student(String.valueOf(i),(int)(Math.random()*101));

        students[i] = s;

    }

    Arrays.sort(students,new MyCom());

    for (int i=0;i<10;i++){

        System.out.println(students[i]);

    }

}

}

9.设计一个词典类Dic,每个单词包括英文单词及对应的中文含义,并有一个英汉翻译成员函数,通过查词典的方式将一段英语翻译成对应的汉语。

思路: 字典项类DicItem包括EngLish(英语单词)、Chinese(对应中文含义)数据成员,字典类包括一个字典项类的列表,包含Add()(添加单词)和trans(英汉翻译)成员函数。

10.自已封装一个动态数组类,可以根据用户传递的数据,动态的对数组的长度进行扩展;

类名是:MyArray
方法有
void
add(int value); //追加一个值
vold
remove(int index); //根据索引,删除一个值

void
add(int position,int value); //在指定位置插入一个数值

void
set(int position,int value); //修改某个位置的数值
int
get(int index); //根据索引,获得元数的值

int
size(); //获得动态数组中元素的个数;

11.用单例模式编写一个进程管理器的例子。并测试。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值