Java初学五天创建的一个学生登陆系统,现在学到封装,基于之前的知识做的小项目,水平有限,还请各位多多指正,初学者共同交流,一起进步
文章目录
- 一、学生登陆系统的思路
- 二、思想步骤
- 1.账号密码
- 2.系统功能
一、学生登陆系统的思路
##1.账号用户名
##2.系统功能(学生查询成绩,课表,修改登录密码;老师添加删除学生老师账号)
二、思想步骤
1.账号密码
登陆系统肯定要有账号和密码才能进行登陆
定义一个类Users,属性为账号和密码,进行封装调用set/get函数,这里出于熟悉知识的目的我再创建了一个构造函数
由于学生要查询成绩课表,就加入了成绩和课表两个属性
代码如下(示例):
public class Users {
//账号,密码
private String user;
private String password;
private double grade;
private String schedul;
//get set函数
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
//构造函数
public Users() {
// TODO Auto-generated constructor stub
}
public Users(String user,String password) {
this.user=user;
this.password=password;
}
2.系统功能
1.存储用户信息
即创建用户在系统内部,首先创建一个系统类,这里采用数组的方式进行构造存储用户,并对用户进行初始化操作
public class Manage {
Users[] students=new Users[5];
Users[] teachers=new Users[2];
//用户的个数
private int size1=4;
private int size2=2;
//初始化
public void initial() {
//创建用户1
Users student1=new Users("11111", "111111");
Users student2=new Users("22222", "222222");
Users student3=new Users("33333", "333333");
Users student4=new Users("44444", "444444");
Users teacher1=new Users("55555", "555555");
Users teacher2=new Users("66666", "666666");
students[0]=student1;
students[1]=student2;
students[2]=student3;
students[3]=student4;
teachers[0]=teacher1;
teachers[1]=teacher2;
System.out.println("初始化完成");
login();
}
2.用户初始化完成,开始写登陆功能
创建名为login的函数,要登陆就要用键盘,所以选择Scanner。基本思想是当用户输入的账号和密码,在第一步所存储的用户信息里能够找到,便判定为登陆成功,否则失败,再根据不同的数组找到的内容判定为进入学生系统或是教师系统。
public void login(){
Scanner input = new Scanner(System.in);
System.out.println("请输入账号");
String user=input.next();
System.out.println("请输入密码");
String password=input.next();
Users users=null;
int N=0;
for(int i=0;i<size1;i++) {
if(students[i].getUser().equals(user)&&students[i].getPassword().equals(password)) {
//进入学生系统
N=1;
users=students[i];
break;
}
}
for(int j=0;j<size2;j++) {
if(teachers[j].getUser().equals(user)&&teachers[j].getPassword().equals(password)) {
//进入教师系统
users=teachers[j];
N=2;
break;
}
}
switch (N) {
case 1: {
System.out.println("登陆成功,进入学生系统");
studentSystem(users);
break;
}
case 2: {
System.out.println("登陆成功,进入教师系统");
teacherSystem(users);
break;
}
default:
System.out.println("登陆失败,账号或用户名错误");
break;
}
}
3.学生,老师界面,上一步中进入不同的系统,就要分别写两个系统的功能,实际上都是类似的,篇幅长大家可能都不想看,这里贴出学生界面代码
//学生界面
public void studentSystem(Users users) {
System.out.println("=======欢迎进入学生界面=======");
System.out.println("请选择您要进行的操作\n1.查询课程成绩 2.查询课表 3.修改密码");
Scanner input=new Scanner(System.in);
int choice=input.nextInt();
switch (choice) {
case 1: {
grades(users);
break;
}
case 2: {
schedul(users);
break;
}
case 3: {
fixPassword(users);
break;
}
default:
System.out.println("输入错误,请重新输入");
break;
}
}
3.学生功能1:修改密码
在本例中修改密码的思想是重新赋值学生的password属性,获取键盘上输入的新密码,来替换掉原密码
public void fixPassword(Users users) {
System.out.println("当前为修改密码,请输入原密码");
Scanner input=new Scanner(System.in);
String password=input.next();
if(users.getPassword().equals(password)) {
System.out.println("请输入新密码");
String newPasswordString=input.next();
users.setPassword(newPasswordString);
System.out.println("密码修改成功");
}else {
System.out.println("密码错误请重新输入");
}
}
4.教师功能1:添加学生
当登陆到教师系统后,通过获取新学生的账号密码,赋值到Students[size1],此时学生数组含有的用户个数+1;
//教师功能1,添加学生
public void addStudent(Users users) {
System.out.println("当前为添加学生");
Scanner input =new Scanner(System.in);
System.out.println("请输入新学生的账号");
String newStudentUser=input.next();
System.out.println("请输入新学生的密码");
String newStudentPassword=input.next();
Users newStudent=new Users(newStudentUser,newStudentPassword);
students[size1]=newStudent;
size1++;
System.out.println("添加成功");
}
5.教师功能2:删除学生
删除学生与增加学生类似,但是需要Students数组内容进行移动。删除学生,学生数组的用户个数-1;
//教师功能2,删除学生
public void deleteStudent(Users users) {
System.out.println("当前为删除学生,请输入要删除学生的账号");
Scanner input = new Scanner(System.in);
String user = input.next();
//判断是否找到
boolean n=false;
for(int i=0;i<size1-1;i++) {
if(students[i].getUser().equals(user)) {
for(int j=i;j<size1-1;j++) {
students[j]=students[j+1];
n=true;
System.out.println("剩余学生"+students[j].getUser());
}
}else {
System.out.println("未搜索到该学生,请重新输入");
}
break;
}
if(n==true) {
size1--;
}
}
6.增加老师,删除老师,与增加学生删除学生类似,不再重复
7.学生端功能:查询课表,查询成绩
水平有限,不知道怎么写,感觉按现在所学到的,直接在初始化里定义很麻烦,望各位指点。
8.不足项:
①程序运行后无法返回,比如在选择进入某个操作的时候如果选择错了,无法返回上一级。
②无法进行内容的保存,比如修改密码后,再次启动依旧回到初始化状态。
③由于是初学者,会存在各种问题,希望大家一起交流,欢迎指正各种问题,交流优化方法。