您的位置:首页 > 编程语言 > Java开发

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

2017-10-01 20:43 761 查看
/**
*
* 用户信息类,描述了用户的信息
* */
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跳出整个程序.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息