JavaSE小项目练习——图书管理小练习(超详细)_是小鱼儿哈的博客-CSDN博客_javase项目练习
我在学校选修课中学到的javaSE内容有以下这些:
1.计算机基础理论
2.java入门
3.变量和运算符
4.选择结构和循环结构
5.数组
6.方法
到这儿我给大家10道小练习
public class Year {
/**
* 定义一个方法(**getLeap**),传入年份(year),
* 判断传入的年份是否闰年,
* 返回true是闰年,false不是闰年。
* 写一个测试类,测试下2016年是否闰年。
*
* 提示:能被4整除且不能被100整除的为闰年或者能被400整除的是闰年。
*/
public static void main(String[] args) {
System.out.println(getLeap(2016));
}
public static boolean getLeap(int a){
if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0){
return true;
}
return false;
}
}
public class Day {
/**
* 给定某年某月某日,判断这一天是这一年的第几天?
* // 根据月份记录总天数
* //1 3 5 7 8 10 12 31
* //4 6 9 11 30
* //2 29(闰年) 28(平年)
*/
public static void main(String[] args) throws ParseException {
int theday = day(2022,8,3);
System.out.println(theday);
}
public static int day(int a,int b,int c){
int[] arr = {31,28,31,30,31,30,31,31,30,31,30,31};
if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0){
arr[1] = 29;
}
int d = 0;
for (int i = 0;i < b-1;i++){
d += arr[i];
}
d += c;
return d;
}
}
public class Level {
/**
* 使用switch编写程序,给定一个学生成绩,给出相应等级:
* (1) 90~100 优秀
* (2) 80~89 良好
* (3) 70~79 中等
* (4) 60~69 及格
* (5) 0~59 不及格
*/
public static void main(String[] args) {
System.out.println(level(100));
System.out.println(level(96));
System.out.println(level(86));
System.out.println(level(74));
System.out.println(level(63));
System.out.println(level(59));
}
public static String level(int i){
switch (i / 10){
case 10:
return "优秀";
case 9:
return "优秀";
case 8:
return "良好";
case 7:
return "中等";
case 6:
return "及格";
default:
return "不及格";
}
}
}
import javax.swing.*;
public class Value {
/**
* 已知数组 int[] arr = {1,2,1,1,2,3,4,4,5},
* 方法返回value,在arr数组中出现的次数(获取元素在数组中出现的次数
* 1 在数组中出现了 3 次
* 2 在数组中出现了 2 次
*/
public static void main(String[] args) {
int[] arr = {1,2,1,1,2,3,4,4,5};
int index = getElementCount(arr ,7);
System.out.println("在数组中出现了" + index + "次");
}
public static int getElementCount(int[]arr ,int value){
int s = 0;
for (int i = 0;i < arr.length;i++){
if (value == arr[i]){
s++;
}
}
return s;
}
}
public class Valueplas {
//上一题拓展,需求: 去除数组中的重复元素
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,1,2,3,4};
removeRepetition(arr);
}
public static void removeRepetition(int arr[]){
int[] b = new int[arr.length];
int num = 0;
for (int i = 0;i < arr.length;i++){
int s = 0;
for (int j = 0;j < i;j++){
if (arr[i] == b[j]){
break;
}
s++;
}
if (s == i){
b[num++] = arr[i];
}
}
int[] arr2 = new int[num];
for (int x = 0;x < num;x++){
arr2[x] = b[x];
}
for (int index : arr2
) {
System.out.println(index);
}
}
}
public class GuiGu {
/**
* 验证“鬼谷猜想”:对任意自然数num,
* 若是奇数,就对它乘以 3 再加 1;
* 若是偶数,就对它除以 2,这样得到一个新数,
* 再按上述计算规则进行计算,一直进行下去,
* 最终num为1的时候不再运算,求出num为1时共循环了几次。
*/
public static void main(String[] args) {
int num = 16;
int s = 0;
while(num != 1){
if (num % 2 == 0){
num = num / 2;
s++;
}else{
num = num * 3 + 1;
s++;
}
}
System.out.println(s);
}
}
public class Same {
/**
* 一个n位数,判断它是不是回文数。
* 例如:12321是回文数,个位与万位相同,十位与千位相同。
*/
public static void main(String[] args) {
int num = 12344321,num1 = num,i = 0;
while(num1 != 0){
int j = num1 % 10;
i *= 10;
i += j;
num1 /= 10;
}
System.out.println(i);
if (num == i){
System.out.println("是回轮数");
}else{
System.out.println("不是");
}
}
}
public class Factorial {
//求出1 + 2!+ 3!+ 4!+...+20!的结果
public static void main(String[] args) {
int num = 20,s = 0;
for (int i = 1;i <= 20;i++){
int z = 1;
for (int j = 1;j <= i;j++){
z *= j;
}
s += z;
}
System.out.println(s);
}
}
public class Delete {
/**
* 定义一个正整数的数组arr,删除arr数组中指定索引的元素,
* 删除元素后面的元素需要往前移动,并且最后的索引位置用-1补上。
*/
public static void main(String[] args) {
int[] arr = {2,4,5,3,32,4,45,3,23};
int a = 2;
for(int i = a-1;i < arr.length-1;i++){
arr[i] = arr[i+1];
}
arr[arr.length-1] = -1;
for (int i : arr
) {
System.out.print(i + ",");
}
}
}
public class Prime {
//定义一个方法,判断某个整数是否为质数
public static void main(String[] args) {
int num = 5;
int j = 0;
for (int i = 2;i < num;i++){
if(num % i != 0){
j++;
}else{
break;
}
}
if (j == num-2){
System.out.println("质数");
}else{
System.out.println("不是");
}
}
}
import java.util.Scanner;
public class PrimeResole {
//将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
public static void fenjie(int n) {
for (int i=2;i <=n;i++) {
if (i == n) {
System.out.print(i);
return;
}
if (n > i && (n % i == 0)) {
System.out.print(i+"*");
fenjie(n / i);
break;
}
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个整数:");
int n = input.nextInt();
fenjie(n);
}
}
接着学习内容
7.类,对象,封装
8.抽象类和继承
9.接口和多态
10.代码块,内部类,枚举类
11.常用类(api) --> api在手,天下我有!!!
12.集合框架
13.异常处理机制
14.多线程
15.IO流
当然一个选修课是不可能教这么多东西,是我求着跪着老师教我的哈哈。还记得每天没课的时候我去老师办公室作者,作为代价我还给老师判题,批作业什么的。
老师人也特别好,什么内容都能给我教到,有点忘了的内容还专门去问他的同学,我真的太喜欢这个老师了。所以现在一到特殊节日我就为老师准备一份礼物,几天后就是教师节了,我还在想给老师准备什么好,看到这篇内容的人可以给我推荐推荐哦。
然后最后的考试我找不到了,也是做的一个登录系统项目,那时候做完就删了,所以我在开头放了别人发的一个项目。内容都差不多,大家可以去看看。
再来给大家放个二维码,我们可以交流交流,嘿嘿。