Share
Explore BrainMass

C# Book publisher cost with use of Exception class

A book publisher has limited the cost of every book they publish to no more than 10 cents per page.

[A] Create a BookException class (in C-Sharp) with a constructor that requires three (3) arguments for each book: a string title, a double price, and an int number of pages.

Create an error message that is passed to the Exception class constructor for the Message property when a book does not meet the price-to-pages ratio. The error message might be like:

For Goodnight Moon, ratio is invalid.
...Price is $12.99 for 25 pages

The price-to-pages ratio is determined by checking the following: price > RATE * pages where RATE = 0.10

Create a Book class that has the following fields: string title, string author, double price and int number of pages. Throw a BookException if a book object is created that has a price that is more than 10 cents per page.

For testing, create 4 Book objects and use the constructor for Book to pass the four inputs when each object is instantiated, some where the ratio is correct and some where the ratio is not correct. Catch any thrown exceptions and display BookException Message.

For example, if the inputs passed were:

("Goodnight Moon", "Brown", 12.99, 25)
("World History", "Stein", 72.99, 900)
("The Grapes of Math", "Stoltz", 30.99, 300)
("Steal This Book", "Hoffman", 72.99, 800)

the possible output could be:

For Goodnight Moon, ratio is invalid.
...Price is $12.99 for 25 pages.
For The Grapes of Math, ratio is invalid.
...Price is $30.99 for 300 pages.
Press any key to continue . . .

[B] Using the Book class created above, create an application that creates an array of five Book objects, and prompt the user for input values for each Book instead of setting the values with constructors.

To handle any exceptions that are thrown because of improper or invalid data entered by the user, set the Book's price to a maximum 10 cents per page.

At the end of the program display all the entered, and possibly corrected, records.

Possible inputs/output could look like:

Enter title Book 1
Enter author Author 1
Enter price 33.33
Enter pages 333
For Book 1, ratio is invalid.
...Price is $33.33 for 333 pages.
Enter title Book 2
Enter author Author 2
Enter price 22.22
Enter pages 333
Enter title Book 3
Enter author Author 3
Enter price 45.00
Enter pages 200
For Book 3, ratio is invalid.
...Price is $45.00 for 200 pages.
Enter title Book 4
Enter author Author 4
Enter price 25.00
Enter pages 1000
Enter title Book 5
Enter author Author 5
Enter price 30.00
Enter pages 850
Book 1 by Author 1 Price $33.30 333 pages.
Book 2 by Author 2 Price $22.22 333 pages.
Book 3 by Author 3 Price $20.00 200 pages.
Book 4 by Author 4 Price $25.00 1000 pages.
Book 5 by Author 5 Price $30.00 850 pages.
Press any key to continue . . .

Other possible errors might be entered as shown below:

Enter title Book 1
Enter author Author 1
Enter price 33.xx
Input string was not in a correct format.
Enter title Book 1
Enter author Author 1
Enter price 33.33
Enter pages xx.33
Input string was not in a correct format.
Enter title ...

Solution Preview

Please find attached the zip file with a folder that contains two projects - ProjectA and ProjectB, compiled and tested - you will find ...

Solution Summary

C# console program that uses Exception class to generate exception messages. The exception class will have a constructor that requires three arguments for each book: a string title, a double price, and an int number of pages. It will then generate a message in base Exception class based on this data. This custom BookException is thrown when a book does not meet the price-to-pages ratio.

$2.19