Java程序---学生管理系统的登录和注册

/**
 * 
 * 用户信息类,描述了用户的信息
 * */
public class User {
	/**
	 * 成员变量
	 * 
	 * */
	private String username ;
	private String password;
	
	
	public User() {
		super();
	}

	public User(String username, String password) {
		super();
		this.username = username;
		this.password = password;
	}

	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 class UserDaoImpl implements UserDao {
	
   private static ArrayList<User> array = new ArrayList<User>() ;
	//登陆
	@Override
	public boolean isLogin(String username, String password) {
		//注册完毕,才能登陆:用户都在集合中,需要遍历集合,遍历集合之前,还需要创建ArrayList
//		ArrayList<User> array = new ArrayList<User>() ;
		//定义一个标记
		boolean flag = false ;
		//遍历集合
		for(User u : array){
			//需要判断:如果u.getuserName == 本身的用户名 并且密码一致,就认为登陆成功
			//获取到每一个用户信息
			if(u.getUsername().equals(username) && u.getPassword().equals(password)){
				//修改标记
				flag = true ;
				break ;
			}
		}
		
		return flag ;
	}

	//注册
	@Override
	public void regist(User user) {
		//创建集合对象:(一般情况:没有告诉是用什么集合:默认是:ArrayList)
//		ArrayList<User> array = new ArrayList<User>() ;
		array.add(user) ;
	}

}
/**
 * 用户的操作接口,里面提供两个功能:登陆,注册
 * */
public interface UserDao {
	/**
	 * 用户登陆功能
	 * @param username
	 * 			用户名
	 * @param password
	 * 			用户密码
	 * @return 
	 * 		  返回值表示的意思用户登陆是否成功
	 * 
	 * */
	public abstract boolean isLogin(String username,String password) ;
	
	/**
	 * 
	 * 用户注册功能
	 * @param user
	 * 	需要注册的用户
	 * */
	public abstract void regist(User user) ;
}
/**
 * 猜数字小游戏
 * */
public class GuessNumberGame {
		
	//构造方法私有
	private GuessNumberGame(){
		
	}
	
	//静态方法
	public static void start(){
		//产生一个随机数
		int number = (int) (Math.random()*100 +1) ;
		
		//定义统计变量:
		int count = 0 ;
		
		//为了多次循环
		while(true){
			//创建键盘录入对象
			Scanner sc = new Scanner(System.in) ;
			
			System.out.println("请输入一个数字:");
			int guessNumber =sc.nextInt() ;
			
			//统计变量++
			count ++ ;
			
			//判断
			if(guessNumber > number){
				System.out.println("你要猜的数据:"+guessNumber +"大了");
			}else if(guessNumber<number){
				System.out.println("你要猜的数据:"+guessNumber+"小了了");
			}else{
				System.out.println("恭喜您,"+count+"次猜中了");
				break ;
			}
		}
	}
}
/**
 * 登陆注册案例的测试类
 * */
public class UserTest {
	public static void main(String[] args) {
		//为了能够回来,写一个while循环
		while(true){
			//给出选择界面,欢迎界面
			System.out.println("----------------------------欢迎光临----------------------------------");
			System.out.println("1  登陆");
			System.out.println("2  注册");
			System.out.println("3  退出");
			
			//创建键盘录入对象
			Scanner sc = new Scanner(System.in) ;
			
			
			//为了让同一个对象调用不同的功能:登陆和注册,将该对象定义swtich语句的外面
			UserDao ud = new UserDaoImpl() ;
			//录入并接收数据
			System.out.println("请输入您的选择:");
			String choiceString = sc.nextLine() ;
			
			//,swtich语句后面的表达式用String
			switch(choiceString){
			case"1" :
				//登陆界面
				System.out.println("--------------------登陆界面-----------------------------");
				System.out.println("请输入用户名:");
				String username = sc.nextLine() ;
				System.out.println("请输入密码:");
				String password = sc.nextLine() ;
				
                               boolean flag = ud.isLogin(username, password) ;
				if(flag){
					System.out.println("登陆成功,可以开始玩游戏了吗?");
					System.out.println("玩游戏吗?y/n");
					while(true){
						String resultString = sc.nextLine() ;
						if(resultString.equalsIgnoreCase("y")){
							//开始玩游戏了
							GuessNumberGame.start() ;
							System.out.println("还玩吗?y/n");
							
						}else{
							break ;
						}
					}
					System.out.println("谢谢使用,欢迎下次再来....");
					//如果一个while循环中嵌套了switch语句,那么break只表示结束swtich语句,并不能结束掉while循环
					//结束while循环,应该使用System里面exit(0);终止Jvm
					System.exit(0) ;

				}else{
					System.out.println("用户名或者密码输入错误,请重新登陆");
				}
			break ;
			case "2":
				//注册界面
				System.out.println("--------------------注册界面-----------------------------");
				System.out.println("请输入用户名:");
				String newUserName = sc.nextLine() ;
				System.out.println("请输入密码:");
				String newPassword = sc.nextLine() ;
				
				//将用户信息封装到User中
				User user = new User() ;
				user.setUsername(newUserName) ;
				user.setPassword(newPassword) ;
				ud.regist(user) ;
				System.out.println("注册成功");
			break ;
			case "3" :
			default :
				System.out.println("谢谢使用,下次再来!");
				System.exit(0) ; 
				break ;
			}
		}
		
	}
}
思考:在登录注册测试类中,当while语句中含有switch语句时,break语句只能跳出switch语句,应该使用System.in跳出整个程序.
  • 17
    点赞
  • 105
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值