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());
}
}
- 创建一程序,该程序包括一个筛子类,后者有三个数据成员,即筛子的面数,筛子的点数以及包含随机数类的静态数据成员。为这个类声明一个名为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.用单例模式编写一个进程管理器的例子。并测试。