我编写了这个程序并且它没有错误地完成,但是当我输入(name-age-id)应该是一个对象时它没有输入到数组中! 谁能告诉我问题出在哪里? :(
public class ClientClass {
public static Scanner read = new Scanner(System.in);
public static void main(String[] args) {
while (true) {
System.out.println("what do you want to do? \n a-add a baby. \n b-search for a baby \n c-Delet a baby. \n d-Display all babys.\n e-how many babys need inoculation \n f-exit");
char f = read.next().charAt(0);
Kindergarten k = new Kindergarten("baby", 10);
if (f == 'a') {
System.out.println("enter the name :");
String name1 = read.next();
System.out.println("enter the id number :");
int id1 = read.nextInt();
BABY b = new BABY(name1, id1);
System.out.println("enter the age :");
int age1 = read.nextInt();
b.setage(age1);
k.add_b(b);
}
if (f == 'b') {
int v = -1;
System.out.println("enter the id number");
int id1 = read.nextInt();
v = k.srch_b(id1);
if (v == -1)
System.out.println("baby not found");
else
System.out.println(k.toString());
}//there is somthing miss
if (f == 'c') {
System.out.println("enter the id number");
int id1 = read.nextInt();
k.del_b(id1);
}
if (f == 'd') {
k.display_all();
}
if (f == 'e') {
int s = k.num_b_inoculation();
System.out.println("there is " + s + "baby need inoculation");
}
if (f == 'f')
break;
}
}
}
class Kindergarten {
private String name;
private int currnt;
private BABY arr[];
public Kindergarten(String name, int numOfbaby) {
this.name = name;
arr = new BABY[numOfbaby];
}
public Kindergarten(String name, BABY[] arr) {
this.name = name;
for (int i = 0; i < currnt; i++)
this.arr[i] = arr[i];
}
public void setname(String name) {
this.name = name;
}
public void setcurrnt(int currnt) {
this.currnt = currnt;
}
public void setarr(BABY[] arr) {
for (int i = 0; i < currnt; i++)
this.arr[i] = arr[i];
}
public String getname() {
return name;
}
public int getcurrnt() {
return currnt;
}
public BABY[] getarr() {
return arr;
}
public String toString() {
return String.format("%s", name);
}
//add
public void add_b(BABY b) {
if (currnt == arr.length)
System.out.println("there is no speace for another baby");
else
arr[currnt++] = new BABY(b);
}
public int srch_b(int id) {
int i;
for (i = 0; i < currnt; i++)
if (id == arr[i].getid())
return i;
return -1;
}
public void del_b(int id) {
if (currnt == 0)
System.out.println("ther is no bebys to delet it ");
else {
int i;
for (i = 0; i < currnt; i++)
if (id == arr[i].getid())
arr[i] = arr[currnt - 1];
currnt--;
}
}
public void display_all() {
for (int i = 0; i <= currnt; i++)
System.out.println(arr[i].toString());
}
public int num_b_inoculation() {
int num = 0;
for (int i = 0; i < currnt; i++)
if (arr[i].require_inoculation() == true) num++;
return num;
}
}
class BABY {
private String name;
private int id;
private int age;
public BABY(BABY b) {
name = b.getname();
id = b.getid();
age = b.getage();
}
public BABY(String name, int id) {
this.name = name;
this.id = id;
}
public void setname(String name) {
this.name = name;
}
public void setid(int id) {
this.id = id;
}
public void setage(int age) {
this.age = age;
}
public String getname() {
return name;
}
public int getid() {
return id;
}
public int getage() {
return age;
}
public String toString() {
return String.format("%s-%d-%d", name + id + age);
}
public boolean require_inoculation() {
if (age < 3)
return true;
return false;
}
}
答案 0 :(得分:0)
尝试这样做
class Kindergarten {
private String name;
private int currnt =0;
private BABY arr[];...