国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)

這篇具有很好參考價值的文章主要介紹了使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

就像使用C語言寫代碼一樣。比如要用??????C語言寫一個小游戲的代碼,我們的邏輯實現(xiàn)是在哪里實現(xiàn)的啊?是不是在一個test.c源文件里面???沒錯,就是的!在之前的文章里,我說過我定義的Main函數(shù)就像C語言里的test.c文件一樣!所以,為了不打自己的臉。那我便在main函數(shù)里面實現(xiàn)我的圖書管理系統(tǒng)的邏輯。

?

目錄

邏輯實現(xiàn):

第一步:登錄界面

第二步:菜單的實現(xiàn)

第三步:增,刪,查,顯示等操作方法的實現(xiàn)和調(diào)用

?方法實現(xiàn):


?

邏輯實現(xiàn):

第一步:登錄界面

就像我們在日常生活中使用其它的系統(tǒng)有界面一樣,為了使我們的圖書館管理系統(tǒng)更好的使用我們就需要有一個登錄界面。

我的界面是這樣的:

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)

登錄方法:landing

package User;

import java.util.Scanner;

import Library.Booklist;

public class Main {
	public static User landing() {//登錄界面的方法
		System.out.println("請輸入你的名字:>");
		Scanner scanner = new Scanner(System.in);
		String name = scanner.nextLine();	
		System.out.println("請選擇:0->普通用戶,1——>管理員");
		int choice = scanner.nextInt();
		if(choice == 0 ) {
			return new NormalUser(name);
		}
		else {
			return new AdminUser(name);}
	}

	public static void main(String[] args) {
	Booklist booklist = new Booklist();//準備數(shù)據(jù)
	User user = landing();//用來選擇登錄那個界面的

	}

}

說明:

1.這里最關(guān)鍵的一點是什么呢?其實是landing方法的返回類型!也就是這個:

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)

?可以看到這里的返回類型是User!為什么要使用User來作為返回類型呢?是因為User是AdminUser與NormalUser的父類!父類?父類又能如何呢?其實這是因為我寫這段代碼時這個登陸的方法是為了先讓使用者選擇身份,所以我們在登陸時就要有AdminUser與NormalUser兩種不同的界面選擇!所以為了兼容AdminUser與NormalUser于是我就使用了這兩者的父類User來作為返回類型!

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)

?2.接收也要用User類型的變量來接收

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)

第二步:菜單的實現(xiàn)

經(jīng)過上述代碼,現(xiàn)在我能實現(xiàn)的效果就是這樣的:能輸入一個名字,能選擇一個身份。

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)

?但是,我們要的是這樣的:

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)

一步一步來,先加個菜單:?

首先來設(shè)想一下,菜單是用來干嗎的?菜單嗎,選擇的唄!那我們該如何選擇呢?想一下當初用C語言寫的游戲,無一例外都是用數(shù)字來進行選擇的!所以,這個菜單的返回類型就是int型,我們在main方法里面便用int 型的變量來接收返回值,于是我們在main方法里面就多加了一條語句:

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)

有了設(shè)想,現(xiàn)在就可以來實現(xiàn)這個菜單了:

先在User父類里定義一個抽象方法menu(),返回類型為int。但是抽象方法只能放在抽象類里邊,所以User父類就被迫變成一個抽象類了!

代碼:

package User;


public abstract class User {
 
  protected String name;
  public User(String name) {
	// TODO Auto-generated constructor stub
	  this.name = name;
}
  public  abstract int menu();
	
	
}

說明:可能大家對這個操作會有疑問:

1.為什么要用抽象類呢?這是因為你用了抽象方法menu()!

2.為什么要用抽象方法呢?這是因為menu()這個方法是不用在User父類中具體實現(xiàn)的。

3.既然不用實現(xiàn)那我們?yōu)槭裁匆愠鲞@么個玩意呢?這是因為我們在main方法中就是用User user來調(diào)用menu的,如果User(父類)沒有menu()這個方法,那user將會報錯!

?好了,解釋完畢!現(xiàn)在來看看menu()方法的具體實現(xiàn):

AdminUser中:

package User;

import java.util.Scanner;



public class AdminUser extends User{
	public AdminUser(String name) {
		// TODO Auto-generated constructor stub
		super(name);//先幫父類構(gòu)造
		this.name = name;//再自己構(gòu)造
	}
	public int menu() {
		System.out.println("歡迎 "+name+"來到圖書管理系統(tǒng)");
		System.out.println("*******************************");
		System.out.println("0.退出系統(tǒng)");
		System.out.println("1.添加圖書");
		System.out.println("2.移除圖書");
		System.out.println("3.查找圖書");
		System.out.println("4.顯示圖書");
		System.out.println("*******************************");
		System.out.println("請選擇你的操作");
		Scanner scanner = new Scanner(System.in);
		int choice = scanner.nextInt();
		return choice;
	}

}

NormalUser類中:

package User;

import java.util.Scanner;

public class NormalUser extends User{
	public NormalUser(String name) {
		// TODO Auto-generated constructor stub
		super(name);
		this.name = name;
	}
	public int menu() {
		System.out.println("歡迎 "+name+"來到圖書管理系統(tǒng)");
		System.out.println("*******************************");
		System.out.println("0.退出系統(tǒng)");
		System.out.println("1.借閱圖書");
		System.out.println("2.歸還圖書");
		System.out.println("3.查找圖書");
		System.out.println("4.顯示圖書");
		System.out.println("請選擇你的操作");
		Scanner scanner = new Scanner(System.in);
		int choice = scanner.nextInt();
		return choice;
	}
	
}

第三步:增,刪,查,顯示等操作方法的實現(xiàn)和調(diào)用

在介紹搭建圖書管理系統(tǒng)框架的那篇博客當中我已經(jīng)將圖書管理系統(tǒng)中的各種方法粗略的講了一遍了?,F(xiàn)在我就來實現(xiàn)一下這些方法!但是方法實現(xiàn)了又能怎樣呢?有了方法要用才是真的!所以我們先來講講如何用我們的選擇調(diào)用這些方法!

思路:

還記得我說這些方法就是一個多態(tài),但是他們都間接繼承于IOperation這個接口。所以我們是否能定義一個IOperation接口型的數(shù)組來通過下標來對這些方法來進行調(diào)用呢?答案是當然可以的。

?第一步:User(父類)中

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)

第二步:在AdminUser(子類)中

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)??

?第三步:在NormalUser(子類)中

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)

?

?

調(diào)用:

在搞清楚如何調(diào)用并且做了相關(guān)的準備以后我們就可以來寫調(diào)用方法了

調(diào)用方法:doOperation

這個方法要定義在User里,為什么呢?這是因為我們在main方法里面是要用User類型的user來對這個方法來進行使用的,假如我的User父類里面沒有這個方法那還怎么使用這個方法呢?所以這個方法就要定義在User(父類)中。

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)?

代碼:

public void doOperation(int choice,Booklist booklist) {
		ioperations[choice].work(booklist);//利用之前定義的接口數(shù)組來訪問各種操作方法
		
	}

?方法實現(xiàn):

1.AddOperation

代碼:

package Operation;

import java.util.Scanner;

import Library.Booklist;

public class AddOperation implements IOperation{
	public void work(Booklist booklist) {//重寫方法,使這個方法變?yōu)锳ddoperation的方法
		System.out.println("添加圖書!");
		Scanner scanner  = new Scanner(System.in);
		System.out.println("請輸入你要添加的圖書的名字:>");
		String name = scanner.nextLine();
		System.out.println("請輸入你要添加的圖書的類型:>");
		String type = scanner.nextLine();
		System.out.println("請輸入你要添加的圖書的作者:>");
		String author = scanner.nextLine();
		System.out.println("請輸入你要添加的圖書的價格:>");
		int price = scanner.nextInt();	
		System.out.println("添加成功!");
	}


}

2.DisplayOperation

代碼:

package Operation;

import Library.Book;
import Library.Booklist;

public class DisplayOperation implements IOperation {
public void work(Booklist booklist) {
	System.out.println("顯示圖書!");
	int curSize = booklist.getSize();
	
	for(int i = 0;i<curSize;i++) {
		Book book = booklist.getPos(i);
		System.out.println(book);
	}
}
}

當然,這個代碼要實現(xiàn)就要在原來的代碼中添加一些細節(jié)的東西,三處細節(jié):

因為我這里是使用遍歷的方法來對每一本書的信息進行打印的。所以,我就要知道整個數(shù)組的長度。所以,原來的booklist類中就要有代表數(shù)組長度的變量和獲取數(shù)組長度的方法,所以原來的代碼就被多加了:

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)

獲取完長度以后,我們就要對一本書的各種信息進行打印了,一般是System.out.println(book)這樣來打印的。所以我們要獲取到每一本書,所以我們又要添加一個獲取每一本書的方法:

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)??但是很快你就會又發(fā)現(xiàn)一個錯誤:

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)

打印出來了一堆奇奇怪怪的東西,為什么呢?沒有重寫唄。所以我們又要在Book這個類里面加一個重寫的方法:

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)?

搞完收工!??

?3.DelOperation

package Operation;

import java.util.Scanner;

import Library.Book;
import Library.Booklist;

public class DelOperation implements IOperation {
	public void work(Booklist booklist) {//重寫方法,使work方法變成DelOperation的方法
		Scanner scanner = new Scanner(System.in);
		System.out.println("刪除圖書!");
		System.out.println("請輸入你要刪除的圖書的名字:>");
		String name = scanner.nextLine();
		int curSize = booklist.getSize();
		int index = -1;
		for(int i = 0;i<curSize;i++) {
			Book book = booklist.getPos(i);
			if(name.equals(book.getName())) {
				index = i;
				break;
			
			}
		}
		if(index == -1) {
			System.out.println("沒有你要刪除的書!");
		}
		else {
			for(int i = index;i<curSize-1;i++) {
				Book book = booklist.getPos(i+1);
				booklist.setBooks(book, i);
			
			}
			booklist.setSize(curSize-1);
			booklist.setBooks(null, curSize);
			System.out.println("刪除成功!");
		}
		
		
	}

}

當然這個代碼也要添加一些細節(jié)的東西,比如設(shè)置書架某一位置設(shè)置為下一本書東西的方法,setBooks:

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)?當然,在刪除完一本書以后書的數(shù)量就要減少,書的最后一個位置就要置空:

使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)?

4.其它方法

?其實在寫完前面的幾個方法以后其它的代碼都很好寫了,這里我就不寫了!如果讀者感興趣的話可以自己思考一下來寫那幾個方法!文章來源地址http://www.zghlxwxcb.cn/news/detail-432763.html

到了這里,關(guān)于使用eclipse創(chuàng)建一個圖書管理系統(tǒng)(2)---------邏輯的實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • vue+elementui寫了一個圖書管理系統(tǒng)

    vue+elementui寫了一個圖書管理系統(tǒng)

    用vue+elementui寫了一個圖書管理系統(tǒng) 轉(zhuǎn)載自公號:java大師 目前是指一個純前端的展示,后端還在開發(fā)中,前端接口是通過json-server模擬的 用到的技術(shù)棧 1、vue.js 2、elementui 3、json-server 4、axios 5、vue-router 動態(tài)路由 目錄結(jié)構(gòu) 1、components文件夾是封裝的通用的Mytable和Myform及Nav等,

    2024年02月04日
    瀏覽(24)
  • 如何用Java實現(xiàn)一個簡易的圖書管理系統(tǒng)

    目錄 確立對象 確立這些對象的基本信息和功能 書 書架 管理員和普通用戶 各對象之間進行交互 既然是Java實現(xiàn),那么就應(yīng)該從面向?qū)ο蟮乃枷肴胧?。首先需要確立有哪些對象,這些對象的功能又是什么,然后通過這些對象的交互實現(xiàn)這樣一個建議的圖書管理系統(tǒng)。 要實現(xiàn)圖

    2024年02月04日
    瀏覽(31)
  • 用Java語言實現(xiàn)一個簡單的圖書管理系統(tǒng)

    用Java語言實現(xiàn)一個簡單的圖書管理系統(tǒng)

    這個系統(tǒng)有兩個登錄選項:用戶和管理員,選擇兩者進入都需要輸入賬號和密碼進行審核。 用戶有查看圖書列表,借閱圖書,歸還圖書這些選項,管理員有查看圖書列表,增加圖書,刪除圖書,修改圖書這些選項。 我們先建一個Book類,用來存放圖書名稱以及借閱狀態(tài),圖書

    2024年02月09日
    瀏覽(26)
  • 純編程從零到一創(chuàng)建圖書管理系統(tǒng)V1.0

    純編程從零到一創(chuàng)建圖書管理系統(tǒng)V1.0

    上一篇文章 答應(yīng)了道友們通過ChatGpt制作圖書管理系統(tǒng)程序,今天第一版LMS(Library Management System)他來了,完整版代碼放在在文末,有基礎(chǔ)的道友可以 點此跳轉(zhuǎn),在安裝中遇到問題,可以點擊此處查看解決方案 效果圖 功能列表 1、搜索圖書只顯示符合條件的圖書所在行 2、添加

    2024年01月17日
    瀏覽(23)
  • Java實現(xiàn)一個簡單的圖書管理系統(tǒng)(內(nèi)有源碼)

    Java實現(xiàn)一個簡單的圖書管理系統(tǒng)(內(nèi)有源碼)

    哈嘍哈嘍大家好啊,之前作者也是講了Java不少的知識點了,為了鞏固之前的知識點再為了讓我們深入Java面向?qū)ο筮@一基本特性,就讓我們完成一個圖書管理系統(tǒng)的小項目吧。 項目簡介: 通過管理員和普通用戶的兩種操作界面,利用其中的方法以及對象之間的交互,來實現(xiàn)對

    2024年02月11日
    瀏覽(24)
  • 用Java開發(fā)一個簡單的圖書館管理系統(tǒng)

    圖書館管理系統(tǒng)是一種用于管理圖書館材料、用戶和借還書記錄等信息的軟件系統(tǒng)。Java是一種流行的編程語言,它可以用于開發(fā)圖書館管理系統(tǒng)。在本篇文章中,我們將介紹如何使用Java編寫一個簡單的圖書館管理系統(tǒng)。 在設(shè)計系統(tǒng)時,需要考慮到各種各樣的因素,例如系統(tǒng)

    2024年02月08日
    瀏覽(20)
  • 一個簡單的vue項目之圖書管理系統(tǒng),自用,無ui,持續(xù)更新...

    一個簡單的vue項目之圖書管理系統(tǒng),自用,無ui,持續(xù)更新...

    由于自己上一把忘記寫log導(dǎo)致不小心把我的前端項目刪了 重新隨便寫點log記錄一下 由于各種版本不適配問題,請大家謹慎 看攻略 參考。 另外,由于博主主要還是寫后端,所以對ui并沒有加以處理,進階就不需要參考了!但是博主還是很樂于學(xué)習(xí)的,如果有什么好的意見和建

    2024年02月06日
    瀏覽(97)
  • 將Java與數(shù)據(jù)庫連接起來(配置idea),實現(xiàn)一個簡單的圖書管理系統(tǒng)

    將Java與數(shù)據(jù)庫連接起來(配置idea),實現(xiàn)一個簡單的圖書管理系統(tǒng)

    目錄 1.通過connector連接Java和Mysql數(shù)據(jù)庫 (1)首先配置idea (2)如何把java和mysql連接起來 1.簡單連接 2.認識PrepareStatement 2.實現(xiàn)簡單的圖書管理系統(tǒng) (1)創(chuàng)建數(shù)據(jù)庫jdbc,并且創(chuàng)建出book表 ?(2)在idea中書寫代碼將mysql與java連接,實現(xiàn)基本的增刪改查 1.JdbcUtiles類,一個使用jdbc的工具

    2024年02月11日
    瀏覽(28)
  • 【圖書管理系統(tǒng)】Servlet+JSP+MySql 實現(xiàn)的一個前后端 javaweb項目(內(nèi)附源碼)

    【圖書管理系統(tǒng)】Servlet+JSP+MySql 實現(xiàn)的一個前后端 javaweb項目(內(nèi)附源碼)

    源碼分享在文末! 學(xué)習(xí)完Javaweb的知識后做了個項目練練手,我選擇了經(jīng)典而且比較簡單的圖書管理系統(tǒng)。 最近有時間,整理了一下,分享給大家,希望能夠幫到你! 基于B/S結(jié)構(gòu) 前端: HTML+CSS+JS +JQuery 后端: Servlet+JSP+MySql 操作系統(tǒng): win8/win10 JDK: 8.0 開發(fā)工具: Intellij IDEA2020.1 旗艦

    2024年02月06日
    瀏覽(30)
  • 【Shell 命令集合 系統(tǒng)管理 】Linux 創(chuàng)建一個新的用戶組 groupadd 命令 使用指南

    【Shell 命令集合 系統(tǒng)管理 】Linux 創(chuàng)建一個新的用戶組 groupadd 命令 使用指南

    Shell 命令專欄:Linux Shell 命令全解析 groupadd命令用于在Linux系統(tǒng)中創(chuàng)建一個新的用戶組。它可以創(chuàng)建一個本地用戶組,也可以創(chuàng)建一個系統(tǒng)用戶組。 創(chuàng)建一個用戶組可以幫助管理員更好地管理用戶和文件的權(quán)限。用戶組可以將一組用戶組織在一起,并為他們提供共享的權(quán)限設(shè)

    2024年02月03日
    瀏覽(134)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包