新手小白学习Java第十天笔记

《图书管理系统》的改动:
1.创建Book类,
    属性:图书编号,图书名字,状态,借出日期,借出次数

    User类:
    属性:用户编号,账号,密码,权限级别

2.创建接口:(注入思想:数据访问层jdbc    业务层   控制层 )

   数据访问层jdbc---跟数据库有关系的代码(sql语句)都在数据访问层。
        接口+实现类
            接口包:xxx.dao
            接口名:实体类Dao  BookDao
            实现类包:xxx.dao.impl
            实现类名字:   BookDaoImpl

   业务层:
       接口+实现类
           接口包:xxx.service
           接口名:BookService
           实现类包:xxx.service.impl
           实现类名字:  BookServiceImpl


   控制层:
       类: BookController

2.货车司机
  老大:去XXXXX工厂里,装回来 30套 蓝色的高度为1.4米的桌椅。

  1.地址  url:
  2.钥匙  ---username password

package bookguanli;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLFault;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class BookDemo2 {
    static Scanner input=new Scanner(System.in);
    static String[] names=new String[50];
    static String[] status=new String[50];
    static String[] dates=new String[50];
    static int[] counts=new int[50];

    public static void main(String[] args) {
        init();
        menu();
    }

    //提前赋值
    private static void init() {
        names[0]="西游记";
        status[0]="已借出";
        dates[0]="2024-3-4";
        counts[0]=35;

        names[1]="红楼梦";
        status[1]="未借出";
        dates[1]="";
        counts[1]=15;

        names[2]="水浒传";
        status[2]="未借出";
        dates[2]="";
        counts[2]=29;
    }

    //主菜单
    public static void menu(){
        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("6.图书排行榜");
        System.out.println("7.退\t出");
        System.out.println("请输入你要选择的功能:");
        int m=input.nextInt();
        if (m==1){
            menu1();
        }else if (m==2){
            menu2();
        }else if (m==3){
            menu3();
        }else if (m==4){
            menu4();
        }else if (m==5){
            menu5();
        }else if (m==6){
            menu6();
        }else if (m==7){
            menu7();
        }
        getret();
    }

    //程序循环使用
    private static void getret() {
        System.out.println("继续使用:0");
        System.out.println("停止使用:7");
        int m=input.nextInt();
        if(m==0){
            menu();
        }else if(m==7){
            menu7();
        }
    }

    //新增图书
    private static void menu1() {
        System.out.println("请输入新增图书的名称:");
        String name=input.next();
        for (int i = 0; i <names.length ; i++) {
            if (name.equals(names[i])){
                System.out.println("该图书已存在!");
                break;
            }else {
                if (names[i]==null){
                    names[i]=name;
                    status[i]="未借出";
                    dates[i]="";
                    counts[i]=0;
                    System.out.println("新增成功!");
                    break;
                }
            }
        }
    }

    //查询图书
    private static void menu2() {
        System.out.println("序号\t名称\t状态\t日期\t次数");
        for (int i = 0; i <names.length ; i++) {
            if (names[i]==null){
                break;
            }
            System.out.println((i+1)+"\t"+names[i]+"\t"+status[i]+"\t"+dates[i]+"\t"+counts[i]);
        }
    }

    //删除图书
    private static void menu3() {
        System.out.println("请输入要删除的图书名称:");
        String name=input.next();
        int b=-1;
        int i;
        for (i = 0; i <names.length; i++) {
            if (names[i].equals(name)){
                b=i;
                break;
            }
        }
        if (b==-1){
            System.out.println("该图书不存在!");
        }else {
            if (status[b].equals("已借出")){
                System.out.println("该图书已借出,无法删除!");
            }else {
                for (i=b;i<names.length-1;i++){
                    names[i]=names[i+1];
                    status[i]=status[i+1];
                    dates[i]=dates[i+1];
                    counts[i]=counts[i+1];
                    if (names[i]==null){
                        break;
                    }
                }
                names[i]=null;
                status[i]=null;
                dates[i]=null;
                counts[i]=0;
                System.out.println("删除成功!");
            }
        }
    }

    //借出图书
    private static void menu4() {
        System.out.println("请输入要借出的图书名称:");
        String name=input.next();
        boolean boo=false;
        int m=-1;
        for (int i = 0; i <names.length ; i++) {
            if (name.equals(names[i])){
                boo=true;
                m=i;
                break;
            }
        }
        if (!boo){
            System.out.println("该图书不存在!");
        }else {
            if (status[m].equals("已借出")){
                System.out.println("无法借出,该图书已借出!");
            }else {
                System.out.println("请输入借出的时间:");
                String date=input.next();
                status[m]="已借出";
                dates[m]=date;
                counts[m]+=1;
                System.out.println("借出成功!");
            }
        }
    }

    //归还图书
    private static void menu5() {
        System.out.println("请输入要归还的图书名称:");
        String name=input.next();
        boolean boo=false;
        int m=-1;
        for (int i = 0; i <names.length ; i++) {
            if (name.equals(names[i])){
                boo=true;
                m=i;
                break;
            }
        }
        if (!boo){
            System.out.println("该图书不存在,无法归还!");
        }else {
            if (status[m].equals("未借出")){
                System.out.println("该图书未借出,无法归还!");
            }else {
                System.out.println("请输入归还日期:");
                String date=input.next();
                System.out.println("借出日期为:"+dates[m]);
                System.out.println("归还日期为:"+date);
                int money=getmon(dates[m],date);
                System.out.println("应付租金为:"+money);
                System.out.println("归还成功!");
            }
        }
    }

    //计算租金
    private static int getmon(String t1,String t2) {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");
        try {
            Date pal1=sdf.parse(t1);
            long time1=pal1.getTime();
            Date pal2=sdf.parse(t2);
            long time2=pal2.getTime();
            return (int)((time2-time1)/(1000*60*60*24));
        }
        catch (ParseException e){
            e.getErrorOffset();
        }
        return 0;
    }

    //图书排行榜
    private static void menu6() {
        int m=names.length;
        System.out.println("*****图书排行榜*****");
        for (int i = 0; i <names.length ; i++) {
            if (names[i]==null){
                m=i;
                break;
            }
        }
        for (int i = 0; i <m-1 ; i++) {
            for (int j = 0; j <m-i-1; j++) {
                if (counts[j]<counts[j+1]){
                    int num=counts[j];
                    String name=names[j];
                    String dt=dates[j];
                    String zt=status[j];

                    counts[j]=counts[j+1];
                    names[j]=names[j+1];
                    status[j]=status[j+1];
                    dates[j]=dates[j+1];

                    counts[j+1]=num;
                    names[j+1]=name;
                    status[j+1]=zt;
                    dates[j+1]=dt;
                }
            }
        }
        //打印
        System.out.println("序号\t名称");
        for (int i = 0; i <names.length; i++) {
            if (names[i]==null){
                break;
            }
            System.out.println((i+1)+names[i]);
        }
    }

    //退出
    public static void menu7(){
        System.out.println("谢谢使用!");
        System.exit(1);
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值