用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 ...
随机推荐
- 19 个常用的 JavaScript 简写方法
来自:SangSir 链接:https://segmentfault.com/a/1190000012673854 原文:https://www.sitepoint.com/shorthand-jav ...
- es6 语法 (数组扩展)
{ let arr = Array.of(3, 4, 7, 9, 11); console.log('arr', arr); //[3,4,7,9,11] let empty = Array.of() ...
- OkHttp3源码详解(六) Okhttp任务队列工作原理
1 概述 1.1 引言 android完成非阻塞式的异步请求的时候都是通过启动子线程的方式来解决,子线程执行完任务的之后通过handler的方式来和主线程来完成通信.无限制的创建线程,会给系统带来大量 ...
- 章节七、6-Map集合的区别
一.通过entrySet取出Map中的元素 package ZangJie7; import java.util.HashMap; import java.util.Map; public class ...
- 整理一些.net core中的错误代码
在hosting .net core时,有些错误代码并不容易理解. 作为标记,方便查询,这些错误代码可能不会出现在VS的错误查找工具里,也不会出现在错误代码转字符描述的函数里. COR_E_AMBIG ...
- MySQL 基本语句(2)
1.创建数据库 :create database 名称 [charset 字符集 collate 校对规则] ; 如: drop database if exists `mydb` ; # 若存在就 ...
- linux系统/var/log目录下的信息详解
一./var目录 /var 所有服务的登录的文件或错误信息文件(LOG FILES)都在/var/log下,此外,一些数据库如MySQL则在/var/lib下,还有,用户未读的邮件的默认存放地点为/v ...
- PowerDesigner 16.5 使用VBScript脚本从Excel导入物理数据模型
本文使用的数据库类型是Oracle 11g 最近在工作中遇到一个问题:数据的设计以表格的形式保存在Excel文件中.(由于保密原因,我只能看到数据库设计文档,无法访问数据库.=_=!) 其中包括Nam ...
- python拟合数据,并通过拟合的曲线去预测新值的方法
from scipy import interpolate import matplotlib.pyplot as plt import numpy as np def f(x): x_points ...
- LeetCode算法题-Longest Palindrome(五种解法)
这是悦乐书的第220次更新,第232篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第87题(顺位题号是409).给定一个由小写或大写字母组成的字符串,找到可以用这些字母构 ...