Java学习记录

您所在的位置:网站首页 password缩写是psw Java学习记录

Java学习记录

2023-11-07 02:57| 来源: 网络整理| 查看: 265

题目

完成某个计费系统的用户登录和注册模块,要求如下:   1) 创建一个User 类,包括:用户登录名(username)、密码(password)、用 户真实姓名(name)、电子邮件地址(email)属性和相应的构造方法及set/get 方 法。   2) 创建两个自定义异常类,一个LoginException,表示登录异常。一个 RegisterException, 表示注册异常。自定义的两个异常,都要求有一个接受字符 串类型参数的构造方法。   3) 创建一个UserBiz 接口,该接口中定义两个方法:   void register(String username, String password, String password2,   String name, String email) throws RegisterException //用户注册   void login(String username, String password) throws LoginException //用户登录   其中register 方法接受两个password 参数,原因是:在用户注册时,需要输入 两遍password,只有两次输入的password 一致,才允许注册。   4) 创建UserBiz 接口的实现类。其中   为该实现类创建一个属性,该属性为一个Map,用来保存已注册的用户信息。 Map 的键为用户登录名,值为登录名对应的User 对象。初始情况下,Map 中 保存的对象为以下两个:  

用户名密码  真实姓名   电子邮件  adminadmin  Administrator  [email protected]  cat   tomcat   [email protected]

register 方法在以下两种情况下抛出异常:   1) username 在Map 中已存在   2) 两次输入的password 不一致   login 方法在以下两种情况下抛出异常:   1) username 不存在   2) username 和password 不匹配   5) 创建一个UserView 接口,该接口中定义两个方法:   void login();   void register();     6) 创建UserView 接口的实现类。   该实现类的login 方法中,利用命令行,让用户输入用户名和密码,之后调用 UserBiz 中的login 方法。部分代码如下:   void login(){   System.out.println(“请输入用户名:”);   String username = /*读入用户名…*/;   System.out.println(“请输入密码”);   String password = /*读入密码*/;   //调用UserBiz 中的login 方法   }   该类的register 方法采用类似的方法,让用户输入注册时需要的信息,然后调用  UserBiz 中的register 方法。

User类: package billing_System; /** * 创建一个User 类,包括:用户登录名(username)、密码(password)、用 * 户真实姓名(name)、电子邮件地址(email)属性和相应的构造方法及set/get 方 * 法。 */ public class User { private String username; private String password; private String name; private String email; public User() { } public User(String username, String password, String name, String email) { this.username = username; this.password = password; this.name = name; this.email = email; } 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 String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } } LoginException 类 package billing_System; public class LoginException extends RuntimeException { public LoginException(String message) { super(message); } } RegisterException类 package billing_System; public class RegisterException extends RuntimeException { public RegisterException(String message) { super(message); } } UserBiz接口 package billing_System; /** * 创建一个UserBiz 接口,该接口中定义两个方法: * void register(String username, String password, String password2, * String name, String email) throws RegisterException //用户注册 * void login(String username, String password) throws LoginException //用户登录 * 其中register 方法接受两个password 参数,原因是:在用户注册时,需要输入 * 两遍password,只有两次输入的password 一致,才允许注册。 */ public interface UserBiz { void register(String username, String password, String password2, String name, String email) throws RegisterException; //用户注册 void login(String username, String password) throws LoginException; //用户登录 } UserBiz接口实现类UserBizImpl类 package billing_System; import java.util.HashMap; import java.util.Map; /** * 4) 创建UserBiz 接口的实现类。其中 * 为该实现类创建一个属性,该属性为一个Map,用来保存已注册的用户信息。 * Map 的键为用户登录名,值为登录名对应的User 对象。初始情况下,Map 中 * 保存的对象为以下两个: * 用户名 密码 真实姓名 电子邮件 * admin admin Administrator [email protected] * Tom cat tomcat [email protected] * register 方法在以下两种情况下抛出异常: * 1) username 在Map 中已存在 * 2) 两次输入的password 不一致 * login 方法在以下两种情况下抛出异常: * 1) username 不存在 * 2) username 和password 不匹配 */ public class UserBizImpl implements UserBiz { Map map = new HashMap(); { map.put("admin",new User("admin","admin","Administrator","[email protected]")); map.put("Tom",new User("Tom","cat","tomcat","[email protected] ")); } @Override public void register(String username, String password, String password2, String name, String email) throws RegisterException { if (map.get(username) == null){ if (password.equals(password2)) { map.put(username, new User(username, password, name, email)); System.out.println("注册成功!"); }else { throw new RegisterException("密码确认错误!"); } }else { throw new RegisterException("用户已存在!"); } } @Override public void login(String username, String password) throws LoginException { if (map.get(username) != null) { if ((map.get(username).getPassword()).equals(password)) { System.out.println("登录成功!"); }else { throw new LoginException("密码错误!"); } }else { throw new LoginException("用户不存在!"); } } } UserView 接口 package billing_System; /** * 创建一个UserView 接口,该接口中定义两个方法: * void login(); * void register(); */ public interface UserView { void login(); void register(); }  UserView 接口实现类UserViewImpl类 package billing_System; import java.util.Scanner; /** * 创建UserView 接口的实现类。 * 该实现类的login 方法中,利用命令行,让用户输入用户名和密码,之后调用 * UserBiz 中的login 方法。部分代码如下: * void login(){ * System.out.println(“请输入用户名:”); * String username = /读入用户名…/; * System.out.println(“请输入密码”); * String password= /读入密码/; * //调用UserBiz 中的login 方法 *} *该类的register 方法采用类似的方法,让用户输入注册时需要的信息,然后调用 *UserBiz 中的register 方法。 */ public class UserViewImpl implements UserView { Scanner input = new Scanner(System.in); UserBiz ub = new UserBizImpl(); @Override public void login() { System.out.println("请输入用户名:"); String username = input.next(); System.out.println("请输入密码:"); String password= input.next(); //调用UserBiz 中的login 方法 try { ub.login(username, password); }catch (Exception e) { System.out.println(e.getMessage()); } } @Override public void register() { System.out.println("请输入用户名:"); String username = input.next(); System.out.println("请输入密码:"); String password = input.next(); System.out.println("请输入确认密码:"); String password2 = input.next(); System.out.println("请输入真实姓名:"); String name = input.next(); System.out.println("请输入邮箱地址:"); String email = input.next(); //调用UserBiz 中的login 方法 try { ub.register(username, password, password2, name, email); }catch (Exception e) { System.out.println(e.getMessage()); } } } Main类 package billing_System; public class Main { public static void main(String[] args) { UserViewImpl uvi = new UserViewImpl(); while (true) { System.out.println("选择操作:\n\t1)登录\n\t2)注册\n\t其他)退出"); String key = uvi.input.next(); switch (key){ case "1": uvi.login(); break; case "2": uvi.register(); break; default: return; } } } }

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3