update v1 teachers

This commit is contained in:
SowinskiBraeden committed 2022-03-01 20:44:21 -08:00
1 parent 50f7adec38
commit 5a45bb0a7f
3 files changed
+162 -121

No files matched your search

+119 -95
View File
@@ -1,195 +1,219 @@
courses = { courses = {
"cl1": { "P-CL": {
"name": "class1", "name": "Pre-Calculus",
"code": "cl1", "code": "P-CL",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl2": { "CL": {
"name": "class2", "name": "Calculus",
"code": "cl2", "code": "CL",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl3": { "EN-CW": {
"name": "class3", "name": "English: Creative Writing",
"code": "cl3", "code": "EN-CW",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl4": { "EN-LS": {
"name": "class4", "name": "English: Literary Studies",
"code": "cl4", "code": "EN-LS",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl5": { "EN-C": {
"name": "class5", "name": "English: Compisition",
"code": "cl5", "code": "EN-C",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl6": { "S-J": {
"name": "class6", "name": "Social Justice",
"code": "cl6", "code": "S-J",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl7": { "S-H": {
"name": "class7", "name": "History",
"code": "cl7", "code": "S-H",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl8": { "S-P": {
"name": "class8", "name": "Psychology",
"code": "cl8", "code": "S-P",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl9": { "SC-P": {
"name": "class9", "name": "Physics",
"code": "cl9", "code": "SC-P",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl10": { "SC-B": {
"name": "class10", "name": "Biology",
"code": "cl10", "code": "SC-B",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl11": { "SC-C": {
"name": "class11", "name": "Chemistry",
"code": "cl11", "code": "SC-C",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl12": { "SC-ES": {
"name": "class12", "name": "SC-ES",
"code": "cl12", "code": "cl12",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl13": { "M": {
"name": "class13", "name": "Music",
"code": "cl13", "code": "Ms",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl14": { "CH": {
"name": "class14", "name": "Choir",
"code": "cl14", "code": "CH",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl15": { "DN": {
"name": "class15", "name": "Dance",
"code": "cl15", "code": "DN",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl16": { "CS": {
"name": "class16", "name": "Computer Science",
"code": "cl16", "code": "CS",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl17": { "GD": {
"name": "class17", "name": "Game Development",
"code": "cl17", "code": "GD",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl18": { "WW": {
"name": "class18", "name": "Woodwork",
"code": "cl18", "code": "WW",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl19": { "MW": {
"name": "class19", "name": "MetwalWork",
"code": "cl19", "code": "MW",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl20": { "M-WP": {
"name": "class20", "name": "Math: Workplace",
"code": "cl20", "code": "M-WP",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl21": { "M-F": {
"name": "class21", "name": "Math: Foundations",
"code": "cl21", "code": "M-F",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl22": { "BN": {
"name": "class22", "name": "Band",
"code": "cl22", "code": "BN",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl23": { "TH": {
"name": "class23", "name": "Theatre",
"code": "cl23", "code": "TH",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
}, },
"cl24": { "VD-P": {
"name": "class24", "name": "Video Production",
"code": "cl24", "code": "VD-P",
"credits": 4, "credits": 4,
"gradelevel": 11, "gradelevel": 11,
"totalrequests": 0, "totalrequests": 0,
"studentindexes": [] "studentindexes": [],
"teachers": 3
} }
} }
+12 -12
View File
@@ -4,18 +4,18 @@ let students = require('./students.json');
// console.table(schedule) // console.table(schedule)
// Display first semester // Display first semester
console.table(schedule.block1) // console.table(schedule.block1)
console.table(schedule.block2) // console.table(schedule.block2)
console.table(schedule.block3) // console.table(schedule.block3)
console.table(schedule.block4) // console.table(schedule.block4)
// Display second semester // // Display second semester
console.table(schedule.block5) // console.table(schedule.block5)
console.table(schedule.block6) // console.table(schedule.block6)
console.table(schedule.block7) // console.table(schedule.block7)
console.table(schedule.block8) // console.table(schedule.block8)
// Display each students schedule // Display each students schedule
// for (let i = 0; i < students.length; i++) { for (let i = 0; i < students.length; i++) {
// console.table(students[i].schedule) console.table(students[i].schedule)
// } }
+31 -14
View File
@@ -50,7 +50,7 @@ running: {
# Error 2: No more room in schedule for another class # Error 2: No more room in schedule for another class
# 400 by default # 400 by default
studentsNum = 1000 studentsNum = 500
err1, err2, = 0,0 err1, err2, = 0,0
minReq, classCap, blockClassLimit = 18, 30, 18 minReq, classCap, blockClassLimit = 18, 30, 18
@@ -88,14 +88,16 @@ def generateScheduleV1():
# If class is allowed to run # If class is allowed to run
if currentCourse in activeCourses: if currentCourse in activeCourses:
blockIndex = 1 blockIndex = 1
courseNum = 1
getFreeBlock = True getFreeBlock = True
while getFreeBlock: while getFreeBlock:
block = f"block{blockIndex}" block = f"block{blockIndex}"
if currentCourse in running[block]: cname = f"{courses[currentCourse]['name']}-{courseNum}"
if cname in running[block]:
if student["schedule"][block] == "": # Add student to class if student["schedule"][block] == "": # Add student to class
if len(running[block][currentCourse]["students"]) < classCap: if len(running[block][cname]["students"]) < classCap:
running[block][currentCourse]["students"].append(student["name"]) running[block][cname]["students"].append(student["name"])
student["schedule"][block] = courses[currentCourse]["name"] student["schedule"][block] = cname
getFreeBlock = False getFreeBlock = False
else: # Find next available class or create new one else: # Find next available class or create new one
if blockIndex == 8: # No available classes if blockIndex == 8: # No available classes
@@ -104,7 +106,6 @@ def generateScheduleV1():
# How to solve? # How to solve?
# print(f"\nError 1: No more available classes for student {student['name']}") # print(f"\nError 1: No more available classes for student {student['name']}")
err1 += 1
generate = False generate = False
else: else:
if alternateIndex <= (len(student["requests"]) - 1): if alternateIndex <= (len(student["requests"]) - 1):
@@ -115,7 +116,12 @@ def generateScheduleV1():
err1 += 1 err1 += 1
generate = False generate = False
getFreeBlock = False getFreeBlock = False
else: blockIndex += 1 else:
if (courses[currentCourse]["teachers"] - courseNum) > 0:
courseNum += 1
else:
blockIndex += 1
courseNum = 1
else: else:
if blockIndex == 8: # No available classes if blockIndex == 8: # No available classes
if len(student["requests"]) == 8: if len(student["requests"]) == 8:
@@ -134,7 +140,9 @@ def generateScheduleV1():
err1 += 1 err1 += 1
generate = False generate = False
getFreeBlock = False getFreeBlock = False
else: blockIndex += 1 else:
blockIndex += 1
courseNum = 1
else: else:
if blockIndex == 8: if blockIndex == 8:
# Class does not exists # Class does not exists
@@ -142,28 +150,37 @@ def generateScheduleV1():
blockNum = 1 blockNum = 1
while True: while True:
newBlock = f"block{blockNum}" newBlock = f"block{blockNum}"
if currentCourse not in running[newBlock] and len(running[newBlock]) < blockClassLimit: if cname not in running[newBlock] and len(running[newBlock]) < blockClassLimit:
if student["schedule"][newBlock] == "": # Add student to class if student["schedule"][newBlock] == "": # Add student to class
running[newBlock][currentCourse] = { running[newBlock][cname] = {
"name": courses[currentCourse]["name"], "name": courses[currentCourse]["name"],
"students": [student["name"]] "students": [student["name"]]
} }
student["schedule"][newBlock] = courses[currentCourse]["name"] student["schedule"][newBlock] = cname
break break
else: else:
if blockNum == 8: if blockNum == 8:
# All student classes have been filled # All student classes have been filled
break break
else: blockNum += 1 else:
blockNum += 1
courseNum = 1
else: else:
if blockNum == 8: if blockNum == 8:
# No room in school for more classes # No room in school for more classes
# print(f"\nError 2: No more room in school for another class") # print(f"\nError 2: No more room in school for another class")
err2 += 1 err2 += 1
break break
else: blockNum += 1 else:
if (courses[currentCourse]["teachers"] - courseNum) > 0:
courseNum += 1
else:
blockNum += 1
courseNum = 1
break break
else: blockIndex += 1 else:
blockIndex += 1
courseNum = 1
break break
elif currentCourse not in activeCourses: elif currentCourse not in activeCourses:
if len(student["requests"]) == 8: if len(student["requests"]) == 8: