Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.io.*;
- class Item {
- private String name;
- private double price;
- private int amount;
- public Item(String name, double price){
- setName(name);
- setPrice(price);
- setAmount(1);
- }
- public Item(String name, double price, int amount){
- setName(name);
- setPrice(price);
- setAmount(amount);
- }
- public String getName(){
- return this.name;
- }
- public double getPrice(){
- return this.price;
- }
- public int getAmount(){
- return this.amount;
- }
- public double getTotalPrice(){
- return getPrice()*getAmount();
- }
- public void setName(String name){
- this.name = name;
- }
- public void setPrice(double price){
- if (price >= 0)
- this.price = price;
- else
- throw new IllegalArgumentException("Price cannot be negative");
- }
- public void setAmount(int amount){
- if (amount >= 0)
- this.amount = amount;
- else
- throw new IllegalArgumentException("Amount cannot be negative");
- }
- public String toString(){
- return this.name + "(" + this.amount + ") " + this.price;
- }
- }
- class Song {
- private String author;
- private String name;
- private int length;
- private String genre;
- private int rating;
- public Song(String author, String name, int length){
- init(author, name, length, "", 0);
- }
- public Song(String author, String name, int length, String genre){
- init(author, name, length, genre, 0);
- }
- public Song(String author, String name, int length, String genre, int rating){
- init(author, name, length, genre, rating);
- }
- private void init(String author, String name, int length, String genre, int rating){
- if (length >= 0){
- this.author = author;
- this.name = name;
- this.length = length;
- this.genre = genre;
- setRating(rating);
- } else {
- throw new IllegalArgumentException("Length cannot be negative");
- }
- }
- public String getAuthor(){
- return author;
- }
- public String getName(){
- return name;
- }
- public int getLength(){
- return length;
- }
- public String getGenre(){
- return genre;
- }
- public int getRating(){
- return rating;
- }
- public void setRating(int rating){
- this.rating = rating;
- }
- public String toString(){
- return author + " - " + name + " (" + length + " sec.), " + genre + ", " + rating + " stars";
- }
- }
- public class Sandbox {
- public static void main(String args[]) {
- try {
- // input
- Scanner sc = new Scanner(System.in);
- Song[] songs = null;
- while(true){
- try {
- System.out.println("How many songs?");
- int size = Integer.parseInt(sc.nextLine());
- songs = new Song[size];
- break;
- } catch(Exception e){
- System.out.print("Error! Please enter how many songs:");
- }
- }
- for(int i = 0; i < songs.length; ){
- try {
- System.out.print("Enter author: ");
- String author = sc.nextLine();
- System.out.print("Enter name: ");
- String name = sc.nextLine();
- System.out.print("Enter length: ");
- int length = Integer.parseInt(sc.nextLine());
- songs[i] = new Song(author, name, length);
- System.out.print("Enter rating: ");
- songs[i].setRating(Integer.parseInt(sc.nextLine()));
- System.out.println("Song[" + i + "] was read successfully!\n");
- ++i;
- } catch(Exception e){
- System.out.println("Error! Please enter data again.");
- }
- }
- sc.close();
- // algorithm
- int totalDuration = 0;
- double averageRating = 0;
- for(int i = 0; i < songs.length; ++i){
- //System.out.println(songs[i]);
- try {
- totalDuration += songs[i].getLength();
- averageRating += songs[i].getRating();
- } catch(NullPointerException npe){
- averageRating += 3;
- }
- }
- averageRating = averageRating/songs.length;
- // output
- System.out.println("Total duration: " + totalDuration + " sec.");
- System.out.println("Average rating: " + averageRating + " stars");
- } catch(Exception e){
- System.out.println(e);
- System.out.println("Unexpected error, sorry!");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement