Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

1 Introduction to Programming PROG9000 Final Project 2019 XXXXXXXXXXDeadline Monday 6th January 2020, 11:59pm • Part 1: Practical program build - Problem Definition • Part 1: Practical program build -...

1 answer below »
1
Introduction to Programming
PROG9000
Final Project 2019 XXXXXXXXXXDeadline Monday 6th January 2020, 11:59pm
• Part 1: Practical program build - Problem Definition
• Part 1: Practical program build - Program Basic Specifications
• Part 2: Essay on GIS application
• Marking Scheme
PART 1
Problem
A car rental company hires you to develop their reservation system. The system should deal with
customers’ queries providing a quote for the given dates and type of car. It should check for
availability and make/cancel reservations.
Types of vehicles and their characteristics:
▪ cars: make/model,km/l,numPassenger,num_doors,plate number, daily cost, weekly cost,
weekend cost, available
▪ vans: make/model,km/l,numPassenger,plate number, daily cost, weekly cost, weekend
cost,available
▪ caravans: make/model, km/l, num_beds, plate number, daily cost, weekly cost, weekend
cost,available
Company side
The program will have a company username that will allow the staff in the company to
ente
delete vehicles. A basic set of vehicles should be created in the code.
Customer side
The program must be able to:
a) Display the specific vehicles available for rent by vehicle type.
) Display cost associated with a given vehicle including daily, weekend and weekly rate.
c) It must also allow the user to determine the cost of a particular vehicle for a given period of
time.
d) The program must allow for a particular vehicle to be reserved and cancelled.

2
Technical requirements
Object oriented approach: Instantiation, use of attributes and methods
Use of inheritance, use of lists/dictionaries as appropriate, use of GUI , efficient code, comments,
e
or checking, string control for uppe
lower case, etc…
PART 1 - Specs
1. Create the classes required to store all the vehicle data. Create the
objects.
2. Use the ‘Vehicles project data’ file for details on the vehicles and
prices.
3. Create the structure for a customer to search the vehicles by type.
4. Create the structure for a customer to query the cost of renting a
particular vehicle.
a. Generic pricing
. Specific to number of days.
5. Create the structure for a customer to rent a car (make available
attribute =N) and return it (make available attribute=Y).
6. Create the structure for the admin user to add a new car to the fleet.
7. Create the structure for the admin user to delete a car from the fleet.
8. Create a functional GUI
PART 2
Write a short essay on how you could extend the program you have developed to an application
that would be relevant to GIS.
Use pseudocode to explain your identified application.
Max 300 words
Introduction to Programming Project

3
Marking Scheme 2019
Marks for PROG9000 Project 2019: Total Marks Available 60

Item Percentage Marks Cumulative Total
Part 1
Detailed outline design of project,
eakdown of how to achieve each task,
programming methodology used, and
how to tie it all together. 17% 10 10

Outline of Object Oriented Programming
(OOP) approach to this project - itemise
each object with its properties and
methods 8% 5 15

Execution of OOP in code (creating
classes, creating instances) 17% 10 25

Detailed GUI design, using prototype tool
such as Qt Designer or with other
graphical method. 8% 5 30

Execution of GUI in code, how well it
guides the user, how intuitive it is, how
well it works. 8% 5 35

Implementation of Project Specification 8% 5 40

Quality of Commenting in Code 5% 3 43

Execution of Code - Debugging, Fault
finding 8% 5 48

Novel aspects of code (implement
something we haven't covered in class!) 5% 3 51
Part 2
Describe an extension to the program
applicable to GIS 8% 5 56

Use descriptions of pseudocode to show
your idea 7% 4 60
END

Introduction to programming         Project
Cars
    Make
    Model
    Km/l
    Number of passengers
    Number of doors
    Plate numbe
    Daily cost
    Weekly cost
    Weekend cost
    Audi
    A5
    10
    5
    4
    171-D-128
    €20
    €120
    €150
    Ford
    Fiesta
    20
    5
    3
    12-D-564
    €12
    €85
    €45
    Toyota
    Corolla
    15
    5
    5
    152-C-854
    €15
    €95
    €50
    Ford
    Focus
    15
    5
    5
    141-WW-965
    €15
    €95
    €50
    Renault
    Clio
    20
    5
    3
    12-G-741
    €12
    €65
    €45
Vans
    Make
    Model
    Km/l
    Number of passengers
    Plate numbe
    Daily cost
    Weekly cost
    Weekend cost
    Renault
    Othe
    10
    2
    151-D-874
    €45
    €260
    €220
    Citroen
    Berlingo
    15
    3
    12-D-965
    €45
    €165
    €85
    Peugot
    Partne
    8
    4
    12-C-758
    €50
    €185
    €85
    Citroen
    Berlingo
    15
    3
    142-G-511
    €45
    €165
    €85
Caravans (RV)
    Make
    Model
    Km/l
    Number of beds
    Plate numbe
    Daily cost
    Weekly cost
    Weekend cost
    Renault
    C
    12
    4
    11-D-146
    €50
    €350
    €215
    Citroen
    B
    20
    6
    10-D-965
    €50
    €365
    €285
    Peugot
    P
    11
    4
    12-C-143
    €50
    €350
    €200
    Citroen
    B
    15
    2
    131-G-111
    €50
    €255
    €185
Answered Same Day Jan 06, 2021

Solution

Ria answered on Jan 07 2021
151 Votes
vehicles-project/vehicles-project-data.docx
Introduction to programming         Project
Cars
        Make
        Model
        Km/l
        Number of passengers
        Number of doors
        Plate numbe
        Daily cost
        Weekly cost
        Weekend cost
        Audi
        A5
        10
        5
        4
        171-D-128
        €20
        €120
        €150
        Ford
        Fiesta
        20
        5
        3
        12-D-564
        €12
        €85
        €45
        Toyota
        Corolla
        15
        5
        5
        152-C-854
        €15
        €95
        €50
        Ford
        Focus
        15
        5
        5
        141-WW-965
        €15
        €95
        €50
        Renault
        Clio
        20
        5
        3
        12-G-741
        €12
        €65
        €45
Vans
        Make
        Model
        Km/l
        Number of passengers
        Plate numbe
        Daily cost
        Weekly cost
        Weekend cost
        Renault
        Othe
        10
        2
        151-D-874
        €45
        €260
        €220
        Citroen
        Berlingo
        15
        3
        12-D-965
        €45
        €165
        €85
        Peugot
        Partne
        8
        4
        12-C-758
        €50
        €185
        €85
        Citroen
        Berlingo
        15
        3
        142-G-511
        €45
        €165
        €85
Caravans (RV)
        Make
        Model
        Km/l
        Number of beds
        Plate numbe
        Daily cost
        Weekly cost
        Weekend cost
        Renault
        C
        12
        4
        11-D-146
        €50
        €350
        €215
        Citroen
        B
        20
        6
        10-D-965
        €50
        €365
        €285
        Peugot
        P
        11
        4
        12-C-143
        €50
        €350
        €200
        Citroen
        B
        15
        2
        131-G-111
        €50
        €255
        €185
vehicles-project/vehicles-project.py
import tkinter as tk
from tkinter import *
from tkinter import ttk
import docx
from docx import Document
document = Document ('vehicles-project-data.docx')
class cars():
    make=('0')
    model=('0')
    km=('0')
    p_no=('0')
    d_no=('0')
    pl_no=('0')
    d_cost=('0')
    wl_cost=('0')
    we_cost=('0')
    avail='0'
    
    def __init__(self):
        table = document.tables[0]
        for row in table.rows:
            self.make=row.cells[0].text
            self.model=row.cells[1].text
            self.km=row.cells[2].text
            self.p_no=row.cells[3].text
            self.d_no=row.cells[4].text
            self.pl_no=row.cells[5].text
            self.d_cost=row.cells[6].text
            self.wl_cost=row.cells[7].text
            self.we_cost=row.cells[8].text
            self.avail='Y'
    def add(self, make):
        self.make=make
class vans:
    make=('0')
    model=('0')
    km=('0')
    p_no=('0')
    pl_no=('0')
    d_cost=('0')
    wl_cost=('0')
    we_cost=('0')
    avail='0'
    def __init__(self):
        table = document.tables[1]
        for row in table.rows:
            self.make=row.cells[0].text
            self.model=row.cells[1].text
            self.km=row.cells[2].text
            self.p_no=row.cells[3].text
            self.pl_no=row.cells[4].text
            self.d_cost=row.cells[5].text
            self.wl_cost=row.cells[6].text
            self.we_cost=row.cells[7].text
            self.avail='Y'
    def add(self, make):
        self.make=make
class caravans:
    make=('0')
    model=('0')
    km=('0')
    b_no=('0')
    pl_no=('0')
    d_cost=('0')
    wl_cost=('0')
    we_cost=('0')
    avail='0'
    def __init__(self):
        table = document.tables[2]
        for row in table.rows:
            self.make=row.cells[0].text
            self.model=row.cells[1].text
            self.km=row.cells[2].text
            self.b_no=row.cells[3].text
            self.pl_no=row.cells[4].text
            self.d_cost=row.cells[5].text
            self.wl_cost=row.cells[6].text
            self.we_cost=row.cells[7].text
            self.avail='Y'
    def add(self, make):
        self.make=make
def company():
    v = tk.Tk()
    v.title("Staff zone of Car Rental Company")
    def click1():
        if (cb1.get() == 'Add'):
            def click2():
                if (cb2.get() == 'Cars'):
                    def click3():
                        l4 = ttk.Label(v, text = "New vehicle added")
                        l4.grid(column=0,row=9)
                        car=cars()
                        make=cb3.get()
                        car.add(make)
                    l3 = ttk.Label(v, text = "Add Vehicles")
                    l3.grid(column=0,row=6)
                    cb3 = ttk.Combobox(v, values=["Enter the vehicle name by your keyboard"])
                    cb3.grid(column=0, row=7)
                    b3 = ttk.Button(v, text="Confirm", command=click3)
                    b3.grid(column=0, row=8)
                    
                elif (cb2.get() == 'Vans'):
                    def click3():
                        l4 = ttk.Label(v, text = "New vehicle...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here