模仿图书系统,实现前台和后台操作

首先将用户名密码封装到一个类中,另一个类保存图书信息。

package com.jereh4;

import java.util.ArrayList;
import java.util.List;

class Book{

    private List bookList ;

    public  List getList(){
        bookList = new ArrayList();
        bookList.add(10001);
        bookList.add("天空");
        bookList.add("张三");
        bookList.add("2012-06");
        bookList.add(23.5);
        bookList.add(30);
        bookList.add(10002);
        bookList.add("购物");
        bookList.add("李四");
        bookList.add("2013-11");
        bookList.add(33.7);
        bookList.add(28);
        bookList.add(10003);
        bookList.add("美女");
        bookList.add("王五");
        bookList.add("2014-03");
        bookList.add(63.2);
        bookList.add(48);
        bookList.add(10004);
        bookList.add("交流");
        bookList.add("赵六");
        bookList.add("2015-09");
        bookList.add(16.4);
        bookList.add(52);

        return bookList;
    }

}

public class Information {

        private String username = "user";
        private int password = 123;
        private String admin = "admin";
        private int pwd = 888 ; 

        public String getUsername(){
            return username;
        }

        public int getPassword(){
            return password;
        }

        public String getAdmin(){
            return admin;
        }

        public int getPwd(){
            return pwd;
        }

}

然后主代码实现(假设用户都是善良的用户,不去刻意找BUG):

package com.jereh4;

import java.util.*;

public class Demo_bing {

    public static void main(String[] args){

        System.out.println("*******************欢迎使用图书书店*******************");

    //  Information类中保存用户名和密码,Book类中保存现有图书,定义List容器保存图书信息.
        Scanner scn         = new Scanner(System.in);
        Information message = new Information();
        Book book           = new Book();
        List list           = new ArrayList();
        List bookList       = book.getList();

    //  获取Information类中用户名和密码.
        String user  = message.getUsername();
        int password = message.getPassword();
        String admin = message.getAdmin();
        int pwd      = message.getPwd();

    /*
     *  定义passInput表示输入的密码,count判断是否输出容器元素,chooseNum表示选择操作,bookId表示图书号,bookNum表示图书数量,firstPosition表示
     *  每行的第一个位置,lastPosition表示每行的最后一个位置,jadge判断进行了哪种操作,bookPrice表示图书价格,chr判断是否继续操作,userInput表示
     *  输入的用户名,bookName表示输入的图书书名,date表示出版日期,bookActor表示图书作者.
     *
     */
        int passInput = 0  , count = -1 ,chooseNum = 0  , bookId = 0 , bookNum = 0  , firstPosition = 0 , lastPosition = 0 , jadge = 0;
        double bookPrice = 0 ;
        char chr = ‘y‘;
        String  userInput = null , bookName = null , date = null , bookActor = null ;

        while(true){

            System.out.println("请输入用户名:");
            userInput = scn.next();
            System.out.println("请输入密码:");
            passInput = scn.nextInt();

        //  if-else判断输入的信息,进入不同的界面.
            if(userInput.equals(user) && passInput == password){

                System.out.println("登录成功,尊敬的用户您好!\n");

                while(true){

                    System.out.println("\t\t\t*******************欢迎使用网上购书系统*******************\n");
                    System.out.println("\t\t书号\t\t书名\t\t作者\t\t发布日期\t\t价格\t\t库存");

                //  用for循环来输出容器中图书的信息.
                    for(int j = 0 , m = 1; j < bookList.size();j++,m++){

                        if(firstPosition == 0){

                            System.out.print("\t\t"+bookList.get(j));

                            if(m%6==0&&m>0)
                                System.out.println();
                        }
                    }

                    System.out.print("\n");
                    System.out.println("*******************请选择进行的操作:\t1.查看图书\t2.购买图书\t3.退出系统\t*******************");

                    chooseNum = scn.nextInt();
                    switch(chooseNum){

                    case 1:

                        System.out.println("\t\t\t*********您选择了查看图书的操作,以下是本店的图书*********");
                        System.out.print("\n");
                        System.out.println("\t\t书号\t\t书名\t\t作者\t\t发布日期\t\t价格\t\t库存");

                    //  用for循环来输出容器中图书的信息.
                        for(int j = 0 , m = 1; j < bookList.size();j++,m++){

                            if(firstPosition == 0){

                                System.out.print("\t\t"+bookList.get(j));

                                if(m%6==0&&m>0)
                                    System.out.println();
                            }
                        }

                        System.out.print("\n");
                        System.out.println("是否继续操作?(y/n)");

                        chr = scn.next().charAt(0);

                        if(chr == ‘y‘){
                            break;
                        }else{
                            System.out.println("谢谢您的使用,欢迎再来!");
                            System.exit(0);
                        }

                        break;
                    case 2:

                        System.out.println("\t\t\t*********您选择了购买图书的操作,以上是本店的图书*********");
                        System.out.print("\n");
                        System.out.println("***请输入您要购买的图书信息***");
                        System.out.print("\n");
                        System.out.print("请输入图书ID:");

                        bookId = scn.nextInt();

                        System.out.print("请输入购买数量:");

                        bookNum = scn.nextInt();

                    //  用for循环来查找输入的书号,并取出此行中其他信息.
                        for(int i = 0; i <= 18; i+=6 ){
                            if(bookId == (Integer)bookList.get(i)){
                                bookName  = (String) bookList.get(i+1);
                                bookPrice = (Double) bookList.get(i+4);
                            }
                        }

                        System.out.print("\n");
                        System.out.println("您选择了《"+bookName+"》,单价¥:"+bookPrice+"元");
                        System.out.println("您选择的购买数量为:"+bookNum+"本");
                        System.out.println("总共消费:"+bookNum*bookPrice+"元");
                        System.out.print("\n");
                        System.out.println("是否继续操作?(y/n)");

                        chr = scn.next().charAt(0);

                        if(chr == ‘y‘){
                            break;
                        }else{
                            System.out.println("谢谢您的使用,欢迎再来!");
                            System.exit(0);
                        }

                        break;
                    case 3:

                        System.out.println("谢谢您的使用,欢迎再来!");
                        System.exit(0);

                        break;

                        default:

                            System.out.println("***输入有误,请重新输入***");

                            break;

                    }
                }

            }else if(userInput.equals(admin) && passInput == pwd){

                System.out.println("登录成功,尊敬的管理员您好,欢迎来到系统后台!\n");

                while(true){

                System.out.println("\t\t\t*******************欢迎使用图书管理系统*******************\n");
                System.out.print("\n");
                System.out.println("\t\t书号\t\t书名\t\t作者\t\t发布日期\t\t价格\t\t库存");

                count = 0;
                while(count != -1){

                //  用for循环来输出容器中图书的信息.
                    for(int j = 0 , m = 1; j < bookList.size();j++,m++){

                            System.out.print("\t\t"+bookList.get(j));

                            if(m%6==0&&m>0)
                                System.out.println();

                    }

                /*
                 *   用for循环来输出新添加到容器中图书的信息,firstPosition值若不为0则表示已经过入库或出口操作,用jadge判断进行入库或出库操作,
                 *   更新对应的数据.
                 *
                 */

                    for(int j = 0 , m = 1; j < list.size();j++,m++){

                        if(firstPosition == 0){

                            System.out.print("\t\t"+list.get(j));

                            if(m%6==0&&m>0)
                                System.out.println();
                            }else if(jadge==1){
                                for(int q = 0; q <= list.size(); q+=6){

                                    if(firstPosition == (Integer)list.get(q)){
                                        int num = lastPosition+(Integer)list.get(q+5);
                                        list.remove(q+5);
                                        list.add(q+5 , num);

                                        firstPosition = 0;
                                        j--;
                                        m--;
                                        break;

                                    }
                                }

                            }else if(jadge==2){

                                for(int q = 0; q <= list.size(); q+=6){

                                    if(firstPosition == (Integer)list.get(q)){
                                        int num = (Integer)list.get(q+5) - lastPosition;
                                        list.remove(q+5);
                                        list.add(q+5 , num);

                                        firstPosition = 0;
                                        j--;
                                        m--;
                                        break;

                                    }
                                }
                            }
                        }

                    break;
                }

                System.out.print("\n");
                System.out.println("***************请选择进行的操作:\t1.图书入库\t2.图书出库\t3.新增图书\t4.退出系统\t***************");

                chooseNum = scn.nextInt();
                switch(chooseNum){

                case 1:

                    System.out.println("\t\t\t*********您选择了图书入库的操作,以上是本店的图书*********");
                    System.out.print("\n");
                    System.out.println("***请输入您要入库的图书信息***");
                    System.out.print("\n");
                    System.out.print("请输入您要入库的图书ID:");
                    bookId = scn.nextInt();
                    System.out.print("请输入您要入库的图书数量:");
                    bookNum = scn.nextInt();

                    jadge = 1;
                    firstPosition = bookId ;
                    lastPosition  = bookNum;

                //  用for循环来查找输入的书号,并取出此行中其他信息.
                    for(int i = 0; i <= 18; i+=6 ){
                        if(firstPosition == (Integer)bookList.get(i)){
                            int num = (Integer)bookList.get(i+5) + lastPosition;
                            bookList.remove(i+5);
                            bookList.add(i+5 , num);
                        }
                    }

                    System.out.print("\n");
                    System.out.println("是否确定入库?(y/n)");

                    chr = scn.next().charAt(0);

                    if(chr == ‘y‘){
                        break;
                    }else{
                        System.out.println("谢谢您的使用,欢迎再来!");
                        System.exit(0);
                    }

                    break;
                case 2:

                    System.out.println("\t\t\t*********您选择了图书出库的操作,以上是本店的图书*********");
                    System.out.print("\n");
                    System.out.println("***请输入您要出库的图书信息***");
                    System.out.print("\n");
                    System.out.print("请输入您要出库的图书ID:");
                    bookId = scn.nextInt();
                    System.out.print("请输入您要出库的图书数量:");
                    bookNum = scn.nextInt();

                    jadge = 2;
                    firstPosition = bookId ;
                    lastPosition  = bookNum;

                //  用for循环来查找输入的书号,并取出此行中其他信息.
                    for(int i = 0; i <= 18; i+=6 ){
                        if(firstPosition == (Integer)bookList.get(i)){
                            int num = (Integer)bookList.get(i+5) - lastPosition;
                            bookList.remove(i+5);
                            bookList.add(i+5 , num);
                        }
                    }

                    System.out.print("\n");
                    System.out.println("是否确定出库?(y/n)");

                    chr = scn.next().charAt(0);

                    if(chr == ‘y‘){
                        break;
                    }else{
                        System.out.println("谢谢您的使用,欢迎再来!");
                        System.exit(0);
                    }

                    break;
                case 3:

                    System.out.println("\t\t\t*********您选择了新增图书的操作,请输入图书信息*********");
                    System.out.print("\n");
                    System.out.println("***请输入您要新增的图书信息***");
                    System.out.print("\n");
                    System.out.print("请输入图书ID:");
                    bookId = scn.nextInt();
                    System.out.print("请输入图书书名:");
                    bookName = scn.next();
                    System.out.print("请输入图书作者:");
                    bookActor = scn.next();
                    System.out.print("请输入出版时间:");
                    date = scn.next();
                    System.out.print("请输入图书价格:");
                    bookPrice = scn.nextDouble();
                    System.out.print("请输入图书数量:");
                    bookNum = scn.nextInt();

                //  用while循环添加图书信息到容器中.
                    while(true){

                        list.add(bookId);
                        count ++;
                        list.add(bookName);
                        count ++;
                        list.add(bookActor);
                        count ++;
                        list.add(date);
                        count ++;
                        list.add(bookPrice);
                        count ++;
                        list.add(bookNum);
                        count ++;

                        break;

                    }

                    System.out.print("\n");
                    System.out.println("是否确定新增?(y/n)");

                    chr = scn.next().charAt(0);

                    if(chr == ‘y‘){
                        break;
                    }else{
                        System.out.println("谢谢您的使用!");
                        System.exit(0);
                    }

                    break;

                case 4:

                    System.out.println("谢谢您的使用!");
                    System.exit(0);

                    break;

                    default:

                        System.out.println("***输入有误,请重新输入***");

                        break;
                    }
                }

            }else{
                System.out.println("帐号或密码错误,请重新输入!");
                System.out.print("\n");
            }

        }

    }

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-15 08:14:15

模仿图书系统,实现前台和后台操作的相关文章

crm 系统项目(二) admin 后台操作表格

crm 系统项目(二) admin 后台操作表格 1. app下创建 templates  运行的时候 先找全局的templates——> 按照app的注册顺序找templates中的文件 2. app下在创建一个urls.py include() 3. 创建超级用户 python manage.py createsuperuser 邮箱可以忽略,密码默认为8位 4. 在admin中注册model from django.contrib import admin from crm import

基于ASP.net耳机网店商城系统(前台页面+后台页面)

源码+Q1357003732下载 原文地址:https://www.cnblogs.com/doublekai/p/9778246.html

linux前台与后台程序操作

亲爱的网友,我这里有套课程想和大家分享,如果对这个课程有兴趣的,可以加我的QQ2059055336和我联系. 课程内容简介 我们软件是基于移动设备的.所以我们必然的选择了安卓作为我们的开发工具.课程中,我们将简要的介绍Android的基本概念,然后进行我们的实战开发.在开发中,大家讲学习到基本的组件,适配UI,数据的存储,多线程下载,开机广播,闹钟提醒,短信发送等实际项目开发中碰到的有用的知识点.通过课程学习,让大家能够掌握Android软件开发的流程,注意点,及优化.帮助大家迅速的掌握Andr

web day26 小项目练习图书商城 后台分类管理模块,图书管理模块,前台登陆过滤

后台 后台的内容,必须要设置权限 用户可以访问一个网站的哪些内容? dao:不行 / service:不行 servlet:能 / jsp:能 用户可以访问的只有WEB层 分类管理 功能:增删改查 相关类 其他不变,为管理员提供单独的Servlet,然后给这个Servlet添加过滤器! web.servlet.admin:AdminCategoryServlet 查看所有分类 (略)同前台 只是转发到不同的页面 添加分类 add.jsp→AdminCatetgoryServlet#add() 1

asp.net后台操作javascript:confirm返回值

在asp.net中使用confirm可以分为两种: 1.没有使用ajax,confirm会引起也面刷新 2.使用了ajax,不会刷新 A.没有使用ajax,可以用StringBuilder来完成. (一)asp.net用StringBuilder控制后台操作javascript:confirm返回值,此方法比较烦琐1.后台启动事件 StringBuilder sb = new StringBuilder();        sb.Append("<script language='java

Linxu中命令的执行(前台、后台)

距离上一篇文章已经有半个月的时间了,感觉这段时间对不起自己呀.因为现在我开始学习Java了,以后有时间和大家交流一个学习经验. 今天我要分享的知识是如何建立进程.在Linux中我们应该如何进程呢,让我们好好来探究一下吧. 示例一: 这个例子就是建立了一个后台进程 [[email protected] Desktop]# ping 127.0.0.1& [1] 16885 [[email protected] Desktop]# PING 127.0.0.1 (127.0.0.1) 56(84)

[转] 在Asp.net前台和后台弹出提示框

一.在前台弹出提示框 1.点击“A”标记或者“控件按钮”弹出提示框 <asp:LinkButton ID="lbtnDel" runat="server" OnClientClick='<%# "if(!confirm("你确定退订吗?"))return false;"%>' Text="删除"/> 2.方法二: <asp:LinkButton ID="lbtnDel

opencart后台操作--第一节 多语言篇---中文语言包

第二章  opencart后台操作 第一节多语言篇---中文语言包 一.下载语言包 1.当然还是需要在官网上面下载语言包,优点就不需要小编啰嗦了.网址呢?还是原来的配方还是原来我味道,http://www.opencart.com ,这里我们就不上首页图了,直接上模版插件图了,打开首页点击菜单 Extensions 进入插件下载页面. 看网站的左边有几个选择菜单,这里我们需要针对我们的版本进行相应的下载,这里我们只需要按照小编的选择进行吧, 这里我选择第一个2.0中文包就可以了,点击进去拉到最下

前台调用后台事件和方法实现小结

在实际开发过程中,我们的HTML元素需要调用后台,而且需要让后台进行复杂运算后再进行数据重新绑定操作,遇到这样的问题怎么办呢?可能有人说在后台创建一个方法,该方法实现绑定数据操作,但是实际呢?结果不尽人意,它没有执行绑定的实现,而只是简单的执行一下方法但是前台无反应,为什么出现这样的情况?原来前台调用后台方法其实只是返回结果,对实现过程及元素组合变化不管不问,它只是关注执行后的结果,不为过程买单,那么有什么方法解决这个问题呢?想想?我们可不可以让前台HTML元素触发ASP.NET按钮来触发事件呢