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. JS的函数节流(throttle)

    什么是函数节流? 介绍前,先说下背景.在前端开发中,有时会为页面绑定resize事件,或者为一个页面元素绑定拖拽事件(其核心就是绑定mousemove),这种事件有一个特点,就是用户不必特地捣乱,他在 ...

  2. vuejs2.0与1.x版本中怎样使用js实时访问input的值的变化

    vuejs 2.0中js实时监听input 在2.0的版本中,vuejs把v-el 和 v-ref 合并为一个 ref 属性了,可以在组件实例中通过 $refs 来调用.这意味着 v-el:my-el ...

  3. CSS超全笔记(适合新手入门)

    CSS CSS初识 CSS(Cascading Style Sheets) 美化样式 CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体.大小.对齐方式等 ...

  4. python地理处理包——geopy使用之地理编码与反地理编码

    由于专业需要,经常接触一些地理处理的工具包,文档都是英文的,自己看的同时将其翻译一下,一方面自己学习的同时有个记录,要是能同时给一起的学习的童鞋们一些帮助,想想也是极好的.以下的文档内容主要翻译自官方 ...

  5. Salesforce 数据备份和恢复小知识

    数据备份的类型 在Salesforce中可以使用多种API进行数据备份,它们是: REST API SOAP API Buik API Metadata API 数据备份有三种选择: 完全备份(Ful ...

  6. [随时更新][Android]小问题记录

    此文随时更新,旨在记录平时遇到的不值得单独写博客记录的细节问题,当然如果问题有拓展将会另外写博客. 原文地址请保留http://www.cnblogs.com/rossoneri/p/4040314. ...

  7. go 利用orm简单实现接口分布式锁

    在开发中有些敏感接口,例如用户余额提现接口,需要考虑在并发情况下接口是否会发生问题.如果用户将自己的多条提现请求同时发送到服务器,代码能否扛得住呢?一旦没做锁,那么就真的会给用户多次提现,给公司带来损 ...

  8. 纯JS编写打地鼠游戏

    这个游戏是本人前不久刚入门编写的游戏,感觉里面代码很LOW但是对于新手来说很一般般吧~ 没有上传音乐文件了 运行效果: 上代码(HTML+JS): <!DOCTYPE html> < ...

  9. .svn文件夹特别大

    一个项目通过svn管理,迭代开发一年之后,.svn目录达到20G或更大,对于SSD硬盘来说是非常占用空间的,经过我的尝试,可以使用tortoiseSVN自带的cleanup为文件夹瘦身. 操作方法: ...

  10. JavaScript闭包理解【关键字:普通函数、变量访问作用域、闭包、解决获取元素标签索引】

        一.闭包(Closure)模糊概述 之前总觉得闭包(Closure)很抽象而且难理解,百度一下"闭包"名词,百度的解释是:“闭包是指可以包含自由(未绑定到特定对象)变量的代 ...