Introduction To Java - MFC 158 G

 Fall 2000

 

 

Final Project – Homework Assignments Tracking Application using a sequential file (worth 25% of the final grade)

 

Date assigned:  November 14, 2000

 

Due date: Saturday December 9 – midnight (no late assignments accepted)

 

Objective of the assignment:

-         to learn how to work with packages and development environments

-         to become comfortable developing software using multiple files

-         to gain experience with modifying code that you may not be familiar with

-         to continue building experience in researching answers to questions

-         to learn how sequential file access works

-         reinforce some of the earlier concepts discussed in the class (cumulative knowledge)

 

Description

In this assignment, you will create a simple ‘To-Do List’ Java application.  

 

This project will help you to understand basic concepts of data access using Java, but the program itself will not be very robust.

 

User requirements of the assignment

We want to be able to save all of our tasks to a file.  All tasks are added during a single data entry session and cannot be modified.   This is because we are using a sequential file.

 

The following fields are required for the task file:

-         courseNumber (string lf size 6) – i.e. MFC158

-         description  (String of size 30)

-         complete (string of size 1) value of Y or N

-         dateAssigned (string of size 11) value of DD-MMM-YYYY

-         dateDue (string of size 11) value of DD-MMM-YYYY

 

The functions needed by the user are:

-         adding a series of tasks

-         view the tasks, displaying each task on the screen by itself

-         Allow the viewing of a filtered list - completed tasks or incomplete tasks.

 

 

Creating the Task System

As you will recall, one of the first things to consider before beginning development is to ask the question “does this functionality already exist somewhere?” or “Is there a program that exists that could function as a suitable template to solve the problem?”.   Luckily,  the answer is yes!  If this wasn’t the case, we would need more than 2 weeks to accomplish this assignment.

 

We will utilize a set of programs from the textbook CD to accomplish our goal.  The following programs will be used from the text:

 

Program

Figure in book

Description

BankUI.java

17.4

Bank User Interface - package for the user interface

BankAccountRecord.java

17.4

Class representing a bank record of information

CreateSequentialFile.java

17.4

Writes objects (bankrecords) to a sequential file

ReadSequentialFile.java

17.6

Reads a sequential file of objects (bankrecords)

CreditInquiry.java

17.7

Reads a sequential file and displays filtered records based upon which button a user types

 

Recommended steps

1)     compile and test all the sample programs.  Since there are packages, you will need to create your package directory to store them.  After you have gotten compilation to work, test the programs.  Make sure you can:

a)     add accounts (using CreateSequentialFile.java)

b)     look at the accounts (using ReadSequentialFile)

c)      look at the accounts by credit balance (using CreditInquiry.java)

2)     Put all the files in a single directory and fix the program's import statements to reference the packages locally.  This will allow you to work on all the files in a single directory (and help me for compiling them for grading).

3)     Change the filenames to make them meaningful for the task project as follows:

a)     BankUI.java should be TaskUI.java

b)     BankAccountRecord.java should be TaskRecord.java

c)      CreditInquiry.java should be TaskInquiry.java

4)     Change class names to reflect your task related names

5)     Change the fields throughout the system to the reflect task related names

6)     Test the programs to work similar to the Bank application (but now using your customized task related data)

7)     Submit the following files as attachments:

8)     TaskUI.java, TaskRecord.java, TaskInquiry.java, CreateSequentialFile.java, ReadSequentialFile.java and taskfile.dat - (your data file)

9)     If all the programs are named as above, you don't need a README.TXT file.  If you have changed the names to accommodate your particular implementation, then you must submit a README.TXT explaining how to run the programs.

 

 

*** Avoid losing points on this project ***

Please follow these instructions…

 

1.       Document any missing features with your project. 

2.       Programs that don't compile will lose as much as 50% of the score when grading, if not accompanied with a note describing the problems encountered.

3.       Make sure that attachment file names are the same as the class name (including case) when submitting.

4.       If code from the book is part of your work, site that fact in the source code.

5.       Don't wait until 2 days before a project is due to get help!!!!