Java基础知识实际应用(学生信息管理系统、猜拳小游戏、打印日历)
一、Java学生信息管理系统
这个系统包含了添加、修改、删除、查询和显示所有学生信息等功能。您可以在此基础上进行修改和完善,以适应您的需求。
import java.util.Scanner;public class StudentManagementSystem {private static Scanner scanner = new Scanner(System.in);private static int MAX_STUDENT_NUMBER = 100;private static Student[] students = new Student[MAX_STUDENT_NUMBER];private static int studentNumber = 0;public static void main(String[] args) {while (true) {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. 显示所有学生信息 *");System.out.println("* 0. 退出系统 *");System.out.println("***********************************************");System.out.print("请选择操作:");int choice = scanner.nextInt();switch (choice) {case 1:addStudent();break;case 2:modifyStudent();break;case 3:deleteStudent();break;case 4:queryStudent();break;case 5:displayAllStudents();break;case 0:System.exit(0);default:System.out.println("输入错误,请重新输入!");}}}private static void addStudent() {if (studentNumber >= MAX_STUDENT_NUMBER) {System.out.println("学生数量已达到最大值!");return;}scanner.nextLine(); // 消耗掉换行符System.out.print("请输入学生姓名:");String name = scanner.nextLine();System.out.print("请输入学生年龄:");int age = scanner.nextInt();System.out.print("请输入学生性别(0表示女性,1表示男性):");int gender = scanner.nextInt();System.out.print("请输入学生班级:");String className = scanner.next();Student student = new Student(name, age, gender, className);students[studentNumber++] = student;System.out.println("添加成功!");}private static void modifyStudent() {System.out.print("请输入要修改的学生姓名:");String name = scanner.next();for (int i = 0; i < studentNumber; i++) {if (students[i].getName().equals(name)) {System.out.print("请输入学生新的年龄:");int age = scanner.nextInt();System.out.print("请输入学生新的性别(0表示女性,1表示男性):");int gender = scanner.nextInt();System.out.print("请输入学生新的班级:");String className = scanner.next();students[i].setAge(age);students[i].setGender(gender);students[i].setClassName(className);System.out.println("修改成功!");return;}}System.out.println("没有找到该学生信息!");}private static void deleteStudent() {System.out.print("请输入要删除的学生姓名:");String name = scanner.next();int i = 0;for (; i < studentNumber; i++) {if (students[i].getName().equals(name)) {break;}}if (i == studentNumber) {System.out.println("没有找到该学生信息!");return;}for (; i < studentNumber - 1; i++) {students[i] = students[i + 1];}students[--studentNumber] = null;System.out.println("删除成功!");}private static void queryStudent() {System.out.print("请输入要查询的学生姓名:");String name = scanner.next();for (int i = 0; i < studentNumber; i++) {if (students[i].getName().equals(name)) {System.out.println(students[i]);return;}}System.out.println("没有找到该学生信息!");}private static void displayAllStudents() {for (int i = 0; i < studentNumber; i++) {System.out.println(students[i]);}}private static class Student {private String name;private int age;private int gender;private String className;public Student(String name, int age,int gender, String className) {
this.name = name;
this.age = age;
this.gender = gender;
this.className = className;
}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getGender() {return gender;}public void setGender(int gender) {this.gender = gender;}public String getClassName() {return className;}public void setClassName(String className) {this.className = className;}@Overridepublic String toString() {String genderStr = gender == 0 ? "女" : "男";return "姓名:" + name + " 年龄:" + age + " 性别:" + genderStr + " 班级:" + className;}
}
二、Java实现猜拳小游戏
以下代码是一个猜拳小游戏的实现,其中包含了用户输入、随机数生成、逻辑判断和输出结果等功能。首先让用户输入名字,然后每轮循环中用户输入出拳手势,根据输入的数字1、2、3分别代表石头、剪刀、布;同时,系统也会产生一个随机数表示电脑出拳手势。判断用户和电脑的胜负关系,并输出结果。如果输入的数字为0则退出游戏。 MyMath是一个辅助类,用来生成1-3之间的随机整数。
import java.util.Random;
import java.util.Scanner;public class GuessGame
{String userName;Scanner reader=new Scanner(System.in);public GuessGame(){System.out.println("------欢迎来到猜拳小游戏------");System.out.println("请输入你的名字:");this.userName= reader.next();}public void startGame(){System.out.println("欢迎你,"+userName);while(true){System.out.println("请输入1-石头,2-剪刀,3-布,0-退出");int u=reader.nextInt();if(u>=1&&u<=3){MyMath m=new MyMath();// 产生一个随机数int c=m.getRandom();judge(u,c);// 判断胜负}else if(u==0){System.out.println("退出游戏,欢迎下次再玩");break;}else{System.out.println("输入有误,请再次输入");}}}public void judge(int u,int c){if(u==1&&c==2||u==2&&c==3||u==3&&c==1){System.out.println("你出的是"+getState(u)+",电脑出的是"+getState(c)+",你赢了!!!");}else if(u==1&&c==3||u==2&&c==1||u==3&&c==2){System.out.println("你出的是"+getState(u)+",电脑出的是"+getState(c)+",你输了!!!");}else{System.out.println("你出的是"+getState(u)+",电脑出的是"+getState(c)+",平局!!!");}}public String getState(int u){String state="";// 将类型与编号对应switch(u){case 1:state="石头";break;case 2:state="剪刀";break;case 3:state="布";break;}return state;}
}
class MyMath
{public int getRandom(){Random rd=new Random();int number = rd.nextInt(3) + 1;//生成1-3的随机数return number;}
}
请输入1-石头,2-剪刀,3-布,0-退出
1
你出的是石头,电脑出的是石头,平局!!!
请输入1-石头,2-剪刀,3-布,0-退出
1
你出的是石头,电脑出的是石头,平局!!!
请输入1-石头,2-剪刀,3-布,0-退出
1
你出的是石头,电脑出的是石头,平局!!!
请输入1-石头,2-剪刀,3-布,0-退出
1
你出的是石头,电脑出的是石头,平局!!!
请输入1-石头,2-剪刀,3-布,0-退出
1
你出的是石头,电脑出的是布,你输了!!!
请输入1-石头,2-剪刀,3-布,0-退出
0
退出游戏,欢迎下次再玩
三、Java打印日历
package edu.java.homework.calendar;import java.util.Calendar;
import java.util.GregorianCalendar;public class MyCalendar
{private final int year;private final int month;public MyCalendar(int year,int month)//构造函数{this.year=year;this.month=month;}public void printCalendar(){System.out.println("日\t一\t二\t三\t四\t五\t六");int week=getWeekDay(year,month,1);//得到星期数for(int i=1;i<week;i++){System.out.print("\t");}int monthDays=getMonthDays(year,month);//得到该月天数for(int i=1;i<=monthDays;i++){if(getWeekDay(year,month,i)==7){System.out.print(i+"\n");}elseSystem.out.print(i+"\t");}System.out.println();}public int getWeekDay(int year,int month,int day){int week=-1;// 使用Calendar类Calendar calendar=new GregorianCalendar(year,month-1,day);week=calendar.get(Calendar.DAY_OF_WEEK);return week;}public int getMonthDays(int year,int month){int monthDays=0;if(month==4||month==6||month==9||month==11){monthDays=30;}else if(month==2) // 2月需要判断是否为闰年{if(year%4==0&&year%100!=0||year%400==0){monthDays=29;}elsemonthDays=28;}elsemonthDays=31;return monthDays;}
}
package edu.java.homework.chapter;import edu.java.homework.calendar.MyCalendar;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Chapter1
{Scanner in=new Scanner(System.in);public void chapterMenu(){while(true){System.out.println("请选择作业序号:");System.out.println("1--输出日历;2--人事管理系统;0--退出");int option;while(true) // 检验输入的是否为数字,不是则需重新输入{try{option = in.nextInt();break;}catch(InputMismatchException e){System.out.println("输入类型不匹配,请重新输入");in=new Scanner(System.in);}}if(option==1){work1();}else if(option==2){work2();}else if(option==0){break;}}}private void work1(){System.out.println("1、输出日历,格式如下:");MyCalendar myCalendar=new MyCalendar(2022,9);myCalendar.printCalendar();}private void work2(){System.out.println("2、输出如下:");System.out.println("************************");System.out.println(" 人事管理系统");System.out.println(" 1、添加用户");System.out.println(" 2、查询用户");System.out.println(" 3、退出系统");}
}
相关文章:

Java基础知识实际应用(学生信息管理系统、猜拳小游戏、打印日历)
一、Java学生信息管理系统 这个系统包含了添加、修改、删除、查询和显示所有学生信息等功能。您可以在此基础上进行修改和完善,以适应您的需求。 import java.util.Scanner;public class StudentManagementSystem {private static Scanner scanner new Scanner(S…...

Git:在本地电脑上如何使用git?
git 版本: 2.40.1.windows.1 文章目录 一. 使用git之前你必须要理解的几个概念1.1 理解工作区、版本库、暂存区的概念1.2 提交Git版本库的步骤【分两步执行】 二. Git本地库实战2.1 初始化版本库2.2 新建 & 提交 & 状态2.3 查看日志2.4 回退 & 穿梭 &am…...
卷和分区的关系
1、分区 存储空间管理和仓库管理类似,只不过仓库管理的是货物,存储空间管理的是文件。当仓库规模小时,可以不划分货物的存放区域,但当仓库规模很大,就必须根据货物的类型和存储需要,把仓库分为多个区域。例…...

Linux下在qtcreator中创建qt程序
目录 1、新建项目 2、单工程项目创建 3、多工程项目创建 4、添加子工程(基于多工程目录结构) 5、 .pro文件 1、新建项目 切换到“编辑”界面,点击菜单栏中的“文件”-“新建文件或项目” 2、单工程项目创建 只有一个工程的项目&#…...

快递再多也不怕!你的顺丰快递用上5G“神器”
互联网时代,剁手党疯狂“买买买”之后,快递件量再创新高。《2023年6月中国快递发展指数报告》显示,2023二季度单月快递业务量稳定在百亿件以上。其中,由于“618”电商促销活动与父亲节叠加,6月16日至20日单日揽收量均超…...

微信小程序:模板使用
目录 模板的优点: 一、静态模板创建 二、静态模板使用 1.*.wxml引入模板 2.模板使用 3.*.wxss引入模板的样式 三、动态模板创建 四、动态模板使用 1.*.wxml引入模板 2.模板使用 3.*.js定义动态数据 五、结果展示 总结 模板的优点: 有利于保持网…...

AUTOSAR NvM Block的三种类型
Native NVRAM block Native block是最基础的NvM Block,可以用来存储一个数据,可以配置长度、CRC等。 Redundant NVRAM block Redundant block就是在Native block的基础上再加一个冗余块,当Native block失效(读取失败或CRC校验失…...

Vue+ElementUI实现选择指定行导出Excel
这里记录一下,今天写项目时 的一个需求,就是通过复选框选中指定行然后导出表格中选中行的Excel表格 然后这里介绍一个工具箱(模板):vue-element-admin 将它拉取后,运行就可以看到如下界面: 这里面的很多功能都已经实现…...

SNMP简单介绍
SNMP SNMP是广泛应用于TCP/IP网络的网络管理标准协议,该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。SNMP采用轮询机制,提供最基本的功能集,适合小型、快速、低价格的环境使用…...

使用python对图像加噪声
加上雨点噪声 import cv2 import numpy as npdef get_noise(img, value10):#生成噪声图像>>> 输入: img图像value 大小控制雨滴的多少 >>> 返回图像大小的模糊噪声图像noise np.random.uniform(0, 256, img.shape[0:2])# 控制噪声水平ÿ…...

以 Java NIO 的角度理解 Netty
文章目录 前言Java NIO 工作原理Selector 的创建ServerSocketChannel 的创建ServerSocketChannel 注册 Selector对事件的处理总结 前言 上篇文章《Netty 入门指南》主要涵盖了 Netty 的入门知识,包括 Netty 的发展历程、核心功能与组件,并且通过实例演示…...

Maven自定义脚手架(多module模块)+自定义参数
脚手架 视频教程: Maven保姆级教程 脚手架是一个项目模板,包含常用的工程结构、代码。 1 自定义脚手架 脚手架创建的步骤如下,先创建一个工程,把常用的代码写好,进入工程根目录,进行如下操作: …...

爬虫逆向实战(七)--猿人学第十六题
一、数据接口分析 主页地址:猿人学第十六题 1、抓包 通过抓包可以发现数据接口是api/match/16 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以看出m是加密参数 请求头是否加密? 无响应是否加密? 无cook…...

Qt 杂项(Qwt、样式等)
Qt隐藏窗口边框 this->setWindowFlags(Qt::FramelessWindowHint);Qt模态框 this->setWindowModality(Qt::ApplicationModal);QLable隐藏border 代码中设置 lable->setStyleSheet("border:0px");或者UI中直接设置样式:“border:0px” Qwt开源…...

Python程序设计——列表
一、引言 关键点:一个列表可以存储任意大小的数据集合。 程序一般都需要存储大量的数值。假设,举个例子,需要读取100个数字,计算出它们的平均值,然后找出多少个数字是高于这个平均值的。程序首先读取100个数字并计算它…...

NPDP含金量高吗?难考吗?
一,什么是NPDP认证? NPDP认证中文名为产品经理国际资格认证,New Product Development Professional (NPDP) ,是由美国 产品开发与管理协会 (PDMA) 所发起, 是国际公认的唯一的新产品开发专业认证,集理论、方…...

windows pip安装出现 error: Microsoft Visual C++ 14.0 is required
可参考:如何解决 Microsoft Visual C 14.0 or greater is required. Get it with “Microsoft C Build Tools“_不吃香菜的小趴菜的博客-CSDN博客 一、安装Visual Studio2022 1、下载:下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux 我这使…...

威胁分析风险评估(TARA)影响和攻击可行性评估参考
在威胁分析风险评估(TARA)过程中,风险等级由对资产安全属性侵害造成后果的影响等级和威胁的可能性两方面综合评估。 备注:以上内容的评估皆是建立在由信息安全问题引起并导致的前提下。 影响等级评估 影响等级说明,影响从安全&a…...
【教程】H5匿名信源码下载一封来信系统安装流程搭建教程
1、下载源码 匿名信2.0:匿名信h5源码 - 万策云盘 提取码:hOC4 2、查看搭建和使用教程 1,准备授权好的域名和服务器还有源码 2,创建网站和数据库,版本选择7.1【不可以选7.2】 3,上传源码并解压,导入数据…...

PyTorch训练简单的生成对抗网络GAN
文章目录 原理代码结果参考 原理 同时训练两个网络:辨别器Discriminator 和 生成器Generator Generator是 造假者,用来生成假数据。 Discriminator 是警察,尽可能的分辨出来哪些是造假的,哪些是真实的数据。 目的:使…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...

Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...