精华内容
下载资源
问答
  • C语言实现登录注册

    万次阅读 多人点赞 2019-01-27 09:36:52
    这是一个用纯C语言和文件操作实现的系统的登录注册和忘记密码功能。可以用于c语言大作业的登录系统。下面分享一下具体的代码。 首先定义一个结构体来存放用户的注册信息,账号密码等。 typedef struct The_users /...

    这是一个用纯C语言和文件操作实现的系统的登录、注册和忘记密码功能。可以用于c语言大作业的登录系统。下面分享一下具体的代码。
    首先定义一个结构体来存放用户的注册信息,账号密码等。

    typedef struct The_users   //typedef 可以定义结构体别名
    {
        char id[11]; //账号 
        char pwd[20]; //密码 
        char name[15];//姓名为字符串 
        char sex; //性别为单个字符
    	long phone; //电话号码为长整型 
    }users;
    

    然后写一个函数用来创建储存用户账号密码的文件。

    /*创建储存用户账号密码的文件*/ 
    void Create_File()
    {
        FILE *fp;
        if ((fp = fopen("users.txt","rb"))==NULL)                 /*如果此文件不存在*/
        {
            if ((fp = fopen("users.txt","wb+"))==NULL)
            {
                printf("无法建立文件!\n");
                exit(0);
                
            }
        }
    }
    

    注册:将存放用户的信息的结构体直接存入文件中,每次存入分配该结构体大小的空间,然后该用户的信息就可以按结构体整体来读取。还加入了一些错误提示,如果输入错误就提示重新输入。

    /*注册账号*/ 
    void registers()  //按结构体的大小,一次写入或者读入1个结构体大小
         {    
             users a,b;//结构体 The_users 重命名定义
             FILE *fp;
             char temp[20];
             int count = 0;
             printf("欢迎来到注册界面!\n");
             Sleep(1000);
             fp = fopen("users.txt","r");
             
             fread(&b, sizeof(struct The_users), 1, fp); //读入一个结构体字符块 到b
              printf("请输入账号\n");
             scanf("%s",&a.id);
             
             
             while (1)
             {    
                 if (strcmp(a.id, b.id)) /*如果两串不相等*/
                 {
                     if (!feof(fp))    /*如果未到文件尾*/                                
                         
                         
                     {
                         fread(&b, sizeof(struct The_users), 1, fp);
                     }
                     else
                         break;
                 }
                 else
    
                 {   
                     printf("此用户名已存在!请重新注册!\n"); 
                     Sleep(1000);
                     fclose(fp);
                     return;      
                 }
             }
             printf("请输入姓名:\n");
             scanf("%s",&a.name);
             printf("请输入性别(f(女)/m(男)):\n");
             scanf(" %c",&a.sex);
             do{
             	if(a.sex != 'f' && a.sex != 'm'){
    			 	printf("性别输入错误!请重新输入!\n");
    		        scanf("%c",&a.sex);
    			 }
    		 }while(a.sex != 'f' && a.sex != 'm');
    		 getchar();
             printf("请输入电话号码:\n");
             scanf("%ld",&a.phone);
             printf("请输入密码\n");
             scanf(" %s",&a.pwd);
             printf("请确认密码\n");
             scanf(" %s",&temp);
    		 do{
             	if(!strcmp(a.pwd,temp)){
             		fp = fopen("users.txt","a");
    		         fwrite(&a, sizeof(struct The_users), 1, fp);
    		         printf("账号注册成功,请登录!\n"); 
    		         Sleep(500);
    		         fclose(fp);
    				 return;
    			 }else{
    			 	printf("两次密码不匹配!请重新输入!\n");
    		         scanf("%s",&a.pwd);
    		         printf("请确认密码\n");
    		         scanf("%s",&temp);
    			 }
    		 }while(1);
         }
    

    登录:先输入账号和密码。然后按账号从文件中读取,如果账号匹配就读取密码,如果密码也匹配就登录成功,否则重新输入密码。

    /*登录系统*/ 
    void  Input_login()
    {
        users a,b;//定义结构体The_users别名
        
        FILE *fp;
        printf("欢迎来到登录界面!\n");
             Sleep(1000);
        fp = fopen("users.txt","r");
        
        fread(&b, sizeof(struct The_users), 1, fp); //读入一个结构体字符块 写入b
        printf("请输入账号\n");
        scanf("%s",&a.id);   
        
                 while (1)
               {   
    	           if (strcmp(a.id, b.id)==0)         //如果有此用户名
    	           {
    	               break;       
    	           }
    	           
    	           else 
    	           {
    	               if (!feof(fp))  //如果文件没有读完                            
    	            
    	               {
    	                   fread(&b, sizeof(struct The_users), 1, fp);
    	               }
    	               
    	               else
    	               {
    	                   printf("此用户名不存在,请重新输入!\n");
    					   Sleep(500); 
    	                   fclose(fp);  
    					   return;              
    	               }
    	           }
           }
           printf("请输入密码\n");
           	scanf("%s",&a.pwd); 
        do{   
    	       
    		if (strcmp(a.pwd, b.pwd)==0)            /*如果密码匹配*/
    	           
    	       {  
    	          fclose(fp);
    	          printf("登录成功,欢迎使用!");
    	          Sleep(500);
    	          return;
    	          }
    	       else  
    	       {    printf("密码不正确!请重新输入密码\n");
    	       		scanf("%s",&a.pwd);         
    	       }
    	}while(strcmp(a.pwd, b.pwd)==0);
           
    }
    

    找回密码:根据输入的账号获取该账号的结构体信息,然后与其他信息进行匹配,如果全部匹配成功,则显示该账号的密码。

    /*找回密码*/
     
    void reback()  //按结构体的大小,一次写入或者读入1个结构体大小
         {    
             users a,b;//结构体 The_users 重命名定义
             FILE *fp;
             char temp[20];
             int count = 0;
             printf("欢迎来到找回密码界面!\n");
             Sleep(1000);
             fp = fopen("users.txt","r");
        
        	fread(&b, sizeof(struct The_users), 1, fp); //读入一个结构体字符块 写入b
        	printf("请输入账号\n");
        	scanf("%s",&a.id);   
        
                 while (1)
               {   
    	           if (strcmp(a.id, b.id)==0)         //如果有此用户名
    	           {
    	               break;       
    	           }
    	           
    	           else 
    	           {
    	               if (!feof(fp))  //如果文件没有读完                            
    	            
    	               {
    	                   fread(&b, sizeof(struct The_users), 1, fp);
    	               }
    	               
    	               else
    	               {
    	                   printf("此用户名不存在,请重新输入!\n");
    					   Sleep(500); 
    	                   fclose(fp);  
    					   return;              
    	               }
    	           }
           }
             printf("请输入姓名:\n");
             scanf("%s",&a.name);
             do{
             	if(strcmp(a.name,b.name)){
    			 	printf("姓名输入错误!请重新输入!\n");
    		        scanf("%s",&a.name);
    			 }
    		 }while(strcmp(a.name,b.name));
             printf("请输入电话号码:\n");
             scanf("%ld",&a.phone);
             do{
             	if(a.phone != b.phone){
    			 	printf("电话号码输入错误!请重新输入!\n");
    		        scanf("%ld",&a.phone);
    			 }
    		 }while(a.phone != b.phone);
            printf("您的密码是:%s",b.pwd);
            Sleep(3000);
    }
    

    欢迎访问我的博客网站:http://jie12366.xyz:8081

    展开全文
  • JavaWeb入门登录注册系统

    万次阅读 多人点赞 2018-07-31 04:37:20
    JavaWeb入门先从登录注册系统开始做起. 我的这个入门教程特别简单大家按步骤做就行一定没有问题的!源码在下面一个字不少大家认真仔细学   1、需要预先了解的几个基本概念,JSP文件和HTML文件还有XML文件,还有...

    JavaWeb入门先从登录注册系统开始做起.

    我的这个入门教程特别简单大家按步骤做就行一定没有问题的!源码在下面一个字不少大家认真仔细学

     

    1、需要预先了解的几个基本概念,JSP文件和HTML文件还有XML文件,还有如何创建一个WEB项目。这些东西都是百度可以查到的基本知识。

    2、准备工作就是配置好JAVA运行环境和Tomcat运行环境。

    3、建立一个JavaWeb项目,随便在一个项目上右键new 选择Ohter

    然后新建一个Dynamic Web Project项目

    这个就是JAVAWeb项目了。准备工作完成,现在开始制作项目

    这里主要用java Resources文件夹还有WebContent文件夹。

    在java Resources文件夹的src下面放一些java文件一般是javaben 或者放Servlet。然后WebContent下面的放html文件或者jsp文件一些前端文件。
     

    我们的登陆注册系统 网页页面就放在WebContent下面,我们的验证账号密码是否正确还有添加新账号的这些功能代码就放在JavaResources 下面的SRC 下面 ,大概图像如下:

    大家看见了吧。

    然后大家就开始编写 前台html代码和后台操作代码:

    比如一个简单的前台页面

    建立一个login.jsp 放在WebContent下面,源码如下

    比较重要的几个点我都画了起来比如 编码格式必须要换! 然后就是 action这个服务器名 就是一个会要提交的服务器 对你数据进行加工处理返回结果的东西, method是提交方式 post比较好。

    效果图:

    然后还有一个注册界面,再建立一个register.jsp文件

    比较重要的几个点我就画出来了,记得不要出错!

    运行效果图:

    这样登录注册系统前台就写完了 三分之一完成!

     

    然后开始写 后台代码功能代码!

    先建立一个 RegisterServlet.java 说的好听点就是注册的服务器 处理注册界面上传的账号密码 存到数据库里面。

    再建立一个 DbUtil .java 链接数据库用的!这是一个工具包 专门用来连接数据库用 代码如下 用之前记得把mysql的jar包导入到项目里面

    import java.sql.Connection;
    import java.sql.DriverManager;

    public class DbUtil {
        
        /**
         *
         * @DbUtil类的作用 jdbc 的一些简单配置
         * dbUrl
         * dbusername
         * dbpassword
         * jdbcName
         * @author 蒋鑫
         */

        private String dbUrl="jdbc:mysql://localhost:3306/mysql57";


        private String dbUserName="root";
        private String dbPassword="root";

        这里改为你数据库的账号和密码


        private String jdbcName="com.mysql.jdbc.Driver";
        
        /**
         * 获取数据库连接
         * @return
         * @throws Exception
         */
        public Connection getCon() throws Exception{
            Class.forName(jdbcName);
            Connection con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
            return con;
        }
        
        /**
         * 关闭数据库连接
         * @param con
         * @throws Exception
         */
        public void closeCon(Connection con) throws Exception{
            if(con!=null){
                con.close();
            }
        }
        
        /**
         * 建立一个main方法测试是否可以连接数据库成功!
         * @param args
         * @author 蒋鑫
         */
        
        public static void main(String[] args) {
            DbUtil dbUtil=new DbUtil();
            try {
                dbUtil.getCon();
                System.out.println("数据库连接成功");
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    这个工具包可以用很久的。然后写DAO类执行增加查询操作

    建立一个DAO.java文件这个是用来对数据库进行操作的后台程序

    里面代码如下

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;

     

    public class DAO {
        /**
         * login(Connection con,User user) 登录验证
         * (Connection con,User user)注册功能
         * @author 蒋鑫
         */
        public user login(Connection con,user user) throws Exception{
            user resultUser=null;
            String sql="select * from t_user where userName=? and password=?";
            PreparedStatement pstmt=con.prepareStatement(sql);
            pstmt.setString(1, user.getUserName());
            pstmt.setString(2, user.getPassword());
            ResultSet rs=pstmt.executeQuery();
            if(rs.next()){
                resultUser=new user();
                resultUser.setUserName(rs.getString("userName"));
                resultUser.setPassword(rs.getString("password"));
            }
            return resultUser;
        }
        
        //注册功能
        public boolean register(Connection con,user user) throws Exception{
            boolean flag=false;
            PreparedStatement pstmt = null;
            String sql="INSERT INTO t_user(userName,password)VALUES(?,?)";
            pstmt = con.prepareStatement(sql);
            pstmt.setString(1, user.getUserName());
            pstmt.setString(2, user.getPassword());
            if (pstmt.executeUpdate() > 0) {
                flag = true;
            }
            return flag;
        }

    }

     

    不要忘了 用来存储从数据库读出来的和从前台接收到的账号密码的 pojo类 建立一个user.java

     

    写好之后准备工作完成 然后继续开始写 RegisterServlet.java 服务里面的内容。源码

    import java.io.IOException;
    import java.sql.Connection;

    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    @WebServlet("/RegisterServlet")
    public class RegisterServlet extends HttpServlet{

        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            this.doPost(req, resp);
        }

        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        
        
            /**
             * 接收前台传来的值 账号和密码
             */
            String userName=req.getParameter("userName");
            
            String password=req.getParameter("password");
            
            DbUtil db= new DbUtil();
            user user=new user(userName,password);
            DAO dao=new DAO();
            try {
                //数据库链接
                Connection con=db.getCon();
                
                if(dao.register(con,user)) {
                    resp.sendRedirect("login.jsp");
                }else {
                    resp.sendRedirect("register.jsp");
                }
                
                
            } catch (Exception e) {
                e.printStackTrace();
            }
        
        }
    }

     然后继续开始写 LoginServlet.java 服务里面的内容。源码

    import java.io.IOException;
    import java.sql.Connection;

    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    @WebServlet("/LoginServlet")
    public class LoginServlet extends HttpServlet{
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            this.doPost(req, resp);
        }

        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        
        
            /**
             * 接收前台传来的值 账号和密码
             */
            String userName=req.getParameter("userName");
            
            String password=req.getParameter("password");
            
            DbUtil db= new DbUtil();
            user user=new user(userName,password);
            DAO dao=new DAO();
            try {
                //数据库链接
                Connection con=db.getCon();
                
                if(dao.login(con, user)!=null) {
                    resp.sendRedirect("ok.jsp");
                }else {
                    resp.sendRedirect("register.jsp");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    都写好之后 写一个ok.jsp如果登录成功就进入这个页面 没有成功就不进去,停留在原来界面。

    还有数据库的设计。

    表名 user

    列表 username 类型 varchar 主键 非空

    列表password 类型varchar

    数据库里面的内容就是这些不管你有的是什么数据库 sql还是mysql 。

    所以工作完成了看下演示效果吧

     

     

     

     

    总结:

    1.在正确的位置建立这些正确的文件

     

    然后里面的代码我都在上面有写 你们可以一一对战着学习 ,好了 马上四点半了 我要睡觉了 明天早上8点还有起床的,大家写的时候多注意细节单词拼写什么的。

    这是我的详细视频教学,还有全部源代码压缩成了一个包在这里地址可以下载,我本想免费给大家的。但是上传后至少设置一积分。所以如果按照上面没有做出来的同学可以去下载一下里面还有视频教学。其实上面已经给出了所以的项目文件名字还有所以的项目文件里面的源代码 没有一个省略的 我自己看了又检查了一遍!不想自己拼装的同学可以下载我的压缩包里面有项目还有视频。谢谢大家阅读我的文章到此结束!

    https://download.csdn.net/download/qq_42499475/10569478

     

     

     

     

    展开全文
  • iOS简单登录注册demo

    2015-06-12 16:43:47
    一个简易的iOS登录注册页面的跳转,用户的注册信息保存在本地
  • Android登录注册

    万次阅读 多人点赞 2017-12-11 14:52:45
    Android 登录注册页面实现分享学了一段时间的Android开发,通过写博客记录一下学习过程遇到的问题和一些想要分享的东西。页面效果如图所示:整个登录和注册页面都是连接服务器进行操作的,客户端向服务端发出请求,...

    Android 登录注册

    学了一段时间的Android开发,通过写博客记录一下学习过程遇到的问题和一些想要分享的东西。
    页面效果如图所示:

    这里写图片描述这里写图片描述

    整个登录和注册页面都是连接服务器进行操作的,客户端向服务端发出请求,服务端接收请求并进行相应的处理。登录过程中,客户端将用户输入的账号和密码发送给服务器,服务端查询数据库验证登录是否成功,返回登录结果。注册过程中,服务端先查询用户输入的账号是否存在,若存在则要求用户更改账号名,不存在则对数据库执行插入数据操作,返回注册结果。

    1、登录页面代码

    public class LoginActivity extends Activity {
        private SharedPreferences.Editor editor;
    
        private EditText accountEdit;
    
        private EditText passwordEdit;
    
        private Button login;
    
        private static final int OK = 200;
        private CheckBox rememberPass;
        private SharedPreferences sp;
    
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_login);
            //getWindow().setBackgroundDrawableResource(R.drawable.login);
            sp = getSharedPreferences("info1.txt", MODE_PRIVATE);
            accountEdit = (EditText) findViewById(R.id.user);
            passwordEdit = (EditText) findViewById(R.id.pass);
            rememberPass = (CheckBox) findViewById(R.id.remember_pass);
            login = (Button) findViewById(R.id.login);
            boolean isRemember = sp.getBoolean("remember_password", false);
            if (isRemember) {
                //将账号密码都设置到文本框中
                String account = sp.getString("account", "");
                String password = sp.getString("password", "");
                accountEdit.setText(account);
                passwordEdit.setText(password);
                rememberPass.setChecked(true);
            }
            login.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    final String username = accountEdit.getText().toString();
                    final String password = passwordEdit.getText().toString();
                    //服务端路径
                    final String serverPath = "http://xxx.xxx.xxx.xxx:8080/ServletTest/login";
                    if (TextUtils.isEmpty(username) || TextUtils.isEmpty(password)) {
                        Toast.makeText(LoginActivity.this,"用户名或密码不能为空!",Toast.LENGTH_SHORT).show();
                    } else {
                        editor = sp.edit();
                        if (rememberPass.isChecked()) {
                            editor.putBoolean("remember_password", true);
                            editor.putString("account", username);
                            editor.putString("password", password);
                        } else {
                            editor.clear();
                        }
                        editor.commit();
                        new Thread(new Runnable() {
                            @Override
                            public void run() {
                                try {
                                    //使用GET方式请求服务器只能这样
                                    URL url = new URL(serverPath + "?username=" + username + "&password=" + password);
                                    HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                                    httpURLConnection.setRequestMethod("GET");
                                    httpURLConnection.setConnectTimeout(5000);
                                    httpURLConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0");
                                    int responseCode = httpURLConnection.getResponseCode();
                                    if (200 == responseCode) {
                                        InputStream inputStream = httpURLConnection.getInputStream();
                                        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
                                        final String responseMsg = bufferedReader.readLine();
                                        runOnUiThread(new Runnable() {
                                            @Override
                                            public void run() {
                                                if (responseMsg.equals("true")){
                                                    Toast.makeText(LoginActivity.this, "登录成功!", Toast.LENGTH_LONG).show();
                                                }else {
                                                    Toast.makeText(LoginActivity.this, "登录失败!", Toast.LENGTH_LONG).show();
                                                }
                                            }
                                        });
                                        bufferedReader.close();
                                        httpURLConnection.disconnect();
                                    } else {
                                   
                                    }
                                } catch (Exception e) {
                                    e.printStackTrace();
                                }
                            }
                        }).start();
                    }
                }
            });
    
            TextView tv_register=(TextView) findViewById(R.id.register);
            tv_register.setClickable(true);
            tv_register.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                //点击“没有账号?去注册”跳转至注册页面
                    Intent intent2=new Intent(LoginActivity.this,RegisterActivity.class);
                    startActivity(intent2);
                }
            });
        }
    }
    
    

    2、注册页面代码

    public class RegisterActivity extends Activity implements View.OnClickListener {
        private EditText user;
        private EditText pw;
        private EditText pw2;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.activity_register);
    
            user = (EditText) findViewById(R.id.et_user_register);
            pw = (EditText) findViewById(R.id.et_pass_register);
            pw2 = (EditText) findViewById(R.id.et_pass_register2);
            Button button = (Button) findViewById(R.id.register);
    
            button.setOnClickListener(this);
    
        }
    
        @Override
        public void onClick(View v) {
            final String username1 = user.getText().toString().trim();
            final String password1 = pw.getText().toString().trim();
            final String password2 = pw2.getText().toString().trim();
            //服务端地址
            final String serverPath = "http://xxx.xxx.xxx.xxx:8080/ServletTest/register";
    
            if (TextUtils.isEmpty(username1) || TextUtils.isEmpty(password1) || TextUtils.isEmpty(password2)) {
                Toast.makeText(RegisterActivity.this, "请输入用户名,密码和确认密码!!!", Toast.LENGTH_SHORT).show();
            } else {
                if (!(password1.equals(password2))) {
                    Toast.makeText(RegisterActivity.this, "两次输入的密码不同,请重新输入!!!", Toast.LENGTH_SHORT).show();
                } else {
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            try {
                                //使用GET方式请求服务器只能这样
                                URL url = new URL(serverPath + "?username=" + username1 + "&password=" + password1);
                                HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                                httpURLConnection.setRequestMethod("GET");
                                httpURLConnection.setConnectTimeout(5000);
                                httpURLConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0");
                                final int responseCode = httpURLConnection.getResponseCode();
                                if (200 == responseCode) {
                                    InputStream inputStream = httpURLConnection.getInputStream();
                                    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
                                    final String responseMsg = bufferedReader.readLine();
                                    runOnUiThread(new Runnable() {
                                        @Override
                                        public void run() {
                                            if (responseMsg.equals("equal")){
                                                Toast.makeText(RegisterActivity.this, "账号存在,请更改用户名!!", Toast.LENGTH_LONG).show();
    
                                            }else if(responseMsg.equals("true")){
                                                Toast.makeText(RegisterActivity.this, "注册成功!", Toast.LENGTH_LONG).show();
                                                //注册成功跳转登录界面
                                                Intent intent=new Intent(RegisterActivity.this,LoginActivity.class);
                                                startActivity(intent);
                                            }else {
                                                Toast.makeText(RegisterActivity.this, "注册失败!", Toast.LENGTH_LONG).show();
                                            }
                                        }
                                    });
                                    bufferedReader.close();
                                    httpURLConnection.disconnect();
                                } else {
                                    
                                }
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        }
                    }).start();
                }
            }
        }
    }
    
    

    3、在AndroidManifest.xml清单文件中添加Android联网权限

    <uses-permission android:name="android.permission.INTERNET" />
    

    注:页面布局比较简单就不给出了

    展开全文
  • 今天用QQ的时候想到了,不如用android studio 做一个类似于这样的登录软件。当然QQ的实现的功能特别复杂,UI界面也很多,不是单纯的一时新奇就可以做出来的。就是简单的实现了一些功能,做了三个界面;1.登录界面。2...

    小项目框架

    今天用QQ的时候想到了,不如用android studio 做一个类似于这样的登录软件。当然QQ的实现的功能特别复杂,UI界面也很多,不是单纯的一时新奇就可以做出来的。就是简单的实现了一些功能,做了三个界面;1.登录界面。2.注册界面。3.登陆后的界面。

    功能描述

    登录按钮------按钮实现跳转到下一个界面,并且判断输入的账号、密码是否符合规则(不为空),提示,登陆成功或失败
    注册按钮------按钮实现跳转到注册界面

    登录界面
    在这里插入图片描述
    main_activity.xml

     <LinearLayout
            android:id="@+id/number"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/iv"
            android:layout_centerVertical="true"
            android:layout_marginBottom="5dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="15dp"
            android:background="#ffffff">
            <TextView
                android:id="@+id/tv_number"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="10dp"
                android:text="账号"
                android:textColor="#000"
                android:textSize="20dp" />
            <EditText
                android:id="@+id/et_username"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:background="@null"
                android:padding="10dp" />
        </LinearLayout>
        <LinearLayout
            android:id="@+id/password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/number"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:background="#ffffff">
            <TextView
                android:id="@+id/tv_password"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="10dp"
                android:text="密码"
                android:textSize="20dp"
                android:textColor="#000" />
            <EditText
                android:id="@+id/et_password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_toRightOf="@id/tv_password"
                android:background="@null"
                android:inputType="textPassword"
                android:padding="10dp" />
        </LinearLayout>
        <Button
            android:id="@+id/button_login"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/password"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="60dp"
            android:background="#3c8dc4"
            android:text="登录"
            android:textColor="#ffffff"
            android:textSize="20dp" />
        <Button
            android:id="@+id/button_register"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/button_login"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="30dp"
            android:background="#b7585556"
            android:text="注册"
            android:textColor="#ffffff"
            android:textSize="20dp" />
    
        <CheckBox
            android:checked="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="记住密码"
            android:id="@+id/checkBox"
            android:layout_below="@+id/password"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"/>
    

    注册界面
    确定注册------按钮实现注册,判断以上四个注册信息是否符合规则,判断两次输入密码是否一样,并且不为空。并且显示提示信息
    返回登录------按钮实现跳转到刚才的登录界面
    在这里插入图片描述
    main_activity.java

    
    public class MainActivity extends AppCompatActivity {
        private EditText et_username;
        private EditText et_password;
        private EditText et_password2;
        private EditText et_mail;
        private Button btn_login;
        private Button btn_register;
        private CheckBox checkbox;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Map<String, String> userInfo = SaveInfo.getSaveInformation(this);
            if (userInfo != null) {
                et_username.setText(userInfo.get("username"));
                et_password.setText(userInfo.get("password"));
            }
            et_username =(EditText) findViewById(R.id.et_username);
            et_password =(EditText) findViewById(R.id.et_password);
            et_password2 =(EditText) findViewById(R.id.reg_password2);
            et_mail = (EditText) findViewById(R.id.reg_mail);
            checkbox = (CheckBox) findViewById(R.id.checkBox);
            btn_login =(Button) findViewById(R.id.button_login);
            btn_register =(Button) findViewById(R.id.button_register);
            btn_login.setOnClickListener(new MyButton());
            btn_register.setOnClickListener(new MyButton());
                        }
        public  class MyButton implements View.OnClickListener{
            @Override
            public void onClick(View view){
                String username =et_username.getText().toString().trim();
                String password =et_password.getText().toString().trim();
                switch (view.getId()) {
                    //当点击登录按钮时
                    case R.id.button_login:
                        if(TextUtils.isEmpty(username) || TextUtils.isEmpty(password)){
                            Toast.makeText(MainActivity.this,"密码或账号不能为空",Toast.LENGTH_SHORT).show();
                        } else {
                            if(checkbox.isChecked()){
                                //保存密码的操作
                            }
                            Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_SHORT).show();
                                Intent intent = new Intent(MainActivity.this, LoginActivity.class);
                                startActivity(intent);
                            }
                        break;
                    //当点击注册按钮事件时
                    case R.id.button_register:
                        Intent intent = new Intent(MainActivity.this,RegisterActivity.class);
                        startActivity(intent);
                        break;
    
                }
            }
        }
                    }
    

    register_activity

        <TextView
            android:layout_marginTop="60dp"
            android:id="@+id/reg_number1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="账号:"
            android:textColor="#000"
            android:textSize="20dp" />
        <EditText
            android:layout_alignBottom="@+id/reg_number1"
            android:layout_toRightOf="@+id/reg_number1"
            android:id="@+id/reg_username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp" />
        <TextView
            android:id="@+id/reg_number2"
            android:layout_marginTop="5dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/reg_number1"
            android:padding="10dp"
            android:text="密码:"
            android:textColor="#000"
            android:textSize="20dp" />
        <EditText
            android:layout_alignBottom="@id/reg_number2"
            android:layout_toRightOf="@+id/reg_number2"
            android:id="@+id/reg_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp" />
        <TextView
            android:id="@+id/reg_number3"
            android:layout_marginTop="5dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/reg_number2"
            android:padding="10dp"
            android:text="密码:"
            android:textColor="#000"
            android:textSize="20dp" />
        <EditText
            android:layout_alignBottom="@id/reg_number3"
            android:layout_toRightOf="@+id/reg_number3"
            android:id="@+id/reg_password2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp" />
        <TextView
            android:id="@+id/reg_number4"
            android:layout_marginTop="5dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/reg_number3"
            android:padding="10dp"
            android:text="邮箱:"
            android:textColor="#000"
            android:textSize="20dp" />
        <EditText
            android:layout_alignBottom="@id/reg_number4"
            android:layout_toRightOf="@+id/reg_number4"
            android:id="@+id/reg_mail"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp" />
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="确定注册"
            android:background="#74e674"
            android:id="@+id/reg_btn_sure"
            android:layout_marginTop="38dp"
            android:layout_below="@+id/reg_mail"
            android:layout_marginLeft="50dp" />
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="返回登录"
            android:background="#f27758"
            android:id="@+id/reg_btn_login"
            android:layout_alignBottom="@id/reg_btn_sure"
            android:layout_toRightOf="@id/reg_btn_sure"
            android:layout_marginLeft="60dp"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="账号注册"
            android:textSize="30dp"
            android:layout_marginTop="5dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />
    </RelativeLayout>
    

    registeractivity.java

    public class RegisterActivity extends AppCompatActivity {
        private EditText reg_username;
        private EditText reg_password;
        private EditText reg_password2;
        private EditText reg_mail;
        private Button reg_btn_sure;
        private Button reg_btn_login;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_register);
            reg_username = (EditText) findViewById(R.id.reg_username);
            reg_password = (EditText) findViewById(R.id.reg_password);
            reg_password2 = (EditText) findViewById(R.id.reg_password2);
            reg_mail = (EditText) findViewById(R.id.reg_mail);
            reg_btn_sure = (Button) findViewById(R.id.reg_btn_sure);
            reg_btn_login = (Button) findViewById(R.id.reg_btn_login);
            reg_btn_sure.setOnClickListener(new RegisterButton());
            reg_btn_login.setOnClickListener(new RegisterButton());
        }
    
        public class RegisterButton implements View.OnClickListener {
            @Override
            public void onClick(View v) {
                String username = reg_username.getText().toString().trim();
                String password = reg_password.getText().toString().trim();
                String password2 = reg_password2.getText().toString().trim();
                String mail = reg_mail.getText().toString().trim();
                switch (v.getId()) {
                    //注册开始,判断注册条件
                    case R.id.reg_btn_sure:
                        if (TextUtils.isEmpty(username) || TextUtils.isEmpty(password) || TextUtils.isEmpty(password2) || TextUtils.isEmpty(mail)) {
                            Toast.makeText(RegisterActivity.this, "各项均不能为空", Toast.LENGTH_SHORT).show();
                        } else {
                            if (TextUtils.equals(password, password2)) {
                                //执行注册操作
                                SaveInfo.SaveInformation(RegisterActivity.this,username,password,password2,mail);
                                Toast.makeText(RegisterActivity.this,"注册成功,请返回登录",Toast.LENGTH_SHORT).show();
                            } else {
                                Toast.makeText(RegisterActivity.this, "两次输入的密码不一样", Toast.LENGTH_SHORT).show();
                            }
                        }
                            break;
                            case R.id.reg_btn_login:
                                Intent intent = new Intent(RegisterActivity.this, MainActivity.class);
                                startActivity(intent);
                                break;
    
                        }
                }
            }
        }
    

    登录成功界面创建一个布局文件就可以了,写上你想要的东西,我自己就是创建了一个布局,什么都没有,所以就在这里不写了
    在这里因为要做一个保存操作,所以创建了一个java工具类,其中定义了两个方法,一个保存登录名和密码,一个负责调用保存的登录名和密码
    saveinfo

    public class SaveInfo {
        public static boolean SaveInformation(Context context, String username, String password, String password2, String mail) {
            try {
                FileOutputStream fos = context.openFileOutput("data.txt", Context.MODE_APPEND);
                fos.write(("用户名:" + username + " 密码:" + password + "邮箱:" + mail).getBytes());
                fos.close();
                return true;
            } catch (Exception e) {
                e.printStackTrace();
                return false;
            }
        }
    
        public static Map<String, String> getSaveInformation(Context context) {
            try {
                FileInputStream fis = context.openFileInput("data.txt");
                BufferedReader br = new BufferedReader(new InputStreamReader(fis));
                String str = br.readLine();
                String[] infos = str.split("用户名:"+"密码:"+"邮箱:");
                Map<String, String> map = new HashMap<String, String>();
                map.put("username", infos[0]);
                map.put("password", infos[1]);
                fis.close();
                return map;
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    }
    

    示例图片
    注册账号
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    【评论需要解决的问题或者文章中的不恰当的地方,接受改正】

    展开全文
  • bootstrap做登录注册页面带验证

    千次下载 热门讨论 2015-12-15 18:26:05
    用bootstrap做的登录注册页面,使用validate进行表单验证,是本人从空白页面搭建的,亲测可用,1积分算是我的辛苦费吧。 我会通过博客注明知识点:http://blog.csdn.net/qq_19558705; 希望能帮到大家。没有积分的...
  • HTML登录注册页面简单实现

    千次阅读 多人点赞 2019-10-27 21:30:18
    效果参考:登录页面,注册页面 使用了bootstrap,jQuery。 登录页面源码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> &...
  • Vue项目之登录注册

    万次阅读 多人点赞 2019-08-31 16:46:58
    Vue项目之登录注册1. 注册1.1 注册页面的布局 1. 注册 1.1 注册页面的布局 需要用到Vant的Field组件 1.views下新建一个注册页面 ,完成基本布局。引入Vue和Field并使用。 2.在官方文档中搜索,查看自己需要的内容,...
  • android SQLite实现本地登录注册功能,SQLite简单应用(android studio)
  • Android Studio一个连接SQLite数据库的登录注册实现

    万次阅读 多人点赞 2019-05-18 11:31:26
    (3)在service包UserService中用sql语句写登录注册功能的实现: package com.example.sqlitelogin.service; import android.content.Context; import android.database.Cursor; import android.database.sqlite....
  • 用SpringBoot简单实现登录注册功能

    千次阅读 多人点赞 2019-12-04 22:13:11
    用SpringBoot 整合MyBatis实现登录注册功能。
  • vue-cli 登录注册的实现

    千次阅读 2019-07-01 20:40:26
    本文章给大家介绍使用vue.js完成简单的登录注册功能 功能概览 登录界面,登录用户不存在 提示用户进行注册 前往注册页面进行注册 注册成功后自动跳转到浏览博客页面 可以看到这时候数据表中已有数据 登录测试:...
  • Java Web实现登录注册(超详细附代码)

    千次阅读 热门讨论 2021-04-24 22:10:35
    Java Web实现登录注册(超详细附代码) 文章目录Java Web实现登录注册(超详细附代码)1.前言2.登录注册设计流程3.注册的数据流程4.登录的数据流程5.部分代码的展示5.1注册5.2登录6.总结 1.前言 相信刚学Javaweb的小...
  • 登录注册界面模板

    万次阅读 多人点赞 2020-04-14 18:27:00
    登录注册界面 案例一 具体实现 先看一下最终效果,登陆和注册 背景图片: 附源码: login.html <!DOCTYPE html> <!-- saved from url=(0047)file:///D:/web%E8%84%9A%E6%9C%AC/WEB/login.html --> &...
  • Javaweb登录注册界面入门教程

    万次阅读 多人点赞 2020-05-13 11:33:15
    博主是一个自学了点Java,只是连那本《Java从入门到精通》基础知识都没看完的人,由于实习的需要,需要用JavaEE(J2E)开发一个简单的登录注册界面,通过强大的搜索引擎和无数的推盘重来,博主终于实现了一个基本的...
  • 简单制作登录注册页面

    万次阅读 多人点赞 2018-09-05 21:45:09
    在设计网页前先介绍DIV,简单来说就是一个在网页上分割区域的方块。在DIV里面可以添加组件,包括...我们也考虑用户忘记密码和未进行注册的情况,故也要加上这两个功能区域。 首先我们为登录界面设置一个标题: ...
  • 登录注册页面跳转

    万次阅读 多人点赞 2020-09-02 22:06:23
    用HTML、jQuery和css写一个简单的登录注册页面 看了一些前端部分的视频,有点手痒,想起大学时做的某管理系统的前端部分,当时基本都是靠着CV写的,现在想想应该可以自己写一点了。 话不多说,先上图: 首先是登录...
  • Android Studio 实现登录注册-源代码 (链接MySql数据库),引入Mysql驱动包,编写数据库和dao以及JDBC相关代码,编写页面和Activity相关代码,注意链接数据库的地址是:jdbc:mysql://10.0.2.2:3306/test
  • spring+hibernate+freemarker+jQuery 登录注册例子
  • Android Studio-手把手教你基于SQLLITE实现登录注册功能

    千次阅读 多人点赞 2019-12-19 14:30:03
    其实安卓的登录注册,和JAVA是一样的,甚至于是极简版的JAVA登录注册,安卓太智能了,数据保存在sqllite中,完全不需要导包,而且还伴有可视化界面,简直无敌,安卓可以说是目前我们学过的最简单的语言,只是大家...
  • 该程序实现登陆注册验证界面,注册时向数据库添加信息,登陆时凭借此信息才能登陆成功。连接MySQL数据库还可以对数据库的数据进行查询。
  • 登录注册案例 1.登录注册第一步——创建模型生成数据表: (1)名为mucis的app下的models.py文件中创建: from django.db import models # Create your models here. class User(models.Model): username = models...
  • SpringBoot实现登录注册

    万次阅读 多人点赞 2019-11-06 15:52:38
    话不多说,一个小小登录注册的案例向你展示SpringBoot的魅力 1 设计数据库 1.1表结构 1.2属性 id自增主键,name非空约束,唯一约束,password 2 IDEA配置 2.1 pom文件 <dependency> <groupId>...
  • 一个简单的android小项目,实现用户的登录注册,通过service 实时访问服务器端,当有新用户注册时 提示用户 有新的用户注册
  • LayUi做登录注册

    千次阅读 多人点赞 2020-03-25 21:26:29
    LayUi登录注册页面附代码登录页面注册页面附加CSS,JS代码 登录页面 下面展示登录页面 代码如下。 <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org" class="loginHtml"> <head> <...
  • 推荐十款好看的登录注册界面,赶紧收藏起来吧! 界面一:简约版 界面二 界面三 界面四 界面五 界面六 界面七 界面八 界面九 界面十
  • 【项目demo】SpringBoot+Mybatis实现登录注册

    千次阅读 多人点赞 2021-03-03 17:41:01
    学习SpringBoot+Mybatis实现的登录注册功能的Demo,实现这个Demo在网上也参考了资料和代码,本文是本人在实现Demo后的个人总结,以便理清思路。 1.环境 jdk8 : “1.8.0_281” Maven: 3.6.3 Idea:2020.2 Mysql:...
  • HTML实现登录注册界面

    万次阅读 多人点赞 2020-04-09 14:01:19
    我是一个初学者,学了有一星期的时间,分享一下最近在制作的登录注册界面。 登录页面:简单的运用了html和css的东西,没有用到js(目前功力不够)。 另外还用到了阿里巴巴矢量图标库的一些图标,毕竟自己不会做UI &...
  • MVC框架实现用户的登录注册功能

    千次阅读 2019-09-06 19:15:50
    MVC是什么? MVC,全称model view controller—模型,视图,控制器 model是将数据库中的表到Java中变成实体类 view是编写JSP页面 controller是用来业务逻辑的处理 ...MVC框架实现登录注册功能 项目框架结构 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 480,787
精华内容 192,314
关键字:

登录注册