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

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学生信息管理系统 这个系统包含了添加、修改、删除、查询和显示所有学生信息等功能。您可以在此基础上进行修改和完善&#xff0c;以适应您的需求。 import java.util.Scanner;public class StudentManagementSystem {private static Scanner scanner new Scanner(S…...

Git:在本地电脑上如何使用git?

git 版本&#xff1a; 2.40.1.windows.1 文章目录 一. 使用git之前你必须要理解的几个概念1.1 理解工作区、版本库、暂存区的概念1.2 提交Git版本库的步骤【分两步执行】 二. Git本地库实战2.1 初始化版本库2.2 新建 & 提交 & 状态2.3 查看日志2.4 回退 & 穿梭 &am…...

卷和分区的关系

1、分区 存储空间管理和仓库管理类似&#xff0c;只不过仓库管理的是货物&#xff0c;存储空间管理的是文件。当仓库规模小时&#xff0c;可以不划分货物的存放区域&#xff0c;但当仓库规模很大&#xff0c;就必须根据货物的类型和存储需要&#xff0c;把仓库分为多个区域。例…...

Linux下在qtcreator中创建qt程序

目录 1、新建项目 2、单工程项目创建 3、多工程项目创建 4、添加子工程&#xff08;基于多工程目录结构&#xff09; 5、 .pro文件 1、新建项目 切换到“编辑”界面&#xff0c;点击菜单栏中的“文件”-“新建文件或项目” 2、单工程项目创建 只有一个工程的项目&#…...

快递再多也不怕!你的顺丰快递用上5G“神器”

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

微信小程序:模板使用

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

AUTOSAR NvM Block的三种类型

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

Vue+ElementUI实现选择指定行导出Excel

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

SNMP简单介绍

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

使用python对图像加噪声

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

以 Java NIO 的角度理解 Netty

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

Maven自定义脚手架(多module模块)+自定义参数

脚手架 视频教程&#xff1a; Maven保姆级教程 脚手架是一个项目模板&#xff0c;包含常用的工程结构、代码。 1 自定义脚手架 脚手架创建的步骤如下&#xff0c;先创建一个工程&#xff0c;把常用的代码写好&#xff0c;进入工程根目录&#xff0c;进行如下操作&#xff1a; …...

爬虫逆向实战(七)--猿人学第十六题

一、数据接口分析 主页地址&#xff1a;猿人学第十六题 1、抓包 通过抓包可以发现数据接口是api/match/16 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块可以看出m是加密参数 请求头是否加密&#xff1f; 无响应是否加密&#xff1f; 无cook…...

Qt 杂项(Qwt、样式等)

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

Python程序设计——列表

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

NPDP含金量高吗?难考吗?

一&#xff0c;什么是NPDP认证&#xff1f; NPDP认证中文名为产品经理国际资格认证&#xff0c;New Product Development Professional (NPDP) &#xff0c;是由美国 产品开发与管理协会 (PDMA) 所发起&#xff0c; 是国际公认的唯一的新产品开发专业认证&#xff0c;集理论、方…...

windows pip安装出现 error: Microsoft Visual C++ 14.0 is required

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

威胁分析风险评估(TARA)影响和攻击可行性评估参考

在威胁分析风险评估&#xff08;TARA)过程中&#xff0c;风险等级由对资产安全属性侵害造成后果的影响等级和威胁的可能性两方面综合评估。 备注&#xff1a;以上内容的评估皆是建立在由信息安全问题引起并导致的前提下。 影响等级评估 影响等级说明&#xff0c;影响从安全&a…...

【教程】H5匿名信源码下载一封来信系统安装流程搭建教程

1、下载源码 匿名信2.0&#xff1a;匿名信h5源码 - 万策云盘 提取码&#xff1a;hOC4 2、查看搭建和使用教程 1,准备授权好的域名和服务器还有源码 2&#xff0c;创建网站和数据库&#xff0c;版本选择7.1【不可以选7.2】 3&#xff0c;上传源码并解压&#xff0c;导入数据…...

PyTorch训练简单的生成对抗网络GAN

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

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...

云原生安全实战:API网关Envoy的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关 作为微服务架构的统一入口&#xff0c;负责路由转发、安全控制、流量管理等核心功能。 2. Envoy 由Lyft开源的高性能云原生…...