数组实现学生管理系统
学生信息管理系统
- 1.可以添加学生信息
- 2.可以修改学生信息
- 3.可以删除学生信息
- 4.可以统计学生人数
- 5.可以统计每个学科的总分,平均分。。。
School类:
public class School {
/**
* 代表这所学校所能容纳的最多学生
*/
int capacity = 100;
/**
* 代表当前的在校学生
*/
int currentCount = 0;
/**
* 存储学校当前的所有在校学生
*/
Student[] students = new Student[capacity];
/**
* 向管理系统添加学生
*
* @param s
*/
boolean addStudent(Student s) {
if (currentCount == capacity) {
return false;
} else {
students[currentCount] = s;// 把传过来的学生存数组中
currentCount++;
return true;
}
}
/**
* 按照性别删除学生信息
*/
void delStudentBySex(String sex) {
for (int i = 0; i < currentCount; i++) {
Student s = students[i];
if (sex.equals(s.sex)) {
delStudent(s, i);
}
}
}
/**
* 按照姓名删
*
* @param name
*/
void delStudentByName(String name) {
for (int i = 0; i < currentCount; i++) {
Student s = students[i];
if (name.equals(s.name)) {
delStudent(s, i);
i--;
}
}
}
/**
* 删除指定学生
*/
private void delStudent(Student s, int index) {
for (int i = index; i < currentCount - 1; i++) {
students[i] = students[i + 1];
}
students[currentCount - 1] = null;// 把删除前的最后一个非空元素赋值为null
currentCount--;// 在校人数
}
/**
* 打印所有相关信息
*/
void print() {
// 当前学生的数量
// 输出每个学生的姓名,各科成绩
printCount();
for (int i = 0; i < currentCount; i++) {
printStudent(students[i]);
}
}
/**
* 打印学生数量
*/
void printCount() {
System.out.println("当前学生数量" + currentCount);
System.out.println("********************");
}
/**
* 打印每个学生的信息
*/
void printStudent(Student s) {
s.speak();
System.out.println("----------------");
}
}
Student类:
public class Student {
int age;
String name;
String sex;
double math;
double computer;
double sum() {
return math + computer;
}
double average() {
return (math + computer) / 2;
}
void speak() {
System.out.println("姓名:" + name);
System.out.println("性别:" + sex);
System.out.println("年龄:" + age);
System.out.println("数学:" + math);
System.out.println("计算机:" + computer);
System.out.println("总分:" + sum());
System.out.println("平均分:" + average());
}
}
StudentManager类:
import java.util.Scanner;
public class StudentManagerSystem {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
School school = new School();
for (int i = 0; i < 5; i++) {
Student student = new Student();
student.age = 18 + i;
student.name = "志玲" + i;
if (i % 2 == 0) {
student.sex = "女";
} else {
student.sex = "男";
}
student.math = 60 + i;
student.computer = 70 + 3 * i;
if (school.addStudent(student)) {
System.out.println(student.name + "注册成功");
} else {
System.out.println(student.name + "注册失败");
}
}
while (true) {
System.out.println("********************");
System.out.println("添加学生请按1||打印信息请按2||打印学生数量请3||删除学生请按4");
System.out.println("********************");
int num = in.nextInt();
if (num == 1) {
Student s = new Student();
System.out.println("请输入姓名:");
s.name = in.next();
System.out.println("请输入年龄:");
s.age = in.nextInt();
System.out.println("请输入性别:");
s.sex = in.next();
System.out.println("请输入数学成绩:");
s.math = in.nextInt();
System.out.println("请输入计算机成绩:");
s.computer = in.nextInt();
school.addStudent(s);
} else if (num == 2) {
school.print();
} else if (num == 3) {
school.printCount();
} else if (num == 4) {
System.out.println("********************");
System.out.println("按姓名删除添请按1||按照性别删除请按2");
System.out.println("********************");
int delNum = in.nextInt();
switch (delNum) {
case 1:
System.out.println("姓名");
school.delStudentByName(in.next());
break;
case 2:
System.out.println("性别");
school.delStudentBySex(in.next());
break;
default:
break;
}
}
}
}
}
注意:
- 数据都是临时的,重新运行原先的数据会清空