当前位置: 首页 > news >正文

第1关:简易考试系统之用户注册

任务描述
本关任务:实现简易考试系统中新用户注册的功能。

编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 中实现简易考试系统中新用户注册的功能,具体要求如下:

User.java 提供了用户的基本信息,该类已经定义完成,请仔细阅读该类;

在 MenuExam.java 中有 3 个选项,实现第一个和第三个选项的功能;

获取键盘输入的值,如果为 1,首先输出“请输入你要注册的用户名:”,获取键盘输入的用户名,再输出“请输入你要注册的密码:”,获取键盘输入的密码,然后调用 ExamManage.java 文件中的 register(String name, String pwd, User[] users) 方法,将该方法所需参数传入;

register 方法携带三个参数,分别为:用户名、密码和用户数组,该方法实现注册新用户的功能;

首先判断用户名是否规范:要求用户名必须是 6-10 位字母、数字、下划线(这里字母、数字、下划线是指任意组合,没有必须三类均包含),不能以数字开头,如果不规范,输出:“用户名不合规范!”,返回主菜单;

再判断该用户名是否已存在(也就是已经在 users 数组中存在),如果存在,输出:“用户名已存在!”,返回主菜单;

判断密码是否规范:要求密码必须是 6-10 位字母、数字、下划线(这里字母、数字、下划线是指任意组合,没有必须三类均包含)如果不规范,输出:“密码不合规范!”,返回主菜单;

如果用户名和密码没有问题,创建该用户,并存入用户数组中;

如果键盘输入的值为 3 ,退出程序,并输出:“退出成功!”;

如果输入的是其它值时,输出:“选择错误!”,返回主菜单。

测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
可在右侧“测试结果”区查看具体的测试集详情。

测试输入:

1
5sunfeng
123456
1
sunfeng
1234
3
预期输出:

线上考试系统
**********
1. 新用户注册
2. 用户登录
3. 退出系统
**********
请输入选择的操作:
请输入你要注册的用户名:
请输入你要注册的密码:
用户名不合规范!
线上考试系统
**********
1. 新用户注册
2. 用户登录
3. 退出系统
**********
请输入选择的操作:
请输入你要注册的用户名:
请输入你要注册的密码:
密码不合规范!
线上考试系统
**********
1. 新用户注册
2. 用户登录
3. 退出系统
**********
请输入选择的操作:
退出成功!

import java.util.Scanner;class User {private String username;private String password;public User(String username, String password) {this.username = username;this.password = password;}public String getUsername() {return username;}public String getPassword() {return password;}
}class ExamManage {public void register(String name, String pwd, User[] users) {// 判断用户名是否规范if (!isValidUsername(name)) {System.out.println("用户名不合规范!");return;}// 判断用户名是否已存在if (isUsernameExists(name, users)) {System.out.println("用户名已存在!");return;}// 判断密码是否规范if (!isValidPassword(pwd)) {System.out.println("密码不合规范!");return;}// 找到一个空位置存储新用户for (int i = 0; i < users.length; i++) {if (users[i] == null) {users[i] = new User(name, pwd);//   System.out.println("注册成功!");return;}}System.out.println("用户数组已满,无法注册新用户!");}private boolean isValidUsername(String username) {if (username.length() < 6 || username.length() > 10) {return false;}if (Character.isDigit(username.charAt(0))) {return false;}for (char c : username.toCharArray()) {if (!Character.isLetterOrDigit(c) && c!= '_') {return false;}}return true;}private boolean isUsernameExists(String username, User[] users) {for (User user : users) {if (user!= null && user.getUsername().equals(username)) {return true;}}return false;}private boolean isValidPassword(String password) {if (password.length() < 6 || password.length() > 10) {return false;}for (char c : password.toCharArray()) {if (!Character.isLetterOrDigit(c) && c!= '_') {return false;}}return true;}
}// 此类为整个通讯录的总控制,负责启动
public class MenuExam {public static void main(String[] args) {User[] users = new User[50]; // 创建一个对象数组,用于存放所有的用户信息// 实例化 Scanner 对象Scanner sc = new Scanner(System.in);// 实例化 ExamManage 对象ExamManage examManage = new ExamManage();while (true) {System.out.println("线上考试系统");System.out.println("**********");System.out.println("1. 新用户注册");System.out.println("2. 用户登录");System.out.println("3. 退出系统");System.out.println("**********");System.out.println("请输入选择的操作:");// 获取键盘输入String str = sc.next();// 实现注册功能if ("1".equals(str)) {// 获取键盘输入的用户名System.out.println("请输入你要注册的用户名:");String name = sc.next();// 获取键盘输入的密码System.out.println("请输入你要注册的密码:");String pwd = sc.next();// 将参数传入 register 方法中examManage.register(name, pwd, users);} else if ("2".equals(str)) {// 此处可根据需求补充用户登录功能} else if ("3".equals(str)) {// 退出操作System.out.println("退出成功!");break;} else {System.out.println("选择错误!");}}sc.close();}
}

相关文章:

第1关:简易考试系统之用户注册

任务描述 本关任务&#xff1a;实现简易考试系统中新用户注册的功能。 编程要求 仔细阅读右侧编辑区内给出的代码框架及注释&#xff0c;在 Begin-End 中实现简易考试系统中新用户注册的功能&#xff0c;具体要求如下&#xff1a; User.java 提供了用户的基本信息&#xff0c…...

VMware的三种网络模式——在NAT模式下开放接口为局域网内其他主机提供服务

众所周知 VMware 有三种常用的网络通讯模式&#xff0c;分别是&#xff1a;Bridged&#xff08;桥接模式&#xff09;、NAT&#xff08;网络地址转换模式&#xff09;、Host-Only&#xff08;仅主机模式&#xff09;&#xff0c;它们各有不同的用法。 Bridged 桥接模式是与主机…...

智慧地下采矿:可视化引领未来矿业管理

图扑智慧地下采矿可视化平台通过整合多源数据&#xff0c;提供实时 3D 矿井地图及分析&#xff0c;提升了矿产开采的安全性与效率&#xff0c;为矿业管理提供数据驱动的智能决策支持&#xff0c;推动行业数字化转型。...

流量主微信小程序工具类去水印

工具类微信小程序流量主带后台管理&#xff0c;可开通广告&#xff0c;带自有后台管理&#xff0c;不借助第三方接口 介绍 支持抖音&#xff0c;小红书&#xff0c;哔哩哔哩视频水印去除&#xff0c;功能实现不借助第三方平台。可实现微信小程序流量主广告变现功能&#xff0c…...

代码随想录算法【Day5】

DAY5 1.熟悉哈希表的数据结构&#xff1a;数组、map和set&#xff0c;使用方法、使用场景 2.哈希表应用场景&#xff1a;解决给你一个元素&#xff0c;判断它在集合里是否出现过。 242.有效的字母异位词 本题用数组解决的。 class Solution { public:bool isAnagram(strin…...

Leetcode 3403. Find the Lexicographically Largest String From the Box I

Leetcode 3403. Find the Lexicographically Largest String From the Box I 1. 解题思路2. 代码实现 题目链接&#xff1a;3403. Find the Lexicographically Largest String From the Box I 1. 解题思路 这一题我一开始的思路是想用动态规划&#xff0c;结果发现想复杂了&…...

【游戏设计原理】36 - 环境叙事

一、 分析并总结 核心要点 环境叙事的本质&#xff1a;将游戏的设定视为叙事的一部分&#xff0c;利用环境元素&#xff08;如物品、对话、视觉效果等&#xff09;传递故事和信息。世界设定的重要性&#xff1a;一个强大的世界设定可以像角色一样&#xff0c;驱动叙事并增强玩…...

Python 中的 lambda 函数和嵌套函数

Python 中的 lambda 函数和嵌套函数 Python 中的 lambda 函数和嵌套函数Python 中的 lambda 函数嵌套函数&#xff08;内部函数&#xff09;封装辅助函数闭包和工厂函数 Python 中的 lambda 函数和嵌套函数 Python 中的 lambda 函数 Lambda 函数是基于单行表达式的匿名函数。…...

语言模型评价指标

1. BLEU&#xff08;Bilingual Evaluation Understudy&#xff09; 目标&#xff1a;衡量生成文本和参考文本之间的词汇相似性。 计算步骤&#xff1a; N-gram 匹配&#xff1a; 将生成文本和参考文本分解成 1-gram、2-gram、…、N-gram&#xff08;通常取到 4-gram&#xff…...

工程师 - MSYS2介绍

https://www.msys2.org/ MSYS2 是一系列工具和库&#xff0c;为您提供了一个易于使用的环境&#xff0c;用于构建、安装和运行本地 Windows 软件。 MSYS2 is a collection of tools and libraries providing you with an easy-to-use environment for building, installing an…...

算法基础三:插入排序

定义 插入排序&#xff08;英语&#xff1a;Insertion Sort&#xff09;是一种简单直观的排序算法。它的工作原理是通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。插入排序在实现上&#xff0c;通常采用…...

小米汽车加速出海,官网建设引领海外市场布局!

面对国内市场的饱和态势&#xff0c;中国企业出海步伐纷纷加速&#xff0c;小米也是其中的一员。Canalys数据显示&#xff0c;2024年第三季度&#xff0c;小米以13.8%的市场份额占比&#xff0c;实现了连续17个季度位居全球前三的成绩。 据“36 氪汽车”报道&#xff0c;小米汽…...

Python Polars快速入门指南:LazyFrames

前文已经介绍了Polars的Dataframe, Contexts 和 Expressions&#xff0c;本文继续介绍Polars的惰性API。惰性API是该库最强大的功能之一&#xff0c;使用惰性API可以设定一系列操作&#xff0c;而无需立即运行它们。相反&#xff0c;这些操作被保存为计算图&#xff0c;只在必要…...

什么是网络安全(Cybersecurity)?

不同组织机构对网络安全&#xff08;Cybersecurity或Cyber Security&#xff09;的定义不尽相同。从目标上来说&#xff0c;网络安全主要用于保护网络、计算机、移动设备、应用程序及数据等资产免受网络攻击&#xff0c;避免造成数据泄露、业务中断等安全问题。 网络钓鱼、勒索…...

VBA批量插入图片到PPT,一页一图

Sub InsertPicturesIntoSlides()Dim pptApp As ObjectDim pptPres As ObjectDim pptSlide As ObjectDim strFolderPath As StringDim strFileName As StringDim i As Integer 设置图片文件夹路径strFolderPath "C:\您的图片文件夹路径\" 请替换为您的图片文件夹路径…...

Pandas-DataFrame入门

文章目录 一. Pandas DataFrame简介二. 加载数据集1. 目的2. 步骤① 导包② 加载csv③ 查看数据类型及属性④ Pandas与Python常用数据类型对照 三. 查看部分数据1. 根据列名加载部分列数据① 加载一列数据&#xff0c;通过df[列名]方式获取② 加载多列数据&#xff0c;通过df[[…...

爬虫 - 爬取王者荣耀所有皮肤图片

结果展示 安装 pip install requests logger代码 import json import os import re from concurrent.futures import ThreadPoolExecutorimport requests from loguru import loggerdef parse_url(url, bFalse):try:headers {"User-Agent": "Mozilla/5.0 (Wi…...

【畅购商城】购物车模块之查看购物车

目录 分析 接口 后端实现 前端实现&#xff1a;显示页面 前端实现&#xff1a;显示购物车信息 分析 用户如果没有登录&#xff0c;购物车存放在浏览器端的localStorage处&#xff0c;且以数组的方式进行存储。用户如果登录了&#xff0c;购物车存放在redis中&#xff0c…...

Spring Boot 学习笔记

学习代码第一步&#xff1a;如何写 Hello world &#xff1f; 1、新建项目 新建一个 Maven Java 工程&#xff0c;在 pom.xml 文件中添加 Spring Boot Maven 依赖&#xff1a; <parent><groupId>org.springframework.boot</groupId><artifactId>spri…...

快速打造智能应用:从设计到上线的全流程指南

随着人工智能技术的快速发展&#xff0c;如何将大模型技术转化为实际应用成为了各行业关注的焦点。本文将以一个经典的 RAG&#xff08;检索增强生成&#xff09;知识问答系统为例&#xff0c;详细介绍从智能体设计到最终应用部署的全流程。通过结合阿里云的魔笔低代码平台和丰…...

tao-8k嵌入模型惊艳体验:Xinference WebUI界面操作,效果一目了然

tao-8k嵌入模型惊艳体验&#xff1a;Xinference WebUI界面操作&#xff0c;效果一目了然 1. tao-8k模型核心能力展示 tao-8k是由Hugging Face开发者amu研发的开源文本嵌入模型&#xff0c;专注于将文本转换为高维向量表示。这款模型最引人注目的特点是支持长达8192个token的上…...

等离子处理机选型指南:从工艺需求到方案落地

在制造业转型升级的浪潮中&#xff0c;等离子表面处理技术正成为解决材料附着力难题的关键手段。面对市场上真空型、大气型、刻蚀型等多样化设备&#xff0c;企业该如何匹配自身需求&#xff1f;本文基于深圳市方瑞科技有限公司的实践案例&#xff0c;系统解析等离子处理机的选…...

2026年主流产品深度对比与选型策略:eHR人力资源管理系统推荐

eHR人力资源管理系统是帮助企业实现人事管理数字化的核心工具&#xff0c;涵盖组织人事、薪酬核算、考勤排班、绩效管理、入离职流程等模块。 2026年的eHR市场已经从”功能够用就行”进入”AI驱动、体验优先、数据贯通”的新阶段&#xff0c;选型时不仅要看功能清单&#xff0…...

2026年天然木蜡油订做厂家排行榜揭晓,谁能拔得头筹?

在环保意识日益增强的今天&#xff0c;天然木蜡油因其环保、健康的特性&#xff0c;在室内外木器家具、装饰装修等领域得到了广泛应用。2026年天然木蜡油订做厂家排行榜新鲜出炉&#xff0c;众多厂家各展风采&#xff0c;究竟谁能在这场激烈的竞争中拔得头筹呢&#xff1f;让我…...

你的SSH密钥可能已经过期了评

引言 在现代软件开发中&#xff0c;性能始终是衡量应用质量的重要指标之一。无论是企业级应用、云服务还是桌面程序&#xff0c;性能优化都能显著提升用户体验、降低基础设施成本并增强系统的可扩展性。对于使用 C# 开发的应用程序而言&#xff0c;性能优化涉及多个层面&#x…...

Java安全编程与静态分析实战

由于当前年份尚未到达2026年&#xff0c;且未明确具体代码功能需求&#xff0c;以下提供一份通用的Java代码质量与静态分析实战示例&#xff0c;涵盖常见代码规范、静态分析工具集成和单元测试实践。假设需求为“实现一个安全的字符串处理工具类并集成静态分析”&#xff1a;代…...

医疗数据报表无数据问题完整排查复盘

一、场景与问题说明本次问题发生在医疗数据中台病案相关报表开发中&#xff0c;具体场景为&#xff1a;超声门诊科室相关的业务报表&#xff0c;在展示检查项目名称、执行医生这两个关键字段时&#xff0c;完全无数据展示&#xff0c;前端页面一片空白&#xff0c;客户直接反馈…...

如何处理死锁异常_ORA-00060捕获与重试机制设计

ORA-00060是死锁&#xff0c;非单纯竞争&#xff1b;Oracle检测到多个会话互持对方所需锁并主动回滚其中一个事务&#xff0c;需通过trace文件分析Deadlock graph定位具体行锁冲突及session&#xff0c;不可盲目重试。ORA-00060 是死锁还是竞争&#xff1f;先看日志里真正冲突的…...

Flutter 动画控制器:打造流畅的动画体验

Flutter 动画控制器&#xff1a;打造流畅的动画体验掌握 Flutter 动画控制器的高级技巧&#xff0c;创造流畅而优雅的动画效果。一、动画控制器概述 作为一名把代码当散文写的 UI 匠人&#xff0c;我对 Flutter 动画控制器有着独特的见解。动画控制器是 Flutter 动画系统的核心…...

需求动态感知与策略协同优化的机器学习模型研究——以企业供应链需求优化为例

需求动态感知与策略协同优化的机器学习模型研究——以企业供应链需求优化为例 摘要 在日益复杂和动态的市场环境中,企业供应链面临着需求波动加剧、决策链条冗长、多维目标冲突等严峻挑战。传统基于历史统计模型和静态策略的优化方法难以实时感知需求变化并协同调整供应链决…...