精华内容
下载资源
问答
  • java实现简单的管理系统
    千次阅读 多人点赞
    2022-03-22 15:52:47

    目录

    实现目标

    项目展示

    实现过程

    类的设计

    1. 创建图书相关的类

    2.创建操作相关的类

    3.创建用户相关的类 

    4.进行整合

    5.实现具体的每个 Operation

    源码


    实现目标

    1、简单的登录

    2、管理端

    查阅书籍
    增加书籍
    删除书籍
    打印书籍列表
    退出

    3、用户端

    查询书籍 
    借阅书籍 
    归还书籍
    退出

    项目展示

            

    实现过程

    类的设计


    1. 创建图书相关的类

    先创建 package book  创建 Book 类, 表示一本书

    package book;
    import javax.swing.*;
    
    
    public class Book {
        private String name; //书名
        private String author; //作者
        private int price; //价格
        private String type; // 类型
        private boolean isBorrowed = false; //默认未借出
        //构造方法 
        public Book(String name, String author, int price, String type) {
            this.name = name;
            this.author = author;
            this.price = price;
            this.type = type;
        }
    
        //提供get和set方法
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getAuthor() {
            return author;
        }
    
        public void setAuthor(String author) {
            this.author = author;
        }
    
        public int getPrice() {
            return price;
        }
    
        public void setPrice(int price) {
            this.price = price;
        }
    
        public String getType() {
            return type;
        }
    
        public void setType(String type) {
            this.type = type;
        }
    
        public boolean getBorrowed() {
            return isBorrowed;
        }
    
        public void setBorrowed(boolean borrowed) {
            isBorrowed = borrowed;
        }
    
        @Override
        public String toString() {
            return "Book{" +
                    "name='" + name + '\'' +
                    ", author='" + author + '\'' +
                    ", price=" + price +
                    ", type='" + type + '\'' +
                    //", isBorrowed=" + isBorrowed +
                    (isBorrowed ? " 已借出": " 未借出")+
                    '}';
        }
    
    }
      

    创建 BookList 类, 用来保存 N 本书.

    package book;
    
    public class BookList {
        private Book[] books = new Book[10];
        private int usedSize;
    
        //构造方法 初始化书 先放三本书
        public BookList() {
            this.books[0] = new Book("三国演义","罗贯中",17,"小说");
            this.books[1] = new Book("西游记","吴承恩",20,"小说");
            this.books[2] = new Book("水浒传","施耐庵",31,"小说");
            this.usedSize = 3;
        }
        //get和set方法 便于后续得到和设置书的位置、书的数量
        public Book getBook(int pos){
            return this.books[pos];
        }
    
        public void setBook(int pos,Book book){
            this.books[pos] = book;
        }
    
        public int getUsedSize() {
            return usedSize;
        }
    
        public void setUsedSize(int usedSize) {
            this.usedSize = usedSize;
        }
    
    }

    2.创建操作相关的类

     先创建 package operation 创建接口

     
    package operation;
    
    import book.BookList;
    
    public interface IOperation {
        void work(BookList bookList);
    }

    接下来创建一组操作类, 每个类对应一个用户的动作.

    AddOperation                      增加书籍
    DelOperation                       删除书籍
    FindOperation                     查找书籍         
    DisplayOperation                展示书籍
    BorrowOperation                借阅书籍
    ReturnOperation                 归还书籍
    ExitOperation                      退出系统

    先把空类创建好, 不着急实现细节.
    抽象出 Operation 的好处: 让操作和操作之间低耦合, 让操作和用户之间低耦合.

    3.创建用户相关的类 

    先创建 package user

    创建 User 类, 这是一个抽象类

    package user; 
    // User 类是一个抽象类, 每个子类需要做两件事情 
    // 1. 初始化对应的操作数组  2. 实现 Menu 菜单
    
    abstract public class User {
        protected String name;
        protected IOperation[] iOperations;
        public User(String name) {
            this.name = name;
        }
    
        // 显示菜单
        abstract public int menu();
        // 根据用户选项执行操作
        public void doIOperation(int choice, BookList bookList){
            this.iOperations[choice].work(bookList);
        }
    }
    
    

    创建管理员类, 是 User 的子类.

    package user;
    
    import operation.*;
    
    import java.util.Scanner;
    
    public class AdminUser extends User{
        public AdminUser(String name) {
            super(name);
            this.iOperations = new IOperation[]{ //操作数组
                    new ExitOperation(),//0.退出系统
                    new FindOperation(),//1.查找图书
                    new AddOperation(), //2.增加图书
                    new DelOperation(), //3.删除图书
                    new DisplayOperation()//4.显示图书
            };
    
        }
        @Override
        public int menu(){
            System.out.println("==========管理员菜单=========");
            System.out.println("hello! "+this.name);
            System.out.println("1.查找图书");
            System.out.println("2.增加图书");
            System.out.println("3.删除图书");
            System.out.println("4.显示图书");
            System.out.println("0.退出系统");
            System.out.println("============================");
    
            Scanner scanner = new Scanner(System.in);
            int choice = scanner.nextInt();
            return choice;//根据所选的数字 匹配不同的操作功能
        }
    
    }
    

    创建普通用户类,是User的子类

    package user;
    
    import operation.*;
    
    import java.util.Scanner;
    
    public class NormalUser extends User{
        public NormalUser(String name) {
            super(name);
            this.iOperations = new IOperation[]{ //操作数组
                    new ExitOperation(),
                    new FindOperation(),
                    new BorrowedOperation(),
                    new ReturnOperation()
            };
    
        }
        @Override
        public int menu(){
            System.out.println("==========普通用户菜单=========");
            System.out.println("hello! "+this.name);
            System.out.println("1.查找图书");
            System.out.println("2.借阅图书");
            System.out.println("3.归还图书");
            System.out.println("0.退出系统");
            System.out.println("============================");
    
            Scanner scanner = new Scanner(System.in);
            int choice = scanner.nextInt();
            return choice;//根据所选的数字 匹配不同的操作功能
        }
    
    }
    

    4.进行整合


    创建 Main 类和 main 方法, 搭建整体逻辑

    import book.BookList;
    import user.AdminUser;
    import user.NormalUser;
    import user.User;
    
    import java.util.Scanner;
    
    public class  Main {
        public static User login(){ //登陆
            System.out.println("请输姓名:");
            Scanner scanner = new Scanner(System.in);
            String name = scanner.nextLine();
            System.out.println("请选择你的身份:");
            System.out.println("0.管理员    1.普通用户 ");
            int who = scanner.nextInt(); //判断身份
            if (who == 0){
                return new AdminUser(name);//向上转型
            }else {
                return new NormalUser(name);//向上转型
            }
        }
    
        public static void main(String[] args) {
            BookList bookList = new BookList();//准备数据
    
            User user = login();//登陆用户
    
            while (true){
                int choice = user.menu();//显示菜单
                user.doIOperation(choice,bookList);
            }
    
    
        }
    }
    

    5.实现具体的每个 Operation

    查找书籍:

    import book.BookList;
    
    import java.util.Scanner;
    
    public class FindOperation implements IOperation{
        @Override
        public void work(BookList bookList) {
            System.out.println("查找书籍!");
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入你要查找的书名:");
            String name = scanner.nextLine();
    
            int size = bookList.getUsedSize();
            for (int i = 0; i < size;i++){
                Book book = bookList.getBook(i);
                if (book.getName().equals(name)){
                    System.out.println("找到这本书的信息如下:");
                    System.out.println(book);
                    return;
                }
            }
            System.out.println("没有这本书!");
        }
    
    
    }

    增加图书:

    package operation;
    
    import book.Book;
    import book.BookList;
    
    import java.util.Scanner;
    
    public class AddOperation implements IOperation {
        @Override
        public void work(BookList bookList) {
            System.out.println("新增图书");
            System.out.println("请输入图书的名字:");
            Scanner scanner = new Scanner(System.in);
            String name = scanner.nextLine();
            System.out.println("请输入图书的作者:");
            String author = scanner.nextLine();
            System.out.println("请输入图书的类型:");
            String type = scanner.nextLine();//输入String类型不能写在int后面
            System.out.println("请输入图书的价格:");
            int price = scanner.nextInt();
            //注意 使用nextLine读取字符串时 不能在前面读取整数 将其写在最后
    
    
            Book book = new Book(name,author,price,type);
    
            int size = bookList.getUsedSize();
            for (int i = 0; i < size;i++){
                Book bookCur = bookList.getBook(i);
                if (bookCur.getName().equals(name)){
                    System.out.println("已包含这本书!增加失败");
                    return;
                }
            }
            bookList.setBook(size,book);
            bookList.setUsedSize(size+1);
            System.out.println("增加成功!");
        }
    }
    

    借阅图书:

    package operation;
    
    
    import book.Book;
    import book.BookList;
    
    import java.util.Scanner;
    
    public class BorrowedOperation implements IOperation{
        @Override
        public void work(BookList bookList) {
            System.out.println("借阅图书");
            System.out.println("请输入书名:");
            Scanner scanner = new Scanner(System.in);
            String name = scanner.nextLine();
    
            int size = bookList.getUsedSize();
            for (int i = 0; i < size;i++){
                Book bookCur = bookList.getBook(i);
                if (bookCur.getName().equals(name)){
                    bookCur.setBorrowed(true);
                    System.out.println("借阅成功!");
                    return;
                }
            }
            System.out.println("没有此书!借阅失败");
        }
    }
    

    删除书籍:

    package operation;
    
    import book.Book;
    import book.BookList;
    
    import java.util.Scanner;
    
    public class DelOperation implements IOperation {
        @Override
        public void work(BookList bookList) {
            System.out.println("删除书籍");
            System.out.println("请输入图书的名字:");
            Scanner scanner = new Scanner(System.in);
            String name = scanner.nextLine();
    
            int size = bookList.getUsedSize();
            int i = 0;
            int index = 0;
            for (; i < size;i++){
                Book bookCur = bookList.getBook(i);
                if (bookCur.getName().equals(name)){
                    index = i;//定位到i下标的书
                    break;
                }
            }
            if (i == size){
                System.out.println("没有此书!删除失败");
                return;
            }
            //使用for循环让后一个位置的书前移一位
            for (int j = index; j < size-1 ; j++){
                Book book = bookList.getBook(j+1);//得到j+1位置的书
                bookList.setBook(j,book);//将其设置为j位置
            }
            bookList.setUsedSize(size-1);
            System.out.println("删除成功!");
    
        }
    }
    

    归还书籍

    package operation;
    
    import book.Book;
    import book.BookList;
    
    import java.util.Scanner;
    
    public class ReturnOperation implements IOperation {
        @Override
        public void work(BookList bookList) {
            System.out.println("归还图书");
            System.out.println("请输入书名:");
            Scanner scanner = new Scanner(System.in);
            String name = scanner.nextLine();
    
            int size = bookList.getUsedSize();
            for (int i = 0; i < size;i++){
                Book bookCur = bookList.getBook(i);
                if (bookCur.getName().equals(name)){
                    bookCur.setBorrowed(false);
                    System.out.println("归还成功!");
                    return;
                }
            }
            System.out.println("没有此书!归还失败");
        }
    }
    

    显示书籍

    package operation;
    
    import book.BookList;
    
    public class DisplayOperation implements IOperation {
        @Override
        public void work(BookList bookList) {
            System.out.println("显示书籍!");
            int size = bookList.getUsedSize();
            for (int i = 0; i < size ; i++){
                System.out.println(bookList.getBook(i));
            }
        }
    }
    

    退出系统

    package operation;
    
    import book.BookList;
    
    public class ExitOperation implements IOperation{
        @Override
        public void work(BookList bookList) {
            System.out.println("退出系统");
            System.exit(0);
        }
    }
    

    更多相关内容
  • java实现简单超市管理系统

    千次阅读 多人点赞 2021-02-12 16:34:32
    本文实例为大家分享了java实现超市管理系统的具体代码,供大家参考,具体内容如下一、使用技术javaSE二、实现功能超市管理系统具体要求如下:使用选择结构,循环结构,数组的知识实现一个超市管理系统三、运行效果图...

    本文实例为大家分享了java实现超市管理系统的具体代码,供大家参考,具体内容如下

    一、使用技术

    javaSE

    二、实现功能

    超市管理系统

    具体要求如下:

    使用选择结构,循环结构,数组的知识实现一个超市管理系统

    三、运行效果图

    1.货物清单

    1adfbdd59ff1d5f4d16eb0e43a058798.png

    2.增加货物

    690eb278d14576e94edd8b0333ded6dd.png

    3.删除货物

    cf3f5cbcb49a65560beaa1d94ce7c134.png

    4.修改货物

    1ad593110e4d2ca92494e9e31f847c01.png

    5.退出

    d53249e58e781dc1396cabd0b098f0b1.png

    首先我们分析图片里的内容,需要创建一个货物类。

    public class Goods {

    private String number;

    private double price;

    private String name;

    @Override

    public String toString() {

    return "Goods{" +

    "number='" + number + '\'' +

    ", price=" + price +

    ", name='" + name + '\'' +

    '}';

    }

    public String getNumber() {

    return number;

    }

    public void setNumber(String number) {

    this.number = number;

    }

    public double getPrice() {

    return price;

    }

    public void setPrice(double price) {

    this.price = price;

    }

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    public Goods() {

    }

    public Goods(String number, double price, String name) {

    this.number = number;

    this.price = price;

    this.name = name;

    }

    }

    这里我们把每一个功能写进一个类里面,以便更好的观察。

    1.创建一个货物清单类

    import java.util.ArrayList;

    import java.util.Iterator;

    public class CargoList {//货物清单

    public void cargoList(ArrayList list){

    System.out.println("============货物清单============");

    Iterator it = list.iterator();

    while (it.hasNext()){

    System.out.println(it.next());

    }

    }

    }

    2.创建一个增加货物类

    import java.util.ArrayList;

    import java.util.Scanner;

    public class IncreaseCargo {//增加货物

    static Scanner sc=new Scanner(System.in);

    public void add(ArrayList list){

    System.out.println("选择的是商品添加功能");

    System.out.println("输出商品编号ID");

    String num=sc.next();

    System.out.println("输入商品单价");

    double price=sc.nextDouble();

    System.out.println("输入商品名称");

    String name=sc.next();

    Goods g1 = new Goods(num, price, name);

    list.add(g1);

    System.out.println("添加成功");

    }

    }

    3.创建一个删除货物类

    import java.util.ArrayList;

    import java.util.Scanner;

    public class DeleteGoods {//删除商品

    static Scanner sc=new Scanner(System.in);

    public void delete(ArrayList list){

    System.out.println("选择的是删除功能");

    System.out.println("输入要删除的商品编号ID");

    String num=sc.next();

    for (int i = 0; i

    if (list.get(i).getNumber().equals(num)){

    list.remove(list.get(i));

    }

    }

    System.out.println("删除成功");

    }

    }

    4.创建一个修改货物类

    import java.util.ArrayList;

    import java.util.Iterator;

    import java.util.Scanner;

    public class ModificationOfGoods {//修改货物

    static Scanner sc=new Scanner(System.in);

    public void modify(ArrayList list){

    System.out.println("选的是修改功能");

    System.out.println("输入你要修改的商品编号ID");

    String num=sc.next();

    System.out.println("输入新的商品编号");

    String num1=sc.next();

    System.out.println("输入商品单价");

    double price=sc.nextDouble();

    System.out.println("输入商品名称");

    String name=sc.next();

    for (int i = 0; i

    if (num.equals(list.get(i).getNumber())){

    list.set(i,new Goods(num1,price,name));

    }

    }

    System.out.println("修改成功");

    }

    }

    5.创建一个超市管理系统实现其功能

    import java.util.ArrayList;

    import java.util.Scanner;

    public class SuperMarket {

    static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {

    ArrayList list = new ArrayList<>();

    list.add(new Goods("1000",10,"笔记本"));

    list.add(new Goods("1001",2,"西红柿"));

    list.add(new Goods("1002",5,"辣条"));

    //list.get(1).setName("hhhhhh");

    //System.out.println(list.get(1).getName());

    System.out.println("============超市管理系统============");

    while (true){

    System.out.println("1:货物清单 2:增加货物 3:删除货物 4:修改货物 5:退出");

    System.out.println("请输入你要操作的编号:");

    String num=sc.next();

    if (num.equals("1")){

    CargoList cl = new CargoList();

    cl.cargoList(list);

    }else if (num.equals("2")){

    IncreaseCargo ic = new IncreaseCargo();

    ic.add(list);

    }else if (num.equals("3")){

    DeleteGoods dg = new DeleteGoods();

    dg.delete(list);

    }else if (num.equals("4")){

    ModificationOfGoods mog = new ModificationOfGoods();

    mog.modify(list);

    }else if (num.equals("5")){

    System.out.println("欢迎下次光临");

    break;

    }else {

    System.err.println("输入错误,请重新输入!");

    }

    System.out.println();

    System.out.println();

    }

    }

    }

    1.货物清单

    00e6bf8a862594f010ddd92888701187.png

    2.增加货物

    586c0348fe903f4357ae74d6f858d7c5.png

    3.删除货物

    4fcaf3f4e24429a30a73dd2dc112ed8b.png

    4.修改货物

    dce9e1d20d8caa24c7949eb827216a77.png

    5.退出功能

    c65b32684d6089e014d211ae1d46306a.png

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • Java实现简单的图书管理系统

    千次阅读 多人点赞 2021-01-23 01:53:04
    图书管理系统简介知识点类封装包接口继承创建书(Book)书架(BookList)主函数(Main)用户(User)管理员(Administrator)接口(IOperation)查(FinOperation)增(AddOperation)删(DelOperation)显示(DisOperation...

    简介

    通过登录确认自己的身份,如果是管理员,对图书进行增,删,查,显示等,如果是学生,则实现借阅,归还,查找等功能。
    在这里插入图片描述
    在这里插入图片描述

    知识点

    链接: link.

    封装

    链接: link.

    链接: link.

    继承

    链接: link.

    接口

    链接: link.

    多态

    链接:link.

    创建书(Book)

    package book;
    
    public class Book {
        /*一本书的属性包括书名,作者,价格,类型,编号,以及状态*/
        private String name;
        private String author;
        private int price;
        private String type;
        private int num;
        private boolean status;
    
        //提供构造方法
        public Book(String name, String author, int price, String type, int num) {
            this.name = name;
            this.author = author;
            this.price = price;
            this.type = type;
            this.num = num;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getAuthor() {
            return author;
        }
    
        public void setAuthor(String author) {
            this.author = author;
        }
    
        public int getPrice() {
            return price;
        }
    
        public void setPrice(int price) {
            this.price = price;
        }
    
        public String getType() {
            return type;
        }
    
        public void setType(String type) {
            this.type = type;
        }
    
        public int getNum() {
            return num;
        }
    
        public void setNum(int num) {
            this.num = num;
        }
    
        public boolean isStatus() {
            return status;
        }
    
        public void setStatus(boolean status) {
            this.status = status;
        }
    
        //toString 方法打印
        @Override
        public String toString() {
            return "Book{" +
                    "name='" + name + '\'' +
                    ", author='" + author + '\'' +
                    ", price=" + price +
                    ", type='" + type + '\'' +
                    ", num=" + num +
                    ((status == true) ? " 已借出 " : " 未借出 ") +
                    '}';
        }
    }
    

    书架(BookList)

    这里提前往书架放了三本书

    package book;
    
    public class BookList {
        //书都是同一类型的元素,创建一个Book类型的数组
        private Book[] books;
        private int size;
    
        //先给书架放三本书
        public BookList() {
            this.books = new Book[10];
            books[0] = new Book("张","小张",10,"小说",1);
            books[1] = new Book("王","小王",23,"小说",3);
            books[2] = new Book("李","小李",20,"小说",2);
            this.size = 3;
        }
    
    
        public int getSize() {
            return size;
        }
    
        public void setSize(int size) {
            this.size = size;
        }
    
        public void setBooks(int pos, Book book) {
            this.books[pos] = book;
        }
    
        public Book getBook(int pos) {
            return this.books[pos];
        }
    }
    

    主函数(Main)

    import book.BookList;
    import user.Administrator;
    import user.Ordinary;
    import user.User;
    
    import java.util.Scanner;
    
    public class Main {
        public static User login() {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入姓名:");
            String name = sc.next();
            System.out.println("请确认您的身份:1 > 管理员  0 > 学生");
            int choice = sc.nextInt();
            if(choice == 1){
                return new Administrator(name);
            }else{
                return new Ordinary(name);
            }
        }
        public static void main(String[] args) {
            BookList bl = new BookList();
            //登录
            User user = login();
            //选择菜单
            while(true){
                int choice = user.menu();
                user.doOperation(choice,bl);
            }
    
        }
    }
    

    用户(User)

    package user;
    
    import book.BookList;
    import operation.IOperation;
    //抽象类,主要为了被继承
    public abstract class User {
        public String name;
        public IOperation[] operation;
    
        public User(String name) {
            this.name = name;
        }
    
        public abstract int menu();
    
        public void doOperation(int choice, BookList bl) {
            this.operation[choice].work(bl);
        }
    }
    

    管理员(Administrator)

    package user;
    
    import operation.*;
    
    import java.util.Scanner;
    
    public class Administrator extends User{
    
        public Administrator(String name) {
            super(name);
            this.operation = new IOperation[]{new ExiOperation(),new FinOperation(),new AddOperation(),new DelOperation(),new DisOperation()};
        }
    
        @Override
        public int menu() {
            System.out.println("欢迎" + this.name + "进入图书管理系统!");
            Scanner sc = new Scanner(System.in);
            System.out.println("=============");
            System.out.println("1.查找图书");
            System.out.println("2.增加图书");
            System.out.println("3.删除图书");
            System.out.println("4.显示图书");
            System.out.println("0.退出系统");
            System.out.println("=============");
            int choice = sc.nextInt();
            return choice;
        }
    }
    

    接口(IOperation)

    package operation;
    
    import book.BookList;
    
    public interface IOperation {
        void work(BookList bl);
    }
    
    

    查(FinOperation)

    package operation;
    
    import book.Book;
    import book.BookList;
    
    import java.util.Scanner;
    
    public class FinOperation implements IOperation{
        @Override
        public void work(BookList bl) {
            System.out.println("查找书籍");
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入要查找的书籍名字:");
            String name = sc.next();
            for (int i = 0; i < bl.getSize(); i++) {
                Book book = bl.getBook(i);
                if(book.getName().equals(name)){
                    System.out.println("有此书籍!");
                    System.out.println(book);
                    return;
                }
            }
            System.out.println("未找的您需要的书籍!");
        }
    }
    

    增(AddOperation)

    package operation;
    
    import book.Book;
    import book.BookList;
    
    import java.util.Scanner;
    
    public class AddOperation implements IOperation {
        @Override
        public void work(BookList bl) {
            Scanner sc = new Scanner(System.in);
            System.out.println("添加图书");
            System.out.println("请输入图书的名字:");
            String name = sc.nextLine();
            System.out.println("请输入图书的作者:");
            String author = sc.nextLine();
            System.out.println("请输入图书价格:");
            int price = sc.nextInt();
            System.out.println("请输入图书的类型:");
            String type = sc.next();
            System.out.println("请输入图书的编号:");
            int num = sc.nextInt();
    
            Book book = new Book(name,author,price,type,num);
            int curSize = bl.getSize();//拿到长度
            bl.setBooks(curSize,book);
            bl.setSize(curSize+1);
            System.out.println("添加成功!");
        }
    }
    

    删(DelOperation)

    package operation;
    
    import book.Book;
    import book.BookList;
    
    import java.util.Scanner;
    
    public class DelOperation implements IOperation{
        @Override
        public void work(BookList bl) {
            System.out.println("删除图书");
            System.out.println("请输入需要删除的书籍名字:");
            Scanner sc = new Scanner(System.in);
            String name = sc.nextLine();
            int i = 0;
            for (; i < bl.getSize(); i++) {
                Book book = bl.getBook(i);
                if(book.getName().equals(name)){
                    break;
                }
            }
            if(i >= bl.getSize()){
                System.out.println("没有找到此书籍");
                return;
            }
            int j = i;
            for(; j < bl.getSize() - 1; j++){
                Book book = bl.getBook(j + 1);
                bl.setBooks(j,book);
            }
            int cueSize = bl.getSize();
            bl.setSize(cueSize-1);
            System.out.println("成功删除此书籍!");
        }
    }
    

    显示(DisOperation)

    package operation;
    
    import book.Book;
    import book.BookList;
    
    public class DisOperation implements IOperation{
        @Override
        public void work(BookList bl) {
            System.out.println("显示图书");
            for (int i = 0; i < bl.getSize(); i++) {
                Book book = bl.getBook(i);
                System.out.println(book);
            }
        }
    }
    

    退出(ExiOperation)

    package operation;
    
    import book.BookList;
    
    public class ExiOperation implements IOperation{
        @Override
        public void work(BookList bl) {
            System.out.println("退出系统");
            System.exit(1);
        }
    }
    

    学生(Ordinary)

    package user;
    
    import operation.*;
    
    import java.util.Scanner;
    
    public class Ordinary extends User {
    
        public Ordinary(String name) {
            super(name);
            this.operation = new IOperation[]{new ExiOperation(),new FinOperation(),new BorrOperation(),new RetOperation(),new DisOperation()};
        }
    
        @Override
        public int menu() {
            System.out.println("欢迎" + this.name + "同学进入图书管理系统!");
            Scanner sc = new Scanner(System.in);
            System.out.println("==============");
            System.out.println("1.查找图书");
            System.out.println("2.借阅图书");
            System.out.println("3.归还图书");
            System.out.println("4.显示图书");
            System.out.println("0.退出系统");
            System.out.println("==============");
            int choice = sc.nextInt();
            return choice;
        }
    }
    

    查(FinOperation)

    同管理员

    借(BorrOperation)

    package operation;
    
    import book.Book;
    import book.BookList;
    
    import java.util.Scanner;
    
    public class BorrOperation implements IOperation{
        @Override
        public void work(BookList bl) {
            System.out.println("借阅书籍");
            System.out.println("请输入需要借阅的书籍名字:");
            Scanner sc = new Scanner(System.in);
            String name = sc.nextLine();
            for (int i = 0; i < bl.getSize(); i++) {
                Book book = bl.getBook(i);
                if(book.getName().equals(name)) {
                    System.out.println("请取走您要的书籍!");
                    book.setStatus(true);
                    System.out.println(book);
                    return;
                }
            }
            System.out.println("没有你需要的书籍!");
        }
    }
    
    

    归(RetOperation)

    package operation;
    
    import book.Book;
    import book.BookList;
    
    import java.util.Scanner;
    
    public class RetOperation implements IOperation{
        @Override
        public void work(BookList bl) {
            System.out.println("归还图书");
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入您要归还的书籍名字!");
            String name = sc.nextLine();
            for (int i = 0; i < bl.getSize(); i++) {
                Book book = bl.getBook(i);
                if(book.getName().equals(name)) {
                    book.setStatus(false);
                    System.out.println(book);
                    return;
                }
            }
        }
    }
    

    显示(DisOperation)

    同管理员

    退出(ExiOperation)

    同管理员

    管理员运行截图

    在这里插入图片描述

    学生运行结果

    在这里插入图片描述

    展开全文
  • Java实现简单的学生管理系统

    千次阅读 2021-08-12 20:29:15
    大家好,今天我和大家分享一下用Java中的数组和ArrayList集合分别来实现简单的学生管理系统。过几期,我和大家分享一下用Java和数据库来实现学生管理系统。 一个简单的学生管理系统应该包括:学生对象,对学生对象...

          大家好,今天我和大家分享一下用Java中的数组和ArrayList集合分别来实现简单的学生管理系统。过几期,我和大家分享一下用Java和数据库来实现学生管理系统。

           一个简单的学生管理系统应该包括:学生对象,对学生对象的操作(管理):添加学生信息、删除学生信息、修改学生信息和显示学生信息,还有一个界面显示。在进行增删改查操作时,我们可以返回一个boolean类型的值来判断增删改查操作是否成功。

    首先我先用数组来实现简单的学生管理系统:

         学生类:就是一个实体类,只有学生的属性和相应的setter和getter方法还有构造器。这里我就只写学生属性。

    public class Stu {
    //学生学号
    private int sno;
    //学生姓名
    private String name;
    //学生性别
    private String sex;
    //学生年龄
    private int age;
    //学生学科
    private String major;
    }

           学生管理类我们对于数组的操作都是基于数组的索引,添加学生信息时,想要实现学生信息添加后,数组的索引要指向数组的下一个位置,我们就需要定义一个索引,在添加学生信息后索引就加1。

    public class StuManage {
    //储存学生对象的数组
    private Stu[] stus = new Stu[10];
    //数组的索引
    private int index;

    添加操作:因为我们定义的是一个定长的数组,所以要将考虑它是否已经装满数据。

    //添加学生功能
    public boolean addStu(Stu s) {
    //判断数组是否已满
    if (index > stus.length - 1) {
        return false;
    }
    stus[index++] = s;
    return true;
    }

    删除操作由于不知道给定学号的学生在数组中的索引,所以我们要把数组中所有学生的学号拿出来和给定的学号来对比,找到给定学号的学生然后把他删除。删除数组的功能是基于数组拷贝,我们可以把要删除的地方后面的部分向前移动。注意要把数组的最后一位设置为空

    //根据学生学号删除学生功能
    public boolean deleteStu(int sno) {
    for (int i = 0; i < stus.length; i++) {
        Stu s = stus[i];
        if (Objects.nonNull(s) && Objects.equals(sno, s.getSno())) {
            System.arraycopy(stus, i + 1, stus, i, stus.length - i - 1);
            index--;
            stus[stus.length-1]=null;
            return true;
        }
    }
    return false;
    }

    显示所有学生信息操作:就是把数组给遍历出来,在学生类中要重写toString方法,不然输出的会是地址。

    //显示所有学生信息功能
    public void showAllStu() {
    for (Stu student : stus) {
        if (Objects.nonNull(student)) {
        System.out.println(student);
        }
    }
    }

    修改操作:修改和删除一样,要根据学生的学号找到学生在数组中的索引,再修改学生信息。

    //根据学生学号修改学生学科功能
    public boolean modifyStu(int sno, String major) {
    for (int i = 0; i < stus.length; i++) {
        Stu s = stus[i];
        if (Objects.nonNull(s) && Objects.equals(sno, s.getSno())) {
            s.setMajor(major);
            return true;
        }
    }
    return false;
    }

    显示单个学生信息操作:显示单个学生信息和修改还有删除一样。

    //根据学生学号显示学生信息功能
    public boolean showStuFromID(int sno) {
    for (int i = 0; i < stus.length; i++) {
        Stu s = stus[i];
        if (Objects.nonNull(s) && Objects.equals(sno, s.getSno())) {
            System.out.println(s);
            return true;
    }
    }
    return false;
    }

    测试类:

    public class TestStu {
    static Scanner sc = new Scanner(System.in);
    //新建一个StuManage对象,后面方便调用里面的方法
    static StuManage sm = new StuManage();
    //下面用的输出语句多,我把它包装成方法
    private static void msg(String msg) {
        System.out.println(msg);
    }
    public static void main(String[] args) {
        start();
    }

    显示界面:用switch来判断指令然后执行相应方法。

    private static void start() {
    msg("======学生成绩管理系统=====");
    msg("[1] 添加学生信息");
    msg("[2] 学生信息列表");
    msg("[3] 删除指定学生信息");
    msg("[4] 查询指定学生信息");
    msg("[5] 修改指定学生的学科");
    msg("[0] 退出系统");
    msg("========================");
    msg("请输入指令:");
    int i = sc.nextInt();
    switch (i) {
        case 1:
            addStu();
            break;
        case 2:
            showAll();
            break;
        case 3:
            delStu();
            break;
        case 4:
            showStuFromID();
            break;
        case 5:
            modify();
            break;
        case 0:
            msg("谢谢使用,再见!");
            System.exit(0);
            break;
        default:
            msg("指令错误,请重新输入");
            start();
            break;
    }
    }

    输入指令后执行的方法:

    /**
    * 添加学生信息
    */
    private static void addStu() {
    msg("请输入学号:");
    int sno = sc.nextInt();
    msg("请输入姓名");
    String name = sc.next();
    msg("请输入性别");
    String sex = sc.next();
    msg("请输入年龄");
    int age = sc.nextInt();
    msg("请输入学科");
    String major = sc.next();
    //根据读取的学生信息创建学生对象
    Stu s = new Stu(sno, name, sex, age, major);
        if (sm.addStu(s)) {
            msg("添加成功");
        } else {
            msg("容量存储不足");
        }
    start();
    /**
    * 学生信息列表
    */
    private static void showAll() {
        sm.showAllStu();
        start();
    }
    }
    ​
    /**
    * 删除指定学号的学生信息
    */
    private static void delStu() {
    msg("输出你想删除的学生学号");
    int sno = sc.nextInt();
        if (sm.deleteStu(sno)) {
            msg("删除成功");
        } else {
            msg("删除失败");
        }
    start();
    }
    /**
    * 显示指定学号的学生信息
    */
    private static void showStuFromID() {
    msg("输出你想显示的学生学号");
    int sno = sc.nextInt();
        if (sm.showStuFromID(sno)) {
            msg("显示成功");
        } else {
            msg("没有这名学生,显示失败");
        }
    start();
    }
    /**
    * 修改指定学号学生的学科
    */
    private static void modify() {
    msg("输出你想修改的学生学号");
    int sno = sc.nextInt();
    msg("输出你想修改的学科");
    String major = sc.next();
        if (sm.modifyStu(sno,major)) {
            msg("修改成功");
        } else {
            msg("没有这名学生,修改失败");
        }
    start();
    }

    使用ArrayList集合来实现简单的学生管理系统:学生类和测试类都和用数组实现的方法一样。

    学生管理类:ArrayList集合的增删改查和数组的原理一样,只不过ArrayList集合做添加功能用add方法就行了(它的索引会自动加1),删除功能用remove方法(内部的实现还是基于数组的拷贝)。

    public class StudentManage {
    List<Stu> stus = new ArrayList<>();
    ​
    //添加学生功能
    public boolean addStu(Stu s) {
        stus.add(s);
        return true;
    }
    ​
    //根据学生学号删除学生功能
    public boolean deleteStu(int sno) {
    if (Objects.nonNull(stus)) {
        for (int i = 0; i < stus.size(); i++) {
            if (Objects.equals(sno, stus.get(i).getSno())) {
                stus.remove(i);
                return true;
            }
        }
    }
    return false;
    }
        
    //显示所有学生信息功能
    public void showAllStu() {
    if (Objects.nonNull(stus)) {
        for (Stu Stu : stus) {
        System.out.println(Stu);
        }
    }
    }
    ​
    //根据学生学号修改学生学科功能
    public boolean modifyStu(int sno, String major) {
    if (Objects.nonNull(stus)) {
        for (int i = 0; i < stus.size(); i++) {
            if (Objects.equals(sno, stus.get(i).getSno())) {
            stus.get(i).setMajor(major);
            return true;
            }
        }
    }
    return false;
    }
    ​
    //根据学生学号显示学生信息功能
    public boolean showStuFromID(int sno) {
    if (Objects.nonNull(stus)) {
        for (int i = 0; i < stus.size(); i++) {
            if (Objects.equals(sno, stus.get(i).getSno())) {
            System.out.println(stus.get(i));
            return true;
            }
        }
    }
    return false;
    }
    }

    运行结果:

     

     

     

     

     

     

     

     

     

     

    展开全文
  • java实现简单的图书管理系统

    万次阅读 多人点赞 2019-04-13 17:49:44
    Library类: 写了登录函数(1、普通用户,2、管理员,3、退出系统), Person类:定义的人的属性(姓名,性别,年龄)并且写了属性的get、set方法,定义了一些书。 operate接口:操作的接口,操作方法:查询/查阅,...
  • java实现通讯录管理系统

    千次阅读 2021-02-27 10:12:07
    本文实例为大家分享了java实现通讯录管理系统的具体代码,供大家参考,具体内容如下完成项目的流程:1.根据需求,确定大体方向2.功能模块分析3.界面实现4.功能模块设计5.coding6.代码测试下面是源代码:import java....
  • JAVA 实现简单的学生成绩管理系统

    千次阅读 2021-03-15 16:15:11
    2.掌握简单的信息管理系统的设计与实现。二、实验环境实验建议在安装了以下软件的计算机上完成:1.Windows xp/win7/win8/win10操作系统2.JDK 1.6以上版本3.Eclipse或NetBeans IDE或EditPlus或其它开发工具三、实验...
  • 在学生管理系统类里需要一个菜单:简单的显示界面 4. 增删改查以及显示界面要求是从键盘输入 在这里说明一下,博主不会给可复制代码,希望大家可以自己动手打一下代码,并且写一下注释,养成一个良好的编码习惯 ...
  • 使用简单Java代码实现酒店管理系统1.需求分析2.画图分析3.代码实现 1.需求分析 我们如果要实现酒店管理系统,就需要先对酒店管理系统的业务要求进行分析: 酒店管理系统需要实现哪些功能? (1)输入某个命令...
  • 基于java springboot博客管理系统设计和实现

    万次阅读 多人点赞 2021-08-19 10:54:34
    博客,又译为网络日志、 部落格或部落阁等,是一种通常由个人管理、不定期张贴新的文章的网站。 博客上的文章通常根据张贴时间, 以倒序方式由新到旧排列。 许多博客专注在特定的课题上提供评论或新闻, 其他则被...
  • 学生成绩管理系统java实现

    万次阅读 2021-03-10 03:02:35
    最近在看基础的java教程,发现java很多与c++类似,但也有不少差异,有很多要注意的地方,做了这个成绩管理系统,还没用到类,只是多维数组的应用。期间遇到很多问题,也都经过一一百度解决了。实现的功能: 输入学生...
  • 我们希望设计一个人事管理系统实现增加员工信息,删除员工信息及各种查询操作,以此提高信息管理的工作效率。人事管理系统应该拥有员工的全部信息,可以实现全部员工信息的输入,当员工离职时能实现删除该员工信息...
  • Java实现简单图书馆管理系统

    万次阅读 多人点赞 2019-10-20 21:36:55
    编写图书馆管理系统 思路 要编写这个程序我们首相要清楚这个程序中有哪些对象,不考虑复杂情况,基本的对象有三个: 书 用户 那么我们就分别讨论这三个对象有哪些属性和有哪些动作。 书籍 它会有书名,编号(id), ...
  • Java实现文件管理系统(附带源码)

    千次阅读 2021-04-19 19:46:51
    文件管理越来越受到企业的重视,最近自己也做了个简单的文件管理系统,现与大家分析交流。 一.系统演示
  • 实现的样子 大致思路 代码 (按照这个目录创建包) 首先是book包下,有两个类 book类 bookList类 然后是operation包下,有7个类和1个接口 AddOperation类 BorrowOperation类 DelOperation类 ...
  • java Springboot教务管理系统 研究背景: 在当今信息社会发展中中,计算机科学的飞速发展,大多数学校开始注意办公效率的发展是很关键,对学校的管理起到举足轻重的作用。基于 Internet 网络的信息服务,快速...
  • 第一个Java项目———Java实现简单图书管理系统(GUI)

    万次阅读 多人点赞 2019-08-03 11:45:35
    暑假写了个图书管理系统,编译器用的是eclipse,加入了WindowBuilder插件做界面(做的特丑),数据库用的是MySQL。 实现了图书的查询,借阅,归还,删除,增加。用户的删除,查询。分为管理员和用户。 一,程序...
  • Java实现酒店管理系统

    千次阅读 2021-04-11 22:34:55
    学习Java实现宾馆管理系统,本文实现该系统的功能截图,和数据库设计SQL语句供大家参考 一.宾馆管理系统背景 本系统根据业务规则作出一套新闻门户网站系统。 二.宾馆管理系统技术架构 主要技术 Spring、SpringMVC、...
  • JAVA swing实现简单的学生管理系统

    千次阅读 多人点赞 2020-01-10 20:32:26
    JAVA swing实现简单的学生管理系统基本功能介绍系统架构设计如何改变文本的样式UML 图表FLowchart流程图导出与导入导出导入 基本功能介绍 本系统实现了一个简单而实用的学生管理系统,通过这个学生管理系统我们可以...
  • JAVA实现简单图书管理系统 JAVA实现简单图书管理系统
  • java实现简单的学生信息管理系统

    万次阅读 多人点赞 2017-12-18 14:29:58
    java实现简单的学生信息管理系统(无界面)学生类实体:package com.edu.imau.wcy;public class Stu { private String stuNum;//学号 private String name;//姓名 private String gender;//性别 private int age...
  • Java代码实现学生管理系统

    万次阅读 多人点赞 2020-12-03 19:18:45
    1.2 学生管理系统实现思路 定义学生类 主界面的代码编写 添加学生的代码编写 查看学生的代码编写 删除学生的的代码编写 修改学生的代码编写 1.3 定义学生类 学生类: Student 成员变量: 学号:sid 姓名:name ...
  • 基于java springboot的图书管理系统设计和实现

    万次阅读 多人点赞 2021-08-13 13:47:50
    前言 ...图书管理系统是典型的信息管理系统。系统介绍了图书系统的开发过程,设计中遇到的问题及解决方法以及提高当前应用程序或系统开发进度和改善工作性能。利用其提供的各种面向对象的开发工具...
  • Java实现学生管理系统(完整代码)

    千次阅读 多人点赞 2021-11-26 15:55:28
    完成一个综合案例:学生管理系统!该系统主要功能如下: 添加学生:通过键盘录入学生信息,添加到集合中 删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除 修改学生:通过键盘录入要修改学生...
  • 现在越来越多的大学生涌进大学,大学生数量越来越多,传统的在教室里老师声嘶力竭...根据本系统的研究现状和发展趋势,系统从需求分析、结构设计、数据库设计,在到系统实现,分别为前端实现和后端实现。论文内容从系统
  • Java GUI实现图书管理系统

    千次阅读 2020-07-08 12:32:16
    2.2 Java语言介绍… 3 2.3 MySQL简介… 3 2.4 JDBC技术简介… 4 3 系统需求分析… 5 3.1 系统可行性分析… 5 3.2 系统需求分析… 5 3.2.1 登录、注册界面需求分析… 5 3.2.2 用户功能需求分析… 6 3.2.3 管理员功能...
  • 基于JavaSwing+mysql的酒店管理系统设计和实现

    千次阅读 多人点赞 2021-08-18 19:41:49
    项目是使用Java swing开发,可实现基础数据维护用户登录、系统首页酒店信息管理、主要模块是开房管理、退房管理、房间信息管理、顾客信息管理等功能。界面设计比较简介、适合作为Java课设设计以及学习技术使用。 ...
  • 一个简单Java收费管理系统

    热门讨论 2012-06-03 19:58:51
    Java收费管理系统 一个简单Java收费管理系统
  • java实现简单的银行管理系统

    万次阅读 多人点赞 2021-01-03 17:27:39
    java实现简单的银行管理系统页面代码之一:mvc设计模式,分包分包图片简单效果演示:登陆主页面注册页面登录:功能页面!存款转账查看近期流水账单! 页面代码之一: package org.vector.view; import java.awt....
  • 简单java web学生信息管理系统

    千次下载 热门讨论 2015-07-30 09:52:37
    本人是新手,也刚开始java web的学习,就在网上找了个例子练手,是一个简单的jsp+servler的学生管理系统。网址:http://www.javazhijia.com/ym/web/193.html导入到eclipse有点报错,我自己做了一点修改,将oracle...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,014,185
精华内容 405,674
关键字:

java实现简单的管理系统