สวัสดีทุกคนอีกครั้ง ขอขอบคุณที่สละเวลาตรวจสอบปัญหาของฉัน
ฉันกำลังพยายามสร้างโปรแกรมที่ติดตามพนักงานและแผนกต่างๆ ที่พวกเขาทำงานอยู่
ขั้นแรกโปรแกรมจะอ่านข้อมูลเริ่มต้นทั้งหมดจากไฟล์ข้อความเพื่อให้โปรแกรมดำเนินต่อไป โปรแกรมจะมี while loop ภายใน while loop วงแรกจะอ่านรายละเอียดแผนกแล้วจึงสร้างแผนก
จากนั้นวงถัดไป (ด้านใน) จะอ่านพนักงานทั้งหมดที่เกี่ยวข้องกับแผนกนี้ จากนั้นหลังจากอ่านรายละเอียดของพนักงานแล้ว จะสร้างพนักงานและเพิ่มไปยังแผนกที่สร้างขึ้นก่อนหน้านี้เพื่อบอกว่านี่คือแผนกที่ฉันทำงานอยู่
หลังจากเพิ่มพนักงานทั้งหมดเข้าไปในแผนกแล้ว มันจะออกจากลูปภายในนั้นและส่งแผนกที่มีพนักงานอยู่ข้างในไปยัง mainDriver เพื่อจัดเก็บ โดยทำเช่นนี้กับแผนกที่เหลืออีกครั้งโดยเพิ่มพนักงานที่เกี่ยวข้องและอื่นๆ
ปัญหาคือ: ดูเหมือนว่าจะสร้างแต่ละแผนกได้และเพิ่มลงใน mainDriver แต่พนักงานทั้งหมดจะถูกเพิ่มในแผนกแรกและแผนกที่เหลือจะเว้นว่างไว้ ข้อใดไม่ใช่แนวทางการทำงานเนื่องจากมีพนักงานหลายคนในแต่ละแผนก
ทำไมจึงไม่ย้ายไปแผนกถัดไปเนื่องจากแผนกใหม่กำลังสร้างอินสแตนซ์??
ฉันขอความช่วยเหลือหน่อยได้ไหมเพื่อดูว่าฉันจะผิดพลาดตรงไหน
นี่คือรหัสที่อ่านในข้อมูล
while (index < numberOfDepartmentsToRead )
{
String depName1 = inFile.nextLine();
String location1 = inFile.nextLine();
String numberOfEmps = inFile.nextLine();
int numberOfEmps1 = Integer.parseInt(numberOfEmps);
Department newDepartment = new Department(depName1 , location1);
while (i < numberOfEmps1 )
{
String fName = inFile.nextLine();
String lName = inFile.nextLine();
String gender = inFile.nextLine();
String address = inFile.nextLine();
String payLevel = inFile.nextLine();
int dPayLevel = Integer.parseInt(payLevel);
Employee employeesFromList = new Employee(randomIDno, fName, lName, gender, dPayLevel);
newDepartment.setAddEmp(employeesFromList, randomIDno);
i++;
}
i = 0;
index++;
MainDriver.setDepartmentToSystem(newDepartment);
}
พนักงานจะถูกส่งต่อวิธีนี้ในชั้นเรียนแผนก
public static void setAddEmp(Employee theEmp, int idNumber)
{
employeesInThisDepartment.add(theEmp);
employeeMap.put(idNumber, theEmp);
}
แผนกจะถูกเพิ่มเข้าไปในวิธีการจัดเก็บข้อมูลคลาส mainDriver ซึ่งก็คือสิ่งนี้
public static void setDepartmentToSystem(Department theDepartment)
{
allDepartments.add(theDepartment);
}