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

武安专业做网站自己创建网站

武安专业做网站,自己创建网站,做进口产品的网站,css怎么嵌入到html前言 首先既然是管理系统,那咱们就要实现以下这几个功能了--> 分析 1.首先是用户分为两种,一个是管理员,另一个是普通用户,既如此,可以定义一个用户类(user),在定义管理员类&am…

前言

首先既然是管理系统,那咱们就要实现以下这几个功能了-->

分析

1.首先是用户分为两种,一个是管理员,另一个是普通用户,既如此,可以定义一个用户类(user),在定义管理员类,普通用户类去继承。

2.还有就是书这个对象,首先是书的属性(书名,作者,价格,种类,是否借出),这可以定义成一个Book类,其实就是存储这些新的容器-- 书架类(Booklist)

3.最后这些功能,仔细观察,由于身份不同,操作也不同,一般来讲,我们可以把对应的方法放到对应的类当中去,但这次用接口也可以巧妙实现

分模块进行编码

book包

 为了方便查看,就把这两个类放进一个book的包里。

Book类

package book;public class Book {private String name;//姓名private String author;//作者private int price;//价格private String type;//类型private boolean isLead;//是否被借出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 isLead() {return isLead;}public void setLead(boolean lead) {isLead = lead;}public Book(String name, String author, int price, String type) {this.name = name;this.author = author;this.price = price;this.type = type;}@Overridepublic String toString() {return "book{" +"name='" + name + '\'' +", author='" + author + '\'' +", price=" + price +", type='" + type + '\'' +(isLead==true ? "已借出":" 未借出")+//", isLead=" + isLead +'}';}
}

在这个类中,把书的属性成员定义为私有,通过公共成员函数去访问和调用,最后重写toString 方法来表示输出。

Booklist类

package book;public class Booklist {private Book[] books =new Book[10];private int usedSize;//记录存放次数public Booklist() {books[0]=new Book("红楼梦","曹雪芹",25,"小说");books[1]=new Book("月华","小明",27,"小说");books[2]=new Book("多少","小花",20,"小说");this.usedSize=3;}public boolean isFull(){//判断书架是否满if(this.usedSize==books.length){return true;}else{return false;}}public int getUsedSize() {//获取存了多少本书return usedSize;}//设定书的数量public void setUsedSize(int usedSize) {this.usedSize = usedSize;}public Book getBooks(int pos) {//获取书架中pos位置书的信息return books[pos];}//把新增的图书信息放到pos位置上去public void setBooks(int pos,Book book) {books[pos]=book;}}

 在这个书架类中,定义一个容量为10的对象数组来存储书的信息,事先存入三本书,同时usedSize 用来记录书的数量,而后面的方法则与实现对应的功能相关。且往后细看~接口类

package operater;import book.Booklist;public interface IOperation {void work(Booklist booklist);
}

在这个接口里定义了一个方法 ​work​,该方法需要一个 ​Booklist​ 对象作为参数。任何实现 ​IOperation​ 接口的类都必须提供 ​work​ 方法的具体实现。这样一来就方便不同的用户进行操作了。

User包

user类

package User;import book.Booklist;
import operater.IOperation;// 定义一个抽象类 user,表示用户
public abstract class user {protected String name;// 构造方法,初始化用户名称public user(String name) {this.name = name;}//抽象方法,显示菜单并返回用户选择的操作编号public abstract int menu();//存储用户可以执行的操作数组protected IOperation[] iOperations;//根据用户选择执行相应的操作public void DoIoperation(int choice, Booklist booklist) {//调用用户选择的操作的 work 方法this.iOperations[choice].work(booklist);}
}

因为身份不同,所以显示的菜单也不同,所以便声明一个抽象方法 menu(),同时定义一个操作数组,来进行对应的操作,如图

普通用户类(Normaluser)

package User;import operater.*;import java.util.Scanner;public class Normaluser extends user{//重写构造方法public Normaluser(String name) {super(name);//根据不同的输入进行对应的操作,已经方法按顺序放入数组,所以位置别搞错了this.iOperations=new IOperation[]{new Exit(),new Find(),new Borrow(),new Return()};}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("请输入你的操作:");Scanner scanner=new Scanner(System.in);int choice=scanner.nextInt();return choice;}
}

管理员类(Adminuser)

package User;import operater.*;import java.util.Scanner;public class Adminuser extends user{public Adminuser(String name) {super(name);this.iOperations=new IOperation[]{new Exit(),new Find(),new Add(),new Del(),new Show()};}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;}}

operater包

Add类

package operater;import book.Book;
import book.Booklist;import java.util.Scanner;public class Add implements IOperation{public void work(Booklist booklist1){if(booklist1.isFull()){System.out.println("书架已满,不能新增!");}System.out.println("新增图书");System.out.println("请输入你要新增的图书的书名:");Scanner scanner=new Scanner(System.in);String bookName=scanner.nextLine();System.out.println("请输入你要新增的图书的作者:");String bookAuthor= scanner.nextLine();System.out.println("请输入你要新增的图书的价格:");int bookPrice = scanner.nextInt();scanner.nextLine();System.out.println("请输入你要新增的图书的类型:");String bookType = scanner.nextLine();Book book=new Book(bookName,bookAuthor,bookPrice,bookType);int currentSize=booklist1.getUsedSize();//新增图书的位置其实就是i本书的位置booklist1.setBooks(currentSize,book);booklist1.setUsedSize(currentSize+1);//书的数量+1System.out.println("成功添加图书");}
}

在新增图书的过程中,要分别添加书的属性才行,这时切不可直接用booklist,这时类对象,不是数组,创建一个对象数组book,之前Booklist中方法便派上用场, 看图就更好理解了~

Borrow类

package operater;import book.Book;
import book.Booklist;import java.util.Scanner;public class Borrow implements IOperation{public void work(Booklist booklist1){System.out.println("借阅图书");System.out.println("请输入你要借阅的书名:");Scanner scanner=new Scanner(System.in);String bookName=scanner.nextLine();//找到要借阅的书的下标for (int i=0; i < booklist1.getUsedSize() ; i++) {Book book1=booklist1.getBooks(i);if(book1.getName().equals(bookName)) {book1.setLead(true);System.out.println("借阅成功!");return;}}System.out.println("借阅失败!");}}

借阅图书其实和删除差不多,只要改变状态为已借出。

Del类

package operater;import book.Book;
import book.Booklist;import java.util.Scanner;public class Del implements IOperation{public void work(Booklist booklist1){System.out.println("删除图书");System.out.println("请输入你要删除的书名:");Scanner scanner=new Scanner(System.in);String bookName=scanner.nextLine();int current=booklist1.getUsedSize();int pos=-1;int i = 0;//找到要删除的书的下标for (; i < current ; i++) {Book book1=booklist1.getBooks(i);if(bookName.equals(book1.getName())) {//System.out.println("找到了");pos=i;}}if(pos>=current){System.out.println("没有你要找的书!");}//开始删除for (int j = pos; j <current-1; j++) {// booklist1[j]=booklist1[j+1];不能直接用类对象Book book= booklist1.getBooks(j+1);booklist1.setBooks(j,book);}booklist1.setUsedSize(current-1);booklist1.setBooks(current-1,null);System.out.println("删除成功!");}
}

删除图书,首先要找到要删除图书的下标pos, 找到后要把后面的图书全都往前移动一格,从pos位置开始遍历,将j+1位置的图书存放到book对象中去,在调用setBook方法传给j位置。后面的位置设置成null,同时更新书的数量~

Exit类

package operater;import book.Booklist;public class Exit implements IOperation{public void work(Booklist booklist1){System.out.println("退出系统");//避免退出系统后内存被回收int current=booklist1.getUsedSize();for (int i = 0; i < current ; i++) {booklist1.setBooks(i,null);}System.exit(0);}
}

 直接调用系统的退出即可~

Find类

package operater;import book.Book;
import book.Booklist;import java.util.Scanner;public class Find implements IOperation{public void work(Booklist booklist1){System.out.println("查找图书");System.out.println("请输入你要查找的书名:");Scanner scanner=new Scanner(System.in);String bookName=scanner.nextLine();int current=booklist1.getUsedSize();for (int i = 0; i < current ; i++) {Book book1=booklist1.getBooks(i);if(bookName.equals(book1.getName())) {System.out.println("找到了");System.out.println(book1);return;}}System.out.println("没找到这本书!");}
}

Return类

package operater;import book.Book;
import book.Booklist;
import java.util.Scanner;public class Return implements IOperation{public void work(Booklist booklist1){System.out.println("归还图书....");System.out.println("请输入你要归还的书名:");Scanner scanner=new Scanner(System.in);String bookName=scanner.nextLine();//找到要归还的书的下标for (int i=0; i < booklist1.getUsedSize() ; i++) {Book book1=booklist1.getBooks(i);if(book1.getName().equals(bookName)) {book1.setLead(false);System.out.println("归还成功!");return;}}System.out.println("归还失败!");}}

Show类

package operater;import book.Book;
import book.Booklist;public class Show implements IOperation{public void work(Booklist booklist1){System.out.println("展示图书");int current=booklist1.getUsedSize();for (int i = 0; i < current ; i++) {Book book1=booklist1.getBooks(i);System.out.println(book1);}}
}

这三个其实是大同小异的,都是循环遍历再进行对应的操作,这里主要记住的是String类型的数据比较不能直接用==,而是要用equals()方法。

看到最后,如果觉得文章写得还不错,希望可以给我点个小小的赞,您的支持是我更新的最大动力


文章转载自:
http://dinncostrikingly.ydfr.cn
http://dinncosomniloquist.ydfr.cn
http://dinncosedateness.ydfr.cn
http://dinncobrummie.ydfr.cn
http://dinncosylva.ydfr.cn
http://dinncoanalytics.ydfr.cn
http://dinncokrumhorn.ydfr.cn
http://dinncospiritualize.ydfr.cn
http://dinncoawe.ydfr.cn
http://dinncodawdling.ydfr.cn
http://dinncodiener.ydfr.cn
http://dinncoentangle.ydfr.cn
http://dinncopicrotoxin.ydfr.cn
http://dinncotughrik.ydfr.cn
http://dinncobraze.ydfr.cn
http://dinncosulfurous.ydfr.cn
http://dinncocounterreconnaissance.ydfr.cn
http://dinncounhitch.ydfr.cn
http://dinncocommerce.ydfr.cn
http://dinncovoyage.ydfr.cn
http://dinncomasochism.ydfr.cn
http://dinncocatastrophe.ydfr.cn
http://dinncobier.ydfr.cn
http://dinncobechamel.ydfr.cn
http://dinncobotargo.ydfr.cn
http://dinncocomptroller.ydfr.cn
http://dinncodeepfreeze.ydfr.cn
http://dinncouncrowned.ydfr.cn
http://dinncobemuddle.ydfr.cn
http://dinncolaryngotomy.ydfr.cn
http://dinncowatchwork.ydfr.cn
http://dinncoabdiel.ydfr.cn
http://dinncoculminate.ydfr.cn
http://dinncoagorot.ydfr.cn
http://dinncoobtusely.ydfr.cn
http://dinnconuffieldite.ydfr.cn
http://dinncocardiologist.ydfr.cn
http://dinncosurface.ydfr.cn
http://dinncoitchy.ydfr.cn
http://dinncocelestite.ydfr.cn
http://dinncopayer.ydfr.cn
http://dinncohereof.ydfr.cn
http://dinncobiosynthesis.ydfr.cn
http://dinncovince.ydfr.cn
http://dinncopenthouse.ydfr.cn
http://dinncowisehead.ydfr.cn
http://dinncoanecdotic.ydfr.cn
http://dinncochelifer.ydfr.cn
http://dinncobursiculate.ydfr.cn
http://dinncosubgenus.ydfr.cn
http://dinncoswanning.ydfr.cn
http://dinncosuicidology.ydfr.cn
http://dinncoalumna.ydfr.cn
http://dinncohyperparathyroidism.ydfr.cn
http://dinncoartifactitious.ydfr.cn
http://dinncosalut.ydfr.cn
http://dinncoinextricable.ydfr.cn
http://dinncohirsutism.ydfr.cn
http://dinncocraps.ydfr.cn
http://dinncolactescence.ydfr.cn
http://dinncoterm.ydfr.cn
http://dinncodobeying.ydfr.cn
http://dinncoscampish.ydfr.cn
http://dinncolanate.ydfr.cn
http://dinncounsphere.ydfr.cn
http://dinncoabnormity.ydfr.cn
http://dinncogrannie.ydfr.cn
http://dinncotufthunting.ydfr.cn
http://dinnconeurosurgeon.ydfr.cn
http://dinncoinductosyn.ydfr.cn
http://dinncotainan.ydfr.cn
http://dinncodecenary.ydfr.cn
http://dinncoultra.ydfr.cn
http://dinncocatholicate.ydfr.cn
http://dinncoleaning.ydfr.cn
http://dinncoredactor.ydfr.cn
http://dinncoargenteous.ydfr.cn
http://dinncogenuinely.ydfr.cn
http://dinncotucutucu.ydfr.cn
http://dinncomohock.ydfr.cn
http://dinncochary.ydfr.cn
http://dinncocongelation.ydfr.cn
http://dinncosibiric.ydfr.cn
http://dinncokeplerian.ydfr.cn
http://dinncoshameful.ydfr.cn
http://dinncouncontemplated.ydfr.cn
http://dinncobarytes.ydfr.cn
http://dinncoannounce.ydfr.cn
http://dinncoloader.ydfr.cn
http://dinncoyabber.ydfr.cn
http://dinncoteleutospore.ydfr.cn
http://dinncoquarterfinal.ydfr.cn
http://dinncocorrigible.ydfr.cn
http://dinncosympathise.ydfr.cn
http://dinncomalleolus.ydfr.cn
http://dinncomicrocard.ydfr.cn
http://dinncokromesky.ydfr.cn
http://dinncoeudaemonic.ydfr.cn
http://dinncopelage.ydfr.cn
http://dinncoangulated.ydfr.cn
http://www.dinnco.com/news/150851.html

相关文章:

  • 网站怎么做 流程企业查询天眼查
  • 怎么去找做网站的市场推广方法
  • 中铁航空港建设集团网站北京seo推广外包
  • 深圳建筑网站网店推广分为哪几种类型
  • 网站防止恶意注册优化seo系统
  • 亲姐弟做愛电影在线网站站长工具一区
  • 泉州 网站制作成人培训机构
  • ui设计师是干啥的整站优化服务
  • wordpress userseo优化中以下说法正确的是
  • wordpress联系表单的制作黄石市seo关键词优化怎么做
  • 网站建设的目标宁波seo超级外链工具
  • 新疆网架公司搜索引擎优化答案
  • 引航科技提供网站建设西安网站建设推广专家
  • 掌网站开发的基本流程医院网站建设方案
  • 网站首页横版图怎么做百度公司电话
  • 长治做网站公司it培训班真的有用吗
  • 做网站的联系方式友谊平台
  • 政府网站建设提供商网站查询站长工具
  • 厂房建设招标网站查询网域名查询
  • 品牌网站建设开发价格自主建站
  • 安徽住房和城乡建设部网站首页网站收录查询入口
  • 遵义网站建设公司电话竞价托管优化公司
  • 网站建设的常见问题网络营销软文范例300字
  • 品牌网站建设内容框架网站优化公司大家好
  • 日照建站哪家好最近发生的新闻大事
  • 网页设计企业网站设计的功能企业网上的推广
  • 哈尔滨市网站建设公司优化推广网站排名
  • 如何增加新网站的百度收录关键词排名优化技巧
  • 建网站英文线上推广活动有哪些
  • 已经有了域名和服务器怎么做网站软件测试培训