学生管理系统:含注册登录操作
目录
一、分包概况:
二、USER包
1.AMain类:主函数所在
2.User类:构造账号属性
3.PasswordOperate包:用于登录,注册,修改密码,查看账号操作
(1)Login类:登录类
(2)Register类:注册类
(3)RevisePassword类:修改密码类
(4)ShowPassword类:查看密码类
4.Console包:放用户操作台和管理员操作台
(1)ConsoleAdministrators类 :管理员操作台
(2)ConsoleUser类:用户操作台
5.Face包:界面包,编辑各个界面
(1)FaceLogon类:登录界面
(2)FaceAdministrators类:管理员操作台界面
(3)FaceUser类:用户操作台界面:
三、OPERATE包
1.Add类:
2.Delete类:
3.Revise类:
4.Seek类:
5.Show类:
四、STUDENT包
五、运行结果
一、分包概况:
二、USER包
1.AMain类:主函数所在
package USERS;import java.util.ArrayList;
import java.util.Scanner;import USERS.Face.*;
import USERS.PasswordOperate.*;public class AMain {//主函数public static void main(String[] args) {Scanner in = new Scanner(System.in);ArrayList<User> list = new ArrayList<>();//储存账号密码的集合list.add(new User("康茹", "20021127"));list.add(new User("小白", "12345678"));//初始化账号密码,以便于待会的登录操作FaceLogon.menu();//打印登录界面,调用FaceLogon中的menu方法while (true) {System.out.println("请输入您的选择:");String num = in.next();switch (num) {case "1":Register.register(list);//跳到注册页面break;case "2":Login.login(list);//跳到登录页面break;case "3":RevisePassword.revisePassword(list);//忘记密码,重置密码break;case "4":ShowPassword.showPassword(list);//查看账号信息break;case "5":System.out.println("感谢你的使用!");//退出操作System.exit(0);default:System.out.println("无此操作!");//无此操作break;}}}
}
2.User类:构造账号属性
package USERS;public class User {//构造账号的属性private String username;//用户名private String password;//密码public void setUsername(String username) {this.username = username;}public String getUsername() {return username;}public void setPassword(String password) {this.password = password;}public String getPassword() {return password;}public User() {}public User(String username, String password) {this.username = username;this.password = password;}
}
3.PasswordOperate包:用于登录,注册,修改密码,查看账号操作
(1)Login类:登录类
package USERS.PasswordOperate;import java.util.ArrayList;
import java.util.Scanner;//调用输入包import USERS.User;
import USERS.Console.ConsoleAdministrators;
import USERS.Console.ConsoleUser;public class Login {public static void login(ArrayList<User> list) {Scanner in = new Scanner(System.in);for (int i = 0; i < 3; i++) {System.out.println("请输入用户名:");String username = in.next();// 判断用户名是否已经注册int index = getIndex(list, username);//调用getIndex方法遍历账号数组if (index == -1) {System.out.println("该用户名未注册!");return;}System.out.println("请输入密码:");String password = in.next();// 验证用户名和密码是否正确User user = new User(username, password);boolean flag = checkNameAndPwd(list, user);if (!flag) {if (i == 2) {System.out.println("当前账号被锁定!");} else {System.out.println("登录失败,用户名或密码错误,您还有" + (2 - i) + "次机会!");}} else {while (true) {System.out.println("请输入你的身份:1.管理员 2.用户");String id = in.next();if (id.equals("1")) {System.out.println("请输入管理员密钥:");while (true) {int key = in.nextInt();if (key == 123456) {ConsoleAdministrators.console();} else {System.out.println("密钥错误,请重新输入:");}}} // 登录成功,跳转到控制台else if (id.equals("2")) {ConsoleUser.console();} else {System.out.println("输入错误,请重新输入:");}}}}}// 验证用户名和密码public static boolean checkNameAndPwd(ArrayList<User> list, User userInfo) {for (int i = 0; i < list.size(); i++) {User user = list.get(i);if (user.getUsername().equals(userInfo.getUsername())&& user.getPassword().equals(userInfo.getPassword())) {return true;}}return false;}// 遍历数组,判断用户是否存在private static int getIndex(ArrayList<User> list, String username) {for (int i = 0; i < list.size(); i++) {boolean flag = list.get(i).getUsername().equals(username);if (flag) {return i;}}return -1;}
}
(2)Register类:注册类
package USERS.PasswordOperate;import java.util.ArrayList;
import java.util.Scanner;import USERS.User;public class Register {public static void register(ArrayList<User> list) {Scanner in = new Scanner(System.in);// 键盘录入用户名String username;while (true) {System.out.println("请输入用户名:");username = in.next();boolean flag = contains(list, username);// 判断是否唯一if (flag) {System.out.println("用户名已存在,请重新输入:");} else {System.out.println("用户名:(" + username + ")可用");break;}}// 键盘录入密码String password;while (true) {System.out.println("请输入密码:");password = in.next();System.out.println("请确认密码:");String password2 = in.next();if (password.equals(password2)) {System.out.println("两次密码一致!");break;} else {System.out.println("两次密码输入不一致,请重新输入:");}}User user = new User(username, password);list.add(user);System.out.println("注册成功!");}// 判断用户名是否唯一private static boolean contains(ArrayList<User> list, String username) {return getIndex(list, username) >= 0;}// 遍历数组,判断用户是否存在private static int getIndex(ArrayList<User> list, String username) {for (int i = 0; i < list.size(); i++) {boolean flag = list.get(i).getUsername().equals(username);if (flag) {return i;}}return -1;}
}
(3)RevisePassword类:修改密码类
package USERS.PasswordOperate;import java.util.ArrayList;
import java.util.Scanner;import USERS.User;public class RevisePassword {public static void revisePassword(ArrayList<User> list) {Scanner in = new Scanner(System.in);System.out.println("请输入用户名:");String username = in.next();int index = getIndex(list, username);if (index == -1) {System.out.println("当前用户名未被注册!");return;}User user = list.get(index);// 获取要修改的用户对象String password;while (true) {System.out.println("请输入新的密码:");password = in.next();System.out.println("请确认新的密码:");String password2 = in.next();if (password.equals(password2)) {break;} else {System.out.println("两次密码不一致,请重新输入!");}}user.setPassword(password);System.out.println("修改成功!");}// 获取用户对象对应的索引,判断用户是否存在private static int getIndex(ArrayList<User> list, String username) {for (int i = 0; i < list.size(); i++) {boolean flag = list.get(i).getUsername().equals(username);if (flag) {return i;}}return -1;}
}
(4)ShowPassword类:查看密码类
package USERS.PasswordOperate;import java.util.ArrayList;
import java.util.Scanner;import USERS.User;public class ShowPassword {public static void showPassword(ArrayList<User> list) {Scanner in = new Scanner(System.in);System.out.println("此功能为管理员权限,请输入管理员密码:");int password = in.nextInt();if (password == 123456) {System.out.println("密码正确!");for (int i = 0; i < list.size(); i++) {User user = list.get(i);System.out.println("账号:" + user.getUsername() + " 密码:" + user.getPassword());}return;} else {System.out.println("密码错误!");return;}}
}
4.Console包:放用户操作台和管理员操作台
(1)ConsoleAdministrators类 :管理员操作台
package USERS.Console;import java.util.ArrayList;
import java.util.Scanner;//调用输入包import OPERATE.*;import STUDENT.Student;import USERS.Face.*;public class ConsoleAdministrators {//管理员控制台public static void console() {Scanner in = new Scanner(System.in);FaceAdministrators.menu();ArrayList<Student> list2 = new ArrayList<Student>();while (true) {System.out.println("请选择需要进行的操作:");int num = in.nextInt();switch (num) {case 1:Add.addStudent(list2);// 增加操作,传入list动态数组break;case 2:Delete.deleteStudent(list2);// 删除操作,传入list动态数组break;case 3:Revise.reviseStudent(list2);// 修改操作,传入list动态数组break;case 4:Seek.findStudent(list2);// 查找操作,传入list动态数组break;case 5:Show.showStudent(list2);// 展示操作,传入list动态数组break;case 6:System.out.println("感谢你的使用!");System.exit(0);}System.out.println("1.增加 2.删除 3.修改 4.查询 5.展示 6.退出");// 方便下一步知晓操作}}
}
(2)ConsoleUser类:用户操作台
package USERS.Console;import java.util.ArrayList;
import java.util.Scanner;//调用输入包import OPERATE.*;import STUDENT.Student;import USERS.Face.*;public class ConsoleAdministrators {//管理员控制台public static void console() {Scanner in = new Scanner(System.in);FaceAdministrators.menu();ArrayList<Student> list2 = new ArrayList<Student>();while (true) {System.out.println("请选择需要进行的操作:");int num = in.nextInt();switch (num) {case 1:Add.addStudent(list2);// 增加操作,传入list动态数组break;case 2:Delete.deleteStudent(list2);// 删除操作,传入list动态数组break;case 3:Revise.reviseStudent(list2);// 修改操作,传入list动态数组break;case 4:Seek.findStudent(list2);// 查找操作,传入list动态数组break;case 5:Show.showStudent(list2);// 展示操作,传入list动态数组break;case 6:System.out.println("感谢你的使用!");System.exit(0);}System.out.println("1.增加 2.删除 3.修改 4.查询 5.展示 6.退出");// 方便下一步知晓操作}}
}
5.Face包:界面包,编辑各个界面
(1)FaceLogon类:登录界面
package USERS.Face;public class FaceLogon {public static void menu() {System.out.println("----------欢迎来到登录界面-----------");System.out.println("* 1. 用户注册 *");System.out.println("* 2. 用户登录 *");System.out.println("* 3. 忘记密码 *");System.out.println("* 4. 查看账号信息 *");System.out.println("* 5. 退出系统 *");System.out.println("-------------------------------------");}
}
(2)FaceAdministrators类:管理员操作台界面
package USERS.Face;public class FaceAdministrators {public static void menu() {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.显示学生信息******");System.out.println("******6.退出生成绩管理系统");}
}
(3)FaceUser类:用户操作台界面:
package USERS.Face;public class FaceUser {public static void menu() {System.out.println("欢迎来到学生成绩管理系统!");System.out.println("****请选择所需要的操作****");System.out.println("******1.查询学生信息******");System.out.println("******2.退出生成绩管理系统");}
}
三、OPERATE包
1.Add类:
package OPERATE;import java.util.ArrayList;
import java.util.Scanner;import STUDENT.Student;//导入STUDENT包中的Student文件public class Add {public static void addStudent(ArrayList<Student> list) {Scanner in = new Scanner(System.in);System.out.println("请输入要添加的学生学号");String id = in.nextLine();System.out.println("请输入要添加的学生姓名");String name = in.nextLine();System.out.println("请输入要添加的学生成绩");double score = in.nextDouble();Student student = new Student(id, name, score);//采用有参构造赋值list.add(student);System.out.println("添加成功!");}
}
2.Delete类:
package OPERATE;import java.util.ArrayList;
import java.util.Scanner;import STUDENT.Student;//导入STUDENT包中的Student文件public class Delete {public static void deleteStudent(ArrayList<Student> list) {Scanner in = new Scanner(System.in);System.out.println("请输入你要删除的学生学号");String id = in.next();for (int i = 0; i < list.size(); i++) {// 遍历动态数组if (list.get(i).getId().equals(id)) {list.remove(i);}}System.out.println("删除成功!");}
}
3.Revise类:
package OPERATE;import java.util.ArrayList;
import java.util.Scanner;import STUDENT.Student;//导入STUDENT包中的Student文件public class Revise {public static void reviseStudent(ArrayList<Student> list) {Scanner in = new Scanner(System.in);System.out.println("请输入要修改学生学号");String id = in.next();System.out.println("请输入学生的新姓名");String name = in.next();System.out.println("请输入学生的新成绩");double score = in.nextDouble();Student student = new Student(id, name, score);for (int i = 0; i < list.size(); i++) {if (list.get(i).getId().equals(id)) {list.set(i, student);break;}}System.out.println("修改成功!");}
}
4.Seek类:
package OPERATE;import java.util.ArrayList;
import java.util.Scanner;import STUDENT.Student;//导入STUDENT包中的Student文件public class Seek {public static void findStudent(ArrayList<Student> list) {Scanner in = new Scanner(System.in);System.out.println("请输入你要查找的学生学号");String id = in.next();for (int i = 0; i < list.size(); i++) {// 遍历动态数组if (list.get(i).getId().equals(id)) {System.out.println("查询成功!");System.out.println("该学生学号:" + list.get(i).getId() + " 该学生名字:" + list.get(i).getName() + " 该学生成绩:"+ list.get(i).getScore());}}}
}
5.Show类:
package OPERATE;import java.util.ArrayList;import STUDENT.Student;//导入STUDENT包中的Student文件public class Show {public static void showStudent(ArrayList<Student> list) {System.out.println("查询成功!");for (int i = 0; i < list.size(); i++) {// 遍历动态数组System.out.println("学号:" + list.get(i).getId() + " 姓名:" + list.get(i).getName() + " 成绩" + list.get(i).getScore());}System.out.println("一共有 " + list.size() + " 个学生信息");}
}
四、STUDENT包
package STUDENT;public class Student {String id;String name;double score;public Student() {}public Student(String id, String name, double score) {this.id = id;this.name = name;this.score = score;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}
}
五、运行结果
/** 运行结果* ----------欢迎来到登录界面-----------* 1. 用户注册 ** 2. 用户登录 ** 3. 忘记密码 ** 4. 查看账号信息 ** 5. 退出系统 ** -------------------------------------* 请输入您的选择:* 1* 请输入用户名:* 康茹* 用户名已存在,请重新输入:* 请输入用户名:* 张三* 用户名:(张三)可用* 请输入密码:* 123456* 请确认密码:* 123456* 两次密码一致!* 注册成功!* 请输入您的选择:* 1* 请输入用户名:* 张三* 用户名已存在,请重新输入:* 请输入用户名:* 李四* 用户名:(李四)可用* 请输入密码:* 123456* 请确认密码:* 123456* 两次密码一致!* 注册成功!* 请输入您的选择:* 4* 此功能为管理员权限,请输入管理员密码:* 123456* 密码正确!* 账号:康茹 密码:20021127* 账号:小白 密码:12345678* 账号:张三 密码:123456* 账号:李四 密码:123456* 请输入您的选择:* 2* 请输入用户名:* 康茹* 请输入密码:* 20021127* 请输入你的身份:1.管理员 2.用户* 1* 请输入管理员密钥:* 123456* 欢迎来到学生成绩管理系统!**** 请选择所需要的操作********** 1.添加学生信息************ 2.删除学生信息************ 3.修改学生信息************ 4.查询学生信息************ 5.显示学生信息************ 6.退出生成绩管理系统* 请选择需要进行的操作:* 1* 请输入要添加的学生学号* 2022400001* 请输入要添加的学生姓名* 康茹* 请输入要添加的学生成绩* 520* 添加成功!* 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出* 请选择需要进行的操作:* 5* 查询成功!* 学号:2022400001 姓名:康茹 成绩520.0* 一共有 1 个学生信息* 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出* 请选择需要进行的操作:* 4* 请输入你要查找的学生学号* 2022400001* 查询成功!* 该学生学号:2022400001 该学生名字:康茹 该学生成绩:520.0* 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出* 请选择需要进行的操作:* 6* 感谢你的使用!*/
学生管理系统:含注册登录操作相关推荐
- 学生管理系统的注册登录以及管理的具体实现
题目要求: 编写程序:实现登录注册功能,程序一进来如果没有账号就选择注册,如果有账号就直接登录. 注册功能的时候要输入注册账号.设置密码.输入确认密码.输入邮箱号码.输入性别.输入个人简介.输入你的身 ...
- 关于学生管理系统(注册,登录,学生端)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.注册模块 1.注册模块 2.判断账号是否存在 3.判断账号是否未被注册 4.注册成功的账号的保存 二.登录模块 1 ...
- c语言字符密码验证码,c语言下的学生管理系统(含密码加密和验证码).docx
c语言下的学生管理系统(含密码加密和验证码).docx #include #include #include #include #include #define N 20void input();// ...
- C++单链表学生管理系统(有登录界面)
C++单链表 学生管理系统 这个程序是我好几天的心血,欢迎大家指正!!! 该程序需要新建三个txt文件.1.login.txt用来存放注册用户的用户名与密码. 2.login2.txt用于登录时将lo ...
- 语言学生学籍管理系统流程图_基于C语言的学生管理系统(含文件)(一)
"点击上方"蓝色字",关注我们哦(*^▽^*)!" NO.1 篇幅较长,请空闲时观看 前言 这个项目是大一暑假完成,纯C语言编写,界面比较美观,由于当时还是一个 ...
- 安卓期末大作业Android studio-记单词app(资源链接在文末,含注册登录,含设计报告,含导出app文件及源码导入方法文档)
安卓期末大作业Android studio-记单词app(注册登录.增删改查) (资源下载链接在文末) 1.注册登录界面 2.用户点击加号按钮输入单词,键盘会自动弹出并焦点在输入框,用户输入英文和中文 ...
- Java Swing 邮箱管理系统(实现注册/登录、收/发邮件)
回顾Swing知识第二天,实现了一个简单的邮箱管理系统 技术点: Swing窗口+MYSQL+Eclipse 主要代码实现: 一.数据库连接类 package Jdbc;import java.sql ...
- 学校食堂简易点餐管理系统(含用户登录且密码隐藏)C++
系统运行步骤陈述: 运行程序进入用户登陆界面,输入账户及密码 如果账户以及密码输入正确则进入系统,显示登陆成功 紧接着以下须按照指示输入,所输入字母不区分大小写 进入系统后便可看见菜单选项,a,b,c ...
- c语言学生管理系统修改密码,C语言下的学生管理系统(含密码加密和验证码).doc...
. 资料 #include #include #include #include #include #define N 20 void input();//增加学生信息 void del();//删除 ...
最新文章
- Error creating bean with name 'multipleEntityManagerFactory' defined in class
- 计算机视觉开源库OpenCV绘制轮廓,并将轮廓排序~
- why we see different http status code like 404, 500. where are they handled
- 配置管理小报100329:脚本中ftp命令无法自动输入密码怎么办?
- python数据分析与展示 pdf课件_python数据分析与展示 课件 相关实例(示例源码)下载 - 好例子网...
- 汇编语言(十七)之判断三个数是否相等
- Java面试你必须要知道的那些知识,面试建议
- springboot配置跨mapper.xml的全局变量
- 信息学奥赛C++语言:蒙氏数学难题
- 复用:设计模式 反模式 分析模式
- OUTLOOK邮箱设置
- Spring系统学习--20180613:Spring的AOP开发说明
- AD20导出Gerber教程
- ibm服务器开机显示如何设置,IBM服务器开机进入WEBBIOS界面配置RAID
- 常见Http响应头部 responses header
- 解读广告SDK工作机制,保护App自身安全
- 立体感css播放按钮样式
- 华为P30销量破千万有多少含金量?
- 歪门邪道 Leetcode 463 Island Perimeter
- WinX DVD Ripper for Mac(DVD视频格式转换工具)