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 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 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 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 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 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 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 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 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工具”较为简单。如有需改进的地方,希望看到这篇文章的小伙伴能指出。
欢迎各位同行留言评论!