Difference between revisions of "CSC111 Simple Programs Introducing OOP"
(Created page with "--~~~~ ---- <br /> =Program 1: NO OOP= <br /> <source lang="python"> # peopleNOOOP.py # D. Thiebaut # Collection of People. # A preparation program for Object Oriented progr...") |
(→Same Program, using OOP) |
||
Line 111: | Line 111: | ||
# returns a string with the name and age. | # returns a string with the name and age. | ||
def asString( self ): | def asString( self ): | ||
− | return "%s\t\t%d" % ( self._name, self._age ) | + | return "\t%s\t\t%d" % ( self._name, self._age ) |
# returns the name | # returns the name | ||
Line 143: | Line 143: | ||
# display the list of names and their age | # display the list of names and their age | ||
− | print( " | + | print( "Names: " ) |
for person in people: | for person in people: | ||
print( person.asString() ) | print( person.asString() ) | ||
Line 156: | Line 156: | ||
# display the list of names and their age | # display the list of names and their age | ||
− | print( " | + | print( "Names: " ) |
for person in people: | for person in people: | ||
print( person.asString() ) | print( person.asString() ) | ||
Line 172: | Line 172: | ||
Names: | Names: | ||
− | Alex 20 | + | Alex 20 |
− | Lulu 21 | + | Lulu 21 |
− | Alka 19 | + | Alka 19 |
− | Le 21 | + | Le 21 |
− | |||
Names: | Names: | ||
− | Alex 20 | + | Alex 20 |
− | Lulu 21 | + | Lulu 21 |
− | Alka 20 | + | Alka 20 |
− | Le 21 | + | Le 21 |
− | Xiaole 21 | + | Xiaole 21 |
</source> | </source> | ||
<br /> | <br /> |
Revision as of 09:03, 7 April 2014
--D. Thiebaut (talk) 10:00, 7 April 2014 (EDT)
Program 1: NO OOP
# peopleNOOOP.py
# D. Thiebaut
# Collection of People.
# A preparation program for Object Oriented programming.
# This program DOES NOT USE OBJECTS. It creates a list
# of people composed of a name, an age, a gpa, and a major.
# It displays the partial list of the people, add a new person,
# modifies one record, and displays the new partial list.
text = """
Alex, 20, 3.6, ART
Lulu, 21, 3.5, BIO
Alka, 19, 3.0, ENG
Le, 21, 3.2, EGR
"""
def main():
# create a list of people taken from the text
people = []
for line in text.split( "\n" ):
words = line.split( "," )
# skip ill-formed lines
if len( words ) != 4:
continue
# strip each word
words = [ w.strip() for w in words ]
person = [ words[0], int( words[1] ), float( words[2] ), words[3] ]
people.append( person )
# display the list of names and their age
print( "Names: " )
for name, age, gpa, major in people:
print( "\t", name, "\t\t", age )
# add a new person to the list
people.append( [ "Xiaole", 21, 3.9, "CSC" ] )
# modify age of person named Alka
for person in people:
if person[0].lower() == "alka":
person[1] += 1
# display the list of names
print( "Names: " )
for name, age, gpa, major in people:
print( "\t", name, "\t\t", age )
main()
Output
Names:
Alex 20
Lulu 21
Alka 19
Le 21
Names:
Alex 20
Lulu 21
Alka 20
Le 21
Xiaole 21
Same Program, using OOP
# peopleOOP.py
# D. Thiebaut
# Collection of People (mirror of Program peopleNOOOP.py)
# A preparation program for Object Oriented programming.
# This program USES OBJECTS. It creates a list
# of people composed of a name, an age, a gpa, and a major.
# It displays the partial list of the people, add a new person,
# modifies one record, and displays the new partial list.
text = """
Alex, 20, 3.6, ART
Lulu, 21, 3.5, BIO
Alka, 19, 3.0, ENG
Le, 21, 3.2, EGR
"""
class Person:
# a class containing 4 fields:
# - name of the person (string)
# - age (integer)
# - gpa (float)
# - major (string, uppercase)
# constructor: intializes a person with all fields
def __init__(self, n, a, g, m):
self._name = n
self._age = a
self._gpa = g
self._major= m
# returns a string with the name and age.
def asString( self ):
return "\t%s\t\t%d" % ( self._name, self._age )
# returns the name
def getName( self ):
return self._name
# set the age to a new value x
def setAge( self, x ):
self._age = x
# returns the age of the person
def getAge( self ):
return self._age
def main():
# create a list of people taken from the text
people = []
for line in text.split( "\n" ):
words = line.split( "," )
# skip ill-formed lines
if len( words ) != 4:
continue
# strip each word
words = [ w.strip() for w in words ]
person = Person( words[0], int( words[1] ), float( words[2] ), words[3] )
people.append( person )
# display the list of names and their age
print( "Names: " )
for person in people:
print( person.asString() )
# add a new person to the list
people.append( Person("Xiaole", 21, 3.9, "CSC") )
# modify age of person named Alka
for person in people:
if person.getName().lower() == "alka":
person.setAge( person.getAge() + 1 )
# display the list of names and their age
print( "Names: " )
for person in people:
print( person.asString() )
main()
Output
Names:
Alex 20
Lulu 21
Alka 19
Le 21
Names:
Alex 20
Lulu 21
Alka 20
Le 21
Xiaole 21