联系方式

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

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

日期:2020-04-29 11:26

COMP503/ENSE502/ENSE602 _ Assignment 1

Sem 1 2020

Technical School App

Due date: Friday, 3

rd April 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 1 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 1 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

Self-Study 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 1 2020

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 taught AND

? at least four modules passed at level 3, at least two must be self-study 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 1 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

false

Transcript for Axel

PROG101 B+

STAT102 C

DATA222 A

PROG202 C

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 1 2020

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.


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

python代写
微信客服:codinghelp