学生信息管理系统

package bigtest;

import java.util.Scanner;

/*
简易版学生管理系统:
欢迎界面(java版)
选择功能操作学生信息:
添加、删除、修改、查询、打印、退出
 */
public class Test {
    public static void main(String[] args) {

        System.out.println("欢迎登陆学生管理系统,请选择您的操作!");
        Scanner scanner = new Scanner(System.in);
        Tools tools = new Tools();
        wc:
        while (true) {
            System.out.println("----------学生信息管理系统----------");
            System.out.println("* 1、学生登录  2、教师登录  3、退出  *");
            System.out.println("---------------------------------");
            System.out.print("请输入您的选择:");
            int flag = scanner.nextInt();
            switch (flag) {
                case 1:
                    tools.Login_student();
                    break;
                case 2:
                    tools.Login_teacher();
                    break;
                case 3:
                    break wc;
                default:
                    System.out.println("输入有误,请重新输入:");
                    break;
            }
        }
    }
}
package bigtest;

import java.util.Scanner;

public class Student {
    private String no;
    private String name;
    private String clazz;
    private int age;
    private String sex;
    Scanner input=new Scanner (System.in);
    public String getNo() {
        return no;
    }

    public void setNo(String no) {
        this.no = no;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getClazz() {
        return clazz;
    }

    public void setClazz(String clazz) {
        this.clazz = clazz;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        while(true){
            if(age>=0&&age<=100)  {
                this.age=age;
                break;
            }else{
                System.out.println("输入年龄值不符合条件!请重新输入年龄为:");
                age=input.nextInt();
            }
        }
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Student{" +
                "no='" + no + '\'' +
                ", name='" + name + '\'' +
                ", clazz='" + clazz + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                '}';
    }
}
package bigtest;

import java.util.Arrays;
import java.util.Scanner;

public class Tools {
    //定义一个students用来存储学生信息
    public Student[] students = new Student[20];
    Scanner scanner = new Scanner(System.in);
    //默认索引
    //int index = 0;

    //学生端登录
    public  void Login_student( ) {
        //已知用户名密码
        String[] names = new String[2];
        String[] passwords = new String[2];
        names[0]="张颖";
        names[1]="张娜";
        passwords[0]="030106";
        passwords[1]="153830";
        boolean f=true;//如果此用户不存在,则为true
        //获取用户名密码
        while (true) {
            System.out.print("请输入用户名:");
            String username = scanner.next();
            System.out.print("请输入密码:");
            String user_password = scanner.next();
            for (int i=0;i<2;i++){
                if (names[i].equals(username) ) {
                    if (passwords[i].equals(user_password)){
                        System.out.println("登陆成功");
                        studentManage();
                        return;
                    }else {
                        System.out.println("密码错误,请重新输入");
                    }
                    f=false;
                }

            }
            if(f){
                System.out.println("该用户不存在,请重新输入");
            }
        }
    }
    //学生功能选择
    public void studentManage(){
        Scanner sc = new Scanner(System.in);
        wc2:
        while (true) {
            System.out.println("----------学生信息管理界面----------");
            System.out.println("*     1、查看信息      2、返回     *");
            System.out.println("---------------------------------");
            System.out.print("请输入您的选择:");
            int flags = sc.nextInt();
            switch (flags) {
                case 1:
                    findStudent();
                    break;
                case 2:
                    break wc2;
            }
        }
    }
    //教师端登录
    public  void Login_teacher( ) {
        boolean f=true;//如果此用户不存在,则为true
        //已知用户名密码
        String[] names = new String[2];
        String[] passwords = new String[2];
        names[0]="张静";
        names[1]="张然";
        passwords[0]="123456";
        passwords[1]="654321";
        //获取用户名密码
        while (true) {
            System.out.print("请输入用户名:");
            String username = scanner.next();
            System.out.print("请输入密码:");
            String user_password = scanner.next();
            for (int i=0;i<2;i++){
                if (names[i].equals(username) ) {
                    if (passwords[i].equals(user_password)){
                        System.out.println("登陆成功");
                        teacherManage();
                        return;
                    }else {
                        System.out.println("密码错误,请重新输入");
                    }
                    f=false;
                }

            }
            if(f){
                System.out.println("该用户不存在,请重新输入");
            }
        }
        }
    public void teacherManage(){
        //教师登录界面
        A:while(true){//实现循环操作
            //根据输入的值去处理不同的功能
            System.out.println("----------教师信息管理界面----------");
            System.out.println("*1、添加信息  2、删除信息  3、修改信息*");
            System.out.println("*4、查看信息  5、打印信息  6、退出系统*");
            System.out.println("---------------------------------");
            System.out.print("请输入您的选择:");
            switch(scanner.nextInt()){
                case 1:
                    System.out.println("执行添加学生信息... ...");
                    saveStudent();
                    sortStudent();
                    break;
                case 2:
                    System.out.println("执行删除学生信息... ...");
                    deleteStudent();
                    break;
                case 3:
                    System.out.println("执行修改学生信息... ...");
                    updateStudent();
                    break;
                case 4:
                    System.out.println("执行查询学生信息... ...");
                    findStudent();
                    break;
                case 5:
                    System.out.println("执行打印学生信息... ...");
                    printStudent();
                    break;
                case 6:
                    System.out.println("欢迎再次使用本系统,再见! ");
                    break A;//退出外层while循环
                default:
                    System.out.println("欢迎再次使用本系统,再见!");
                    break A;
            }
        }
    }
    //增加学生信息
    public void saveStudent() {
        //增加学生信息时,去掉以前index的索引下标的累加值,
        // 改变成灵活控制增加信息的n1
        // (n1为有值的数组元素的个数,刚好作为下一个无值的数组元素的下标,可以避免出现空指针异常)
        // 并且增加信息时,保持信息的连续性
        int n1 = 0;//有值的数组元素的个数
        //为避免空指针异常的错误,则先找到有值的数组元素的个数
        for (int i = 0; i < students.length; i++) {
            Student stu = students[i];
            if (null != stu) {
                n1++;
            }
        }
        //键盘录入学生对象所需要的数据,显示提示信息,提示要输入何种信息
        System.out.print("请输入学生学号:");
        String no = scanner.next();//String类的对象用next()方法输入信息
        for (int i = 0; i < students.length; i++) {
            Student stu = students[i];
            if (null != stu) {
                if (stu.getNo().equals(no)) {
                    System.out.println("输入学生信息已经存在!");
                    return;
                }
            }
        }
        System.out.print("请输入学生姓名:");
        String name = scanner.next();
        System.out.print("请输入学生班级:");
        String clazz = scanner.next();
        System.out.print("请输入学生年龄:");
        int age = scanner.nextInt();//int类的对象用nextInt()方法输入信息
        System.out.print("请输入学生性别:");
        String sex = scanner.next();
        //创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
        Student student = new Student();
        student.setNo(no);//将得到的学生学号放在tools类中student对象中做存储
        student.setName(name); //将得到的学生姓名放在tools类中student对象中做存储
        student.setClazz(clazz); //将得到的学生班级放在tools类中student对象中做存储
        student.setAge(age); //将得到的学生年龄放在tools类中student对象中做存储
        student.setSex(sex);//将得到的学生性别放在tools类中student对象中做存储
        //将学生对象添加到集合中
        students[n1] = student;
        //每次操作之后索引默认+1
        //index++;
        //给出添加成功提示
        System.out.println("恭喜你学生信息录入完成...");
    }
    //按学号排序
    public void sortStudent() {
        int n = 0;//有值的数组元素的个数
        //为避免空指针异常的错误,则先找到有值的数组元素的个数
        for (int i = 0; i < students.length; i++) {
            Student stu = students[i];
            if (null != stu) {
                n++;
            }
        }
        //添加新数据后,将赋值的数组元素按学号排序
        Student t1;//转换元素
        for (int j = 0; j < n-1; j++) {
            for (int k = j + 1; k < n ; k++) {
                //compareTo用于两个相同数据类型的比较,如果指定的数与参数相等返回0,如果指定的数小于参数返回 -1,如果指定的数大于参数返回 1
                if (students[j].getNo().compareTo(students[k].getNo()) > 0) {
                    t1 = students[j];
                    students[j] = students[k];
                    students[k] = t1;
                }
            }
        }
    }
    //打印学生信息
    public void printStudent() {
        //显示表头信息
        //\t就是tab键的位置
        System.out.println("          学号\t\t姓名\t\t\t班级\t\t\t年龄\t\t性别");
        //增强型for
        for (Student student : students) {
            //默认打印数组中所有学生信息,所以判断student是否有值
            //如果没有值就不执行这个打印输出,如果有值则输出,防止出现空指针异常的错误
            if (null != student) {
                System.out.println(student.toString());//将学生信息输出
            }
        }
        /*常用型for(可以获取索引)
        for (int i=0;i<students.length;i++){
            Student stu= students[i];
           if (null!=stu){
                System.out.println(stu.toString());//将学生信息输出
            }
        }
         */
    }
    //修改学生信息
    public void updateStudent() {
        //1.获取学生信息并且获得每条信息索引
        for (int i = 0; i < students.length; i++) {
            Student stu = students[i];
            if (null != stu) {
                System.out.println(stu.toString() + "所对应的索引位置是:" + i);//将学生信息输出
            }
        }
        System.out.println("请输入要修改的数据的索引号:");
        //2.选择要修改的信息(输入的是一个索引)
        //这个索引对应需要修改的数据
        int index_ = scanner.nextInt();
        boolean m = true;//如果f为true,说明删除的信息不存在
        for (int i = 0; i < students.length; i++) {
            Student stu = students[i];
            if (null != stu) {
                //3.修改对应索引的学生信息
                if (i == index_) {
                    //3.输入新的信息并且将新的信息对应放在这个索引的位置上
                    Student stu1 = students[index_];
                    //将得到的学生信息放在tools类中student对象中做存储
                    //对应索引的数组元素里边有数据,再输入数据可能导致数据的叠加
                    //先将对应索引的数组元素里边的数据清空一下
                    //再将修改的值放入对应索引的数组元素里
                    System.out.println("欢迎修改学生信息,请选择您的操作!");
                    B:
                    while (true) {
                        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.print("请输入您的选择:");
                        switch (scanner.nextInt()) {
                            case 1:
                                System.out.println("执行修改学生学号... ...");
                                System.out.print("请修改学生学号:");
                                String no = scanner.next();//String类的对象用next()方法输入信息
                                stu1.setNo(null);
                                stu1.setNo(no);//将得到的学生学号放在tools类中student对象中做存储
                                break;
                            case 2:
                                System.out.println("执行修改学生姓名... ...");
                                System.out.print("请修改学生姓名:");
                                String name = scanner.next();
                                stu1.setName(null);
                                stu1.setName(name); //将得到的学生姓名放在tools类中student对象中做存储
                                break;
                            case 3:
                                System.out.println("执行修改学生班级... ...");
                                System.out.print("请修改学生班级:");
                                String clazz = scanner.next();
                                stu1.setClazz(null);
                                stu1.setClazz(clazz); //将得到的学生班级放在tools类中student对象中做存储
                                break;
                            case 4:
                                System.out.println("执行修改学生年龄... ...");
                                System.out.print("请修改学生年龄:");
                                int age = scanner.nextInt();//int类的对象用nextInt()方法输入信息
                                stu1.setAge(0);
                                stu1.setAge(age); //将得到的学生年龄放在tools类中student对象中做存储
                                break;
                            case 5:
                                System.out.println("执行修改学生性别... ...");
                                System.out.print("请修改学生性别:");
                                String sex = scanner.next();
                                stu1.setSex(null);
                                stu1.setSex(sex);//将得到的学生性别放在tools类中student对象中做存储
                                break;
                            case 6:
                                System.out.println("执行修改完成... ...");
                                break B;
                        }
                    }
                    System.out.println("修改信息完成... ...");
                    m = false;
                }
            }
        }
        if (m) {
            System.out.println("修改信息不存在");//修改对应索引不存在,则输出"修改信息不存在"
        }
    }
    //删除学生信息(清除当前索引位置数据)
    public void deleteStudent() {
        //1.获取学生信息并且获得每条信息索引
        System.out.println("          学号\t\t姓名\t\t\t班级\t\t\t年龄\t\t性别");
        for (int i = 0; i < students.length; i++) {
            Student stu = students[i];
            if (null != stu) {
                System.out.println(stu.toString() + "所对应的索引位置是:" + i);//将学生信息输出
            }
        }
        int m = 0;//有值的数组元素的个数
        //为避免空指针异常的错误,则先找到有值的数组元素的个数
        for (int i = 0; i < students.length; i++) {
            Student stu = students[i];
            if (null != stu) {
                m++;
            }
        }
        System.out.print("请输入要删除的数据的索引号:");
        //2.选择要删除的信息(输入的是一个索引)
        Scanner scanner = new Scanner(System.in);
        //这个索引对应需要删除的数据
        int index_ = scanner.nextInt();
        boolean f = true;//如果f为true,说明删除的信息不存在
        for (int i = 0; i < students.length; i++) {
            //Student stu = students[i];
            if (null != students[i]) {
                //3.删除对应索引的学生信息
                if (i == index_) {
                    students[index_] = null;//直接清空当前索引的数据
                    f = false;
                    System.out.println("删除信息完成... ...");
                    }
                }
            }
        //数组元素索引排序
        //删除数据后,将有值的数组元素前移
        int k;//后一个数组元素下标
        Student t2;//转换元素
        for (int j = index_; j < m-1; j++) {
            k=j+1;
            t2 = students[j];
            students[j] = students[k];
            students[k] = t2;
        }
        if (f) {
            System.out.println("删除信息不存在");//删除对应索引不存在,则输出"删除信息不存在"
        }

    }
    //查询学生信息
    public void findStudent() {
        System.out.println("欢迎查询学生信息,请选择您的操作!");
        C:
        while (true) {
            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.print("请输入您的选择:");
            switch (scanner.nextInt()) {
                case 1:
                    boolean f1=true;
                    for (int i = 0; i < students.length; i++) {
                        Student stu = students[i];
                        if (null != stu) {
                            f1=false;
                            System.out.print(stu.getNo() + "  ");
                        }
                    }
                    System.out.println("");
                    if(f1){
                        System.out.println("暂无学生学号信息,请先录入学生信息再进行查询");
                    }
                    break;
                case 2:
                    boolean f2=true;
                    for (int i = 0; i < students.length; i++) {
                        Student stu = students[i];
                        if (null != stu) {
                            f2=false;
                            System.out.print(stu.getName() + "  ");
                        }
                    }
                    System.out.println("");
                    if(f2){
                        System.out.println("暂无学生姓名信息,请先录入学生信息再进行查询");
                    }
                    break;
                case 3:
                    boolean f3=true;
                    for (int i = 0; i < students.length; i++) {
                        Student stu = students[i];
                        if (null != stu) {
                            f3=false;
                            System.out.print(stu.getClazz() + "  ");
                        }
                    }
                    System.out.println("");
                    if(f3){
                        System.out.println("暂无学生班级信息,请先录入学生信息再进行查询");
                    }
                    break;
                case 4:
                    boolean f4=true;
                    for (int i = 0; i < students.length; i++) {
                        Student stu = students[i];
                        if (null != stu) {
                            f4=false;
                            System.out.print(stu.getAge() + "  ");
                        }
                    }
                    System.out.println("");
                    if(f4){
                        System.out.println("暂无学生年龄信息,请先录入学生信息再进行查询");
                    }
                    break;
                case 5:
                    boolean f5=true;
                    for (int i = 0; i < students.length; i++) {
                        Student stu = students[i];
                        if (null != stu) {
                            f5=false;
                            System.out.print(stu.getSex() + "  ");
                        }
                    }
                    System.out.println("");
                    if(f5){
                        System.out.println("暂无学生性别信息,请先录入学生信息再进行查询");
                    }
                    break;
                case 6:
                    boolean f6=true;
                    //1.输入要查询的学号(因为学号的唯一性,如果是学生的姓名可能重复,查询结果不准确)
                    System.out.print("请输入您要查询的学生的学号:");
                    String no = scanner.next();
                    //2.在数组中循环查找有这个名字的对象
                    //增强型for
                    Z:for (Student student : students) {
                        //默认打印数组中所有学生信息,所以判断student是否有值
                        //如果没有值就不执行这个打印输出,如果有值则输出,防止出现空指针异常的错误
                        if (null != student) {
                            if (student.getNo().equals(no)) {
                                System.out.println("恭喜你已经查找到对应的数据:");
                                System.out.println("          学号\t\t姓名\t\t\t班级\t\t\t年龄\t\t性别");
                                System.out.println(student.toString());//将学生信息输出
                                f6=false;
                                break Z;
                            }
                        }
                    }
                    //3.判断有无并提示
                    if(f6){
                        System.out.println("对不起,没有找到您需要的数据。");
                    }

                    break;
                case 7:
                    System.out.println("执行查询完成... ...");
                    break C;
            }
        }
        System.out.println("查询信息完成... ...");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值