要求实现学生类
属性:姓名,性别,年龄,成绩
实现方法:toString
班级类:
属性:学生类的引用数据数组
实现方法:通过,姓名查找学生,
添加学生 要求检索姓名
删除学生
通过学生成绩和年龄排序
通过学生姓名修改学生的信息
class Student {
int age;
int grade;
String sex;
String name;
public Student(int age, int grade, String sex, String name) {
this.age = age;
this.grade = grade;
this.sex = sex;
this.name = name;
}
@Override
public String toString() {
return "年龄 : " + age + " 成绩 : " + grade + " 性别 :" + sex + " 姓名 : " + name;
}
}
class StudentClass{
String nam;
char x = 'A';
Scanner sc = new Scanner(System.in);
Student[] s = new Student[10];
static int count = 4;
public StudentClass(String nam) {
this.nam = nam;
s[0] = new Student(23, 45, "男", "张三");
s[1] = new Student(22, 67, "女", "小黄");
s[2] = new Student(25, 56, "男", "李四");
s[3] = new Student(15, 89, "女", "大毛");
}
public void findStudent(String name) {
int index = -1;
for(int i = 0;i < count;i++) {
if(s[i].name.equals(name)) {
index = i;
}
}
if(-1 != index) {
System.out.println("查找的学生信息为\n" + s[index]);
} else {
System.out.println("你查询的学生信息不存在");
}
}
public void addStudent() {
String strSex;
System.out.println("请输入学生姓名");
String strName = new Scanner(System.in).nextLine();
for(int i = 0;i < count;i++){
if(s[i].name.equals(strName)) {
strName += x;
x++;
System.out.println("有重名现象,为作区分将该名字设置为" + strName);
}
}
System.out.println("若将性别设置为‘男’请输入0,设置为‘女’请输入1");
int n = sc.nextInt();
if(n == 0) {
strSex = "男";
} else if(n == 1) {
strSex = "女";
} else {
System.out.println("你输入的信息有误,系统默认为男");
strSex = "男";
}
System.out.println("请输入学生年龄");
int age = sc.nextInt();
if(age < 0 || age > 100) {
System.out.println("你输入的信息有误,系统默认年龄23");
age = 23;
}
System.out.println("请输入学生成绩");
int grade = sc.nextInt();
if(grade < 0 || grade > 100) {
System.out.println("输入成绩信息有误,默认为0");
grade = 0;
}
s[count] = new Student(age, grade, strSex, strName);
count++;
System.out.println("学生添加成功");
}
public void delStudent(String name) {
int index = -1;
for(int i = 0;i < count;i++) {
if(s[i].name.equals(name)) {
index = i;
}
}
if(index != -1) {
for(int i = index ;i < count - 1;i++) {
s[i] = s[i + 1];
}
s[count] = null;
count--;
}
System.out.println("删除成功");
}
// 通过学生成绩和年龄排序
public void sortByGrade(){
for(int i = 0;i < count - 1;i++) {
int index = i;
for(int j = index + 1;j < count;j++) {
if(s[index].grade < s[j].grade) {
index = j;
}
}
if(index != i) {
Student temp = s[index];
s[index] = s[i];
s[i] = temp;
}
}
System.out.println("排序完成");
}
public void sortByage(){
for(int i = 0;i < count - 1;i++) {
int index = i;
for(int j = index + 1;j < count;j++) {
if(s[index].age < s[j].age) {
index = j;
}
}
if(index != i) {
Student temp = s[index];
s[index] = s[i];
s[i] = temp;
}
}
System.out.println("排序完成");
}
public void modifyInformationByName(String name) {
int index = -1;
for(int i = 0;i < count;i++) {
if(s[i].name.equals(name)) {
index = i;
}
}
if(index != -1) {
System.out.println(s[index] + "\n" + "请更改学生信息");
System.out.println("是否修改年龄,若修改请直接输入修改后的年龄,若不用修改请输入小于等于0的数");
int n = sc.nextInt();
if(n > 0) {
s[index].age = n;
}
System.out.println("是否修改成绩,若修改请直接输入修改后的成绩,若不用修改请输入小于0的数");
n = sc.nextInt();
if(n >= 0) {
s[index].grade = n;
}
System.out.println("若将性别设置为‘男’请输入0,设置为‘女’请输入1");
n = sc.nextInt();
if(n == 0) {
s[index].sex = "男";
} else if(n == 1) {
s[index].sex = "女";
} else {
System.out.println("你输入的信息有误");
}
System.out.println("修改后的学生信息如下 \n" + s[index] );
} else {
System.out.println("该班级没有该学生");
}
System.out.println("学生信息修改成功");
}
public void show() {
System.out.println(nam );
for(int i = 0;i < count;i++) {
System.out.println(s[i]);
}
}
}
public class Demo2 {
public static void main(String[] args) {
int flag = 0;
Scanner sc = new Scanner(System.in);
StudentClass c = new StudentClass("~~~~XXX班级学生名单~~~~");
menu();
while(flag == 0) {
int num = sc.nextInt();
switch (num) {
case 1 :
System.out.println("请输入学生姓名");
String str = new Scanner(System.in).nextLine();
c.findStudent(str);
break;
case 2 :
c.addStudent();
break;
case 3 :
System.out.println("请输入要删除学生的姓名");
str = new Scanner(System.in).nextLine();
c.delStudent(str);
break;
case 4 :
System.out.println("请输入要修改学生信息的姓名");
str = new Scanner(System.in).nextLine();
c.modifyInformationByName(str);
break;
case 5 :
System.out.println("学生按成绩降序排列");
c.sortByGrade();
break;
case 6 :
System.out.println("学生按年龄降序排列");
c.sortByage();
break;
case 7 :
c.show();
break;
case 8 :
menu();
break;
case 0 :
flag = 1;
System.out.println("退出成功");
break;
default :
System.out.println("输入信息有误 \n");
break;
}
}
}
public static void menu() {
System.out.println("欢迎使用该教务系统\n");
System.out.println("查找学生请按:1");
System.out.println("添加学生请按:2");
System.out.println("删除学生请按:3");
System.out.println("修改学生信息请按:4");
System.out.println("通过学生成绩排序请按:5");
System.out.println("通过学生年龄排序请按:6");
System.out.println("展示班级学生请按:7");
System.out.println("菜单展示请按:8");
System.out.println("退出程序请按:0");
}
}