COSC 1P03 Data Structures and Abstraction 1.1 File Processing You've achieved success in your field when you don't know whether what you're doing is work or play. Warren Beatty (1937 - )
Feb 23, 2016
COSC 1P03
Data Structures and Abstraction 1.1
File Processing
You've achieved success in your field when you don't know whether what you're doing is work or play.
Warren Beatty (1937 - )
COSC 1P03
Data Structures and Abstraction 1.2
Classes· Classes
- entities within a system- imported
° e.g. Turtle- of same project
° write more than one class· Instances
- objects created via new· Instance variables
- object’s memory- state
· Methods- things object can do- behaviour
· System execution via interacting objects
COSC 1P03
Data Structures and Abstraction 1.3
Methods
· Method calls - local
° methodname ( paramlist )- of another object
° object . methodname ( paramlist )- this . methodname ( paramlist )
· Behaviour depends on state- e.g. effect of forward depends on pen state and
direction- methods refer to instance variables
° can base actions on values of instance variables× loops, decisions
· Role of constructor- well-defined initial state
COSC 1P03
Data Structures and Abstraction 1.4
Case Study: Payroll System
· Problem- Payroll report based on multiple binary data files
· Analysis & design- entities
° items (Employees)×details about item
° Payroll report generator×process for generating report
° Merge algorithm×Combine 2 binary data files into one.
COSC 1P03
Data Structures and Abstraction 1.5
Employee Class
· Class- not a main class
° no method main· Execution
- only when methods (constructor) called· Attributes/instance variables· Algorithms/methods
- constructors° default
- methods° accessor/updater° operations
COSC 1P03
Data Structures and Abstraction 1.9
Persistent Objects· Lifetime extends beyond a single program execution
· Binary I/O- Record (object) at-a-time- Serializable- serialVersionUID
· BinaryOutputFile- writeObject()
° subtype° upcasting to Object
×always valid· BinaryDataFile
- readObject()° must downcast to expected type
×not a conversion×ClassCastException
COSC 1P03
Data Structures and Abstraction 1.12
Creating a Binary File
· MakeEmpFile class- only used once to bootstrap system
· Employee records· data from a text file (ASCIIDataFile)· reads text record using Employee constructor· writes Employee object using writeObject
COSC 1P03
Data Structures and Abstraction 1.14
Listing Contents of a Binary File
· Working with internal representation- cannot view using text editor- must use same Employee class
° or won’t be able to read° don’t make copy, use same file° programs in same package or import necessary
classe(s) (e.g. Employee)° can be more than one main class in a package
· Listing Employee File- program to read binary file and display as text- in same package (Payroll_System)
· Creating the Employee File- Payroll3 assumes Employee objects are already in
existence- must be a program to create Employee objects initially- in same package (Payroll_System)
COSC 1P03
Data Structures and Abstraction 1.16
Payroll3 Class
· Binary input- note: no use of Employee constructor – objects already
exist· Processing algorithm
- process to EOF- update record
COSC 1P03
Data Structures and Abstraction 1.18
Class Design
· Cohesion· Selective disclosure
- only what client needs to know- hide representation and implementation
· Accessor and updater methods- instance variables
° private- if accessible, provide accessor method
° Java convention: getxxx- if updateable, provide updater method
° Java convention setxxx- pseudo attributes
· Methods/Constructors- private vs public
COSC 1P03
Data Structures and Abstraction 1.19
File Processing
· large collections of data· sequential processing
- batch- sequential devices- typically sorted by key
· random processing- real-time/on-line- direct access device- access by key
· key- primary key
COSC 1P03
Data Structures and Abstraction 1.20
File Merge
· combine two like files- maintain key order
· basic algorithm- by hand
° combine sorted piles° rationale
- by computer° files & records° algorithm
· improvements- sentinel- pattern- filter method
COSC 1P03
Data Structures and Abstraction 1.21
E.g. Employee File Merge
· HIGH_KEY- key for sentinel record- greater than all naturally occurring keys
· termination condition· getRec
- input filter- creates sentinel object at EOF
· Equal keys?- unique records?- error situation vs duplicate keys vs combine records
COSC 1P03
Data Structures and Abstraction 1.25
File Update
· master file· transaction file
- transactions· updating
- random processing° immediate
- sequential processing° batch transactions° batch processing° new master file
COSC 1P03
Data Structures and Abstraction 1.26
Sequential File Update
· sequential processing· batched transactions· backups· report generation· key comparison
- master < trans° transaction applies to later master
- master = trans° transaction applies to this master
- master > trans° must apply to earlier master° no master for transaction
×error×add new record
· pattern
COSC 1P03
Data Structures and Abstraction 1.34
The End