2021-05-26

 

实训作业:学生信息管理系统:

话不多说见代码

1.第一级功能实现类:StudentManaagement

package 学生管理系统;
import java.util.Scanner;
import java.util.ArrayList;
/*
学生管理系统:
本类用于:存放main方法,运行后显示学生管理系统的功能菜单
 */
public class StudentManagement {
    public static void main(String[] args) {
        Function fun = new Function();

        ArrayList<User> users = new ArrayList<>();
        User user1=new User();
        users.add(user1);

         while(true) {
        System.out.println("------学生管理系统------");
        System.out.println("---请选择您所需的服务---");
        System.out.println("----1.登录");
        System.out.println("----2.注册");
        System.out.println("----3.退出");
        Scanner scanner = new Scanner(System.in);
        int number1 = Integer.parseInt(scanner.nextLine());

            switch (number1) {
                case 1:
                    fun.login(users);
                    break;
                case 2:
                    fun.register(users);
                    break;
                case 3:
                    fun.exit();
                    break;
                default:
                    System.out.println("输入错误,请重输");
                    break;
            }
        }

    }

}

2.储存学生信息类 Student

package 学生管理系统;
/*
此类用与存放学生信息
 */
public class Student {

    private String stuname="法外狂徒张三";

    private String number="14250";

    private String address="厚大法考";

    public String getName() {

        return stuname;
    }

    public void setName(String name) {

        this.stuname = name;

    }

    public String getNumber() {

        return number;

    }

    public void setNumber(String number) {

        this.number = number;

    }

    public String getAddress() {

        return address;

    }

    public void setAddress(String address) {

        this.address = address;
    }

    public String toString() {

        return "Student{" +
                "name='" + stuname + '\'' +
                ", number='" + number + '\'' +
                ", address='" + address + '\'' +
                '}';

    }

}

3.用户账号密码存储类 User

package 学生管理系统;
/*
此类用于存放用户账号与密码
 */
public  class User {

    private String username="123";

    private String password="123";

    public String getUsername() {

        return username;

    }

    public void setUsername(String username) {

        this.username = username;
    }

    public String getPassword() {

        return password;
    }

    public void setPassword(String password) {

        this.password = password;

    }

   
    public String toString() {

        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

}

4.第一列表方法实现类 Function

package 学生管理系统;
/*
本类为第一列表方法类,即main方法运行后界面显示的功能的“功能实现方法”
内含方法:登录,注册,退出
 */
import java.util.ArrayList;
import java.util.Scanner;

public class Function {

    public static void login(ArrayList<User> users) {//形参为ArrayList集合

        System.out.println("-----欢迎进入登录界面-----");

        while(true) {

        System.out.println("请输入账号:");

        Scanner scanner = new Scanner(System.in);

            /**
             * username1为输入的用户名
             */
        String username1 = scanner.nextLine();

        if (users.size() == 0) {

            System.out.println("该账号未注册");//集合中没有元素,则此账号未注册

            break;
        }
            /**
             * flag为标记,初始为1,如果初始值变为二,则说明users集合中有此用户名(username1)
             */
        int flag = 1;

            for (int i = 0; i < users.size(); i++) {//遍历集合并比对,有则将flag值改为2

                if (users.get(i).getUsername().equals(username1)) {

                    System.out.println("请输入密码");

                    flag = 2;

                    break;
                }//有则,停止,并输出“请输入密码”

            }
            if (flag == 1) {

                System.out.println("该账号未注册,请返回注册");

                return;     //结束掉登录方法,返回到第一界面
            }
            /**
             * password1为输入的密码
             * flag2为一个标记初始值为1,如果登录成功则赋值为2
             */
            String password1 = scanner.nextLine();

            int flag2=1;

            for (int i = 0; i < users.size(); i++) {

                if (users.get(i).getUsername().equals(username1) && users.get(i).getPassword().equals(password1))
                {
                    System.out.println("登录成功");   //账号密码同时吻合则成功登录

                    flag2=2;

                    Between between = new Between();

                    between.control();//登录成功则进入第二界面
                }
            }

            if(flag2==1){

                System.out.println("账号或密码输入错误,请重新输入!");
            }

        }

    }//d登录方法

    public void exit() {

        System.out.println("谢谢使用");     //用于结束main方法,程序停止运行

        System.exit(0);

    }//退出方法

    public static void register(ArrayList<User> users) {//注册方法,传入形参为ArrayList集合

        System.out.println("----欢迎来到注册页面----");

        System.out.println("请输入账号:");

        Scanner scanner = new Scanner(System.in);

        User user = new User();
        /**
         * name为将要注册的账号
         */
        String name = scanner.nextLine();

        for (int i = 0; i < users.size(); i++) {

            if (users.get(i).getUsername().equals(name)) {  //与集合中的用户名比较

                System.out.println("该账号存在,请登录");//有则请登录,结束方法

                return;
            }
        }
        while (true) {              //没有,则正式开始注册

            System.out.println("请输入密码");
            /**
             * number为新注册账号的密码
             * number2为第二次输入的密码(确认两次输入是否一致)
             */
            String number = scanner.nextLine();

            System.out.println("请再次输入密码:");

            String number2 = scanner.nextLine();

            if (number.equals(number2)) {       //两次输入的密码如果一致则注册成功

                user.setUsername(name);

                user.setPassword(number);

                System.out.println("注册成功!");

                users.add(user);        //将新注册的账号,密码加入集合中

                return;         //注册完毕,结束此方法,回归第一界面
            }
            else {

                System.out.println("两次输入不同,请重新输入"); //两次输入不一致则重新输入密码

            }

        }

    }//注册方法

}

5.过渡类 Between

package 学生管理系统;
/*
本类为过渡类:与main方法作用有相似之处,里面包含控制方法
即,显示在成功登录后的页面,联系第二列表方法类
 */
import java.util.ArrayList;
import java.util.Scanner;

public class Between {
    public static void control() {
        /*
        此处先将一个学生的信息加入到ArrayList中
        以便传值给方法
         */
        ArrayList<Student> students=new ArrayList<>();
        Student student = new Student();
        students.add(student);

        while (true) {
            System.out.println("----欢迎进入学生管理系统!----");
            System.out.println("-----请输入您所需的服务------");
            System.out.println("----1.查看学生列表");
            System.out.println("----2.新增学生");
            System.out.println("----3.删除学生");
            System.out.println("----4.修改学生");
            System.out.println("----5.退出系统");
            Scanner scanner = new Scanner(System.in);
            String number = scanner.nextLine();
            Function2 fun2 = new Function2();
            switch (number) {
                case "1":
                    fun2.findAll(students);
                    break;
                case "2":
                    fun2.addStudent(students);
                    break;
                case "3":
                    fun2.deleteStudent(students);
                    break;
                case "4":
                    fun2.refactorStudent(students);
                    break;
                case "5":
                    fun2.exit();
                    break;
                default:
                    System.out.println("输入有误,请重输");
                    break;
            }
        }
    }
}

6.第二列表方法类: Function2

package 学生管理系统;
/*
本类为第二列表方法类,是在登录学生管理后,页面显示功能的”实现方法“
包含:查看所有学生,删除,修改,信息注册,退出。
 */
import java.util.ArrayList;

import java.util.Scanner;

public class Function2 {

    public static void findAll(ArrayList<Student> students){        //查询所有学生信息,形参为ArrayList集合

        if(students.size()==0){

            System.out.println("系统内无学生信息,请添加");

        }

        else {
            System.out.println("学号\t\t姓名\t\t籍贯");

            for (int i = 0; i < students.size(); i++) {

                System.out.println(students.get(i).getNumber()+"\t\t"+students.get(i).getName()+

                        "\t\t"+students.get(i).getAddress());
            }
        }

    }//查询方法  ok

    public static void addStudent (ArrayList<Student> students) {

        System.out.println("----添加学生页面----");

        Student student=new Student();

        System.out.println("请输入学号");

        Scanner scanner=new Scanner(System.in);

        String stuNumber=scanner.nextLine();

        if (students.size() != 0) {

            for (int i = 0; i < students.size(); i++) {

                if(students.get(i).getNumber().equals(stuNumber)){

                    System.out.println("该学生已有档案,无需添加");

                    return;
                }
            }
        }

        student.setNumber(stuNumber);

        System.out.println("请输入姓名:");

        String name=scanner.nextLine();

        student.setName(name);

        System.out.println("请输入籍贯");

        String address=scanner.nextLine();

        student.setAddress(address);

        students.add(student);

        System.out.println("学生信息注册成功!");

    }//学生信息注册方法 ok

    public static void deleteStudent(ArrayList<Student> students){

        System.out.println("----删除学生信息----");

        while (true) {

            System.out.println("请输入您想删除的学生学号");

            Scanner scanner = new Scanner(System.in);

            String number = scanner.nextLine();

            int index = -1;

            for (int i = 0; i < students.size(); i++) {

                if (students.get(i).getNumber().equals(number)) {

                    index = i;

                    break;
                }
            }

            if (index == -1) {

                System.out.println("该学生信息未录入本系统");
            }

            else{

                students.remove(index);

                System.out.println("删除成功!");

                break;
            }
        }
    }//删除方法 ok

    public static void refactorStudent(ArrayList<Student> students){

        System.out.println("----学生信息修改----");

        if(students.size()==0){

            System.out.println("系统内无可修改信息!");

            return;
        }

        System.out.println("请输入需修改学生的学号:");

        Scanner scanner=new Scanner(System.in);

        String number1=scanner.nextLine();

        int index=-3;

        for(int i=0;i<students.size();i++){

            if(students.get(i).getNumber().equals(number1)){

                index=i;
                break;
            }
        }

        if(index==-3){

            System.out.println("该学号不存在!");

            return;
        }

        Student student=students.get(index);

        while(true) {

            System.out.println("-------信息修改-------");

            System.out.println("请输入需要更改的信息:");

            System.out.println("1.学号");

            System.out.println("2.姓名");

            System.out.println("3.籍贯");

            System.out.println("4.退出修改");

            String number2 = scanner.nextLine();

            switch (number2) {
                case "1":
                    int flag2=0;
                    while(true) {

                        int flag=1;

                        if(flag2==1){
                            System.out.println("该学号已被注册,请重新输入:");
                        }

                        else {
                            System.out.println("请输入新学号:");
                        }

                        String newNumber = scanner.nextLine();

                        for (int i = 0; i < students.size(); i++) {

                            if (students.get(i).getNumber().equals(newNumber)) {
                                flag = 2;

                                flag2=1;

                                break;
                            }
                        }
                        if (flag == 1) {

                            student.setNumber(newNumber);

                            System.out.println("学号修改成功!");

                            break;
                        }
                    }
                    break;

                case "2":

                    System.out.println("请输入姓名:");

                    String newName=scanner.nextLine();

                    student.setName(newName);

                    System.out.println("姓名修改成功!");

                    break;

                case "3":

                    System.out.println("请输入籍贯:");

                    String newAddress=scanner.nextLine();

                    student.setAddress(newAddress);

                    System.out.println("籍贯修改成功!");

                    break;

                case "4":

                    return;

                default:

                    System.out.println("输入错误,请重新输入!");

                    break;
            }
        }
    }//修改方法 ok

    public static void exit() {
        System.out.println("谢谢使用");
        System.exit(0);
    }//退出方法 ok

}

以上便是,此次的实训小项目:学生信息管理系统

今天是 2021 5 26号,来长沙实训有三天了(5月23号出发),中公教育的讲师人挺好的,讲得也较为精细。

历时一天半,终于写完了这个小项目,小有成就感。回顾项目制作流程,不禁感叹,把理论用于实践也是件有难度的事,这个功能用什么方法可以实现呢?这段代码是否还可以优化呢?这个地方报错了,该怎么解决?如何将资源合理分配?等等一系列在之前编码过程中未曾考虑到的问题,而这些问题在项目制作当中却是必须考虑到的。

额,这个项目做是做出来了,但所运用的“java工具”较为简单。如有需改进的地方,希望看到这篇文章的小伙伴能指出。

欢迎各位同行留言评论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

APTX 4869

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值