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、退出系统");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/92941.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电视机看板大屏适配问题——js基础积累

直接上效果图&#xff1a; 下面直接写代码&#xff1a; 1.html部分的代码 <body><div class"container"><!-- 数据展示区域 --><div class"box"><div class"top">top</div><div class"bottom&…

云原生 envoy xDS 动态配置 java控制平面开发 支持restful grpc

envoy xDS 动态配置 java控制平面开发 支持restful grpc 大纲 基础概念Envoy 动态配置API配置方式动静结合的配置方式纯动态配置方式实战 基础概念 Envoy 的强大功能之一是支持动态配置&#xff0c;当使用动态配置时&#xff0c;我们不需要重新启动 Envoy 进程就可以生效。…

深入理解 Flutter 图片加载原理

作者&#xff1a;京东零售 徐宏伟 来源&#xff1a;京东云开发者社区 前言 随着Flutter稳定版本逐步迭代更新&#xff0c;京东APP内部的Flutter业务也日益增多&#xff0c;Flutter开发为我们提供了高效的开发环境、优秀的跨平台适配、丰富的功能组件及动画、接近原生的交互体验…

【Java基础】Java对象的生命周期

【Java基础】Java对象的生命周期 一、概述 一个类通过编译器将一个Java文件编译为Class字节码文件&#xff0c;然后通过JVM中的解释器编译成不同操作系统的机器码。虽然操作系统不同&#xff0c;但是基于解释器的虚拟机是相同的。java类的生命周期就是指一个class文件加载到类…

LeetCode150道面试经典题-- 合并两个有序链表(简单)

1.题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 2.示例 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输…

计算机竞赛 GRU的 电影评论情感分析 - python 深度学习 情感分类

1 前言 &#x1f525;学长分享优质竞赛项目&#xff0c;今天要分享的是 &#x1f6a9; GRU的 电影评论情感分析 - python 深度学习 情感分类 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 这…

【探索Linux】—— 强大的命令行工具 P.3(Linux开发工具 vim)

阅读导航 前言vim简介概念特点 vim的相关指令vim命令模式(Normal mode)相关指令插入模式(Insert mode)相关指令末行模式(last line mode)相关指令 简单vim配置&#xff08;附配置链接&#xff09;温馨提示 前言 前面我们讲了C语言的基础知识&#xff0c;也了解了一些数据结构&…

Go 安装配置

介绍Ubuntu20.04 安装和配置Go 1.安装Go 去这个地方下载Go https://go.dev/doc/install 如果之前安装过&#xff0c;可以参考这个&#xff08;没有可以忽略&#xff09; 下载完成后执行 sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz 然后修改环境变量 sudo ge…

GaussDB 实验篇+openGauss的4种1级分区案例

✔ 范围分区/range分区 -- 创建表 drop table if exists zzt.par_range; create table if not exists zzt.par_range (empno integer,ename char(10),job char(9),mgr integer(4),hiredate date,sal numeric(7,2),comm numeric(7,2),deptno integer,constraint pk_par_emp pri…

python数据分析需要学哪些,python数据分析要学多久

大家好&#xff0c;小编为大家解答python数据分析应该学什么软件的问题。很多人还不知道python数据分析需要什么基础&#xff0c;现在让我们一起来看看吧&#xff01; 根据调查结果&#xff0c;十大最常用的数据工具中有八个来自或利用Python。Python广泛应用于所有数据科学领域…

开发一个RISC-V上的操作系统(八)—— 抢占式多任务(Preemptive Multitasking)

目录 一、抢占式多任务 二、代码实现 三、上板测试 本节的代码在仓库的 06_Preemptive_Muti_Task 目录下&#xff0c;仓库链接&#xff1a;riscv_os: 一个RISC-V上的简易操作系统 本文代码的运行调试会在前面开发的RISC-V处理器上进行&#xff0c;仓库链接&#xff1a;cpu_…

时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价)

时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价) 目录 时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价)预测结果基本介绍程序设计参考资料 预测结果 基本介绍 MATLAB实现基于…

Python Opencv实践 - 图像金字塔

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR) print(img.shape)#图像上采样 #cv.pyrUp(src, dstNone, dstsizeNone, borderTypeNone) #参考资料&#xff1a;https://blo…

60页数字政府智慧政务大数据资源平台项目可研方案PPT

导读&#xff1a;原文《60页数字政府智慧政务大数据资源平台项目可研方案PPT》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 项目需求分析 项目建设原则和基本策略…

python做出来的作品,python作品创意简单

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python做出来的作品&#xff0c;python作品创意简单&#xff0c;今天让我们一起来看看吧&#xff01; Python语言学习-----简易计算器的制作 我是一名普通的大二在校学生&#xff0c;在大二第一学期开设的课程里接触到P…

selenium语法进阶+常用API

目录 浏览器操作 浏览器回退&#xff0c;前进 与刷新 浏览器窗口设置大小 浏览器设置宽高 浏览器窗口最大化 浏览器控制滚动条 信息打印 打印页面的标题和当前页面的URL 定位一组元素 鼠标和键盘事件 键盘 鼠标 下拉框操作 通过索引定位&#xff08;se…

一.RocketMQ概念

RocketMQ概念 1.概念2.应用场景3.MQ的优点和缺点4.常见MQ对比 1.概念 MQ(Message Queue)&#xff0c;是一种提供消息队列服务的中间件&#xff0c;也称为消息中间件&#xff0c;是一套提供了消息生产、存储、消费全过程API的软件系统。 RocketMQ是阿里巴巴2016年MQ中间件&…

算法学习总结

算法总结 文章目录 算法总结搜索遍历dfs树的深度树的重心图的连通块划分 bfs双端队列bfsbfs图问题 迭代加深双向搜索A*IDA*Morris遍历Manacher 数论质数判断质数分解质因数埃氏筛法线性筛法 约数求N的正约数集合——试除法求1~N每个数的正约数集合——倍除法 欧拉函数快速幂快速…

C语言好题解析(一)

目录 选择题1选择题2选择题3选择题4编程题一 选择题1 执行下面程序&#xff0c;正确的输出是&#xff08; &#xff09;int x 5, y 7; void swap() {int z;z x;x y;y z; } int main() {int x 3, y 8;swap();printf("%d,%d\n",x, y);return 0; }A: 5,7 B: …

2022年工作架构分析

mpmw自动化流程工具 schema动态数据 Schema 本身是一个JSON &#xff0c;Schema 通过一些特定字段描述和定义 JSON的数据结构。 最常见的表单通过类XML语法定义。一些库支持通过一些特定结构的 JSON (Schema)来生成类XML标签。 formily 是其中实现之一。 表单设计器通过可视…