大数据学习--day08(hnapp 后台系统开发、面向对象)
hnapp 后台系统开发、面向对象
利用前面所学的知识,写一个控制台登陆注册后台界面
- package sy180918.hnapp.array;
- import java.util.Arrays;
- import java.util.Scanner;
- public class HnApp {
- static Scanner sc = new Scanner(System.in); // 成员变量 提高作用域
- static int[] users = new int[2]; // 存储 用户名
- static int[] pswds = new int[2]; // 存储密码
- static int count; // 默认是 0 记录真实的用户个数
- static boolean userState ;// 默认是 false 用来记录登录状态
- static int userName ; // 当前登录用户的用户名
- public static void main(String[] args) {
- test: while(true){
- mainHtml();
- int next = sc.nextInt();
- switch (next) {
- case 1: zhuce();break;
- case 2: logon(); break;
- case 3: setPswd();break;
- case 4: System.out.println("退出");break test;
- default:
- System.out.println("非法字符");break;
- }
- }
- }
- /**
- * 修改密码
- */
- private static void setPswd() {
- if(!userState){
- System.out.println("请先登录 之后再来改密码");
- return ;
- }
- int i = 0;
- for( ; i < count ; i++){
- if(userName == users[i])
- break;
- }
- System.out.println("请输入新密码");
- int newPswd = sc.nextInt();
- pswds[i] = newPswd;
- System.out.println("密码修改成功 你已下线 请重新登录");
- userName = 0;
- userState = false;
- }
- /**
- * 登录方法
- */
- private static void logon() {
- if(userState){
- System.out.println("不能重复登录");
- return ;
- }
- System.out.println("欢迎来到登录页面");
- System.out.println("请输入登录的用户名");
- int user = sc.nextInt();
- System.out.println("请输入登录的密码");
- int pswd = sc.nextInt();
- // 判断用户在不在
- boolean flag = selectUser(user);
- if(flag){// 此时有用户
- // 判断密码是否对应
- // 1. 找到 在数组中 user 的索引
- int i = 0;
- for( ; i < count ; i++){
- if(users[i] == user)
- break;
- }
- if( pswds[i] == pswd){
- System.out.println("欢迎登录");
- userState = true; // 修改登录状态
- userName = user;
- }else{
- System.out.println("密码错误");
- }
- }else{// 此时没有该用户
- System.out.println("用户 "+user+" 不存在");
- }
- }
- /**
- * 注册的方法
- */
- private static void zhuce() {
- // 键盘录入 用户
- System.out.println("欢迎来到注册页面");
- System.out.println("请输入注册的用户名");
- int user = sc.nextInt();
- System.out.println("请输入注册的密码");
- int pswd = sc.nextInt();
- // 查看用户是否已经存在
- boolean flag = selectUser(user);
- if(flag){
- System.out.println("用户 "+user+" 已经存在 , 请更换其他用户");
- return ;
- }
- // 增加存储介质的 容量
- if( count == users.length ){
- System.out.println("正在扩容");
- int oldLength = users.length ;
- int newLength = oldLength + (oldLength>>1);
- System.out.println(oldLength+"->"+newLength);
- users = Arrays.copyOf(users, newLength); // 1.5 倍扩容
- pswds = Arrays.copyOf(pswds, newLength);
- }
- // 写入 存储介质
- users[count] = user;
- pswds[count] = pswd;
- count++;
- System.out.println("用户 "+user+" 注册成功");
- }
- /**
- * 查看 存储介质中 是否有指定的 user
- * @return 规定 : 有该用户返回 true
- */
- public static boolean selectUser(int user){
- // 查看用户是否已经存在
- for(int i = 0 ; i < count ; i++){
- if(users[i] == user)
- return true;
- }
- return false;
- }
- /**
- * 主菜单页面
- */
- public static void mainHtml(){
- System.out.println("=====欢迎来到 HnApp 后台系统========");
- System.out.println("=================================");
- System.out.println("----请按照提示进行操作----");
- System.out.println("输入1 : 注册用户");
- System.out.println("输入2 : 登录用户");
- System.out.println("输入3 : 修改密码");
- System.out.println("输入4 : 退出系统\n\n\n");
- }
- }
这些逻辑就当复习了,注意算术运算符优先级大于位运算符。
每次操作之后立即更新状态,全局变量。
面向对象
大数据学习--day08(hnapp 后台系统开发、面向对象)的更多相关文章
- 大数据学习路线之linux系统基础搭建
学习大数据是必须掌握一定Linux知识的,工欲善其事,必先利其器.在学习之前,首先需要搭建Linux系统,本节将讲解VMware Workstation的安装和CentOS 7系统的安装. 1.2.1 ...
- 大数据学习——azkaban工作流调度系统
azkaban的安装部署 在/root/apps 1目录下新建azkaban文件夹 上传安装包到azkaban 2解压 .tar.gz 3删掉安装包 [root@mini1 azkaban]# .ta ...
- 大数据学习day26----hive01----1hive的简介 2 hive的安装(hive的两种连接方式,后台启动,标准输出,错误输出)3. 数据库的基本操作 4. 建表(内部表和外部表的创建以及应用场景,数据导入,学生、分数sql练习)5.分区表 6加载数据的方式
1. hive的简介(具体见文档) Hive是分析处理结构化数据的工具 本质:将hive sql转化成MapReduce程序或者spark程序 Hive处理的数据一般存储在HDFS上,其分析数据底 ...
- 大数据学习之Linux基础01
大数据学习之Linux基础 01:Linux简介 linux是一种自由和开放源代码的类UNIX操作系统.该操作系统的内核由林纳斯·托瓦兹 在1991年10月5日首次发布.,在加上用户空间的应用程序之后 ...
- 大数据学习:storm流式计算
Storm是一个分布式的.高容错的实时计算系统.Storm适用的场景: 1.Storm可以用来用来处理源源不断的消息,并将处理之后的结果保存到持久化介质中. 2.由于Storm的处理组件都是分布式的, ...
- 大数据学习之Hadoop快速入门
1.Hadoop生态概况 Hadoop是一个由Apache基金会所开发的分布式系统集成架构,用户可以在不了解分布式底层细节情况下,开发分布式程序,充分利用集群的威力来进行高速运算与存储,具有可靠.高效 ...
- 大数据学习(一) | 初识 Hadoop
作者: seriouszyx 首发地址:https://seriouszyx.top/ 代码均可在 Github 上找到(求Star) 最近想要了解一些前沿技术,不能一门心思眼中只有 web,因为我目 ...
- 大数据学习笔记——Hadoop编程实战之HDFS
HDFS基本API的应用(包含IDEA的基本设置) 在上一篇博客中,本人详细地整理了如何从0搭建一个HA模式下的分布式Hadoop平台,那么,在上一篇的基础上,我们终于可以进行编程实操了,同样,在编程 ...
- 大数据学习day31------spark11-------1. Redis的安装和启动,2 redis客户端 3.Redis的数据类型 4. kafka(安装和常用命令)5.kafka java客户端
1. Redis Redis是目前一个非常优秀的key-value存储系统(内存的NoSQL数据库).和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list ...
随机推荐
- c# 依赖注入之---setterInjection(转)
图3.1 Setter注入示意 定义一个接口: namespace SetterInjection { internal interface IServiceClass { string Servic ...
- Less的guards and argument matching
less guards/argument matching: .setbackground(@number) when (@number>0){ .setbackground( @number ...
- pt-duplicate-key-checker使用
pt-duplicate-key-checker工具可以检测表中重复的索引,对于一些业务量很大的表,而且开发不规范的情况下有用.基本用法: 看一下我们的测试表: mysql> desc new_ ...
- ignore_user_abort函数制定计划任务
PHP中的ignore_user_abort函数是当用户关掉终端后脚本不停止仍然在执行,可以用它来实现计划任务与持续进程,下面会通过实例讨论ignore_user_abort()函数的作用与用法. ...
- 关于LDA的文章
转:http://www.zhizhihu.com/html/y2011/3228.html l Theory n Introduction u Unsupervised learning by ...
- How to update BOL entity property value via ABAP code
Suppose I have one product with ID I042416 which could be found in CRM WebClient UI: I would like to ...
- Java导出Highcharts需要的3个外部jar包
xerces batik fop 这三个JAR包. 绝对可用.自本用过. 如果两个项目在同一个TOMCAT下并且同时用到xerces.jar,需要前这个外放在TOMCAT下的lib目录下.其他的容器中 ...
- Android(java)学习笔记1:多线程的引入
1. 多线程的引入:
- Java虚拟机2:Java内存区域
1.几个计算机的概念 为以后写文章考虑,也为巩固自己的知识和一些基本概念,这里要理清楚几个计算机中的概念. 1.计算机存储单位 从小到大依次为位Bit.字节Byte.千字节KB.兆M.千兆GB.TB, ...
- shell脚本中针对sudo等密码输入的问题解决方案
一.不希望手动输入的办法 1.安装expect工具:sudo apt-get install tcl tk expect 2.脚本文件内容如下: #! /usr/bin/expectspawn sud ...