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语言写一个简易版本的登录页面,包含用户注册、用户登录、用户注销、修改密码等功能的更多相关文章

  1. 用Java语言编写一个简易画板

    讲了三篇概博客的概念,今天,我们来一点实际的东西.我们来探讨一下如何用Java语言,编写一块简易的画图板. 一.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目 ...

  2. java语言写一个建议的五子棋

    经过16天的java学习,也学得了不少关于Java方面的知识,我想分享一下我用java写的一个简单的五子棋. 游戏规则: (1)对局双方各执一色棋子.(2)空棋盘开局.(3)白先.黑后,交替下子,每次 ...

  3. Summer——从头开始写一个简易的Spring框架

    Summer--从头开始写一个简易的Spring框架                ​ 参考Spring框架实现一个简易类似的Java框架.计划陆续实现IOC.AOP.以及数据访问模块和事务控制模块. ...

  4. 教你如何使用Java手写一个基于链表的队列

    在上一篇博客[教你如何使用Java手写一个基于数组的队列]中已经介绍了队列,以及Java语言中对队列的实现,对队列不是很了解的可以我上一篇文章.那么,现在就直接进入主题吧. 这篇博客主要讲解的是如何使 ...

  5. 使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网)

    使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网) 一,前期准备 1,Java IDE(Eclipse)与JDK的安装与配置jdk-15.0.1-免配置路径版提取码:earu免安装版 ...

  6. 用C语言写一个“事件”的模拟程序

    源:用C语言写一个“事件”的模拟程序 Example.c //定义一个函数指针 func int (*func) (void); //调用该函数相当于触发了事件. //该事件触发后,会检查函数指针fu ...

  7. java nio 写一个完整的http服务器 支持文件上传 chunk传输 gzip 压缩 使用过程 和servlet差不多

    java nio 写一个完整的http服务器  支持文件上传   chunk传输    gzip 压缩      也仿照着 netty处理了NIO的空轮询BUG        本项目并不复杂 代码不多 ...

  8. 如何使用Java AWT 创建一个简易计算器

    摘要:手把手教你使用 Java AWT 创建一个简易计算器. 本文分享自华为云社区<手把手教你使用 Java AWT 创建一个简易计算器>,作者:海拥 . 关于AWT AWT (抽象窗口工 ...

  9. 写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我

    写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我 1.HttpUtil工具类,用于模拟用户登录以及爬取网页: using System; using ...

随机推荐

  1. 19 个常用的 JavaScript 简写方法

    来自:SangSir 链接:https://segmentfault.com/a/1190000012673854 原文:https://www.sitepoint.com/shorthand-jav ...

  2. es6 语法 (数组扩展)

    { let arr = Array.of(3, 4, 7, 9, 11); console.log('arr', arr); //[3,4,7,9,11] let empty = Array.of() ...

  3. OkHttp3源码详解(六) Okhttp任务队列工作原理

    1 概述 1.1 引言 android完成非阻塞式的异步请求的时候都是通过启动子线程的方式来解决,子线程执行完任务的之后通过handler的方式来和主线程来完成通信.无限制的创建线程,会给系统带来大量 ...

  4. 章节七、6-Map集合的区别

    一.通过entrySet取出Map中的元素 package ZangJie7; import java.util.HashMap; import java.util.Map; public class ...

  5. 整理一些.net core中的错误代码

    在hosting .net core时,有些错误代码并不容易理解. 作为标记,方便查询,这些错误代码可能不会出现在VS的错误查找工具里,也不会出现在错误代码转字符描述的函数里. COR_E_AMBIG ...

  6. MySQL 基本语句(2)

    1.创建数据库 :create database 名称 [charset 字符集 collate 校对规则] ;  如: drop database if exists `mydb` ; # 若存在就 ...

  7. linux系统/var/log目录下的信息详解

    一./var目录 /var 所有服务的登录的文件或错误信息文件(LOG FILES)都在/var/log下,此外,一些数据库如MySQL则在/var/lib下,还有,用户未读的邮件的默认存放地点为/v ...

  8. PowerDesigner 16.5 使用VBScript脚本从Excel导入物理数据模型

    本文使用的数据库类型是Oracle 11g 最近在工作中遇到一个问题:数据的设计以表格的形式保存在Excel文件中.(由于保密原因,我只能看到数据库设计文档,无法访问数据库.=_=!) 其中包括Nam ...

  9. python拟合数据,并通过拟合的曲线去预测新值的方法

    from scipy import interpolate import matplotlib.pyplot as plt import numpy as np def f(x): x_points ...

  10. LeetCode算法题-Longest Palindrome(五种解法)

    这是悦乐书的第220次更新,第232篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第87题(顺位题号是409).给定一个由小写或大写字母组成的字符串,找到可以用这些字母构 ...