Java实现用户管理系统
作者:Tryci 发布时间:2023-08-26 17:18:21
基于Java的简单的用户管理系统,供大家参考,具体内容如下
此系统功能和方法都比较简单
本次系统通过控制台输入商品的基本信息,加入管理员的登录与对是否为管理员进行操作
对于功能的实现,分别定义了3个类
用户基本属性类
此类包含用户id、账号、密码、年龄、角色(是否为管理员)、邮箱、办事处、账户状态
private int id;// id号
private String username;// 账号
private String password;// 密码
private int age;// 年龄
private String role;// 角色
private String email;// 邮箱
private String officeID;// 办事处
private String status;// 账户状态
通过快捷键方法快速生成其属性get/set方法与构造器
@Override
public String toString() {
return id + "\t" + username + "\t" + password + "\t" + age + "\t" + role + "\t" + email + "\t" + officeID + "\t"
+ status;
}
public User(int id, String username, String password, int age, String role, String email, String officeID,
String status) {
super();
this.id = id;
this.username = username;
this.password = password;
this.age = age;
this.role = role;
this.email = email;
this.officeID = officeID;
this.status = status;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getOfficeID() {
return officeID;
}
public void setOfficeID(String officeID) {
this.officeID = officeID;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
完成对用户属性的定义
在新类中对用户属性进行修饰和功能的实现
通过ArrayList动态数组能够对数组的基本信息进行存储
Scanner方法来使用控制台输入功能,结合方法来输入对应的信息
static int i = 0;
String[] admin = { "admin", "admin123" };
static ArrayList<User> list = new ArrayList<>();
private Scanner sc = new Scanner(System.in);
用简单的if/else语句和for循环结合来实现增删改查功能
用户的增添与密码的修改实习了控制台输入与修改信息的能力
/**1-用户添加*/
public void add(User u) {
list.add(u);
}
/** 2-密码修改(根据Id修改密码) */
public boolean modifypassword(int id, String password) {
User user = findById(id);
if (user != null) {
user.setPassword(password);
return true;
}
return false;
}
/** 3-根据ID查看个人信息 */
public User findById(int id) {
User us = null;
for (User u : list) {
if (u.getId() == id) {
us = u;
break;
}
}
return us;
}
/** 4-根据ID修改账号状态(禁用0、启用1)*/
public boolean modifystatus(int id, String status) {
User user = findById(id);
if (user != null) {
user.setStatus(status);
return true;
}
return false;
}
/** 5-用户登录*/
public void register() {
System.out.println("请输入用户名:");
if (sc.next().equals(admin[0])) {
System.out.println("请输入密码:");
if (sc.next().equals(admin[1])) {
System.out.println("登录成功!");
} else {
System.out.println("密码错误!请重新输入!");
register();
}
} else {
System.out.println("用户名错误!请重新输入!");
register();
}
}
/** 6-修改用户角色(设置取消管理员) */
public boolean modifyrole(int id, String role) {
User user = findById(id);
if (user != null) {
user.setRole(role);
return true;
}
return false;
}
/** 7-用户列表*/
public ArrayList<User> findAll() {
return list;
}
/** 8-删除用户*/
public boolean delete(int id) {
User user = findById(id);
if (user != null) {
return list.remove(user);
}
return false;
}
由此就通过方法对一些必要的功能进行了完成
再通过另一个主窗口类对其他类进行功能的调用与界面信息的完成
创建main程序入口类,并且在类中完成输入界面与指令
输入窗口的指令界面
private UserModule um = new UserModule();
private Scanner sc = new Scanner(System.in);
/** 输入窗口的指令界面 */
public void menu() {
msg("=====================================");
msg("======SOFTEEM用户管理系统================");
msg("======【1】用户添加======================");
msg("======【2】密码修改======================");
msg("======【3】个人信息查看===================");
msg("======【4】账号状态修改(禁用0、启用1)========");
msg("======【5】用户登录=======================");
msg("======【6】修改用户角色(设置取消管理员)=======");
msg("======【7】用户列表======================");
msg("======【8】删除用户======================");
msg("======【0】退出系统======================");
msg("请输入操作指令: ");
start();
}
通过基础语句switch完成程序按键的入口
/** 程序按键入口 */
private void start() {
sc = new Scanner(System.in);
int i = sc.nextInt();
switch (i) {
case 1:
add();
break;
case 2:
alter();
break;
case 3:
queryById();
break;
case 4:
thestatus();
break;
case 5:
enter();
break;
case 6:
update();
break;
case 7:
list();
break;
case 8:daima
delete();
break;
case 0:
exit();
break;
default:
msg("请输入正确的操作指令!!!");
break;
}
menu();
}
此方法能够处理经常使用输出窗口的代码麻烦,直接调用此内部方法实现输出语句,更简洁的完成输出语句
/** 能够兼容输入的属性 */
public void msg(Object obj) {
System.out.println(obj);
}
结合上一个类中的方法完成对用户的添加功能,后续的功能与此功能一样,再switch语句中有输入窗口能够调用此类方法
/** 1-用户添加的客户端实现 */
private void add() {
msg("请输入用户信息:((按以下格式:Id/账号/密码/年龄/角色/邮箱/办事处/账户状态))");
sc = new Scanner(System.in);
String s = sc.nextLine();
// 根据"/"截取用户信息
String[] info = s.split("/");
if (um.findById(Integer.parseInt(info[0])) != null) {
msg("该ID用户已存在,请重新输入");
add();
return;
} else {
User u = new User(Integer.parseInt(info[0]), info[1], info[2], Integer.parseInt(info[3]), info[4], info[5],
info[6], info[7]);
um.add(u);
msg("添加成功!");
}
}
根据用户ID修改其密码,简单的判断语句对密码信息确认与修改
/** 2-根据ID修改密码 */
private void alter() {
sc = new Scanner(System.in);
msg("请输入用户的ID:");
int id = sc.nextInt();
msg("密码修改为:");
String passwor = sc.next();
if (um.modifypassword(id, passwor)) {
msg("修改成功!");
} else {
msg("修改失败!");
}
}
通过ID来查看用户的个人信息
/** 3-个人信息查看 */
private void queryById() {
sc = new Scanner(System.in);
msg("请输入需要查询的用户ID");
int id = sc.nextInt();
User u = um.findById(id);
if (u == null) {
msg(id + "号不存在,请重新输入");
queryById();
return;
}
msg("Id\t账号\t密码\t\t年龄\t角色\t邮箱\t\t办事处\t账户状态\t");
msg(u);
}
输入用户ID后对其状态(是否禁用)进行修改
/** 4-账号状态修改(禁用0、启用1)*/
private void thestatus() {
sc = new Scanner(System.in);
msg("请输入用户ID:");
int id = sc.nextInt();
msg("账号状态修改(0/1):");
String status = sc.next();
if (um.modifystatus(id, status)) {
msg("修改成功!");
} else {
msg("修改失败!");
}
}
结合之前定义的用户信息,实现简单的用户登录功能
/** 5-用户登录*/
private void enter(){
UserModule um = new UserModule();
um.register();
}
修改用户角色(是否为管理员),给其权限
/** 6-修改用户角色*/
private void update() {
sc = new Scanner(System.in);
msg("请输入用户ID:");
int id = sc.nextInt();
msg("角色修改(是否为管理员):");
String role = sc.next();
if (um.modifyrole(id, role)) {
msg("修改成功!");
} else {
msg("修改失败!");
}
}
将已存入的用户信息列表化输出
/** 7-用户列表*/
private void list() {
msg("Id\t账号\t密码\t\t年龄\t角色\t邮箱\t\t办事处\t账户状态\t");
for (User u : um.findAll()) {
msg(u);
}
}
删除功能,根据ID删除存入数组的用户信息
/** 8-根据ID删除用户*/
private void delete() {
sc = new Scanner(System.in);
msg("请输入用户ID:");
int id = sc.nextInt();
if (um.delete(id)) {
msg("删除成功!");
} else {
msg("删除失败!");
}
}
外加一个简单的退出系统的功能,不用鼠标关闭Console窗口
/** 0-体统退出 */
private void exit() {
sc = new Scanner(System.in);
msg("是否确定退出?(Y/N)");
String op = sc.next();
if (op.equalsIgnoreCase("Y")) {
msg("谢谢使用,再见!");
System.exit(1);
}
}
此类的程序执行入口,调用系统用户登录方法和主窗口方法,调用的方法中再实现所有功能
public static void main(String[] args) {
TestUser tu = new TestUser();
tu.enter();
tu.menu();
}
技术含量不高的完成了一个有用户登录,对用户信息进行增删改查功能的系统
来源:https://blog.csdn.net/qq_36298311/article/details/97621532
猜你喜欢
- Android 显示GIF图片实例详解gif图动画在Android中还是比较常用的,比如像新浪微博中,有很多gif图片,而且展示非常好,所以
- 背景后台系统需要接入 企业微信登入,满足企业员工快速登入系统流程图简单代码说明自定义一套 springsecurity 认证逻辑主要就是 根
- 虽然说模块通信、路由协议在Android已经不新鲜了,但是如果脱离了那些优秀的开源库我们从零开始自己造一个库,有时候重复造轮子会让自己对所谓
- mport java.text.DecimalFormat; DecimalFormat &nb
- Android异常详情介绍这种异常我遇到以下两种情况: 1. java.lang.IllegalStateException: No wra
- 一 应用规划: ※ 确定功能。 ※ 必须的界面及界面跳转的流程。
- 消息都是存放在一个消息队列中去,而消息循环线程就是围绕这个消息队列进入一个无限循环的,直到线程退出。如果队列中有消息,消息循环线程就会把它取
- 命令仓库 Ctrl + Shift + A 可以搜集对应命令快捷键1、基础快捷键1.1、无处不在的跳转项目之间的跳转1.1.1、项目项目之间
- 首先对于一个SpringBoot工程来说,最明显的标志的就是 @SpringBootApplication它标记了这是一个SpringBoo
- 一个错误:多线程使用单一消费者下图显现了一种错误的使用KafkaConsumer的方法创建多个线程用来消费kafka数据多线程使用同一个Ka
- 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1)
- 本文为大家分享一个非常简单但又很常用的控件,跑马灯状态的TextView。当要显示的文本长度太长,又不想换行时用它来显示文本,一来可以完全的
- 参数和返回值得加密目的为了保证接口不被人拦截下来恶意请求,保证程序的稳定性,我们可以使用接口加密的方法来保证参数和返回值的保密性。具体实现方
- 公司的老项目要改造多租户,于是进入了大坑,本文写点遇到的坑以及解决方案,每次遇到问题在网上搜了好久,记录下来,防止以后忘掉。(一).方案网上
- 微服务通过Feign调用进行密码安全认证在项目中,微服务之间的通信也是通过Feign代理的HTTP客户端通信,为了保护我们的业务微服务不被其
- JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展
- 前言最近看插件库上少有的取色器大都是圆形的或者奇奇怪的的亚子,所以今天做两个矩形的颜色取色器提示:以下是本篇文章正文内容,下面案例可供参考一
- Android之文件数据存储一、文件保存数据介绍Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的
- Android 应用签名的两种方法一、使用pem签名 (一) apk签名命令java –jar sign
- 近期,Apache SkyWalking 修复了一个隐藏了近4年的Bug - TTL timer 可能失效问题,这个 bug 在 SkyWa