⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 libsys.java

📁 一个学生登陆学校library
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/**
 This program is designed to provide a basic information management 
 of a school library.
 Author: Kai Zhou
 E-mail: endlesswinds@hotmail.com
 Last Changed: 24th, Sep, 2007
 */
import java.util.StringTokenizer;
import java.util.Scanner;

public class Libsys {
	private Student[] arrayOfStudents=new Student[100];
	private Staff[] arrayOfStaffs=new Staff[100];
	private PrintedResource[] arrayOfItems=new PrintedResource[100];
	private int numberOfStudent=0;
	private int numberOfStaff=0;
	private int numberOfItem=0;
	public static void main(String[] args) 
	{
		String readLine; //Store what user input.
        Scanner keyboard=new Scanner(System.in);
        readLine=keyboard.nextLine();
	    Libsys librarySystem=new Libsys(); // Create an object to invoke nostatic method.
    	while(!librarySystem.exitSystem(readLine))
    	{
    		librarySystem.runCommander(readLine);
    		readLine=keyboard.nextLine(); //Read the next commander.
    	}  
    	System.exit(0);
	}
	
	
	private boolean exitSystem(String readLine)
	{
		return readLine.equalsIgnoreCase("exit");
	}
	private String commanders(String readLine)
	{
		String delimiters=" ";
		StringTokenizer wordFactory=new StringTokenizer(readLine,delimiters);
		String Commander=wordFactory.nextToken();
		return Commander;
	}//Separate the commanders form the readline.
	private void runCommander(String readLine)
	{
		if(commanders(readLine).equalsIgnoreCase("ADD_MEMB"))
		{
			addMember(readLine);
		}
	    else if(commanders(readLine).equalsIgnoreCase("ADD_ITEM"))
	    {
	    	addItem(readLine);
		}
	    else if(commanders(readLine).equalsIgnoreCase("EDIT_MEMB"))
	    {
	    	editMember(readLine);
	    }
	    else if(commanders(readLine).equalsIgnoreCase("EDIT_ITEM"))
	    {
	    	editItem(readLine);
	    }
	    else if(commanders(readLine).equalsIgnoreCase("BORROW"))
	    {
	    	borrowItems(readLine);
	    }
	    else if(commanders(readLine).equalsIgnoreCase("RETURN"))
	    {
	    	returnItems(readLine);
	    }
	    else if(commanders(readLine).startsWith("DEL_"))
	    {
	    	delete(readLine);
	    }
	    else if(commanders(readLine).startsWith("LIST_"))
	    {
	        list(readLine);
	    }
	    else if(commanders(readLine).startsWith("COUNT_"))
	    {
	    	count(readLine);
	    }
	}//Call related method according to the commanders.
	public void addMember(String readLine)
	{
		String delimiters=",";
	    StringTokenizer wordFactory=new StringTokenizer(readLine,delimiters);
		String beginWord=wordFactory.nextToken();
	    String memberID=beginWord.substring(9,17);
	    String givenName=wordFactory.nextToken();
	    String familyName=wordFactory.nextToken();
	    String birthday=wordFactory.nextToken();
	    String email=wordFactory.nextToken();
	    String telephoneNumber=wordFactory.nextToken();
	    if(memberID.startsWith("STUD"))
		{
	    	arrayOfStudents[numberOfStudent]=new Student(memberID,givenName,familyName,birthday,email,telephoneNumber);
			numberOfStudent=numberOfStudent+1;
		}
		else if(memberID.startsWith("STAFF"))
		{
			arrayOfStaffs[numberOfStaff]=new Staff(memberID,givenName,familyName,birthday,email,telephoneNumber);
			numberOfStaff=numberOfStaff+1;
		}
		else
		{
		System.exit(0);	
		}
		
	}
	public void addItem(String readLine)
	{
	    String delimiters=",";
	    StringTokenizer wordFactory=new StringTokenizer(readLine,delimiters);
		String beginWord=wordFactory.nextToken();
	    String callNumber=beginWord.substring(9,15);
	    String title=wordFactory.nextToken();
	    String author=wordFactory.nextToken();
	    String publisher=wordFactory.nextToken();
	    String dateOfPublication=wordFactory.nextToken();
	    arrayOfItems[numberOfItem]=new PrintedResource(callNumber,title,dateOfPublication,author,publisher);
		numberOfItem=numberOfItem+1;
	}
	private int matchString(String ID,Student[] IDGroup)
	{
		int index=0;
		for(;index<numberOfStudent;index++)
		{
			if(IDGroup[index].getMemberID().equalsIgnoreCase(ID))break;
		}
		return index;
	}//find the index of the student ID.
	private int matchString(String ID,Staff[] IDGroup)
	{
		int index=0;
		for(;index<numberOfStaff;index++)
		{
			if(IDGroup[index].getMemberID().equalsIgnoreCase(ID))break;
		}
		return index;
	}//find the index of the staff ID.
	private int matchString(String ID,PrintedResource[] IDGroup)
	{
		int index=0;
		for(;index<numberOfItem;index++)
		{
			if(IDGroup[index].getCallNumer().equalsIgnoreCase(ID))break;
		}
		return index;
	}//find the index of the call number.
	public void editMember(String readLine)
	{
		String delimiters=",";
		StringTokenizer wordFactory=new StringTokenizer(readLine,delimiters);
		String beginWord=wordFactory.nextToken();
		String memberID=beginWord.substring(10, 18);
		String givenName=wordFactory.nextToken();
		String familyName=wordFactory.nextToken();
		String birthday=wordFactory.nextToken();
		String email=wordFactory.nextToken();
		String telephoneNumber=wordFactory.nextToken();
		if(memberID.startsWith("STUD"))
		{
			int index=matchString(memberID,arrayOfStudents);
			arrayOfStudents[index].setGivenName(givenName);
			arrayOfStudents[index].setFamilyName(familyName);
			arrayOfStudents[index].setBirthday(birthday);
			arrayOfStudents[index].setEmail(email);
			arrayOfStudents[index].setTelephoneNumber(telephoneNumber);
		}
		else if(memberID.startsWith("STAFF"))
		{
			int index=matchString(memberID,arrayOfStaffs);
			arrayOfStaffs[index].setGivenName(givenName);
			arrayOfStaffs[index].setFamilyName(familyName);
			arrayOfStaffs[index].setBirthday(birthday);
			arrayOfStaffs[index].setEmail(email);
			arrayOfStaffs[index].setTelephoneNumber(telephoneNumber);
		}
	}
	public void editItem(String readLine)
	{
		String delimiters=",";
		StringTokenizer wordFactory=new StringTokenizer(readLine,delimiters);
		String beginWord=wordFactory.nextToken();
		String callNumber=beginWord.substring(10, 16);
		String title=wordFactory.nextToken();
		String author=wordFactory.nextToken();
		String publisher=wordFactory.nextToken();
		String dateOfPublication=wordFactory.nextToken();
		int index=matchString(callNumber,arrayOfItems);
		arrayOfItems[index].setTitle(title);
		arrayOfItems[index].setAuthor(author);
		arrayOfItems[index].setPublisher(publisher);
		arrayOfItems[index].setDateOfPublication(dateOfPublication);
	}
	public void borrowItems(String readLine)
	{
		String delimiters=",";
		StringTokenizer wordFactory=new StringTokenizer(readLine,delimiters);
		String beginWord=wordFactory.nextToken();
		String memberID=beginWord.substring(7, 15);
		String callNumber=wordFactory.nextToken();
		String returnDate=wordFactory.nextToken();
		if(memberID.startsWith("STUD"))
		{
			int indexOfStudent=matchString(memberID,arrayOfStudents);
			int indexOfItem=matchString(callNumber,arrayOfItems);
			if(!arrayOfItems[indexOfItem].getAvailable())
			{
				System.out.println("ERR_BORROW: "+arrayOfItems[indexOfItem].getCallNumer()+" is not available");
			}//determine whether the Item is available.			
			else if(arrayOfStudents[indexOfStudent].getItemBorrowed()>=arrayOfStudents[indexOfStudent].getMaxBorrow())
			{
				System.out.println("ERR_BORROW: "+arrayOfStudents[indexOfStudent].getMemberID()+" can not borrow any more item!");
			}//determine whether the member beyond the max number of items can borrow.
			else
			{
				arrayOfStudents[indexOfStudent].borrowItem(arrayOfStudents, indexOfStudent, arrayOfItems, indexOfItem, returnDate);
			}
		}
		else if(memberID.startsWith("STAFF"))
		{
			int indexOfStaff=matchString(memberID,arrayOfStaffs);
			int indexOfitem=matchString(callNumber,arrayOfItems);
			if(!arrayOfItems[indexOfitem].getAvailable())
			{
				System.out.println("ERR_BORROW: "+arrayOfItems[indexOfitem].getCallNumer()+" is not available");	
			}//determine whether the Item is available.
			else if(arrayOfStaffs[indexOfStaff].getItemBorrowed()>=arrayOfStaffs[indexOfStaff].getMaxBorrow())
			{
				System.out.println("ERR_BORROW: "+arrayOfStaffs[indexOfStaff].getMemberID()+" can not borrow any more item!");
			}//determine whether the member beyond the max number of items can borrow.
			else
			{
				arrayOfStaffs[indexOfStaff].borrowItem(arrayOfStaffs, indexOfStaff, arrayOfItems, indexOfitem, returnDate);
			}
		}
		
	}
	public void delete(String readLine)
	{
		String delimiters=" ";
		StringTokenizer wordFactory=new StringTokenizer(readLine,delimiters);
		String commander=wordFactory.nextToken();
		String deleteID=wordFactory.nextToken();
		if(commander.equalsIgnoreCase("DEL_MEMB"))
		{
			if(deleteID.startsWith("STUD"))
			{
				int index=matchString(deleteID,arrayOfStudents);
				if(arrayOfStudents[index].getItemBorrowed()==0)
				{
					for(int i=index;i<numberOfStudent-1;i++)
					{
						arrayOfStudents[i]=arrayOfStudents[i+1];
					}
					numberOfStudent--;
				}//delete the element from the array. Copy the rest element one position forward.
				else System.out.println("ERR_DELETE: "+deleteID+" can not be deleted! Should return all borrowed items first.");
			}
			else if(deleteID.startsWith("STAFF"))
			{
				int index=matchString(deleteID,arrayOfStaffs);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -