期望功能

方法设计

1.类的设计:

定义两个参与者的属性:

private String username;
private String userpassword;

2.注册方法:


public void register(){ System.out.println("[抽奖系统 > 注册]");
System.out.println("请填写个人注册信息");
System.out.println("请输入用户名:");
String regusername = scanner.next(); //获取控制台输入的注册用户名 System.out.println("请输入密码:");
String reguserpassword = scanner.next(); //获取控制台输入的注册密码 Participant regparticipant = new Participant(regusername,reguserpassword); //将输入的用户名和密码存入新的参与者对象 int id = random.nextInt(8999)+1000; //获取1000~9999随机数卡号
map.put(id,regparticipant); //将卡号和参与者对象存入Map中 System.out.println("注册成功,请记好你的会员卡号");
System.out.println("用户名:" + regusername);
System.out.println("密码:" + reguserpassword);
System.out.println("卡号:" + id);
jud = judge();
}

3.登录方法:


public void login(){ if (d == 1)
{
System.out.println("[抽奖系统 > 登录]");
System.out.println("请填写个人登录信息");
System.out.println("请输入用户名:");
String loginusername = scanner.next(); System.out.println("请输入密码:");
String loginuserpassword = scanner.next(); Participant loginparticipant = new Participant(loginusername,loginuserpassword); boolean c = false; //设置一个布尔值用来判断是否登录成功
for (Object o : map.values()){ if (o.equals(loginparticipant)) { //遍历values,将对象与对象相比较(重写equals方法) System.out.println("登录成功!");
b = 1;
c = true;
} }if(!c) { System.out.println("登录失败,请重新登录!"); //如果登录失败重新登录
login();
}
jud = judge();
}
else
{
System.out.println("您还未注册,请先注册!"); //当d!=1时,未注册状态,执行注册方法
register();
}
}

3.抽奖方法:


public void join() {
System.out.println("[抽奖系统 > 抽奖]");
if (b == 1) { //当b=1时,是已经登录的状态 System.out.println("请输入您的卡号:");
int inputid = scanner.nextInt(); //获取控制台输入的卡号 System.out.println("本日的幸运数字是:"); int[] a = new int[5]; //新建数组用于判断是否中奖
for (int i = 0; i

4.重写后的equals方法判断类相等


@Override
public boolean equals(Object obj) { if (this == obj){
return true;
}
if (getClass() != obj.getClass()){
return false;
}
Participant participant = (Participant)obj; //判断属性与属性相等
return (username.equals(participant.username)) && (userpassword.equals(participant.userpassword));
}

5.判断是否继续


public boolean judge(){ boolean booljudge = true;
System.out.println("是否继续?y/n");
String judgeinput = scanner.next();
if (judgeinput.equals("y")){ //输入y继续 return booljudge;
}
else {
return !booljudge;
}
}

6.Main主函数


while(booljudge){ System.out.println("-----欢迎进入抽奖系统-----");
System.out.println(" 1.注册 ");
System.out.println(" 2.登录 ");
System.out.println(" 3.参加抽奖 ");
System.out.println(" 4.退出系统 ");
System.out.println("-----------------------");
System.out.println("请选择菜单:"); int i = scanner.nextInt();
if (i == 1) { participant.register();
booljudge = Participant.jud;
}
else if (i ==2){ participant.login();
booljudge = Participant.jud;
}
else if (i == 3){ participant.join();
booljudge = Participant.jud; }
else if (i == 4){ System.out.println("您已成功退出系统!");
break;
}
}

还未实现的和想优化的

  • 1.Map接口过于给自己找难度,其实只用list就可以;
  • 2.抽奖时卡号还要自己输入,因为map无法根据value来获取key;
  • 3.登录是参与者对象与对象相比,有点绕弯,还要重写equals方法,应该可以直接get到value的对象中的值;
  • 4.判断是否中奖的方法可能会有更简便的,我想不到了才用这个睿智方法;
  • 5.界面优化;
  • 6.一个操作结束后判断是否继续y/n 1.1版本更新修改
  • 7.我什么时候能中一次????????

样例测试

主页面



注册







登录



抽奖







中奖,不存在的

未注册登录





未登录抽奖



退出系统

工程及完整代码

基于Map的用户注册、登录、抽奖系统的更多相关文章

  1. 基于xml的用户注册登录案例

    用户注册登录 要求:3层框架,使用验证码 1        功能分析 l  注册 l  登录 1.1 JSP页面 l  regist.jsp 注册表单:用户输入注册信息: 回显错误信息:当注册失败时, ...

  2. 【分布式】-- 基于Nacos、OpenFeign搭建的微服务抽奖系统后台小案例

    1.项目介绍 最近入项目之前要求熟悉一下SpringCloud Nacos微服务基于Feign接口调用并整合Swagger2进行接口文档展示给前端,所以自己按照要求来编写并整合了一套基于SpringC ...

  3. 用户注册登录系统 V2.0

    # 准备空列表 users = [] # 准备当前在线用户 online_user = {} while True: # 打印系统提示 print("欢迎使用 用户注册登录系统V2.0&qu ...

  4. 基于云端的通用权限管理系统,SAAS服务,基于SAAS的权限管理,基于SAAS的单点登录SSO,企业单点登录,企业系统监控,企业授权认证中心

    基于云端的通用权限管理系统 SAAS服务 基于SAAS的权限管理 基于SAAS的单点登录SSO 基于.Net的SSO,单点登录系统,提供SAAS服务 基于Extjs 4.2 的企业信息管理系统 基于E ...

  5. python 容器 用户注册登录系统

    1. 列表和普通变量有什么区别 列表是数据类型,普通变量是用来存储数据的 可以把列表赋值给普通变量 2.存在列表 a = [11, 22, 33], 如何向列表中添加(增)新元素 44 a.appen ...

  6. 传智播客JavaWeb day07、day08-自定义标签(传统标签和简单标签)、mvc设计模式、用户注册登录注销

    第七天的课程主要是讲了自定义标签.简单介绍了mvc设计模式.然后做了案例 1. 自定义标签 1.1 为什么要有自定义标签 前面所说的EL.JSTL等技术都是为了提高jsp的可读性.可维护性.方便性而取 ...

  7. 基于Hadoop开发网络云盘系统架构设计方案

    基于Hadoop开发网络云盘系统架构设计方案第一稿 引言 云计算技术的发展,各种网络云盘技术如雨后春笋,层出不穷,百度.新浪.网易都推出了自己的云盘系统,本文基于开源框架Hadoop设计实现了一套自己 ...

  8. SpringBoot整合Shiro实现基于角色的权限访问控制(RBAC)系统简单设计从零搭建

    SpringBoot整合Shiro实现基于角色的权限访问控制(RBAC)系统简单设计从零搭建 技术栈 : SpringBoot + shiro + jpa + freemark ,因为篇幅原因,这里只 ...

  9. 基于JSP的学术交流论坛系统的设计与实现

    版权声明:本文为[博主](https://zhangkn.github.io)原创文章.未经博主同意不得转载. https://creativecommons.org/licenses/by-nc-s ...

随机推荐

  1. wamp安装两个,数据库丢了,怎么办

    wampserver3.*下载了好几天一直没有安装,今天发现必须安装,已升级自己的php版本,不过也饿可以自己手动配置PHP版本,既然有安装包就算了吧,当安装完后,发现忘记备份自己的数据库了,幸好之前 ...

  2. oracle数据库查询全系整理

    oracle数据库方面的知识到今天已经整理了12篇.当然,这不是终点,这只是一个开始,希望我写的文章可以帮助更多初学数据库的童鞋快速上手,如果你觉得文章对你有帮助,那么恭喜你已经入门了,数据库里面的知 ...

  3. Django工程中使用echarts怎么循环遍历显示数据

    前言: 后面要开发测试管理平台,需要用到数据可视化,所以研究了一下 先看下最后的图吧,单击最上方的按钮可以控制柱状图显隐 views.py # -*- coding: utf-8 -*- from _ ...

  4. android studio中使用recyclerview小白篇(三)

    继续接着昨天的来,昨天终于弄好了一个例子,但是那个没有点击事件, 需要自己添加,参照别人的例子,弄了个比较简单的,主要是改动myRecycleradatper.java中的部分. 增加如下的接口: / ...

  5. 为什么 kubernetes 天然适合微服务 (1)

    此文已由作者刘超授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验 最近总在思考,为什么在支撑容器平台和微服务的竞争中,Kubernetes 会取得最终的胜出,事实上从很多角度出发 ...

  6. git Problem with the SSL CA cert (path? access rights?)

    问题: [root@localhost opt]# git clone https://github.com/docker/docker.git 正克隆到 'docker'...fatal: unab ...

  7. MarkdownPad基于语法示例

    博客园 [有道] (https://www.zybuluo.com/mdeditor#) [Markdown语法教学链接] (https://www.cnblogs.com/chimoxuanzhi/ ...

  8. winform程序使用clickonce方式发布之后点击安装没反应

    可能是少了index.html和web.config两个文件,这两个文件为什么没有在发布的时候生成,还有怎么影响安装的后续研究

  9. luoguP2418 yyy loves OI IV

    https://www.luogu.org/problemnew/show/P2418 暴力 DP 做这题只有 30 分 考虑用线段树优化这个 DP 先处理一下整个房间都膜拜一个人的情况,然后将 1 ...

  10. Spring框架的核心模块的作用

    Spring框架由7个定义良好的模块(组件)组成,各个模块可以独立存在,也可以联合使用. (1)Spring Core:核心容器提供了Spring的基本功能.核心容器的核心功能是用Ioc容器来管理类的 ...