Top Banner
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 - )
16

File Processing

Feb 23, 2016

Download

Documents

Gin

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 - ). Classes. Classes entities within a system imported e.g. Turtle of same project write more than one class Instances objects created via new - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: File Processing

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 - )

Page 2: File Processing

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

Page 3: File Processing

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

Page 4: File Processing

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.

Page 5: File Processing

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

Page 6: File Processing

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

Page 7: File Processing

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

Page 8: File Processing

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)

Page 9: File Processing

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

Page 10: File Processing

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

Page 11: File Processing

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

Page 12: File Processing

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

Page 13: File Processing

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

Page 14: File Processing

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

Page 15: File Processing

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

Page 16: File Processing

COSC 1P03

Data Structures and Abstraction 1.34

The End