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

📄 faculty.java

📁 一个美国教授写得很好的java学生管理系统
💻 JAVA
字号:
// Faculty.java - Chapter 16 version.

// Copyright 2000 by Jacquie Barker - all rights reserved.

// An IMPLEMENTATION class.
package Persons;

import java.util.*;
import java.io.*;
import DataInterface.CollectionWrapper;
import UserInterface.SRS;
import Courses.Section;

public class Faculty extends CollectionWrapper {
	//------------
	// Attributes.
	//------------

	// This Hashtable stores Professor object references, using
	// the (String) ssn of the Professor as the key.

	private Hashtable professors;

	//----------------
	// Constructor(s).
	//----------------

	public Faculty() {
		// Instantiate a new Hashtable.

		professors = new Hashtable();
	}

	//-----------------
	// Get/set methods.
	//-----------------


	//-----------------------------
	// Miscellaneous other methods.
	//-----------------------------

	// Used for testing purposes.
	
	public void display() {
		System.out.println("Faculty:");
		System.out.println("");

		// Step through the Hashtable and display all entries.

		Enumeration e = professors.elements();

		while (e.hasMoreElements()) {
			Professor p = (Professor) e.nextElement();
			p.display();
			System.out.println("");
		}
	}

	public void addProfessor(Professor p) {
		professors.put(p.getSsn(), p);
	}

	public void parseData(String line) {
		// We're going to parse tab-delimited records into
		// four attributes -- name, ssn, title, and dept --
		// and then call the Professor constructor to fabricate a new
		// professor.

		// First, make a copy of the record.

		String restOfLine = line;
		int index = restOfLine.indexOf("\t");
		String name = restOfLine.substring(0, index);
		restOfLine = restOfLine.substring(index+1);
		index = restOfLine.indexOf("\t");
		String ssn = restOfLine.substring(0, index);
		restOfLine = restOfLine.substring(index+1);
		index = restOfLine.indexOf("\t");
		String title = restOfLine.substring(0, index);
		String dept = restOfLine.substring(index+1);
		
		// Call the constructor ...
		Professor p = new Professor(name, ssn, title, dept);
		addProfessor(p);
	}

	public Professor findProfessor(String ssn) {
		return (Professor) professors.get(ssn);
	}

	// We have to read a second file containing the teaching
	// assignments.
	// This next version is used when reading in the file that defines
	// teaching assignments.

	public void parseData2(String line) {
		// We're going to parse tab-delimited records into
		// two values, representing the professor's SSN
		// and the section number that he/she is going to teach.

		// First, make a copy of the record.

		String restOfLine = line;
		int index = restOfLine.indexOf("\t");
		String ssn = restOfLine.substring(0, index);

		// The full section number is a concatenation of the
		// course no. and section no., separated by a hyphen;
		// e.g., "ART101 - 1".

		String fullSectionNo = restOfLine.substring(index+1);

		// Look these two objects up in the appropriate collections.
		// Note that having made scheduleOfClasses a public
		// static attribute of the SRS class helps!

		Professor p = findProfessor(ssn); 
		Section s = SRS.scheduleOfClasses.findSection(fullSectionNo); 
		if (p != null && s != null) p.agreeToTeach(s);
	}

	// Test scaffold.
	public static void main(String[] args) {
		Faculty f = new Faculty();
		f.initializeObjects("Faculty.dat", true);

		// We cannot test the next feature, because the code
		// of parseData2() expects the SRS.scheduleOfClasses
		// collection object to have been instantiated, but 
		// it will not have been if we are running this test
		// scaffold instead.
		// f.initializeObjects("TeachingAssignments.dat", false);

		f.display();
	}
}

⌨️ 快捷键说明

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