好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Python语言程序设计:Lab5

Programming

Create a Class Student which should have the following information: Parameters passed to __init__ when an instance of the class is created: self p_surname - a string p_given_name - a string p_id - an integer p_results - a list - see below for the expected format These will then be used to set the following instance variables: self.surname self.given_name self.id self._results (underscore ‘_‘ means it is hidden from the user) There will also be a method: calc_marks() This method will take as argument a module code e.g. ‘nwu112‘ and it will calculate the final mark for the student for that particular module according to the assumption: 20% project 1 20% project 2 10% multiple choice test 50% final exam An instance of a student will be created like this:

student1 = Student( ‘Sutcliffe‘,‘Richard‘,2017123456,{ ‘nwu112‘: { ‘project1‘: 60, ‘project2‘: 65, ‘mcq_test‘: 70, ‘final_exam‘: 80 },‘nwu113‘: { ‘project1‘: 68, ‘project2‘: 57, ‘mcq_test‘: 60, ‘final_exam‘: 70 } } )

 

So, the results consist of a dictionary where the key is ‘nwu112‘ or ‘nwu113‘ and the value in each case is another dictionary containing the different marks. When you have your Class written, create a couple of instances of the class; for each one, invent a surname, given name, ID and results list. etc. Finally, run calc_marks() on your student objects to find out their final mark for a module. In other words, you will do: student1.calc_marks( ‘nwu112‘ ) Your method will be in the Student Class and so will have access to student._results . So in calc_marks() you will be able to do: student._results[ ‘nwu112‘ ] to get the results for the module nwu112. For the project1 marks for nwu112 you will be able to do: student._results[ ‘nwu112‘ ] [ ‘project1‘ ] and the value of that, assuming the above data, is the integer 60. You can use these numbers to calculate the overall result for a module.

 

"""Student.py"""
"""Student类"""
class Student:
    def __init__(self,p_surname,p_given_name,p_id,p_results):
        self.surname=p_surname
        self.given_name=p_given_name
        self.id=p_id
        self._results=p_results

    def calc_marks(self,subject):
        marks=self._results[subject]
        result=marks[‘project1‘]*0.2+marks[‘project2‘]*0.2+marks[‘mcq_test‘]*0.1+marks[‘final_exam‘]*0.5
        print("The final mark of "+self.surname+" about subject "+subject+" is "+str(result))
        return result
"""test.py"""
from Student import Student

student1 = Student( ‘Sutcliffe‘,‘Richard‘,2017123456,{ ‘nwu112‘: { ‘project1‘: 60, ‘project2‘: 65, ‘mcq_test‘: 70, ‘final_exam‘: 80 },‘nwu113‘: { ‘project1‘: 68, ‘project2‘: 57, ‘mcq_test‘: 60, ‘final_exam‘: 70 } } )

student1.calc_marks(‘nwu112‘)
student1.calc_marks(‘nwu113‘)

查看更多关于Python语言程序设计:Lab5的详细内容...

  阅读:22次