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跳出整個程序.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章