خرید بک لینک

Vote count: 0

I am trying to get my nested loops to perform a check in / check out simulation. I have my functions set up and my loop at the end but it somehow always gives me the same output. Every patron has the same amount of books and a humongous fine instead of being totally randomized like the checkOut and isOverdue functions make them.

How do I make it so that the loops uses the randomly generated date from the functions and give each patron different amounts of fines and books checked out? Instructions for the project.

My code:

    var Book = function(title, Available, publicationDate, checkoutDate, callNumber, Authors) {
        this.title = title;
        this.Available = Available;
        this.publicationDate = publicationDate;
        this.checkoutDate = checkoutDate;
        this.callNumber = callNumber;
        this.Authors = Authors;
    };

    var Author = function(firstName, lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    };

    var Patron = function(firstName, lastName, libCardNum, booksOut, fine) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.libCardNum = libCardNum;
        this.booksOut = booksOut;
        this.fine = fine;
    };

    function randInRange(start, end) {
        return Math.floor(Math.random() * (end - start + 1)) + start;
    }

    Book.prototype.checkOut = function() {
        this.Available = false;
        var dateChk = new Date();
        var randDay = randInRange(1, 25);
        dateChk.setDate(dateChk.getDate() - randDay);
        this.checkoutDate = dateChk;
    };

    Book.prototype.checkIn = function() {
        this.Available = true;
    };

    Book.prototype.isOverdue = function() {
        var singleDay = 1000 * 60 * 60 * 24;
        var todayDate = new Date().getTime();
        var difference = todayDate - this.checkoutDate.getTime();
        if (Math.round(difference / singleDay) >= 14) {
            return true;
        }
        return false;
    };

    Patron.prototype.read = function(book) {
        this.booksOut.add(book);
    }

    Patron.prototype.return = function(book) {
        this.booksOut.remove(this.booksOut.length);
    }

    var authors = [];
    authors[0] = new Author("Auth", "One");
    authors[1] = new Author("AutL", "Two");

    var catalog = [];
    catalog[0] = new Book('Bk1', true, new Date(2001, 1, 21), new Date(), 123456, authors);
    catalog[1] = new Book('Bk2', true, new Date(2002, 2, 22), new Date(), 987656, authors);
    catalog[2] = new Book('Bk3', true, new Date(2003, 3, 23), new Date(), 092673, authors);
    catalog[3] = new Book('Bk4', true, new Date(2004, 4, 24), new Date(), 658342, authors);
    catalog[4] = new Book('Bk5', true, new Date(2005, 5, 25), new Date(), 345678, authors);

    var patrons = [];
    patrons[0] = new Patron('Pat1', 'Wat', 1, catalog, 0.00);
    patrons[1] = new Patron('Pat2', 'Wot', 1, catalog, 0.00);
    patrons[2] = new Patron('Pat3', 'Wit', 1, catalog, 0.00);
    patrons[3] = new Patron('Pat4', 'Wet', 1, catalog, 0.00);
    patrons[4] = new Patron('Pat5', 'Wut', 1, catalog, 0.00);

    //while loop or for loop for 90 days
      //For loop over catalog
         //forloop over patrons 
             //Check if available , if so check book out
             //If not available check book back in
                 //check checking back in check to see if book is overdue and if so add a fine
    //When down loop over patrons to see their fees

    for (var i = 0; i < 90; i++) {
        for (var j = 0; j < catalog.length; j++) {
            for (var k = 0; k < patrons.length; k++) {
                var fine = patrons[k].fine;
                if (catalog[k].Available) {
                    catalog[k].checkOut;
                } else {
                    catalog[k].checkIn;
                    patrons[k].read;
                }
                if (catalog[k].isOverdue) {
                    fine = fine + 5.00;
                }
                patrons[k].fine = fine;
            }
        }
    }

    for (i = 0; i < patrons.length; i++) {
        console.log(patrons[i].firstName + " has checked out the following books:");
        for (j = 0; j < patrons[i].booksOut.length; j++) {
            console.log(patrons[i].booksOut[j].title);
        }
        console.log(patrons[i].firstName + " has fine amount: $" + patrons[i].fine);
    }
asked 8 secs ago

برچسب: نویسنده: استخدام کار تاريخ: يکشنبه 3 ارديبهشت 1396 ساعت: 0:34

صفحه بندی