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 是警察,尽可能的分辨出来哪些是造假的,哪些是真实的数据。 目的:使…...
在Nodejs后端服务中集成多模型API实现智能客服
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Nodejs后端服务中集成多模型API实现智能客服 构建一个智能客服系统时,开发者常常面临模型选择的两难:既要…...
从Halo部署到公网访问:手把手教你用Nginx反代搞定域名、HTTPS与安全配置
从Halo部署到公网访问:Nginx反代全流程实战指南 当你成功在本地服务器上部署了Halo博客系统,看着8080端口的测试页面时,是否思考过如何让它成为真正的互联网站点?本文将带你跨越从本地测试到公网可访问的最后一道鸿沟,…...
代码生成器设计原理与实战:从模板引擎到自动化开发
1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫xintaofei/codeg。乍一看这个名字,可能有点摸不着头脑,codeg是啥?是“代码生成器”的缩写吗?还是某种新的开发工具?点进去研究了一番&#x…...
Driftguard MCP:AI编码助手实时防代码漂移的MCP协议解决方案
1. 项目概述:当AI助手开始“自我审查”你的代码库最近在折腾AI助手集成开发环境时,发现了一个挺有意思的项目:jschoemaker/driftguard-mcp。乍一看这个名字,driftguard——漂移守卫,MCP——Model Context Protocol&…...
在多轮对话中感受Taotoken路由策略的稳定性
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在多轮对话中感受Taotoken路由策略的稳定性 1. 引言:多轮对话的稳定性挑战 在构建依赖大语言模型的对话应用时&#x…...
代码锁:极简主义下的单例模式与模块化设计实践
1. 项目概述:一个极简主义者的代码锁最近在GitHub上看到一个挺有意思的项目,叫cdotlock/the_only。光看这个名字,你可能有点摸不着头脑,cdotlock是什么?the_only又是什么意思?这其实是一个典型的极简主义开…...
Kubernetes轻量级服务网格Cetus:核心流量治理与Sidecar代理实践
1. 项目概述:一个为Kubernetes而生的智能代理如果你正在管理一个规模不小的Kubernetes集群,并且对服务网格(Service Mesh)的复杂性望而却步,或者觉得像Istio这样的“巨无霸”方案有些杀鸡用牛刀,那么你很可…...
NotebookLM协作效能临界点预警:当团队超8人时,必须立即启用的3项动态共享策略
更多请点击: https://intelliparadigm.com 第一章:NotebookLM协作效能临界点的本质洞察 NotebookLM 的协作效能并非随用户数量线性增长,而是在特定交互密度与知识对齐度交汇时触发跃迁式提升——这一拐点即为“协作效能临界点”。其本质并非…...
Linux发布前检查实战指南
Linux发布前检查实战指南 本文面向具备一定 Linux 基础的技术人员,围绕发布前检查展开,重点讨论依赖确认、容量检查和回滚准备。在中级运维和系统管理工作中,这类主题常常与配置变更、资源状态、权限边界、自动化任务和业务影响交织在一起&a…...
编程统计公司内部资料查阅使用数据,优化资料分类存储方式。提升职场员工工作查阅办事效率。
构建一个公司内部资料查阅使用统计与资料分类存储优化的商务智能示例项目,去营销化、中立化,仅用于学习与工程实践参考。一、实际应用场景描述在中大型企业中,内部资料(制度、流程文档、技术手册、项目档案)数量庞大&a…...
