Python solution
def menu():
allStudentMarks = {} #Storage for all students marks. The storage is in the form of a dictionary data structure
while True:
kbinput = input("Enter 1 to store student details\n" +
"Enter 2 to display student report\n" +
"Enter any other key to exit\n")
if kbinput == '1':
allStudentMarks = enterAllMarksOfAStudentToStorage(allStudentMarks)
elif kbinput == '2':
displayAllReports(allStudentMarks)
elif kbinput!='1' and kbinput != '2':
break #break could have been replaced by return. return returns the control flow out of the function
#break breaks the control out of the loop
def enterAllMarksOfAStudentToStorage(allStudentMarks):
while True:
fname = input("Enter a student's full name\n")
if searchStudentMarks(fname,allStudentMarks ):
print(fname, " already exists in the system. Choose another name\n")
else:
break
#enter valid marks for DF Report; valid marks range: 0 to 20
while True:
dfReportMarks = input("enter marks for DF Report; valid marks range: 0 to 20\n")
dfReportMarks = float (dfReportMarks)
if dfReportMarks >= 0 and dfReportMarks <= 20:
break
#enter valid makrs for Project: valid marks range: 0 to 30
while True:
projectMarks = input("enter marks for Project; valid marks range: 0 to 30\n")
projectMarks = float (projectMarks)
if projectMarks >= 0 and projectMarks <= 30:
break
while True:
finalExamMarks = input("enter marks for Final Exam; valid marks range: 0 to 50\n")
finalExamMarks = float (finalExamMarks)
if finalExamMarks >= 0 and finalExamMarks <= 50:
break
studentMarks = [dfReportMarks, projectMarks, finalExamMarks]
allStudentMarks[fname] = studentMarks
##temporary code to display current dictionary content
for k, v in allStudentMarks.items():
print ("Student ", k, "'s marks are \n")
for m in v:
print(m, "\t")
return allStudentMarks
def displayAllReports(allStudentsDetails):
kbinput = int (input("Enter 1 to get DF Report Marks\n" +
"Enter 2 to get Project Marks\n" +
"Enter 3 to get Final Exam Marks\n" +
"Enter 4 to get Overall Marks\n" +
"Enter 5 to get Selected Student Marks\n" +
"Enter 6 to get to Menu\n"))
if kbinput == 1:
belowDFAvgDetails = getBelowAvgDFReportMarksReport(allStudentsDetails)
displaySelectedStudentsMarks(belowDFAvgDetails)
if kbinput == 2:
getBelowAvgProjectMarksReport()
if kbinput == 3:
getBelowAvgFinalExamMarksReport()
if kbinput == 4:
getBelowAvgOverallMarksReport()
if kbinput == 5:
displaySelectedStudentsMarks()
if kbinput == 6:
return
def displayAStudentsDetail(aDict): #1
displayADictionary(aDict) #2
def displayAList(aListToDisplay): #3
print("The marks are in following order: 'DF Report Marks' 'Project Marks' and 'Final Exam Marks'") #4
for anItem in aListToDisplay: #5
print(anItem, end=' ') #6
def displayADictionary(aDict): #7
for k,v in aDict.items(): #8
print(k, " ", end=" ") #9
displayAList(v) #10
print() #11
def getBelowAvgDFReportMarksReport(aDictionary): #12
sumOfDFMarks = 0 #13
for aVal in aDictionary.values(): #14
sumOfDFMarks = sumOfDFMarks + aVal[0]#15
avg = sumOfDFMarks/len(aDictionary) #16
belowDFAvgDict = {} #17
for k, v in aDictionary.items(): #18
if avg> v[0]: #19
belowDFAvgDict[k] = v #20
return ["Below Avg DF Mark: ", avg, belowDFAvgDict] #21
def displaySelectedStudentsMarks(aList): #22
print(aList[0],aList[1] ) #23
displayADictionary(aList[2]) #24
def getBelowAvgProjectMarksReport():
print("The getBelowAvgProjectMarksReport got invoked\n")
def getBelowAvgFinalExamMarksReport():
print("The getBelowAvgFinalExamMarksReport got invoked\n")
def getBelowAvgOverallMarksReport():
print("The getBelowAvgOverallMarksReport got invoked\n")
def displaySelectedStudentsMarks():
print("The displaySelectedStudentsMarks got invoked\n")
def searchStudentMarks(newNameOfStudent, allStudentsStorage):
return newNameOfStudent in allStudentsStorage
menu()
10 years ago
5
Purchase the answer to view it

- week8tutorialactivity-1.docx
- need help it is in APA format
- Given the migration to IPT, what are some of the differences between a CPE (IP-PBX) versus the hosted version of IPT?
- 8 step approach
- Citing specific evidence from Hitler's Mein Kampf (not from the textbook), what were some of the main features of Hitler's ideology about the "folkish" state?
- BA370 Case Analyses 7 (1) R. Williams Construction Co. v. OSHRC and (2) Cortez v. Walmart Stores
- ethics and moral reasoning
- Adria Lopez created Success Systems on October 1, 2013. The company has been successful, and its list of customers has...
- if all three of the following have the same mass and radius, which requires the most work to get spinning...
- HCA 421 Week 1 DQ 2 ( Internal Audit of Strategic Assets ) ~ ( Latest Syllabus - Updated Jan, 2015 - Perfect Tutorial - Scored 100% )
- Traditional versus Object-Oriented Design