第一阶段基本结束,独自完成了一个小项目。虽然还有许多不足,但自己依旧在进步!加油!!!!

package com.jbit.sms;
/**
 * 学生信息管理系统
 * @author Administrator
 *
 */

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

import org.omg.Messaging.SyncScopeHelper;

public class StudentInformation {
    public static void main(String[] args) {
        // 定义局部变量
        int[] stuNumbers = new int[] {};// 学号数组
        String[] names = new String[] {};// 学生姓名数组
        String[] major = new String[] {};// 专业数组
        int[] classId = new int[] {};// 班级数组
        Scanner input = new Scanner(System.in);
        boolean isLogin = true;// 标识为用户登录成功
        /*
         * 用户登录主界面
         */
        a: while (true) {
            System.out.println("******************************\n\n");
            System.out.println("欢迎使用学生信息管理系统\n\n");
            System.out.println("1.登录");
            System.out.println("2.退出\n\n");
            System.out.println("******************************");
            // 提示用户选择
            System.out.println("请选择:");
            String choice = input.next();// 用户输入选择

            switch (choice) {
            case "1":
                int change = 3;// 用户的登录机会,超过三次强制退出
                while (isLogin) {
                    System.out.println("请输入用户名:");
                    String userName = input.next();
                    System.out.println("请输入密码:");
                    String passWord = input.next();
                    // 判断用户输入
                    if ("admin".equals(userName) && passWord.equals("123")) {
                        System.out.println("登录成功!请等待!");
                        // 等待时间
                        for (int i = 0; i < 6; i++) {
                            System.out.print("》");
                            try {
                                Thread.sleep(250);
                            } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
                        break a;
                    } else {
                        change--;
                        System.out.println("你还有" + change + "次机会");
                        if (change == 0) {
                            System.err.println("三次帐号密码均不匹配!登录失败!\n请重新选择:");
                            break;
                        }
                    }
                }
                break;
            case "2":
                System.out.println("感谢您的使用!谢谢!");
                break;
            default:
                System.err.println("输入非法!请输入(1-2的整数)!");
                break;
            }
        }
        /*
         * 登录成功后选择界面
         */
        while (isLogin) {
            System.out.println("\n******************************\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.退出\n");
            System.out.println("******************************");
            System.out.println("请选择:");
            String choice = input.next();
            /*
             * 选择添加学生信息时才进行扩容
             */
            if (choice.equals("1")) {
                stuNumbers = Arrays.copyOf(stuNumbers, stuNumbers.length + 1);// 学号
                names = Arrays.copyOf(names, names.length + 1);// 姓名
                major = Arrays.copyOf(major, major.length + 1);// 专业
                classId = Arrays.copyOf(classId, classId.length + 1);// 班级
            }

            switch (choice) {
            case "1":
                /*
                 * 从学号开始依次添加
                 */
                while (true) {
                    System.out.println("请输入添加的学号:");
                    int newStuNumbers = input.nextInt();
                    boolean isAdd = true;
                    int index = -1;// 索引
                    for (int i = 0; i < stuNumbers.length; i++) {
                        if (stuNumbers[i] == newStuNumbers) {
                            index = i;
                            isAdd = false;
                            break;
                        }
                    }

                    if (isAdd) {
                        stuNumbers[stuNumbers.length - 1] = newStuNumbers;
                        Arrays.sort(stuNumbers);
                        break;
                    } else {
                        System.err.println("该学号已存在!请重新输入!");
                    }
                }
                System.out.println("请输入添加的姓名:");
                String newName = input.next();
                names[names.length - 1] = newName;
                System.out.println("请输入添加的专业:");
                String newMajor = input.next();
                major[major.length - 1] = newMajor;
                System.out.println("请输入添加的班级:");
                int newClass = input.nextInt();
                classId[classId.length - 1] = newClass;
                System.out.println("添加成功!");
                break;
            case "2":
                /*
                 * 根据学号进行查找
                 */
                a: while (true) {
                    System.out.println("请输入需要查找的学号:");
                    int findStuNo = input.nextInt();
                    boolean isFind = true;
                    for (int i = 0; i < stuNumbers.length; i++) {
                        if (stuNumbers[i] == findStuNo) {
                            System.out.println("学生信息如下:");
                            System.out.println("学号\t姓名\t专业\t班级");
                            System.out.println(stuNumbers[i] + "\t" + names[i] + "\t" + major[i] + "\t" + classId[i]);
                            break a;
                        } else {
                            isFind = false;
                        }
                    }
                    if (!isFind) {
                        System.err.println("该学号" + findStuNo + "不存在");
                        break a;
                    }
                }

                break;
            case "3":
                /*
                 * 根据学号进行修改
                 */
                b: while (true) {
                    System.out.println("请输入需要修改的学号:");
                    int editNo = input.nextInt();
                    int index = -1;// 定位学号数组的索引
                    boolean isFindEdit = true;
                    //System.out.println(stuNumbers.length);
                    for (int i = 0; i < stuNumbers.length; i++) {
                        isFindEdit = true;//在这里调试了很久没有考虑到循环一次布尔值都要做相应改变
                        if (stuNumbers[i] == editNo) {
                            index = i;
                            break;
                        } else {
                            isFindEdit = false;
                        }
                    }
//                    System.out.println(index);
                    if (!isFindEdit) {
                        System.err.println("该学号" + editNo + "不存在");
                        break b;
                    }
                    System.out.println("请输入修改后的姓名:");
                    String editName = input.next();
                    names[index] = editName;

                    System.out.println("请输入修改后的专业:");
                    String editMajor = input.next();
                    major[index] = editMajor;

                    System.out.println("请输入修改后的班级:");
                    int editClass = input.nextInt();
                    classId[index] = editClass;

                    System.out.println("修改成功!");
                    break b;
                }
                break;

            case "4":
                /*
                 * 根据学号进行删除
                 */
                c:while(true) {
                    System.out.println("请输入需要删除的学号:");
                    int deleteNo = input.nextInt();
                    int index = -1;
                    boolean isDelete = true;
                    for (int i = 0; i < stuNumbers.length; i++) {
                        isDelete = true;
                        if (stuNumbers[i] == deleteNo) {
                            index = i;
                            break;
                        }else {
                            isDelete = false;
                        } 
                    }
                    if(!isDelete) {
                        System.err.println("该学号"+deleteNo+"不存在!删除失败!");
                        break c;
                    }
                    for(int i=stuNumbers.length-1;i>index;i--) {
                        stuNumbers[i-1] = stuNumbers[i];
                    }
                    stuNumbers = Arrays.copyOf(stuNumbers, stuNumbers.length-1);
                    
                    //删除姓名
                    for(int i=names.length-1;i>index;i--) {
                        names[i-1] = names[i];
                    }
                    names = Arrays.copyOf(names, names.length-1);
                    
                    //删除专业
                    for(int i=major.length-1;i>index;i--) {
                        major[i-1] = major[i];
                    }
                    major = Arrays.copyOf(major, major.length-1);
                    //删除班级
                    for(int i=classId.length-1;i>index;i--) {
                        classId[i-1] = classId[i];
                    }
                    classId = Arrays.copyOf(classId, classId.length-1);
                    System.out.println("删除成功!");
                    break c;
                }
                break;
            case "5":
                System.out.println("学生信息如下:");
                System.out.println("学号\t姓名\t专业\t班级");
                for (int i = 0; i < stuNumbers.length; i++) {
                    System.out.println(stuNumbers[i] + "\t" + names[i] + "\t" + major[i] + "\t" + classId[i]);
                }
                break;
            case "6":
                System.out.println("感谢使用!");
                break;
            default:
                System.err.println("输入非法!请输入(1-4的整数)!");
                break;
            }
        }
    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值