Programming Assignment Assessment-2 (IFN556) Assignment Help

 

Weighting: 50%    Total Marks: 100    Individual

Due Date: 11.59 pm 7th June 2024

Submission: Online via QUT Canvas

Problem Specification: 

This Assignment is split into two Parts. The first part requires you to create a class template. The second part requires you to create an Application class which will use the class template and perform a number of specified tasks. 

In this assignment, you are advised to use user-defined class, array of objects, array in class, and all the methods to achieve the maximum marks. 

 

Create a project Book Store Application with a Book Class and a Program class as detailed below:

Part A: Book class contains the following:

  1. Two public static arrays that hold codes (category Codes) and descriptions of the popular book categories (category Names) managed in a bookstore. These codes are CS, IS, SE, SO, and MI, corresponding to book categories Computer Science, Information System, Security, Society and Miscellaneous.  

  2. Data fields for book id (bookId) and book category name   (category Name Of Book)

  3. Auto-implemented properties that hold a book’s title (Book Title), book’s number of pages (Num Of Pages) and book’s price (Price).

  4. Properties for book id and book category name. Assume that the set accessor will always receive a book id of a valid format. For example, “CS125” and “IS334” are of valid format and also refer to known categories “Computer Science” and “Information Systems”. If the book ID does not refer to a known category, then the set accessor must retain the number and assign to the “MI” category. For example, “AS123” will be assigned as “MI123”. The category property is a read-only property that is assigned a value when the book id is set. 

  5. Two constructors to create a book object: 

  • one with no parameter: public Book()  

  • one with parameter for all data fields:

public Book(string bookId, string book Title, int num Pages, double price)

  1. A To String method, public override string To String(), to return information of a book object using the format given in the screen shot under Information of all Books

 

Part B: Program class contains the following: 

  1. A method, public static void Display Introduction(), to display an introduction of the project, including your last name, first name and student id in the display. All displayed information must be surrounded within a border of your choice.

 

  1. A Method, public static int InputValue(int min, int max), to input an integer number that is between (inclusive) the range of a lower bound and an upper bound. The method should accept the lower bound and the upper bound as two parameters and allow users to re-enter the number if the number is not in the range or a non-numeric value was entered. 

 

  1. A Method, public static bool IsValid(string id), to check if an input string satisfies the following conditions: the string’s length is 5, the string starts with 2 uppercase characters and ends with 3 digits. For example, “AS122” is a valid string, “As123” or “AS1234” are not valid strings. 

 

  1. A Method,  private static void GetBookData(Book[] books),

to fill an array of books. The method must fill the array with Books which are constructed from user input information (which must be prompted for). Along with the prompt for a book id, it should display a list of valid book categories and call method IsValid to make sure the inputted book id is a valid format. If not, the user is prompted to re-enter a valid book id. 

 

  1. After the data entry is complete, write a Method,

            public static void DisplayAllBooks(Book[] books),

to display information of all books that have been entered including book id, title, number of pages and price. This method should call the ToString method that has been created in Book class. 

 

  1. After the data entry is complete, write a Method, private static void GetBookLists(Book[] books),to display the valid book categories, and then continuously prompts the user for category codes and displays the information of all books in the category as well as the number of books in this category.

Appropriate messages are displayed if the entered category code is not a valid code or there is no book in that category.

 

  1. Write the Main method which will only contain calls to the other methods and the necessary variable declarations:

  1. First, call the method InputValue to prompt the user for the number of books that is between 1 and 30 (inclusive).

  2. Then call method GetBookData to create an array of books. 

  3. Then call method DisplayAllBooks to display all books in the array. 

  4. Then call method GetBookLists to allow the user to input a category code and see the information of the category.

A possible screenshot of running the application is given as below.

A close-up of a sign Description automatically generatedA screenshot of a computer program Description automatically generated

In completing your assignment, please take note of the following:

  1. You should not use any C# concepts which have not been taught as part of Lectures 1 – 4 and covered in Tutorials 1 -5.

  2. You should develop your code using simple logic.

  3. Test your code using your own test data covering multiple data sets.

  4. Your final code should not have any compilation/execution errors.

  5.  

Project Deliverable:

Program Code

Zip your project file and upload this zipped file onto Canvas using IFN556 Programming Assignment link under Assessment 2 in Modules. The link will be available from Monday 27th June 2024.  

You can upload only ONCE

Note: 

Assessment submitted after the due date without an approved extension will not be marked and will receive a grade of 1 or 0%. If special circumstances prevent you from meeting the assessment due date, you can apply for an extension  through the Student Services in SEF. If you do not have an approved extension you should submit the work you have completed by the due date and it will be marked against the assessment criteria. Do not send us an email requesting for extension.