#!/usr/local/bin/python import cgi import string import os import sys import random import time MAX_STUDENTS = 105 #-------------------- def studentComp(s1, s2): if (s1["QHouse"] >= s2["QHouse"] and s1["QCollege"] >= s2["QCollege"]): return 0 else: return -1 #-------------------- def writeToFile(students): filename = "Mayhouse." + time.time() file = open(file,"w") file.write(students) file.close() #-------------------- def doLotto(students): random.shuffle(students) students.sort(studentComp) students.reverse() # writeToFile(students) def main(): print "Content-type: text/html\n" form = cgi.FieldStorage() if form.has_key("numStudents"): num_students = form["numStudents"].value else: print "

ERROR: Missing number of students

" print "

See Administrator

" sys.abort() students = [] student = {"firstName":None , "lastName":None , "QCollege":None, "QHouse":None} num = 1 while num <= MAX_STUDENTS: key1 = "firstName" + repr(num) ; key2 = "lastName" + repr(num) key3 = "QHouse" + repr(num) ; key4 = "QCollege" + repr(num) k1p = 0; k2p = 0; k3p = 0; k4p = 0; if form.has_key(key1): student["firstName"] = form[key1].value k1p = 1 if form.has_key(key2): student["lastName"] = form[key2].value k2p = 1 if form.has_key(key3): student["QHouse"] = int(form[key3].value) k3p = 1 if form.has_key(key4): student["QCollege"] = int(form[key4].value) k4p = 1 #must use copy here since objects are handled by reference otherwise if k1p and k2p and k3p and k4p: students.append(student.copy()) num = num + 1 #lotto is abstracted from interface doLotto(students) #now we have sorted list -- handle output ## javascript stuff # print results print "" print "" ## end javascript stuff print "" print "

Lottery Results

" print "" print "" print "" print "" print "" print "" print "" print "" count = 1 for s in students: print "" print "" print "" print "" print "" print "" print "" count = count + 1 print "
" + "Last Name" + "" + "First Name" + "" + "Quarters in House" + "" + "Quarters in College" + "" + "Rank" + "
" + s['lastName'] + "" + s['firstName'] + "" + repr(s['QHouse']) + "" + repr(s['QCollege']) + "" + repr(count) + "
" print "
" print "" print "" print "
" print "" print "" #-------------------- main()