模拟登录界面

本文档描述了一个简化版的用户管理系统实现,包括实体类User、数据库访问接口UserDao及其实现类UserDaoImpl。用户可以进行注册和登录操作,所有用户信息存储在一个ArrayList集合中。测试类UserTest用于模拟用户交互,通过键盘输入实现注册和登录功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现思路


按照包名划分:
    实体层:com.cn.entity/domain/pojo
                User类
                        1)该类是一个具体类
                        2)提供私有字段
                        3)提供公共访问方法setXXX()/getXXX()
                        4)实现接口:serializable 序列化接口(目前不用)
    业务接口层:serivce层  com.cn.service
                        登录:login()
                        注册:regist()
    业务接口实现层:com.cn.service.impl
                        调用dao层的功能访问数据库
                        实现登录和注册功能(访问数据)
    接口层(数据库访问层) dao层 :com.cn.dao
                        登录:login()
                        注册:regist()
    数据库访问实现层:com.cn.dao.impl
                        登录:查询数据库的用户表:是否存在用户
                        注册:给数据库中的用户表:增加一条数据(用户名和密码)
                        
                        
                        
                        
暂时:去掉service层,直接来实现

    实体类:com.cn.entity
            User类
                private String username;
                private String password
                
                xxx
                xxx
            com.cn.user.dao
    数据库访问接口层:UserDao   Dao(Data Access Object)
                login(String username,String password) ;//登录
                regist(User user) ;//注册
                
            com.cn.user.dao.impl
     dao接口实现层: UserDaoImpl
             成员位置://创建一个集合ArrayList集合对象
     
     
                 重写login和regist方法
                 
                 在注册功能
                 public void regist(User user){
                     
                     集合对象.add(user) ;
                 }
                 
                 //登录功能
                 public boolean isLogin(String username,String password){
                     
                     //假设:登录失败
                     boolean flag = false ;
                     //遍历集合
                     for(User u :集合对象){
                         
                         if(u!=null){
                             //加入判断:判断
                             if(u.getUsername().equals(username) && u.getPassword().equals(password)){
                                  flag = true ;
                                  break ;
                             }
                         }
                         return falg ;
                     }
                 }
                 
                 
                 
     测试类:com.cn.user.test
             UserTest
             
                     键盘录入数据
                     选择结构语句:switch
                
    

package com.cn.user.test;
import java.util.Scanner;
import com.cn.entity.User;
import com.cn.user.dao.UserDao;
import com.cn.user.dao.impl.UserDaoImpl;
//测试类
public class UserTest {
	public static void main(String[] args) {
		while(true) {
			//创建键盘录入对象
			Scanner sc=new Scanner(System.in);
			System.out.println("---------欢迎进入------------");
			System.out.println("---------------------------");
			System.out.println("1 注册");
			System.out.println("2 登录");
			System.out.println("3 退出");
			//录入数据
			//需要注册功能
			UserDao ud=new UserDaoImpl();
			
			String choiceNum=sc.nextLine();
			switch (choiceNum) {
			case "1": 
				//注册界面
				System.out.println("-----欢迎使用注册功能----");
				System.out.println("请您输入用户名");
				String username=sc.nextLine();
				System.out.println("请您输入密码");
				String password=sc.nextLine();
				
				//创建User对象:封装数据
				User user=new User();
				user.setUsername(username);
				user.setPassword(password);
				
//				//需要注册功能
				//注册和登录都需要创建接口对象(通过子实例化)
//				UserDao ud=new UserDaoImpl();
				ud.register(user);
				System.out.println("注册成功");
				
				break;
			case "2":
				//登陆界面
				System.out.println("-----欢迎使用登录功能----");
				System.out.println("请您输入用户名");
				String name=sc.nextLine();
				System.out.println("请您输入密码");
				String word=sc.nextLine();
				
				//调用isLogin方法
				boolean flag=ud.isLogin(name, word);
				if(flag) {
					System.out.println("登录成功");
//					break;//结束switch语句,不能结束循环语句
					System.exit(0);
				}else {
					System.out.println("您输入的用户名和密码有误,请重新输入");
				}
				break;
			case "3"://退出
				System.out.println("谢谢使用,欢迎下次再来");
				System.exit(0);
			default:
				
			}
		}
	}
}
package com.cn.user.dao.impl;

import java.util.ArrayList;

import com.cn.entity.User;
import com.cn.user.dao.UserDao;
/**
 * 用户数据库的接口实现
 * */
public class UserDaoImpl implements UserDao {
	private static ArrayList<User>array=new ArrayList<User>();
	//注册
	@Override
	public void register(User user) {
//		//需要ArrayList集合对象
//		ArrayList<User>array=new ArrayList<User>();
		//一旦录入数据后,将信息添加到集合中
		array.add(user);
	}
	//登录
	@Override
	public boolean isLogin(String username, String password) {
		//遍历集合:登录和注册所有的集合是同一个对象
		//假设登陆失败
		boolean flag=false;
		//遍历集合
		for(User u:array) {
			//获取用户名和密码,非空判断,防止空指针异常
			if(u!=null) {
				//键盘录入的用户名、密码和集合中存在的用户名、密码一致登录成功
				if(u.getUsername().equals(username) && u.getPassword().equals(password)) {
					//修改标记值
					flag=true;
					break;
				}
			}
		}
		return flag;
	}

}
package com.cn.user.dao;

import com.cn.entity.User;

/**
 * 用户数据库访问接口层
 * @author zhangyang
 *
 */
public interface UserDao {

	//定义两个功能
	/**
	 * 注册功能
	 * @param 接收的用户对象
	 */
	void register(User user) ;
	
	/**
	 * 登录功能
	 * @param username 键盘录入的用户名
	 * @param password 键盘录入的密码
	 * @return 返回登录是否成功,ture,表示登录成功;
	 */
	public abstract boolean  isLogin(String username ,String password);
}
package com.cn.entity;

import java.io.Serializable;

//实体类
public class User implements Serializable { //实体类网络中/流中传输:实现序列化接口

	private String username ;
	private String password ;
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	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;
	}
	@Override
	public String toString() {
		return "User [username=" + username + ", password=" + password + "]";
	}
}

 

 

 

 

好的,我可以为您提供一些思路和代码,您可以根据自己的需求进行修改和完善。 首先,我们需要使用PyQt5库来创建GUI界面,然后设计一个模拟的登陆界面,包括用户名和密码的输入框以及登陆按钮。 接下来,我们需要为登陆按钮添加一个响应函数,当用户点击登陆按钮时,程序会检查用户名和密码是否正确,如果正确,就会打开主界面,否则会弹出错误提示框。 下面是一个基本的登陆界面的代码示例: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QMessageBox class LoginWindow(QWidget): def __init__(self): super().__init__() # 设置窗口标题和大小 self.setWindowTitle('模拟登陆界面') self.setGeometry(300, 300, 300, 200) # 添加用户名和密码的标签和文本框 self.username_label = QLabel('用户名:', self) self.username_label.move(50, 50) self.username_text = QLineEdit(self) self.username_text.move(100, 50) self.password_label = QLabel('密码:', self) self.password_label.move(50, 80) self.password_text = QLineEdit(self) self.password_text.move(100, 80) self.password_text.setEchoMode(QLineEdit.Password) # 添加登陆按钮,并为其绑定响应函数 self.login_button = QPushButton('登陆', self) self.login_button.move(100, 120) self.login_button.clicked.connect(self.login) # 登陆响应函数 def login(self): # 获取用户输入的用户名和密码 username = self.username_text.text() password = self.password_text.text() # 检查用户名和密码是否正确 if username == 'admin' and password == '123456': # 如果正确,则打开主界面 self.accept() else: # 如果错误,则弹出错误提示框 QMessageBox.warning(self, '错误', '用户名或密码错误!') if __name__ == '__main__': app = QApplication(sys.argv) login_window = LoginWindow() if login_window.exec_() == QDialog.Accepted: # 打开主界面 print('登陆成功!') sys.exit(app.exec_()) ``` 在这个示例中,我们使用了QLabel、QLineEdit、QPushButton和QMessageBox等控件,为登陆按钮绑定了响应函数,当用户点击登陆按钮时,程序会检查用户名和密码是否正确,如果正确,就会打开主界面,否则会弹出错误提示框。 您可以根据自己的需求进行修改和完善,比如添加记住密码和自动登录等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值