目录

一、分包概况:

二、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. 关于学生管理系统(注册,登录,学生端)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.注册模块 1.注册模块 2.判断账号是否存在 3.判断账号是否未被注册 4.注册成功的账号的保存 二.登录模块 1 ...

  3. c语言字符密码验证码,c语言下的学生管理系统(含密码加密和验证码).docx

    c语言下的学生管理系统(含密码加密和验证码).docx #include #include #include #include #include #define N 20void input();// ...

  4. C++单链表学生管理系统(有登录界面)

    C++单链表 学生管理系统 这个程序是我好几天的心血,欢迎大家指正!!! 该程序需要新建三个txt文件.1.login.txt用来存放注册用户的用户名与密码. 2.login2.txt用于登录时将lo ...

  5. 语言学生学籍管理系统流程图_基于C语言的学生管理系统(含文件)(一)

    "点击上方"蓝色字",关注我们哦(*^▽^*)!" NO.1 篇幅较长,请空闲时观看 前言 这个项目是大一暑假完成,纯C语言编写,界面比较美观,由于当时还是一个 ...

  6. 安卓期末大作业Android studio-记单词app(资源链接在文末,含注册登录,含设计报告,含导出app文件及源码导入方法文档)

    安卓期末大作业Android studio-记单词app(注册登录.增删改查) (资源下载链接在文末) 1.注册登录界面 2.用户点击加号按钮输入单词,键盘会自动弹出并焦点在输入框,用户输入英文和中文 ...

  7. Java Swing 邮箱管理系统(实现注册/登录、收/发邮件)

    回顾Swing知识第二天,实现了一个简单的邮箱管理系统 技术点: Swing窗口+MYSQL+Eclipse 主要代码实现: 一.数据库连接类 package Jdbc;import java.sql ...

  8. 学校食堂简易点餐管理系统(含用户登录且密码隐藏)C++

    系统运行步骤陈述: 运行程序进入用户登陆界面,输入账户及密码 如果账户以及密码输入正确则进入系统,显示登陆成功 紧接着以下须按照指示输入,所输入字母不区分大小写 进入系统后便可看见菜单选项,a,b,c ...

  9. c语言学生管理系统修改密码,C语言下的学生管理系统(含密码加密和验证码).doc...

    . 资料 #include #include #include #include #include #define N 20 void input();//增加学生信息 void del();//删除 ...

最新文章

  1. Error creating bean with name 'multipleEntityManagerFactory' defined in class
  2. 计算机视觉开源库OpenCV绘制轮廓,并将轮廓排序~
  3. why we see different http status code like 404, 500. where are they handled
  4. 配置管理小报100329:脚本中ftp命令无法自动输入密码怎么办?
  5. python数据分析与展示 pdf课件_python数据分析与展示 课件 相关实例(示例源码)下载 - 好例子网...
  6. 汇编语言(十七)之判断三个数是否相等
  7. Java面试你必须要知道的那些知识,面试建议
  8. springboot配置跨mapper.xml的全局变量
  9. 信息学奥赛C++语言:蒙氏数学难题
  10. 复用:设计模式 反模式 分析模式
  11. OUTLOOK邮箱设置
  12. Spring系统学习--20180613:Spring的AOP开发说明
  13. AD20导出Gerber教程
  14. ibm服务器开机显示如何设置,IBM服务器开机进入WEBBIOS界面配置RAID
  15. 常见Http响应头部 responses header
  16. 解读广告SDK工作机制,保护App自身安全
  17. 立体感css播放按钮样式
  18. 华为P30销量破千万有多少含金量?
  19. 歪门邪道 Leetcode 463 Island Perimeter
  20. WinX DVD Ripper for Mac(DVD视频格式转换工具)

热门文章

  1. 【Lerna 基本使用】
  2. 竖版视频怎么批量转换成横版视频
  3. 单位提前解除劳动关系怎么赔偿
  4. 【Pyhton TurtleArt】画一幅极简渐变风景图
  5. 帝国时代(1)--献给曾经的游戏
  6. 记第一天使用node做爬虫——爬取猫眼电影票房总榜以及指定电影的豆瓣评论前200条
  7. xorg介绍 xorg和桌面环境的关系
  8. RS485通信----基本原理+电路图
  9. python中怎么计数_python怎么实现计数?
  10. 实现用户的登录,并且登录后显示用户名