联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp2

您当前位置:首页 >> Java编程Java编程

日期:2020-08-31 10:14

COMP503/ENSE502/ENSE602 _ Assignment 1

Technical School App

Due date: Friday, 28th August 2020 at 5:00 pm

This assignment has 100 marks and is worth 10% of your final grade.

Brief

For this assignment, you will individually develop a Technical School App (eight classes) in

Java to determine whether or not a student is certified, their transcript is checked against a

certification criterion. For this assignment, you will develop classes to store data for

modules, students, and their transcripts. You will demonstrate the functionality of your

code on sample transcripts.

Methodology and Marking Scheme

You have been provided with an outline of eight classes that contain the core functionalities

of the technical school app: Grade, ModuleType, Level, Module, Student, Result,

TechnicalSchool, and StudentEvaluation. The relationships between classes are described

below using a UML Class Diagram (Figure 1). Complete the assignment by using the given

UML class diagram. Please use the following steps to develop the eight classes with the

provided instance variables and methods using appropriate access modifiers (as shown in

the diagram). Please take the time to test your methods as you progress.

Note: No other methods/instance variables are required. But feel free if you would like to

add more methods!

COMP503/ENSE502/ENSE602 _ Assignment 1

Sem 2 2020

Dr. Seyedjamal Zolhavarieh, Auckland University of Technology, szolhava@aut.ac.nz

Figure 1: UML Diagram of The Technical School App

Step 1: Creating enumerated types

1. Create an enumerated type Grade, which maintains:

? A list of Grade values with associated boundaries for each mark:

o 100% ≥ A+ (APLUS) ≥ 90%

o 90% > A ≥ 85%

o 85% > A- (AMINUS) ≥ 80%

o 80% > B+(BPLUS) ≥ 75%

o 75% > B ≥ 70%

o 70% > B- (BMINUS) ≥ 65%

o 65% > C+ (CPLUS) ≥ 60%

o 60% > C ≥ 55%

o 55% > C- (CMINUS) ≥ 50%

o 50% > D

? Encapsulated instance variables (for each Grade):

o Two integer variables indicating the range of each letter grade

o A Boolean variable to indicate if the grade is a pass (greater than or equal

to 50%).

NOTE: the variables are immutable!

<<Enumeration>>

Grade

<<Enumeration>>

ModuleType

<<Enumeration>>

Level

APLUS

A

AMINUS

BPLUS

B

BMINUS

CPLUS

C

CMINUS

D

- low: int

- high: int

- pass: boolean

- Grade(int, int, boolean)

+ toString(): String

+ isPass(): boolean

+ getHigh: int

+ getLow(): int

Module

- title: String

- code: String

- level: Level

- type: ModuleType

+ Module(ModuleType, String, String, Level)

+ getTitle(): String

+ getCode(): String

+ getLevel(): Level

+ getType(): ModuleType

+ setTitle(String)

+ setCode(String)

+ setLevel(Level)

+ setType(ModuleType)

+ toString(): String

TechnicalSchool

- offerings: Module[]

+ TechnicalSchool()

+ getSemesterOfferings(): Module[]

+ lookup(String): Module

- semesterOneModuleOfferings(): Module[]

+ isCertified(Student): boolean

StudentEvaluation

+ axel(): Student

+ kate(): Student

+ jim(): Student

+ robin(): Student

+ main(String[])

Result

- module: Module

- grade: Grade

+ Result(Module, Grade)

+ getModule(): Module

+ getGrade(): Grade

+ setModule(Module)

+ setGrade(Grade)

Student

- name: String

- MAX_TRANSCRIPT_LENGTH: int

- nResults: int

- transcript: Result[]

+ Student(String)

+ addResultToTranscript(Module, Grade)

+ getTranscript(): Result[]

+ getNResults(): int

+ getName(): String

+ setTranscript(Result[])

+ setNResults(int)

+ setName(String)

+ toString(): String

SELF_STUDY

TAUGHT

PROJECT

CLIENT_PROJECT

ONE

TWO

THREE

COMP503/ENSE502/ENSE602 _ Assignment 1

Sem 2 2020

Dr. Seyedjamal Zolhavarieh, Auckland University of Technology, szolhava@aut.ac.nz

? isPass() method, which returns true if the Grade is a pass and false

otherwise.

? a constructor with input for all instance variables to initialize Grade objects.

2. Create an enumerated type ModuleType, which maintains four values

corresponding to the type of modules available: SELF_STUDY, TAUGHT, PROJECT,

and CLIENT_PROJECT.

3. Create an enumerated type Level containing three-level values: ONE, TWO, THREE.

Step 2: The Module Class

Create the Module class which:

? maintains instance variables for type, title, code, and level. All instance variables are

private with get and set methods.

? has one constructor with input for all instance variables to initialize Module object.

? overrides the toString method to return a beautiful text representation.

Step 3: The Technical School class

The TechnicalSchool class maintains the Semester 1 Module Offerings T based on the

following table:

Module Type Title Code Level

Taught Programming PROG101 1

Taught Statistics STAT102 1

Taught Database Design DATA222 2

Taught Object-Oriented Programming PROG202 2

Taught Information Systems INSY313 3

Taught Web Services WEBS332 3

Self-Study Technology Applications TECH103 1

Self-Study Theory of Computation THEO111 1

Self-Study Model Checking MODC233 2

Self-Study Topology TOPG233 2

Self-Study Logic LOGI321 3

Project Web App Dev PROJ399 3

Client Project Great Code Company EXTO396 3

Table1: Semester 1 Module Offerings

The TechnicalSchool class:

? maintains a private instance variable Module[] offerings which stores the Semester

1 Modules based on Table 1.

? has a method private static Module[] semesterOneModuleOfferings(), which

returns a primitive array populated by 13 Module objects, corresponding to each

row of the table.

? create a default constructor TechnicalSchool() instantiates the offerings variable

with appropriate Module objects comes from semesterOneModuleOfferings()

(i.e. this.offerings = TechnicalSchool.semesterOneModuleOfferings())

? has a get method for offerings variable.

? has a public Module lookup(String code) method to search the offerings array and

return a module with the matching code.

COMP503/ENSE502/ENSE602 _ Assignment 1

Sem 2 2020

Dr. Seyedjamal Zolhavarieh, Auckland University of Technology, szolhava@aut.ac.nz

Step 4: The Result class

The Result class:

? stores Module and Grade objects.

? has an appropriate constructor to initialize both instance variables.

? has get and set methods.

? has a toString method to represent the result object.

Step 5: The Student class

The Student class:

? maintains an array of results, called a transcript.

? declares

o a student name,

o a private final static integer variable that sets the maximum size of the array

(e.g., MAX_TRANSCRIPT_LENGTH = 20)

o an instance variable called numberOfResults, which maintains the number of

results available for the student.

Complete the Student class with the following methods:

? a constructor initializes name (using input parameter) and transcript as a new array

? public void addResultToTranscript(Module module, Grade grade), which

creates a Result object and adds it to the end of the transcript and updates

numberOfResults. If the transcript is already full, do not add the result.

? public Result[] getTranscript() which returns an array of Result objects. The

returned array should not contain any null entries; e.g., it is of length

numberOfResults.

Step 6: Certification Algorithm

The certification algorithm is a method (i.e., isCertified method) in the TechnicalSchool

class. It takes a Student object as an input and examines his transcript to determine if he is

certified, according to the following criteria:

? at least three modules passed at level 1, either taught or self-study AND

? at least three modules passed at level 2, more than one must be self-study AND

? at least four modules passed at level 3, at least two must be taught AND

? at least one project module passed (either of project or client project).

Complete the method and returns true if the student satisfies ALL of the above four criteria

and false otherwise.

COMP503/ENSE502/ENSE602 _ Assignment 1

Sem 2 2020

Dr. Seyedjamal Zolhavarieh, Auckland University of Technology, szolhava@aut.ac.nz

Step 7: The StudentEvaluation Class

Create a StudentEvaluation class which contains:

? the main method to run your application

? four static methods. Each method returns a Student object populated with results

from the Transcript Tables below. To test and demonstrate your implementation of

the certification algorithm, you need to print out the result for students Robin, Kate,

Axel, and Jim. You also need to provide more examples of students to show the

functionality of your code.

Transcript for Robin

PROG101 C

DATA222 C

INSY313 C+

WEBS332 C+

TECH103 C+

MODC233 CTOPG233

CPROJ399

A+

false

Transcript for Kate

PROG101 A+

STAT102 ATECH103

B+

MODC233 A

TOPG233 C

DATA222 A

INSY313 B+

WEBS332 APROJ399

B

EXTO396 B

true

Transcript for Axel

PROG101 B+

STAT102 C

DATA222 A

INSY313 AWEBS332

A

TECH103 D

MODC233 B

TOPG233 B

PROJ399 CEXTO396

C

false

Transcript for Jim

PROG101 A

STAT102 B+

DATA222 C+

PROG202 C

INSY313 C

WEBS332 C+

TECH103 CTHEO111

D

MODC233 A+

TOPG233 A

LOGI321 B

PROJ399 BEXTO396

A+

true

Javadoc Commenting

1. Your classes must have commenting of the form:

/**

* Comment describing the class.

* @author yourname studentnumber

**/

2. All methods must be commented with appropriate Javadocs metatags. For example:

/**

* A comment to describe the method

* @param a first parameter description

* @param b second parameter description

* @return a description of the returned result

* @author studentnumber

* */

COMP503/ENSE502/ENSE602 _ Assignment 1

Sem 2 2020

Dr. Seyedjamal Zolhavarieh, Auckland University of Technology, szolhava@aut.ac.nz

Marking Scheme

Criteria:

Weight:

Grade A

Grade Range:

100 ≥ x ≥ 80%

Grade B

Grade Range:

80 > x ≥ 65%

Grade C

Grade Range:

65 > x ≥ 50%

Grade D

Grade Range:

50 > x ≥ 0%

The functionality

of Module class 20%

OOP paradigm

consistently used for

the implementation

of all Module

functionality.

Inconsistent use

of OOP paradigm

but the correct

implementation

of Module

functionality

Incorrect

Module

functionality and

poor use of OOP

paradigm

Absent Module

class or code

does not

compile

The functionality

of

TechnicalSchool

class

30%

OOP paradigm

consistently used for

the implementation

of all TechnicalSchool

functionality.

Inconsistent use

of OOP paradigm

but the correct

implementation

of

TechnicalSchool

functionality

Some basic

functionality of

TechnicalSchool

Absent

functionality of

TechnicalSchool

or code does

not compile.

The functionality

of Student class 20%

OOP paradigm

consistently used for

the implementation

of all Student

functionality.

Inconsistent use

of OOP paradigm

but the correct

implementation

of Student

functionality

Some basic

functionality of

Student

Absent

functionality of

the Student or

code does not

compile.

Functionality of

StudentEvaluation

class

10%

OOP paradigm

consistently used for

implementation of all

evaluation

functionality.

Inconsistent use

of OOP paradigm

but the correct

implementation

of evaluation

functionality

Some basic

functionality of

Evaluation

Absent

functionality of

Evaluation or

code does not

compile.

Code Quality:

-Whitespace

-Naming

-Reuse

-Modularity

-Encapsulation

15%

Whitespace is

comprehensively

consistent. All naming

is sensible and

meaningful. Code

reuse is present. The

code is modular. The

code is well

encapsulated.

Whitespace is

comprehensively

consistent. The

majority of

naming is

sensible. The

code is modular.

The code is

encapsulated.

Whitespace is

comprehensively

consistent. The

code has some

modularity. The

code has some

encapsulation.

Whitespace is

inconsistent,

and hence code

is difficult to

read.

Documentation

Standards:

-Algorithms

Commented

-Javadoc

5%

The entire codebase

has comprehensive

Javadoc commenting.

Algorithms are well

commented.

The majority of

the codebase

features Javadoc

commenting. The

majority of

algorithms are

commented.

Some Javadoc

comments

present. Some

algorithms are

commented.

No Javadoc

comments

present.

COMP503/ENSE502/ENSE602 _ Assignment 1

Sem 2 2020

Dr. Seyedjamal Zolhavarieh, Auckland University of Technology, szolhava@aut.ac.nz

Authenticity

Remember!

? It is unacceptable to hand in any code which has previously been submitted for

assessment (for any paper, including Programming 2) or available online

? All work submitted must be unique and your own!

Submission Instructions

Export your Java project from Eclipse as an archive .zip file before the deadline.

Please ensure your submission matches the following format:

lastname-firstname-studentid.zip (Replace the underlined text with your personal details).

An extension will only be considered with a Special Consideration Form approved by the

School Registrar. These forms are available at AUT Blackboard.

You will receive your marked assignment via Blackboard. Please look over your entire

assignment to make sure that it has been marked correctly. If you have any concerns, you

must raise them with the lecturer. You have one week to raise any concerns regarding your

mark. After that time, your mark cannot be changed.

Do not go to the lecturer because you do not like your mark. Only go if you feel something

has been mismarked.


版权所有:留学生编程辅导网 2018 All Rights Reserved 联系方式:QQ:99515681 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。