Page 397 - Computer Science V2.0 Class 11
P. 397

4.   Accept from the user interactively roll number and marks of students whose result needs to be updated and
                      update the list result.
                   5.  Displays the result of all the students.
                 For this purpose, we write the following functions:
                   ●  readResult(): The function readResult() performs the following tasks:
                    ○ Accepts from the user the number of students.
                    ○ Accept from the user result of each student in the form of a list [rollNo, marks].
                    ○ Constructs the list result comprising the list  [rollNo, marks] for each student.
                   ●  marksUpdate(rollNo, marks): The function marksUpdate performs the following task:
                    ○  To update the marks of a student, given his/her roll number and the updated marks. Given the roll number of
                       a student, the function looks for the list entry [rollNo, marks] within the list result and updates the
                       marks when the match is found.
                   ●  allUpdates(): The function performs all necessary updates of the results.
                    ○  The user is asked whether more updates to the result are required. He/she is prompted to enter his/her choice
                       by entering y/y or N/n. If the user opts for more updates, he/she is prompted to enter roll number and revised
                       marks of a student, and the function marksUpdate is invoked to update the marks of a student. The process
                       is repeated untilthe user says, no more updates are required.
                 Having developed the functions  marksUpdate(),  readResult(),  and  allUpdates(), the program
                 merely needs to intialise the result list as an empty list and invoke these functions. (see Program 13.3)

                   01 def marksUpdate(rollNo, marks):
                   02     '''
                   03     objective: To update result of a student
                   04     Global data:
                   05         result: list of lists of result of all students
                   06     input parameters:
                   07         rollNo: roll number of student for updating the result
                   08         marks: updated marks
                   09     Return value: None
                   10     Side effect: List classResult gets updated
                   11     '''
                   12     for indx in range(len(classResult)):
                   13         #look for rollNo in each subslist
                   14         if(classResult[indx][0] == rollNo):
                   15             classResult[indx][1] = marks
                   16             break
                   17
                   18 #Input student data
                   19 def readResult():
                   20     '''
                   21     objective: To read result of all students
                   22     Global data:
                   23         result: list of lists of result of all students
                   24     Return value: None
                   25     Side effect: List classResult gets updated
                   26     '''
                   27     nStudents = int(input('Enter number of students: '))
                   28     print('Enter the list [Roll No,  Marks] and press enter: ')
                   29     for i in range(0, nStudents):
                   30         #Enter student result as a list: [rollNo, marks]
                   31         result = eval(input('[rollNo, marks]: '))
                   32         classResult.append(result)
                   33
                   34 def allUpdates():


                                                                                                     Lists and Tuples  383
   392   393   394   395   396   397   398   399   400   401   402