1)编写一个Student类,提供name、id、age、gender、address成员变量,并且为每个成员变量提供getter、setter方法。为Student类分别提供0、2、5个参数的构造方法。为Student类提供成员方法,用于描述“学期注册”、“图书借阅”、“上课”三种行为。 (2)利用第1题定义的Student类,定义一个Student数组保存多个Student对象作为通讯录数据。程序可通过name、id、address进行查询,并输出查询对象的所有成员变量,如果未查询到对象,则输出“无法找到该学生,请重新查询!”。
时间: 2023-06-11 20:09:13 浏览: 80
1Student类的代码如下:
```java
public class Student {
private String name;
private String id;
private int age;
private String gender;
private String address;
public Student() {
}
public Student(String name, String id) {
this.name = name;
this.id = id;
}
public Student(String name, String id, int age, String gender, String address) {
this.name = name;
this.id = id;
this.age = age;
this.gender = gender;
this.address = address;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public void register() {
System.out.println(name + "进行学期注册");
}
public void borrowBook() {
System.out.println(name + "借阅图书");
}
public void attendClass() {
System.out.println(name + "上课");
}
}
```
2)利用Student类定义一个Student数组,代码如下:
```java
public class StudentManagementSystem {
private Student[] students;
private int count;
public StudentManagementSystem(int size) {
students = new Student[size];
count = 0;
}
public void addStudent(Student student) {
students[count] = student;
count++;
}
public void searchByName(String name) {
boolean found = false;
for (int i = 0; i < count; i++) {
if (students[i].getName().equals(name)) {
System.out.println("姓名:" + students[i].getName() + ",学号:" + students[i].getId() + ",年龄:" + students[i].getAge() + ",性别:" + students[i].getGender() + ",地址:" + students[i].getAddress());
found = true;
break;
}
}
if (!found) {
System.out.println("无法找到该学生,请重新查询!");
}
}
public void searchById(String id) {
boolean found = false;
for (int i = 0; i < count; i++) {
if (students[i].getId().equals(id)) {
System.out.println("姓名:" + students[i].getName() + ",学号:" + students[i].getId() + ",年龄:" + students[i].getAge() + ",性别:" + students[i].getGender() + ",地址:" + students[i].getAddress());
found = true;
break;
}
}
if (!found) {
System.out.println("无法找到该学生,请重新查询!");
}
}
public void searchByAddress(String address) {
boolean found = false;
for (int i = 0; i < count; i++) {
if (students[i].getAddress().equals(address)) {
System.out.println("姓名:" + students[i].getName() + ",学号:" + students[i].getId() + ",年龄:" + students[i].getAge() + ",性别:" + students[i].getGender() + ",地址:" + students[i].getAddress());
found = true;
}
}
if (!found) {
System.out.println("无法找到该学生,请重新查询!");
}
}
}
```
在这个类中,我们实现了三个查询方法:`searchByName()`、`searchById()`、`searchByAddress()`,分别通过姓名、学号、地址进行查询,如果查询到了对应的学生,就输出该学生的所有信息;否则输出“无法找到该学生,请重新查询!”。
在主函数中,我们可以按照以下方式使用这个类:
```java
public static void main(String[] args) {
StudentManagementSystem sms = new StudentManagementSystem(10);
Student s1 = new Student("张三", "001", 20, "男", "北京");
Student s2 = new Student("李四", "002", 21, "女", "上海");
Student s3 = new Student("王五", "003", 22, "男", "广州");
sms.addStudent(s1);
sms.addStudent(s2);
sms.addStudent(s3);
sms.searchByName("张三");
sms.searchById("002");
sms.searchByAddress("广州");
}
```
输出结果为:
```
姓名:张三,学号:001,年龄:20,性别:男,地址:北京
姓名:李四,学号:002,年龄:21,性别:女,地址:上海
姓名:王五,学号:003,年龄:22,性别:男,地址:广州
无法找到该学生,请重新查询!
```