Java基础 ------ 图书管理系统,springboot面试

}

System.out.println(“请输入要签收的订单序号:”);

int order_No = sca.nextInt();

if (order_No < 0 || order_No >= names.length) {

System.out.println(“订单不存在,签收失败!”);

} else {

if (names[order_No -1] == null) {

System.out.println(“订单不存在!”);

} else {

if (states[order_No - 1] == 0) {//可以签收

System.out.println(“请输入今天的日期:”);

System.out.println(“请输入年份:”);

back_Year[order_No - 1] = sca.nextInt();

System.out.println(“请输入月份:”);

back_Month[order_No - 1] = sca.nextInt();

System.out.println(“请输入日期:”);

back_Date[order_No - 1] = sca.nextInt();

states[order_No - 1] = 1;//将订单状态更改为已归还

System.out.println(“归还成功~”);

//计算开始年份至结束年份的天数

int out_Year_Days = 0;

for (int i = out_Year[order_No - 1]; i < back_Year[order_No - 1]; i++) {

if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {

out_Year_Days += 366;

} else {

out_Year_Days += 365;

}

}

//计算开始月份的天数

int out_Month_Days = 0;

for (int i = 1; i < out_Month[order_No - 1]; i++) {

if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {

out_Month_Days += 31;

} else if (i == 4 || i == 6 || i == 9 || i == 11) {

out_Month_Days += 30;

} else {

if ((out_Year[order_No - 1] % 4 == 0 && out_Year[order_No - 1] % 100 != 0) || out_Year[order_No - 1] % 400 == 0) {

out_Month_Days += 29;

} else {

out_Month_Days += 28;

}

}

}

//计算结束月份的天数

int back_Month_Days = 0;

for (int i = 1; i < back_Month[order_No - 1]; i++) {

if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {

back_Month_Days += 31;

} else if (i == 4 || i == 6 || i == 9 || i == 11) {

back_Month_Days += 30;

} else {

if ((back_Year[order_No - 1] % 4 == 0 && back_Year[order_No - 1] % 100 != 0)

|| back_Year[order_No - 1] % 400 == 0) {

back_Month_Days += 29;

} else {

back_Month_Days += 28;

}

}

}

//计算结果 开始年份至结束年份的天数 - (开始年份至输入月份的天数 + 开始日期) + (结束年至输入月份的天数 + 结束日期)

int result = out_Year_Days - (out_Month_Days + out_Date[order_No - 1]) +

(back_Month_Days + back_Date[order_No - 1]);

sum_Money[order_No - 1] = result * books_Day_Price[books_Loan_Index[order_No - 1]];

} else if (states[order_No - 1] == 1) {

System.out.println(“您选择的订单已签收,无需重复签收!”);

}

}

}

break;

4.添加书籍

简要分析:添加书籍功能用户使用时输入想要添加的书籍即可,如果要添加的书籍本店存在,那么提示用户要添加多少本,如果添加的是本店没有的书籍,那么提示用户输入新书本的一系列信息,并存储在本店书籍中,添加前需查看本店是否有书籍空位,如果没有,不可添加,如果有,可以添加。具体的实现如下:

case “4”:

int isRepeat = 0;//是否重复添加

System.out.println(“添加书籍”);

System.out.println(“请输入您想要添加的书籍名称:”);

String add_Book = sca.next();

for (int i = 0; i < books_Name.length; i++) {

if (books_Name[i] != null && add_Book.equals(books_Name[i])) {

isRepeat = -1;

System.out.println(“查找到该书籍的记录,请输入添加的数量:”);

books_Num[i] += sca.nextInt();

System.out.println(“添加成功~”);

break;

}

}

if (isRepeat == 0) {//添加的是新的书籍

int isNull = 0;

for (int i = 0; i < books_Name.length; i++) {

if (books_Name[i] == null) {

isNull = -1;

System.out.println(“请输入《” + add_Book + “》的数量:”);

books_Num[i] = sca.nextInt();

System.out.println(“请输入《” + add_Book + “》的借出价格(天):”);

books_Day_Price[i] = sca.nextDouble();

System.out.println(“请输入《” + add_Book + “》的原价:”);

books_Price[i] = sca.nextDouble();

books_Name[i] = add_Book;

System.out.println(“添加成功~”);

break;

}

}

if (isNull == 0) {

System.out.println(“存储空间已满,无法添加!”);

}

}

break;

5.删除(订单/书籍)

简要分析:删除订单或书籍,该功能为二级菜单,用户使用该功能时,可选择删除订单或书籍,删除订单满足的条件如下:

1.书籍已经归还,且已经结算,可以删除

2.书籍已经归还,且未结算,不可删除

3.书籍未归还,且未结算,不可删除

删除书籍的条件为本店有的书籍方可删除,反之不可删除。

具体实现如下:

case “5”:

System.out.println(" 删除\n"

  • " 1.删除订单 2.删除书籍\n"

  • “请选择:”);

int delChoice = 0;

do {

delChoice = sca.nextInt();

if (!(delChoice == 1 || delChoice == 2)) {

System.out.println(“您输入的数字有误,请您重新输入:”);

}

} while(!(delChoice == 1 || delChoice == 2));

switch (delChoice) {

case 1:

System.out.println(“订单序号\t借书人\t所借书籍\t当前状态\t是否结算”);

for (int i = 0; i < names.length; i++) {

if (names[i] != null) {

String state = states[i] == 0 ? “未归还” : “已归还”;

String buy = is_Buy[i] == 0 ? “未结算” : “已结算”;

System.out.println((i + 1) + “\t” + names[i]

  • “\t” + books_Name[books_Loan_Index[i]]

  • “\t” + state + “\t” + buy);

}

}

System.out.println(“请输入想要删除的订单序号:(删除规则:未归还书籍的不可删除,已归还但未结算的不可删除)”);

int delNo = sca.nextInt();

for (int i = 0; i < names.length; i++) {

if (names[i] != null && states[i] == 1 && delNo == i + 1 && is_Buy[i] == 1) {//可以删除

for (int j = delNo - 1; j < names.length-1; j++) {

names[j] = names[j + 1];

out_Year[j] = out_Year[j + 1];

out_Month[j] = out_Month[j + 1];

out_Date[j] = out_Date[j + 1];

back_Year[j] = back_Year[j + 1];

back_Month[j] = back_Month[j + 1];

back_Date[j] = back_Date[j + 1];

states[j] = states[j + 1];is_Buy[j] = is_Buy[j + 1];

books_Loan_Index[j] = books_Loan_Index[j + 1];

}

names[names.length - 1] = null;

out_Year[names.length - 1] = 0;

out_Month[names.length - 1] = 0;

out_Date[names.length - 1] = 0;is_Buy[names.length - 1] = 0;

back_Year[names.length - 1] = 0;

back_Month[names.length - 1] = 0;

back_Date[names.length - 1] = 0;

states[names.length - 1] = 0;

books_Loan_Index[names.length - 1] = 0;

System.out.println(“删除成功~”);

break;

} else if (names[i] != null && states[i] == 0 && delNo == i + 1) {

System.out.println(“该订单未归还,请您先归还书籍!”);

} else if (names[i] != null && states[i] == 1 && delNo == i + 1 && is_Buy[i] == 0) {

System.out.println(“该订单未结算,请您先结算订单!”);

}

}

if (delNo > names.length || delNo < 0) {

System.out.println(“订单不存在!”);

}

break;

case 2:

System.out.println(“书籍序号\t书籍名称\t书籍原价”);

for (int i = 0; i < books_Name.length; i++) {

if (books_Name[i] != null) {

System.out.println((i + 1) + “\t” + books_Name[i]

  • “\t” + books_Price[i]);

}

}

System.out.println(“请输入想要删除的书籍序号:(删除书籍必须购买所删除的书籍)”);

int delBook = sca.nextInt();

if (delBook < 0 || delBook >= books_Name.length) {

System.out.println(“书籍不存在!”);

} else {

for (int i = 0; i < books_Name.length; i++) {

if (books_Name[i] != null && delBook == i + 1) {

System.out.println(“《” + books_Name[i] + “原价:” +

books_Price[i] + “元,请支付:”);

int pay = 0;

do {

pay = sca.nextInt();

if (pay > books_Price[i]) {

System.out.println(“支付成功,找您:” + (pay - books_Price[i]) + “元,”

  • “正在删除《” + books_Name[i] + “》…”);

} else if (pay < books_Price[i]) {

System.out.println(“您的支付金额小于书籍原价,请您重新支付:”);

} else {

System.out.println(“支付成功~,正在删除《” + books_Name[i] + “》…”);

}

} while (pay < books_Price[i]);

for (int j = delBook - 1; j < books_Name.length-1; j++) {

books_Name[j] = books_Name[j + 1];

books_Day_Price[j] = books_Day_Price[j + 1];

books_Loan_Index[j] = books_Loan_Index[j + 1];

books_Loan_Num[j] = books_Loan_Num[j + 1];

books_Num[j] = books_Num[j + 1];

books_Price[j] = books_Price[j + 1];

}

books_Name[books_Name.length - 1] = null;

books_Day_Price[books_Name.length - 1] = 0.0;

books_Loan_Index[books_Name.length - 1] = 0;

books_Loan_Num[books_Name.length - 1] = 0;

books_Num[books_Name.length - 1] = 0;

books_Price[books_Name.length - 1] = 0.0;

System.out.println(“删除成功~”);

break;

}

}

}

break;

}

break;

6.结算订单

简要分析:该功能为结算订单,用户看完书籍后可以结算所产生的费用,具体费用为,一天多少钱,借了多少天,天数*钱数==总费用。

具体如下:

case “6”:

System.out.println(“结算订单”);

System.out.println(“订单序号\t订单人姓名\t所借书籍\t书籍价格(天)\t当前状态\t是否结算\t共计”);

for (int i = 0; i < names.length; i++) {

if (names[i] != null) {

String state = states[i] == 0 ? “未归还” : “已归还”;

String buy = is_Buy[i] == 0 ? “未结算” : “已结算”;

System.out.println(" " + (i + 1) + “\t” + names[i] + “\t《”

  • books_Name[books_Loan_Index[i]] + “》\t”

  • books_Day_Price[books_Loan_Index[i]] + "元/天\t\t "

  • state + "\t " + buy + “\t¥” + sum_Money[i]);

}

}

System.out.println(“请输入想要结算的订单序号:”);

int pay = sca.nextInt();

for (int i = 0; i < names.length; i++) {

if (names[i] != null && pay == i + 1 && is_Buy[i] == 0 && states[i] == 1) {

System.out.println(“----------订单详情----------\n”

  • “订单人:” + names[i]

  • “\n所借书籍:《” + books_Name[i]

  • “》\n书籍价格(天):” + books_Day_Price[i]

  • “\n所借天数:” + (int)(sum_Money[i] / books_Day_Price[i])

  • “\n共计:” + sum_Money[i]);

System.out.println(“请您支付:”);

double payMoney = 0.0;

do {

payMoney = sca.nextInt();

if (payMoney > sum_Money[i]) {

is_Buy[i] = 1;

System.out.println(“支付成功,找您:” + (payMoney - sum_Money[i])

  • “元”);

} else if (payMoney < sum_Money[i]) {

System.out.println(“您输入的金额小于总金额,请您重新付款:”);

} else {

is_Buy[i] = 1;

System.out.println(“支付成功~”);

}

} while (payMoney < sum_Money[i]);

} else if (names[i] != null && pay == i + 1 && is_Buy[i] == 1) {

System.out.println(“订单已结算无需重复结算!”);

} else if (names[i] != null && pay == i + 1 && states[i] == 0) {

System.out.println(“订单未归还,请您先归还书籍再结算订单!”);

}

}

if (pay >= names.length || pay < 0) {

System.out.println(“订单不存在!”);

}

break;

整体框架:

在这里插入图片描述

先初始化3个数据主体,我们选择查看功能

查看订单

在这里插入图片描述

查看书籍

在这里插入图片描述

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

最后

现在正是金三银四的春招高潮,前阵子小编一直在搭建自己的网站,并整理了全套的**【一线互联网大厂Java核心面试题库+解析】:包括Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**

image

能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-pYLszwoU-1710970166665)]
[外链图片转存中…(img-d8XLlbWQ-1710970166665)]
[外链图片转存中…(img-RP750shX-1710970166666)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-O6Gn7D9p-1710970166666)]

最后

现在正是金三银四的春招高潮,前阵子小编一直在搭建自己的网站,并整理了全套的**【一线互联网大厂Java核心面试题库+解析】:包括Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**

[外链图片转存中…(img-e9VlW4Iz-1710970166666)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 23
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值