COSC 2436 – PROJECT
Contents
TITLE .............................................................................................................................................................. 1
TIME TO COMPLETE ...................................................................................................................................... 1
COURSE OBJECTIVES – LEARNING OUTCOME .............................................................................................. 1
LAB OBJECTIVES ............................................................................................................................................ 2
SKILLS REQUIRED........................................................................................................................................... 2
HOW TO DO THE PROJECT ............................................................................................................................ 2
REQUIREMENT PROJECT ............................................................................................................................... 3
HOW TO TURN IN THE LAB ........................................................................................................................... 6
HOW TO GRADE THE LAB .............................................................................................................................. 6
Note: in the instruction of the lab change “yourLastName” to your last name. In the example, change
Smith to your last name, change James Smith to your full name, change Mary Lane to the name that
users type in from the keyboard (if these words are in this instruction)
TITLE
Review data structures - GradingStudentApplication
TIME TO COMPLETE
Seven weeks
COURSE OBJECTIVES – LEARNING OUTCOME
[LO1]
Provide UML class diagram and the code of data type classes
Provide the pseudo-code or flowchart based on the requirement of a project before writing the code of the driver
class. Also, can access data members of data type classes
Describe and implement the inheritance relationship between super class and child classes.
Can use abstract classes or interface and apply polymorphism to the real life problem project
LO2 Describle and implement operations of unsorted/sorted array based structures
[LO4] Define and implement Singly linked list, Circular Linked List, Double ended Singly Linked List,
doubly linked list, with their operations and Java Linked List
LO5 Describe and implement operations of Hashed data structure
LO7 Describe and implement operations of Binary Search Trees
[LO11] How to evaluate the performance of each operation algorithm of data structure type based on BigO
and Density
LAB OBJECTIVES
-Complete the lab on time (Time Management)
-Can write the pseudo-code
-Can provide UML of data type class
-Can write comments in the program
-Can write the code of da.
COSC 2436 – PROJECT Contents TITLE ..................docx
1. COSC 2436 – PROJECT
Contents
TITLE
...............................................................................................
............................................................... 1
TIME TO COMPLETE
...............................................................................................
....................................... 1
COURSE OBJECTIVES – LEARNING OUTCOME
..............................................................................................
1
LAB OBJECTIVES
...............................................................................................
............................................. 2
SKILLS
REQUIRED.............................................................................
.............................................................. 2
HOW TO DO THE PROJECT
...............................................................................................
............................. 2
REQUIREMENT PROJECT
...............................................................................................
................................ 3
2. HOW TO TURN IN THE LAB
....................................................................................... ........
............................ 6
HOW TO GRADE THE LAB
...............................................................................................
............................... 6
Note: in the instruction of the lab change “yourLastName” to
your last name. In the example, change
Smith to your last name, change James Smith to your full name,
change Mary Lane to the name that
users type in from the keyboard (if these words are in this
instruction)
TITLE
Review data structures - GradingStudentApplication
TIME TO COMPLETE
Seven weeks
COURSE OBJECTIVES – LEARNING OUTCOME
[LO1]
Provide UML class diagram and the code of data type classes
Provide the pseudo-code or flowchart based on the requirement
of a project before writing the code of the driver
class. Also, can access data members of data type classes
Describe and implement the inheritance relationship between
super class and child classes.
3. Can use abstract classes or interface and apply polymorphism to
the real life problem project
LO2 Describle and implement operations of unsorted/sorted
array based structures
[LO4] Define and implement Singly linked list, Circular Linked
List, Double ended Singly Linked List,
doubly linked list, with their operations and Java Linked List
LO5 Describe and implement operations of Hashed data
structure
LO7 Describe and implement operations of Binary Search
Trees
[LO11] How to evaluate the performance of each operation
algorithm of data structure type based on BigO
and Density
LAB OBJECTIVES
-Complete the lab on time (Time Management)
-Can write the pseudo-code
-Can provide UML of data type class
-Can write comments in the program
-Can write the code of data type classes including data
members, no-argument constructor, parameter
constructors, mutator methods, assessor methods, method
toString and other methods
-Can apply Inheritance concept to write the code of child
4. classes that inherits data members, constructors and
other methods from parent class
-Can apply Polymorphism: using object of the parent class to
point to object of child classes
-Can organize the program with selection control structure:
if..else, switch, do..while
-Can create object and can access members of data type class
-Can create and implement operations of the data structure type
of Unsorted Optimized Arrayy
-Can create the data structure type of Singly Linked List,
SinglyLinked List with Iterator and Java LinkedList
-Can implement insert, fetch, delete, update of LinkedList,
ArrayList, Hashtable
-Can create and implement operations of LQHashed structures
-Can create and implement operations of Binary Search Tree
SKILLS REQUIRED
To to this lab, students should review all the concepts required
from the previous lab and add the following skills:
-Learn how to create the data structure of type Linked Lists
-Learn the algorithms of the operations, insert, fetch, delete,
update of type Linked List structures
-Learn how to show all the nodes in the Linked List structure
-Learn how to declare and use Iterator to insert, fetch or delete,
update in the data structure types that learned
from the course: Unsorted Optimized Array, SinglyLinkedList
with Iterator, LinkedList, Hashed, Hashtable, ArrayList,
LnkedList, BinarySearchTree structure
-Work on data from excel files- open read write and close
HOW TO DO THE PROJECT
From now and on yourLastName will be changed to your last
5. name
*Step1:
-Create UML of data type classes: class Student_yourLastName,
class Class
-Read the requirement of each part; write the pseudo-code in a
word document by listing the step by step what
you suppose to do in main() and then save it with the name as
Project_pseudoCode_yourLastName
*Step2:
-start editor eClipse, create the project → project name:
FA2019_PROJECT_yourLastName
-add data type classes
Student_yourLastName.java
Class_yourLastName.java
-Add data structure class:
From different types of data structures that
have learned from the couse, you can choose one to
store the node Student for you project
(UnsortedOptimizedArray, SinglyLinkedList with or without
Iterator,
LQHashed, BinarySearchTree) and select one data structure
type from Java library (ArrayList, LinkedList, Hashtable)
as a structure to store the classes of one student
-Add the driver class
GradingStudentApplication_yourLastName.java
*Step3: Write the code of classes:
From UML write the code of data type classes
Write the code of your selected data structure class
Based on the pseudo-code write the java code of
6. main() of the driver class
GradingStudentApplication _yourLastName
*Step4: compile and run the program
*Step5: debug if there is any errors to complete the program
REQUIREMENT PROJECT
INPUT FILE
-Download file students.xlsx from eCampus, then store to your
computer. Open it on the screen, click File, select
Save as, select type extension CSV (Comma delimited) then
click Save ➔ you have file students.CSV
File with the extension CSV is the file the data one row will be
a string, the information on cells separate by comma
1212121, Bellamy, Kevin, SP2016-COSC1301, A, FA2016-
GOVT2305, A, SP2017-ENGL1302, B, FA2019-COSC2436, X
DATA TYPE CLASSES:
Class STUDENT
-data members: student id (String, generate random number 7
digits), last name (String), first name(String), list of
classes (ArrayList or LinkedList or Hashtable to hold all classes
of one student)
-no argument constructor, parameter consructors
-method to generate random number with 7 digits
-method to add a class for one student
-method to drop a class for one student
-method to print out the transcript of one student
-more methods if you need for the project
7. Class CLASS
-data members: class name (String), letter grade (char)
The value of grade can be letter A, B, C, D or F – The grade X
means the class has registered; not complete yet
-no argument constructor, parameter consructors
DRIVER CLASS
Provide the pseudo-code or flowchart then write the code for
the application
*CREATE A DATA STRUCTURE TO STORE ALL
STUDENTS – List of students
*READ INPUT FILE, CREATE NODES, INSERT TO DATA
STRUCTURE
-display the message and read the name of file that stores the
information of students. The file will be provided in
excel file with extension .xlsx. You should download it from
eCampus, open it on your computer, then SAVE AS
with extension CSV (with comma delimited)
Open file to read
For each line (String):
split the line with delimeter as commas. The number of classes
of each student is not the same as others. Some
students has 5, 10 or other number depending on how many
classes that student passed.
For example: one line from the input file:
1212121, Bellamy, Kevin, SP2016-COSC1301, A, FA2016-
GOVT2305, A, SP2017-ENGL1302, B, FA2019-COSC2436, X
8. First column: student id = 1212121
Second column: last name = Bellamy
Third column: first name = Kevin
List of classes:
Class name = SP2016-COSC1301 grade = A
Class name = FA2016-GOVT2305 grade = A
Class name = SP2017-ENGL1302 grade = B
Class name = FA2019-COSC2436 grade = X
For each class name and grade: create one object of Class,
insert to the list of classes
Create one object of Student with studentid, last name, first
name and list of classes
-insert student to the data structure
-Read line by line and do the same on each line
-close file
*DISPLAY THE MENU:
GRADING STUDENT APPLICATION – JAMES SMITH
MENU
1. Add One New Student from the keyboard
2. Remove One Student
3. Search One Student by ID
4. Add One Class For One Student
5. Drop One Class For One Student
9. 6. Print out the Transcript of One Student
7. Show All Studdents
0. Exit
TASK 1: ADD ONE STUDENT (Insert)
Display message and read information of one student including
last name, first name, how many classes
are registered?
For each class: ask and read for class name. then create the one
object of class with name and the grade
X and insert to the list of classes (data structure stores classes)
Create object of Student with lastname, first name and list of
classes. The student id will be generated as
a random number with 7 digits in the constructor
Insert the new student object to the list of Students (data
structure stores students)
Display the information of the new student by calling toString
of class Student. Where grade X means
Not Complete
NEW STUDENT
Student: Mary Lane
Student ID: 1234567
10. Classes:
FA2019-MUSI1181 - Not Complete
FA2019-MATH1414 - Not Complete
TASK 2: REMOVE ONE STUDENT (Delete)
Ask for the student id from the keyboard
Delete student with the provided id. Display the message if
delete gets success otherwise display the
message: Student is not found
TASK 3: SEARCH FOR ONE STUDENT BY ID
Ask for the student id from the keyboard to search
Read student with the id by fetch, if fetch cannot find the
student, if fetch is success then display
student information with id, last name, first name and the list of
classes including class name and grade
as below. The class with grade = ‘X’, display “Not Complete”
For example:
Student ID: 1234567
11. Student: James Smith
Classes:
FA20177-MATH1325 - A
FA2017-PHYS1401 - B
SP2018-COSC1301 - A
SP2018-MATH1414 - B
FA2018-HUMA1302 - A
FA2018-GOVT2305 - A
SP2019-COSC1301 - A
SP2019-ENGL1301 - B
FA2019-MUSI1181 - Not Complete
FA2019-MATH1414 - Not Complete
TASK 4: ADD ONE CLASS FOR ONE EXISTING STUDENT
Users provide the student id
Read information the stutdent with the provided student id
Use the object student call the method to add one new class to
the list of claases
Display the informtion of this student in the format same as in
12. TASK3 to verify new classs if insert is
usccess; otherwise, display message: “cannot add the class” ‘’
TASK 5: DROP ONE CLASS FOR ONE EXISTING STUDENT
Users provide the student id
Read information the stutdent with the provided student id
Read the name of the class that users want to drop
Use the object student call the method to drop the class from the
list of classes.
-If the class already has the grade different ‘X’, display
message: “Complete Class – cannot drop” to the
list of claases
-If the class has the grade ‘X’, remove from the list of classes,
display the message “Drop class
<className>”
-If the class does not exist, display the message: “The class
does not exist”
TASK 6: PRINT THE TRANSCRIP OR ONE STUDENT
Read the student id from the keyboard
Generate the current date. Then print out the transcript as
below:
13. RiSCHOOL ABC – TRANSCRIPT
-----------------------------
Student: Johnson Kennedy
Student ID: 54321
Date: 10/22/2019
-----------------------------
FA2016-MATH1325 - A
FA2016-PHYS1401 - B
SP2017-COSC1301 - A
SP2017-MATH1414 - B
SP2018-HUMA1302 - A
SP2018-GOVT2305 - A
SP2017-COSC1301 - A
SP2017-ENGL1301 - B
SP2018-MUSI1181 - Not Complete
SP2018-MATH1414 - Not Complete
14. TASK 7: SHOW ALL STUDENTS
Display all students in data structure on the screen
TASK 0: EXIT
Before terminate the program, do the following
-Open the file “students.csv” to write
-Use the logic similar as the task showAll but write to the file
students.csv instead displaying on the screen
With the following format:
id, lastname,firstname,className1, grade1, className2,
grade2, etc..
For example:
1212123,Lane,Mary,SP2017-COSC1301,A,SP2017-
ENGL1301,B,SP2018-MUSI1181,X,SP2018-MATH1414,X
HOW TO TURN IN THE LAB
Psuedo-code of main()
Student_yourLastName.java
Data structure class java file
GradingStudentApplication_yourLastName.java
Student_yourLastName.class
Data structure class .class file
GradingStudentApplication_yourLastName.java
HOW TO GRADE THE LAB
15. Turn in the project on time 10
Submit all files that need to run your project 2
compile success with all the requirements 10
UML of data type classes and psuedo-code 3
Write comments 3
class Data structure (you can choose any data structure type we
learned) that hold all the tasks we
need for the project
2
Data type class to hold information of Students that hols all the
tasks relate to students 5
Data type class AClass to hold the class name, grade and all
action one class 2
Create data structure 1
Read input files, read one line, split information, create an
object Student, insert to the data
structure
5
Display menu and handle to loop back 2
TASK 1 – Add one new student from keyboard 2
16. TASK 2 - remove one student 2
TASK 3 – read information of one student 2
TASK 4 – add a class for one student 5
TASK 5 – drop a class for one student 5
TASK 6 – print list of students in one class 5
TASK 7 – print transcript of one student 5
TASK 8 - show all nodes 2
TASK 0: open 2 files to write – write success in corerct format
5
Project scores 80
A La CarteNameQty.Qty.UOMCostEntrée1Pork & Prawn Gyoza
(6 PCS per Serve)5All Purpose Flour27054g.0.05Warm
Water13527ml.0.02Salt1/41Tsp0.01Mince
Pork21010g.0.07Mince Prawn9010g.0.27Savoy
Cabbage21010g.0.01Garlic30.6Cloves0.01Cheives6010g.0.01So
y Sauce (Shoyu)30.6Tsp0.01Oyster
Sauce30.6Tsp0.01Sugar10.2Tsp0.01White
Pepper1/20.0166666667Tsp0.01Potato
Starch20.4Tsp0.01Sesami Oil10.2Tsp0.01Fixed Cost - Utility
(per Month)500.00Fixed Cost - Rent (per Month)2,500.00Fixed
Cost - Staff (per Month)14,400.00Total Cost0.50Selling
Price1.672Vegetable Spring Rolls (5 PCS per Serve)
(V)4Vermicelli Noodle10025g.0.15Vegetable