- 1、项目名称:学生管理系统
- 1.1、所用的主要知识点总结
- 1.2、实现的功能
- 1.3具体分析
- 1.4、源码
类、数组(存取对象)、循环、静态代码块、get/set方法
1.2、实现的功能学生数据的增删查改。
1.3具体分析创建三个类:学生类、存储学生类、存存类
功能分析:
显示所有学生信息:
删除学生信息:
修改学生信息
添加学生信息
退出学生管理系统
1、studTest类代码
package com.qianfeng.homeword.day09;
import com.shangguigu.day13.array01.Array;
import java.sql.SQLOutput;
import java.util.Scanner;
public class StuTest {
//定义成为全局静态属性,优先加载进内存
public static Scanner sc = new Scanner(System.in);
//将学生数组对象进行调用.共用对象地址,已达到共享目的
public static Student[] stuArray = StudentDB.student;
public static void main(String[] args) {
do{
printMenu();
int option = sc.nextInt();
//根据选项做对应的事情
switch (option){
case 1:
selectAll();
break;
case 2:
deleteStudent();
break;
case 3:
updateStudent();
break;
case 4:
addStudent();
break;
case 5:
System.out.println("-----感谢使用,欢迎下次再进入-----");
return;
default:
System.out.println("输入有误");
break;
}
System.out.println("nnn");
}while (true);
}
public static void addStudent(){
if(stuArray[stuArray.length-1]==null){
System.out.println("学生已经存贮满了,请删除一些在重新添加");
}
System.out.println("请输入学生姓名:");
String name = sc.next();
System.out.println("请输入学生年龄:");
int age = sc.nextInt();
for (int i = 0; i < stuArray.length; i++) {
//判断如果是空的话说明是在数组对象底部
if(stuArray[i]==null){
stuArray[i] = new Student(name,age);
System.out.println("添加成功");
break;
}
}
}
public static void updateStudent(){
System.out.println("请输入学生的学号:");
int stuNum = sc.nextInt();
Student student = getStudentById(stuNum);
if(student==null) {
System.out.println("系统内没有该学生或者输入的id有误");
return;
}else{
System.out.println("请输入学生姓名:");
String stuName = sc.next();
System.out.println("请输入学生年龄:");
int stuAge = sc.nextInt();
student.setName(stuName);
student.setAge(stuAge);
System.out.println("修改成功");
}
}
public static void deleteStudent() {
System.out.println("请输入stuNum:");
int index = sc.nextInt();
boolean of =false;
//搜索存在索引对应数组中的索引,并返回对应索引的对象
Student student = getStudentById(index);
if(student==null){
System.out.println("系统内没有该学生或者输入的id有误");
return;
}else {
for (int i = 0; i < stuArray.length; i++) {
//将每一个对象赋值给新的对象
Student stu = stuArray[i];
if(stu==null){
System.out.println("删除成功");
break;
}
//查到和搜索的index在数组中的位置,定义好替换开关
if(stu.getStuNum()==index){
of = true;
}
//替换对应索引元素,索引对应的对象的分别向前覆盖
if(of&&(i!=stuArray.length-1)){
stuArray[i] = stuArray[i+1];
}
//判断对象是否为最后一个
if(i==stuArray.length-1){
stuArray[i] = null;
System.out.println("删除成功");
}
}
}
}
public static Student getStudentById(int index) {
Student student;
for (int i = 0; i < stuArray.length; i++) {
//先判断数组对象内是否有对象
if(stuArray[i]==null){
return null;
}else if(stuArray[i].getStuNum()==index) {
//有对象的话,就返该索引该学生对应的对象
return stuArray[i];
}
}
return null;
}
private static void selectAll() {
//遍历循环,输出所有的在数组内学生的信息
for (int i = 0; i < stuArray.length; i++) {
//判断对象是否为空,如果为空的,说明已经遍历所有的对象了
if (stuArray[i]!=null){
System.out.println(stuArray[i]);
}else {
break;
}
}
}
private static void printMenu() {
System.out.println("-----欢迎来到您的备学生管理系统----");
System.out.println("-----1.展示所有学生管理的信息----");
System.out.println("-----2.删除学生管理信息----");
System.out.println("-----3.修改学生管理信息----");
System.out.println("-----4.添加学生管理信息----");
System.out.println("-----5.退出系统----");
}
}
2、StudentDB类代码
package com.qianfeng.homeword.day09;
public class StudentDB {
//定义100个存储StudentDB[] 对象的数组
public static Student[] student = new Student[100];
//静态代码块初始化部分
static {
student[0] = new Student("张三",11);
student[1] = new Student("李四",22);
student[2] = new Student("王五",31);
student[3] = new Student("赵六",44);
student[4] = new Student("李狗",11);
student[5] = new Student("刘蛋",14);
}
}
3、Student类代码
package com.qianfeng.homeword.day09;
public class Student {
private String name;
private int age;
private int stuNum = 1;
//自增用,设为静态变量这样每一个stuNum都是唯一的
private static int addcount = 0;
public Student() {
this.stuNum = ++addcount;
}
public int getStuNum() {
return stuNum;
}
public void setStuNum(int stuNum) {
this.stuNum = stuNum;
}
public Student(String name, int age) {
//调用无参的构造方法,使stuNum自增
this();
this.name = name;
this.age = age;
}
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;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + ''' +
", age=" + age +
", stuNum=" + stuNum +
'}';
}
}
4、



