当前位置: 首页 > news >正文

做一手房产中介用什么网站好怎么做网站访问被拒绝

做一手房产中介用什么网站好,怎么做网站访问被拒绝,网上做任务网站有哪些,经济型网站建设题目1、现在有一个文件users.txt,该文件中保存了用户的基本信息zhangsan : 123456 : admin lisi : 123456:hr wangwu : 123456 : emp zhaoliu : 123456 : manager2、要求编写一个程序,模拟用户登录的效果。从键盘中输入用户名和密码的数据。如果数据在users.txt就表…

题目

1、现在有一个文件users.txt,该文件中保存了用户的基本信息

zhangsan : 123456 : admin
lisi : 123456:hr
wangwu : 123456 : emp
zhaoliu : 123456 : manager

2、要求编写一个程序,模拟用户登录的效果。从键盘中输入用户名和密码的数据。如果数据在users.txt就表示登录成功。并展示每个角色

【基本功能】
【可以创建一个自定义异常,该异常表示用户名密码错误】
【可以创建一个自定义异常,该异常表示用户名不存在】

3、对于角色可以使用枚举进行定义。
超级管理员:可以操作所有功能。
hr:招聘、开除、协调各个部门的员工。
emp(普通员工):只能操作自己本部门的一些数据。
manager:管理本部分的所有员工。

实现

项目结构

UserLoginSystem/
├── src/
│   └── com/example/
│       ├── Main.java
│       ├── User.java
│       ├── Role.java
│       ├── AuthService.java
│       ├── exception/
│       │   ├── UserNotFoundException.java
│       │   └── PasswordErrorException.java
├── user.txt

代码

users.txt (放在项目根目录)

zhangsan : 123456 : admin
lisi : 123456 : hr
wangwu : 123456 : emp
zhaoliu : 123456 : manager

Role.java(使用枚举定义角色功能) 

package com.example;public enum Role {admin("超级管理员: 可以操作所有功能"),hr("HR: 招聘、开除、协调各个部门的员工"),emp("普通员工: 只能操作自己本部门的一些数据"),manager("经理: 管理本部分的所有员工");private final String description;Role(String description) {this.description = description;}public String getDescription() {return description;}
}

 User.java(用户对象)

package com.example;public class User {private String username;private String password;private Role role;public User(String username, String password, Role role) {this.username = username;this.password = password;this.role = role;}public String getUsername() { return username; }public String getPassword() { return password; }public Role getRole() { return role; }
}

UserNotFoundException.java (自定义异常类)

package com.example.exception;public class UserNotFoundException extends Exception {public UserNotFoundException(String message) {super(message);}
}

 PasswordErrorException.java(同上)

package com.example.exception;public class PasswordErrorException extends Exception {public PasswordErrorException(String message) {super(message);}
}

 AuthService.java(登录验证服务)

package com.example;import com.example.exception.*;import java.io.*;
import java.util.*;public class AuthService {private static final String USER_FILE = "users.txt";private Map<String, User> userMap = new HashMap<>();public AuthService() throws IOException {loadUsers();}private void loadUsers() throws IOException {BufferedReader reader = new BufferedReader(new FileReader(USER_FILE));String line;while ((line = reader.readLine()) != null) {String[] parts = line.split(":");if (parts.length == 3) {String username = parts[0].trim();String password = parts[1].trim();String roleStr = parts[2].trim();Role role = Role.valueOf(roleStr);userMap.put(username, new User(username, password, role));}}reader.close();}public User login(String username, String password)throws UserNotFoundException, PasswordErrorException {if (!userMap.containsKey(username)) {throw new UserNotFoundException("用户不存在!");}User user = userMap.get(username);if (!user.getPassword().equals(password)) {throw new PasswordErrorException("密码错误!");}return user;}
}

Main.java(主函数:用户输入 → 登录 → 权限展示) 

package com.example;import com.example.exception.*;import java.io.IOException;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);try {AuthService authService = new AuthService();System.out.print("请输入用户名:");String username = scanner.nextLine();System.out.print("请输入密码:");String password = scanner.nextLine();User user = authService.login(username, password);System.out.println("登录成功,欢迎您:" + user.getUsername());System.out.println("您的权限描述是:" + user.getRole().getDescription());} catch (UserNotFoundException | PasswordErrorException e) {System.out.println("登录失败:" + e.getMessage());} catch (IOException e) {System.out.println("读取用户数据失败:" + e.getMessage());} finally {scanner.close();}}
}

运行结果

知识点

  一、文件读写(IO 流)

使用 BufferedReader + FileReader 读取 users.txt 文件内容。

掌握读取本地文件的方法:readLine() + split() 拆分用户信息。

使用 close() 释放资源,或可升级为 try-with-resources

相关类/方法:

BufferedReader reader = new BufferedReader(new FileReader("users.txt")); String line = reader.readLine(); reader.close();

 二、字符串处理

使用 String.split(":") 分割字符串。

使用 trim() 清除多余空格,避免解析错误。

熟练处理用户输入与文件读取内容的对比逻辑。

三、集合(Map)

使用 HashMap<String, User> 存储用户名与对应的 User 对象,实现快速查找。

体现了数据结构在登录校验中的实际应用。

 示例: 

Map<String, User> userMap = new HashMap<>(); userMap.put("zhangsan", userObj);

四、枚举(enum

使用枚举 Role 表示用户角色,并封装每种角色的功能描述。

提高代码可读性与可维护性,替代了硬编码字符串。

 示例:

public enum Role { admin("超级管理员"), emp("普通员工") // ... }

 五、面向对象设计(OOP)

使用 User 类封装用户信息(用户名、密码、角色)。

使用 AuthService 类封装登录逻辑,实现模块化设计。

使用封装(private 成员 + public getter)、构造方法、对象之间的组合。

 六、自定义异常类(Exception Handling)

UserNotFoundException:表示用户不存在。

PasswordErrorException:表示密码错误。

login() 中抛出自定义异常,在 main() 中用 try-catch 捕获并处理。

示例:

throw new UserNotFoundException("用户不存在!"); catch (UserNotFoundException e) { ... }

七、控制台交互(Scanner)

使用 Scanner 获取用户输入的用户名与密码。

 示例:

Scanner scanner = new Scanner(System.in); String username = scanner.nextLine();

http://www.dtcms.com/a/493516.html

相关文章:

  • 玉溪网站网站建设重庆网站建设首选卓光
  • 免费建立平台网站北京网站设计培训学校
  • dedese网站台州免费做网站
  • 直播网站的建设长春建筑网站
  • 网站ip指向列表北京有多少家网站
  • 更新网站的步骤海口创建公司
  • 潍坊网站托管wordpress停用react
  • 携程网站票面价含机场建设费吗门店零售管理系统
  • 全国网站备案拍照wordpress+没有+sql
  • 网站建设宀金手指花总十五威海吧
  • 网站的设计需要什么.net网站开发用的书籍
  • 深圳尼高网站建设有人做彩票网站吗
  • 集团门户网站建设知名网站建设制作
  • 建筑招工网站顺德建设局网站
  • 在环评备案网站上做登记后会怎么样欧派家居全屋定制价格多少钱一平
  • 设计网站免费大全西充县建设路小学网站
  • 网站建设公司推荐万维科技网络服务平台有哪些
  • 襄阳网络公司 网站建设wordpress 万能搜索页
  • 银川专业做网站的公司青海西宁制作网站公司
  • 自己做网站要学前端和后端请拿笔记记下新域名
  • dedecms 网站栏目管理校园推广文案
  • django做网站怎样做爰免费视频网站
  • 个性化网站建设费用百度搜索广告价格
  • 营销型网站建设策划案泰安集团网站建设报价
  • 招聘网站开发的要求中国监理建设注册网站
  • 全国设计网站建设重庆建设工程信息查询
  • 服装网站建设优点有哪些珍爱网征婚免费下载
  • 利用小偷程序做网站快速提升网站权重
  • 找钟点工做的网站模仿网站
  • 网站建设400电话如何自己做网站腾讯