用java语言写一个简易版本的登录页面,包含用户注册、用户登录、用户注销、修改密码等功能
package com.Summer_0421.cn; import java.util.Arrays;
import java.util.Scanner; /**
* @author Summer
* 使用java面向对象之前的知识 完成规定的功能;
* 附加要求 :
* 1. 可以注册多个用户
* 2. 每个注册的用户都可以登录
* 3. 注册的用户名是唯一的
* 4. 已经登录的用户 必须注销登录才可以继续登录
*/
public class Test05 {
static Scanner sc = new Scanner(System.in); //用户名数组,用来存储用户名
static int [] usernames = new int[5]; //密码数组,用来存储所用的密码
static int [] passwords = new int[5]; //数组元素的真实数量
static int count =0; public static void main(String[] args) { int input = 0;
while (input!=4) {
menu();
input = sc.nextInt();
switch (input) {
case 1:
System.out.println("1.欢迎注册用户账号");
resign();//注册用户名方法
break;
case 2:
System.out.println("2.欢迎登录用户账号");
login();
break;
case 3:
System.out.println("3.注销用户账号成功");
break;
case 4:
System.out.println("4.退出成功!");
break;
case 5:
System.out.println("5.修改账户密码");
change();
break;
default:
System.out.println("请输入有效的数字提示");
break;
} } }
public static void change() {
System.out.println("请输入用户名:");
int username = sc.nextInt();
System.out.println("请输入密码:");
int password = sc.nextInt(); int index = check(username);
//判断用户名是否存在,-1则为不存在
if (index ==-1) {
System.out.println("用户名不存在,请注册一个用户");
return;
} System.out.println("当前用户密码为"+password);
System.out.println("请输入您要修改的密码:");
passwords[index] = sc.nextInt();
if (passwords[index]==password) {
System.out.println("此密码与当前密码一致,请重新输入");
change();
}else{
System.out.println("修改密码成功!");
} }
public static void login() {
System.out.println("请输入用户名:");
int username = sc.nextInt();
System.out.println("请输入密码:");
int password = sc.nextInt(); int index = check(username);
//判断用户名是否存在,-1则为不存在
if (index ==-1) {
System.out.println("用户名不存在,请重新输入一个");
return;
} if (usernames[index]==username&&passwords[index]==password) {
System.out.println("登录成功");
} else {
System.out.println("用户名或密码输入错误,请重新输入");
} }
/**
* 用户注册
*
*/
public static void resign() {
System.out.println("请输入用户名:");
int username = sc.nextInt();
System.out.println("请输入密码:");
int password = sc.nextInt(); //判断是否已经被注册
int index = check(username);
if (index!=-1) {
System.out.println("用户已经被注册,请重新输入");
return;
}
//存入数组
usernames[count]=username;
passwords[count]=password;
//数组元素累加
count++;
System.out.println("用户名"+username +"注册成功"+"\t数组的数量为"+count); //用户名密码数量超出数组的范围 (扩容)
if (count == usernames.length) {
usernames = Arrays.copyOf(usernames, usernames.length*2);
passwords = Arrays.copyOf(passwords, passwords.length*2);
}
System.out.println("扩容后的长度为"+usernames.length);
} /**
* 判断用户是否已经注册或者登录
* count真实数量来进行判断
* 如果用户名存在,返回当前用户名的下标
* 如果不存在,返回-1
*/
public static int check(int name){
for (int i = 0; i < count; i++) {
if (usernames[i]==name) {
return i;
}
}
return -1;
}
/**
* 登录菜单
*/
public static void menu() {
System.out.println("....欢迎来到登录系统....");
System.out.println("___________________");
System.out.println("1.欢迎注册用户账号");
System.out.println("2.欢迎登录用户账号");
System.out.println("3.注销用户账号成功");
System.out.println("4.退出成功!");
System.out.println("5.修改密码"); } }
用java语言写一个简易版本的登录页面,包含用户注册、用户登录、用户注销、修改密码等功能的更多相关文章
- 用Java语言编写一个简易画板
讲了三篇概博客的概念,今天,我们来一点实际的东西.我们来探讨一下如何用Java语言,编写一块简易的画图板. 一.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目 ...
- java语言写一个建议的五子棋
经过16天的java学习,也学得了不少关于Java方面的知识,我想分享一下我用java写的一个简单的五子棋. 游戏规则: (1)对局双方各执一色棋子.(2)空棋盘开局.(3)白先.黑后,交替下子,每次 ...
- Summer——从头开始写一个简易的Spring框架
Summer--从头开始写一个简易的Spring框架 参考Spring框架实现一个简易类似的Java框架.计划陆续实现IOC.AOP.以及数据访问模块和事务控制模块. ...
- 教你如何使用Java手写一个基于链表的队列
在上一篇博客[教你如何使用Java手写一个基于数组的队列]中已经介绍了队列,以及Java语言中对队列的实现,对队列不是很了解的可以我上一篇文章.那么,现在就直接进入主题吧. 这篇博客主要讲解的是如何使 ...
- 使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网)
使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网) 一,前期准备 1,Java IDE(Eclipse)与JDK的安装与配置jdk-15.0.1-免配置路径版提取码:earu免安装版 ...
- 用C语言写一个“事件”的模拟程序
源:用C语言写一个“事件”的模拟程序 Example.c //定义一个函数指针 func int (*func) (void); //调用该函数相当于触发了事件. //该事件触发后,会检查函数指针fu ...
- java nio 写一个完整的http服务器 支持文件上传 chunk传输 gzip 压缩 使用过程 和servlet差不多
java nio 写一个完整的http服务器 支持文件上传 chunk传输 gzip 压缩 也仿照着 netty处理了NIO的空轮询BUG 本项目并不复杂 代码不多 ...
- 如何使用Java AWT 创建一个简易计算器
摘要:手把手教你使用 Java AWT 创建一个简易计算器. 本文分享自华为云社区<手把手教你使用 Java AWT 创建一个简易计算器>,作者:海拥 . 关于AWT AWT (抽象窗口工 ...
- 写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我
写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我 1.HttpUtil工具类,用于模拟用户登录以及爬取网页: using System; using ...
随机推荐
- JS之console.log详解以及兄弟姐们邻居方法扩展
console.log() 基本用法 console.log,前端常用它来调试分析代码,你可以在任何的js代码中调用console.log(),然后你就可以在浏览器控制台看到你刚才打印的常量,变量,数 ...
- 小tips:JS之浅拷贝与深拷贝
浅拷贝: function extendCopy(p) { var c = {}; for (var i in p) { c[i] = p[i]; } return c; } 深拷贝: functio ...
- JS之innerHTML,innerText,outerHTML,textContent的用法与区别
示例html代码: <div id="test"> <span style="color:red">test1</span> ...
- springboot 事务管理
添加注解就完事儿了 @Transactional 1,Propagation 事务的传播行为 Propagation.REQUIRED 如果存在事务,就加入,没有的话就创建(默认值) 比如 A 方法 ...
- 在Arcmap中加载互联网地图资源的4种方法
前一段时间想在Arcmap中打开互联网地图中的地图数据,如影像数据.基础地图数据等,经过简单研究目前总结了四种方法,整理下与大家分享,有些内容可能理解有误,希望大家多多指教.4种方法如下: a) ...
- View在测量时的MeasureSpec由什么决定?
我们都知道系统要确定View的大小,首先得先获得MeasureSpec,再通过MeasureSpec来决定View的大小. MeasureSpec(32为int值)由两部分组成: SpecMode(高 ...
- 浅谈Kotlin(三):类
浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型.基本语法.代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 前言: 已经学习了前 ...
- Android-TextView 控件常用属性以及基本用法
github地址:https://github.com/1165863642/TextViewDemo 前言 这是我第一次写博客,第一次的笔记,不足之处多谅解.开门见山,这一篇博客主要讲一下在Andr ...
- 「Android」消息驱动Looper和Handler类分析
Android系统中的消息驱动工作原理: 1.有一个消息队列,可以往这个消息队列中投递消息; 2.有一个消息循环,不断的从消息队列中取得消息,然后处理. 工作流程: 1.事件源将待处理的消息加入到消息 ...
- Windows 10 运行原生Bash【Ubuntu】
当前widnows用户的 AppData\Local\lxss 目录下安装了ubuntu,其中rootfs是和ubuntu安装的目录一致 bash进入的就是LINUX的SHELL,因此其二进制格式是E ...