当前位置: 首页 > news >正文

杭州做家教网站网站内容如何优化

杭州做家教网站,网站内容如何优化,本地网站制作,专门做预售的网站作者主页:paper jie 的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVA》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造&…

作者主页:paper jie 的博客

本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。

本文录入于《JAVA》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将javaSE基础知识一网打尽,希望可以帮到读者们哦。

其他专栏:《算法详解》《C语言》《javaSE》等

内容分享:本期将会使用javase来制作一个简易版本的图书管理系统

目录

设计需求

 设计思路

设计的具体过程及源码展示

book包 

Book类

Booklist类

user包

User类

AdminUser类

NormalUser类

operation包

IOoperation接口

Addoperation类

Deloperation类

Borrowoperation类

Exitoperation类

Findoperation类

Returnoperation类

Showoperation类

 Main类

效果展示 

图书管理系统的画图分析


设计需求

我们需要通过使用javase来实现一个简易版本的图书管理系统,它需要具备以下几个功能:

1 首先需要有两个模式,一个是管理员模式,一个是普通用户模式

2 需要具有 新增图书,删除图书,查找图书,显示图书,借阅图书,归还图书,退出系统这些功能

3.需要将上面的功能分成两部分,新增,删除,显示,查找,退出为管理员的权限,而查找,借阅,归还,退出为普通用户的权限

 设计思路

1 我们首先需要将我们的用户分为两个部分,一个为管理员,一个为普通用户,在使用的时候根据不同的需求展现不同的界面和功能,这里我们可以通过继承,多态,向上转型给他们一个父类来实现

2 我们需要实现多个类来实现删除图书,查找图书,显示图书,借阅图书,归还图书,退出系统这些功能

3 我们通过创建一个接口,让功能类来实现这个接口,再用一个类型为创建的接口类型的数组来存放功能类的new出的对象,这样子就可以进行统一管理了

4 我们还需要创建书和书架类,将书的属性封装,书架类存放的就是书,会用一个书架类型的数组来存放

设计的具体过程及源码展示

为了让程序去复杂化,易修改这里将用三个包和一个主类来搭建这个框架会有book包,里面存放书类和书架类。operation包存放各个功能类和接口。user包中放着父类User类和普通用户类,管理员类,最后还有一个主类Main

book包 

Book类

book类起到的作用就是将book类封装起来,后面容易放入书架中。 这里的构造方法,getandset方法以及toString方法可以通过编译器生成,速度很快的。在toString方法中我们需要改动一下编译器生成的,我们可以用三目操作符来确定是true还是false来打印是已借出还是未接出

package book;public class Book {private String name;private String author;private int price;private String type;//默认flose 未被借出private boolean isBorrowed;//get 和 set方法设置和返回成员变量public Book(String name, String author, int price, String type) {this.name = name;this.author = author;this.price = price;this.type = type;}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 isBorrowed() {return isBorrowed;}public void setBorrowed(boolean borrowed) {isBorrowed = borrowed;}//打印@Overridepublic String toString() {return "Book{" +"name='" + name + '\'' +", author='" + author + '\'' +", price=" + price +", type='" + type + '\'' +", " + ((isBorrowed == true) ? "已经借出" : "未接出") +'}';}
}

Booklist类

这里也可以使用编译器生成需要的代码,这里要注意的是books数组,它是用来存放book书本的。在构造方法中要对它进行初始化,可以存放几本,已进放进去的书的内容。

package book;public class Booklist {//书架private Book[] books;//记录使用书的位置private int usedsize;private static final  int DEFAULT_CAPACITY = 10;public Booklist() {//对书架初始化this.books = new Book[DEFAULT_CAPACITY];//放书this.books[0] = new Book("三国演义", "罗贯中", 10, "小说");this.books[1] = new Book("西游记", "吴承恩", 20, "小说");this.books[2] = new Book("红楼梦", "曹雪芹", 30, "小说");this.usedsize = 3;}public int getUsedsize() {return usedsize;}public void setUsedsize(int usedsize) {this.usedsize = usedsize;}public Book getBook(int pos) {return books[pos];}public void setBook(int pos, Book book) {books[pos] = book;}public Book[] getBooks() {return books;}
}

user包

这个包里放的是一个父类和两个子类,企图通过继承和多态来实现管理员和普通用户的切换

User类

这里要注意的是IOoperation这个数组,它会在User类的子类中进行初始化,来存放需要功能类的对象。而dooperation方法则是通过IOoperations数组里的成员的work方法来实现需要的操作

package user;import book.Booklist;
import operation.IOoperation;public abstract class User {protected String name;protected IOoperation[] iOoperations;public User(String name) {this.name = name;}public abstract int menu();public void dooperation(int choise, Booklist booklist) {iOoperations[choise].work(booklist);}
}

AdminUser类

它和NormalUser都是User的子类,这里面的构造方法就对父类的成员进行了IOoperation初始化,且实现的菜单界面,menu方法的返回值就是你选择需要使用的功能

package user;import operation.*;import java.util.Scanner;public class AdminUser extends User{public AdminUser(String name) {super(name);this.iOoperations = new IOoperation[]{new Exitoperation(),new Addopertaion(),new Deloperation(), new Showoperation(),new Findoperation()};}public int menu() {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("************************************************************");System.out.println("请输入你的操作:");Scanner scanner = new Scanner(System.in);int choice = scanner.nextInt();return choice;}
}

NormalUser类

实现思路和AdminUser一样

package user;import operation.*;import java.util.Scanner;public class NormalUser extends User {public NormalUser(String name) {super(name);this.iOoperations = new IOoperation[]{new Exitoperation(),new Findoperation(),new Borrowoperation(), new Returnoperation()};}public int menu() {System.out.println("*************************** 普通用户 ****************************");System.out.println("1. 查找图书");System.out.println("2. 借阅图书");System.out.println("3. 归还图书");System.out.println("0. 退出系统");System.out.println("**************************************************************");System.out.println("请输入你的操作:");Scanner scanner = new Scanner(System.in);int choice = scanner.nextInt();return choice;}
}

operation包

这个包里需要实现需要的功能类和一个将他们都串起来的接口

IOoperation接口

所有的功能类都要实现这个接口,从而重写work方法,来统一使用work这个名字

package operation;import book.Booklist;public interface IOoperation {public void work(Booklist booklist);
}

Addoperation类

新增图书功能:

package operation;import book.Book;
import book.Booklist;import java.util.Scanner;/*** Created with IntelliJ IDEA.* Description:* User: sun杰* Date: 2023-08-25* Time: 10:43*/
public class Addopertaion implements IOoperation{@Overridepublic void work(Booklist booklist) {System.out.println("新增图书:");Scanner scanner = new Scanner(System.in);System.out.println("请输入名字:");String name = scanner.nextLine();System.out.println("请输入作者:");String author = scanner.nextLine();System.out.println("请输入类型:");String type = scanner.nextLine();System.out.println("请输入价格:");int price = scanner.nextInt();Book book = new Book(name, author, price, type);int pos = booklist.getUsedsize();for (int i = 0; i < pos; i++) {Book book1 = booklist.getBook(i);if(book1.getName().equals(name)) {System.out.println("已有这本书,不再存放");return;}}if(pos == booklist.getBooks().length) {System.out.println("书架满了");}else {booklist.setBook(pos, book);booklist.setUsedsize(pos + 1);}}
}

Deloperation类

删除图书功能:

import book.Booklist;import java.util.Scanner;public class Deloperation implements IOoperation{@Overridepublic void work(Booklist booklist) {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 book = booklist.getBook(i);if(book.getName().equals(name)) {int pos = i;int j = 0;for ( j = pos; j < size - 1; j++) {Book book1 = booklist.getBook(j+1);booklist.setBook(j, book1);}booklist.setBook(j, null);booklist.setUsedsize(size - 1);System.out.println("删除成功");return;}}System.out.println("不存在这本书");}
}

Borrowoperation类

借阅图书功能:

package operation;import book.Book;
import book.Booklist;import java.util.Scanner;public class Borrowoperation implements IOoperation {@Overridepublic 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)) {book.setBorrowed(true);System.out.println(book);System.out.println("借阅成功");return;}}System.out.println("该书不存在");}
}

Exitoperation类

退出系统功能:

package operation;import book.Booklist;public class Exitoperation implements IOoperation{@Overridepublic void work(Booklist booklist) {System.out.println("退出系统");System.exit(0);}
}

Findoperation类

查找图书功能:

package operation;import book.Book;
import book.Booklist;
import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;import javax.imageio.metadata.IIOMetadataController;
import java.util.Scanner;public class Findoperation implements IOoperation{@Overridepublic void work(Booklist booklist) {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 book = booklist.getBook(i);if(book.getName().equals(name)) {System.out.println("找到了,信息如下:");System.out.println(book);return;}}System.out.println("上述不存在");}
}

Returnoperation类

归还图书功能:

package operation;import book.Book;
import book.Booklist;import java.util.Scanner;public class Returnoperation implements IOoperation{@Overridepublic 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)) {book.setBorrowed(false);System.out.println(book);System.out.println("归还成功");return;}}System.out.println("该书不存在");}
}

Showoperation类

显示图书功能:

package operation;import book.Book;
import book.Booklist;public class Showoperation implements IOoperation {@Overridepublic void work(Booklist booklist) {System.out.println("显示图书:");int size = booklist.getUsedsize();for (int i = 0; i < size; i++) {Book book = booklist.getBook(i);System.out.println(book);}}
}

 Main类

通过Main类来组织程序执行:

import book.Book;
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("请输入你的身份:1.管理员 2.普通用户");int choice = scanner.nextInt();if(choice == 1) {//管理员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();//choice来决定调用哪个方法类user.dooperation(choice, booklist);}}
}

效果展示 

图书管理系统的画图分析


http://www.hkea.cn/news/774791/

相关文章:

  • 重庆怎么站seo深圳网络推广团队
  • 自学软件网站开发网络推广怎样做
  • 最新版的wordpress怎么添加特征图优化关键词的作用
  • 深圳做网站google推广网络营销和传统营销的区别和联系
  • 专业做网站的顺德公司网络推广怎么收费
  • php商城网站建设多少钱天津百度seo排名优化
  • 注册网站免费注册insseo关键词优化推广哪家好
  • 深圳房地产网站开发常见的网络营销工具有哪些
  • .net 网站管理系统湖南企业竞价优化首选
  • 南山区住房与建设局官方网站网络赚钱推广
  • wordpress mycred汉化seo引擎搜索入口
  • 在线教育网站用什么做百度搜索的优势
  • 甘肃省住房城乡建设厅网站首页智能建站模板
  • 智能科技网站模板下载地址百度学术论文查重
  • 网站要怎么做才能让360收录推广品牌的策划方案
  • 做网站前景营销课程培训视频
  • 青海做网站广告开户南京seo
  • wordpress写软文赚钱seo快速培训
  • 南宁网站建设接单陕西省人民政府
  • wordpress网站价格seo域名综合查询
  • 支付网站怎么做的网络自动推广软件
  • js做网站统计品牌关键词优化
  • 微信公众号管理平台官网谷歌seo建站
  • 鲜花购物网站源码企业网站营销的优缺点
  • 表白网站制作在线日照网站优化公司
  • 企业网站建设策划书 前言徐州关键词优化排名
  • 一级a做爰片视频网站全国新闻媒体发稿平台
  • 唐山网站建设哪家专业高德北斗导航
  • wordpress 地址 .html企业网站seo贵不贵
  • 提供网站制作公司哪家好网络软文范文