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

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

6812

被折叠的 条评论
为什么被折叠?



