关键词 > CSC1035/CSC1036

CSC1035 “Programming Portfolio 2” / CSC1036 “Programming Portfolio”

发布时间:2023-03-01

Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

CSC1035 “Programming Portfolio 2” / CSC1036 “Programming Portfolio”

Coursework Part 1

This work is due for electronic submission thorough NESS. It represents an individual assignment (no group work) and can be carried out during independent study and during weekly practical classes.

This is the first part of the module’s coursework, which constitutes 33% of the final module mark if you are taking CSC1035 or 50% if you are taking CSC1036.

Clarifications  and frequently  asked  questions  about the  coursework will  be  posted  on  canvas  at

https://ncl.instructure.com/courses/48552/pages/auction-company-coursework-faq-and-clarifications

0. Before You Start

Create a git repository in the university’s computing github organisation. The repository’s name must be in                                      the                                      following                                      format: https://github.com/newcastleuniversity-computing/studentNumber_moduleCode_coursework1_2022 e.g. if your student number is 15999999 and you are taking the CSC1035 module, your repository must be at https://github.com/newcastleuniversity-computing/15999999_CSC1035_coursework1_2022 .

1. Objectives

The objectives of this coursework are for you to demonstrate that you can:

Define classes, fields, constructors and methods in Java

Use appropriate types, including collections

Implement basic algorithms using collections

Write a main method including console I/O

Devise appropriate testing examples

Document your solution with javadoc

Note that at the time of setting the coursework, you will not have been taught all the material relevant to this exercise (for example, main method, console I/O, testing). You may need to research relevant Java Class libraries in order to get help with certain features.

2. Scenario: Auction Company

A reporting system is to be developed for an auction company specialising in antique furniture, paintings and sculptures. The company has a number of auction houses and wants to keep track of how their auction houses are performing and store details of the items each auction house sells. Each item sold has an associated lot number.

Make  use of correct version control  practice for the  development  of this  project. This  includes: professional and relevant commits and commit messages, and a .gitignore file that excludes project configuration information.

3. Problem specification and mark scheme

Define a Java class Item with appropriate fields,  methods and constructor to store and  retrieve information about the item lot number, name of buyer, price for which the item was sold, year in which the item was sold and whether the item was a piece of furniture, a painting or a sculpture.

Define a Java class AuctionHouse with appropriate fields, methods and constructor to store and retrieve the name of the auction house, and a list of items that it has sold. Include methods to return:

The Item with the highest ever price sold at the auction house.

The average item price recorded by the auction house in a given year.

A list of all items sold by the auction house with a price greater than a given amount of money.

Define a Java class Reporting, which holds information about all auction houses. Include methods to return:

The Item with the largest price ever recorded.

The AuctionHouse with the largest average price for a given year.

A list of all Items sold with price greater than a given amount of money.

Define a class ReportingIO, with a main method which does the following:

Presents the user with a menu (printed to the console) of features:

o enter AuctionHouse data;

o enter Item data;

o provide reporting statistics on: auction house with largest average item price for a given year, highest price item ever reported (including all its details), and all items sold with a price greater than a given amount (including all their details); or

o exit

Takes user input from the console to choose one of the menu features

Allows the user to input, via the console, the details of auction houses and items

After executing one of the features, returns the user to the menu to choose another option

Make sure to include prompts that make it clear how the user is intended to use the program. All classes should be properly documented with javadoc and include appropriate testing examples.

4. What to submit

You must submit 1 zip file to Ness, as follows:

o A zip file named‘CourseCode_coursework_pt1_2022_FirstnameLastname.zip’, where‘CourseCode’is CSC1035 or CSC1036 depending on which module you are taking,‘Firstname’is replaced with your first name, and‘Lastname’is replaced with your last name. The zip file must contain:

The source code of your Java classes.

The generated javadoc for your classes.

A copy of your project’s .git directory.

A PDF document named‘CourseCode_coursework_pt1_2022_FirstnameLastname.pdf’ following the same conventions as above, containing a reflective commentary on your implementation (approximately 500 words), saying what went well and what you would do to improve or extend your program. This report should also talk about the use of version control throughout the development of the project.

5. Mark Scheme

The coursework is marked out of 30 and accounts for 33% of the module mark for CSC1035 or 50% of the module mark for CSC1036.

The breakdown of the marks is as follows:

-    Item Class: 10%

-    AuctionHouse Class: 15%

-    Reporting Class: 20%

-    ReportingIO Class: 20%

-    Javadoc: 5%

-    Testing: 10%

-    Reflective report: 20%

Your submission must be your own work and you must not share your code with other students or make it public. If you use code from resources available to you (e.g. online or the slides), you must provide a reference as a comment in your source code. Submissions will be checked for plagiarism.