update/work on test commit before laptop dies

This commit is contained in:
SowinskiBraeden committed 2022-02-28 13:46:33 -08:00
1 parent f8d531f1b1
commit c7bdc8c75b
2 files changed
+31 -18

No files matched your search

+1 -12
View File
@@ -16,17 +16,6 @@ let students = require('./students.json');
// console.table(schedule.block8) // console.table(schedule.block8)
// Display each students schedule // Display each students schedule
// for (let i = 0; i < students.length; i++) {
// console.table(students[i].schedule)
// }
let errors = 0;
let classes;
for (let i = 0; i < students.length; i++) { for (let i = 0; i < students.length; i++) {
for (let j = 0; j < students[i].schedule.length; j++) { console.table(students[i].schedule)
if (students[i].schedule[j] != "") classes++;
}
if (classes != 8) errors++;
} }
console.log(`${errors} student(s) have a issue with their schedule`)
+30 -6
View File
@@ -2,7 +2,6 @@
import sys import sys
import json import json
import math import math
from prettytable import PrettyTable
from courses import courses, activeCourses from courses import courses, activeCourses
from mock import generateMockStudents from mock import generateMockStudents
@@ -69,7 +68,7 @@ running = {
def generateScheduleV1(): def generateScheduleV1():
global err1, err2, err3 global err1, err2
# Collect data and calculate schedules # Collect data and calculate schedules
for student in mockStudents: for student in mockStudents:
# Tally class request # Tally class request
@@ -185,16 +184,41 @@ def generateScheduleV1():
def generateScheduleV2(): def generateScheduleV2():
# This is just for data testing/visualizations global err1, err2
# Collect data and calculate schedules
for student in mockStudents:
# Tally class request
for request in student["requests"]:
courses[request]["totalrequests"] += 1
courses[request]["studentindexes"].append(mockStudents.index(student))
# Add course to active list if enough requests
if courses[request]["totalrequests"] > minReq and courses[request]["code"] not in activeCourses: activeCourses[courses[request]["code"]] = courses[request]
# calculate # of times to run class # calculate # of times to run class
# t = PrettyTable(["Class Name", "Class Runcount"])
for i in range(len(activeCourses)): for i in range(len(activeCourses)):
classRunCount = math.floor(activeCourses[list(activeCourses)[i]]["totalrequests"] / classCap) classRunCount = math.floor(activeCourses[list(activeCourses)[i]]["totalrequests"] / classCap)
# If there is minReq+ requests left, 1 more class could be run # If there is minReq+ requests left, 1 more class could be run
if (activeCourses[list(activeCourses)[i]]["totalrequests"] % classCap) > minReq: classRunCount += 1 if (activeCourses[list(activeCourses)[i]]["totalrequests"] % classCap) > minReq: classRunCount += 1
activeCourses[list(activeCourses)[i]]["classRunCount"] = classRunCount activeCourses[list(activeCourses)[i]]["classRunCount"] = classRunCount
# t.add_row([activeCourses[list(activeCourses)[i]]["code"], classRunCount])
# print(t) blockIndex = 1
while classRunCount > 0:
block = f"block{blockIndex}"
if activeCourses[i] not in running[block]:
# Generate class and sub 1 from classRunCount
running[block][activeCourses[i]] = {
"name": courses[activeCourses[i]]["name"],
"students": []
}
classRunCount -= 1
else:
if blockIndex == 8:
# No room in school for more classes
# print(f"\nError 2: No more room in school for another class")
err2 += 1
classRunCount = 0
else:
blockIndex += 1
if __name__ == '__main__': if __name__ == '__main__':