Car Rental Management System 2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 39

A project report submitted at the end of 5th semester in the partial fulfillment of the

requirements
for the degree of BACHELOR OF SCIENCE IN COMPUTER DEPARTMENT submitted by

K. SAI RAKESH G. TARUN G. GANESH


(Regdno.719127205276) (Regdno.719127205262) (Regdno.719127295261)
Under the esteemed guidance

MR. G.A.V.S.SASTRY

LECTURER IN-CHARGE

DEPT.OF. COMPUTER SCIENCE

DEPARTMENT OF COMPUTER SCIENCE

ADITYA DEGREE COLLEGE

ASILMETTA, VISAKHAPATNAM.

2021-2022
1
CERTIFICATE

This is to certify that the project work entitled “CAR RENTAL MANAGEMENT SYSTEM” is
of confide record of work done by K. Sai Rakesh (Regdno:719127205276), G. Tarun (Regdno:719127205262) and G. Ganesh
(Regd no:719127205261) of III B.Sc. (M.S.Cs) during the year 2021-2022 in the partial fulfillment of
the requirements for the award of degree of Bachelor of Science in computer department, Aditya Degree College,
Asilmetta, Visakhapatnam.

ADITYA DEGREE COLLEGE

DEPARTMENT OF COMPUTER SCIENCE

LECTURER HEAD OF THE DEPARTMEN

2
ACKNOWLEDGEMENT

We are filled with pride for being a part of ADITYA DEGREE COLLEGE, Visakhapatnam. That
has nurtured me to the present.

We would like to thank our chairman Sri. N. SESHA REDDY, Mr. N.K.Deepak Reddy, Secretary,
ADITYA EDUCATIONAL INSTITUTIONS, for their kind encouragement.

We would like to thank our principal Mrs. B.V.LAKSHMI, ADITYA DEGREE COLLEGE,
Visakhapatnam for her kind encouragement.

We express sincere thanks to Mr. G.A.V.S.Sastry, Head of the Department in Computer


Science, for his suggestions in doing this project.

Place: VISAKHAPATNAM,

Date:

1
DECLARATION

We hereby declare that the project “CAR RENTAL MANAGEMENT


SYSTEM” has been done by us and this system helps the staff in rental to rent a car
and to satisfy the requirements of the customers,

Place: VISAKHAPATNAM,

Date:

K. SAI RAKESH

G. TARUN

G. GANESH

2
OUR MANAGEMENT

In this era of cut throat competition, it is of paramount importance to impart an integrate education
to the future citizens of the Nation for successfully facing multitasking. With great powers comes
great responsibility, this adage is my favourite line indeed for it succinctly put across what
educational institutions ought to do. And for an educational institution as mighty as Aditya, some
serious responsibility lies on the shoulders for we not just mould careers but lives of individuals.

3
CONTENTS

Pg.no
1. Abstract.................................................................................... 5
2 Requirement Gathering............................................................ 6
3 Software Requirements Specification...................................... 8-9
4 Feasibility Study....................................................................... 10
5 Design....................................................................................... 11-16
6 Sample Coding ....................................................................... 17-25
7 Screens .................................................................................... 26-30
8 Testing .................................................................................... 31-35
9 Bibliography............................................................................. 36

4
ABSTRACT

Our project information is related to “Car Rental Management System”. The main
aim &objective of this Car Rental Management System Project is to give simple
application which provides all services and includes all categories of cars from luxury
to budget.
Further, this project’s utmost priority is quality. This project claim to offer the best of
rates, which are tailor- made depending upon the facilities availed.

5
Requirements Gathering

 Requirement analysis is a software engineering task that bridges the gap between the
system level software allocation and software design.

 It enables the system engineer to specify software function and performance, indicate
software interface with other system elements, and establish design constraints that
the software must meet.

 It provides the software designer with a representation of information and function


that can be translated to data, architectural and procedural design.

6
SYSTEM SPECIFICATION

1. Hardware Requirements

Processor : Intel Pentium IV 2.4 GHZ or above

Clock speed : 500MHZ

System bus : 64 bits

RAM : 1GB of RAM

HDD : 125 GB or higher

Monitor : SVGA COLOR

Keyboard : 108 keys

Mouse : 2 button mouse

2. Software Requirements

OS : MS WINDOWS 10

Front End : JAVA

7
SOFTWARE REQUIREMENT SPECIFICATION

A Software Requirement Specification (SRS) - a requirements specification for a software


system is a complete description of the behaviour of a system to be developed. It includes a set
of use cases that describes all the interactions the users will have with the software. Use cases are
also known as functional requirements. In addition to use cases, the SRS also contains non-
functional (or supplementary) requirements. Non-functional requirements are requirements
which impose constraints on the design or implementation (such as performance engineering
requirements, quality standards, or design constraints).

This project is based on Car Rental Management System. The basic purpose of renting the cars
is to make the booking process faster, user friendly and we do not have to maintain written
records. All records are managed in the database. This software keeps the details of all the
booking, users, etc. This page leads to many other pages like to select car types depends upon
the users choice.

The System Requirements specification (SRS) will provide a detailed description of the
requirements for the Car Rental Management System (CRMS).The SRS will allow for a
complete understanding of what the user needs for the car renting. The clear understanding of the
CRMS and its functionally will allow for the correct software to be developed for the end user
and thus will be used for the development of the further stages of the project. This SRS will also
provide the foundation for the project. From this SRS, the CRMS can be designed, constructed,
and finally tested.

8
This SRS be used by the software engineers constructing the CRMS. The software engineers will
use the SRS so that to fully understand the expectations of this CRMS to construct the appropriate
will use the SRS so that to fully understand the expectations of this CRMS to construct the
appropriate software.

The system product to be produced is a Car Rental Management System which will automate
major car renting operations.

The objective of this Car Rental Management System is to provide a system that can manage a
car renting operation that has all facilities. The system will be able to handle many services to
take care of all customers in a quick manner. The system should be user appropriate, easy to use ,
provide easy recovery of errors and have an overall end user high subjective satisfaction.

9
FEASIBILITY STUDY

Feasibility study is an important phase in the software development process. It enables the
developer to have an assessment of the product being developed. It refers to the feasibility study
of the product in terms of outcomes of the product, operational use and technical support required
for implementing it. Feasibility study should be performed on the basis of various criteria and
parameters. The various feasibility studies are: Economic Feasibility, Operational Feasibility,
Technical Feasibility.

1. Economic Feasibility: It refers to the benefits or outcomes we are deriving from the
product as compared to the total cost we are spending for developing the product. If the benefits
are more or less the same as the older system, then it is not feasible to develop the product.

2. Operational Feasibility: It refers to the feasibility of the product to be operational. Some


products may work very well at design and implementation but may fail in the real time
environment. It includes the study of additional human resource required and the IT technical
expertise.

3. Technical Feasibility: It refers to whether the software that is available in the market fully
supports the present application. It studies the pros and cons of using particular software for the
development and its feasibility. It also studies the additional training needed to be given to the
people to make the application work.
Implementation Plan: The main plan for the system developed is to mimic the existing system
as it is in the proposed system. Study of the Existing System The existing system is very complex
as every work is done manually. By using the present system, work is done manually. So, each
and every work takes much time to complete. Whenever the doctor needs the information it is very
difficult for the employee to search for that particular details and the drug information to be
ordered. Everytime we should search the records at the shelves.

10
DESIGN

 Using SRS as input, system design is done. System design included designing of
software and hardware i.e. functionally of software and hardware is separated-out.
After separation design of software modules is done. The design process translates
requirements into representation of the software that can be assessed for quality before
generation of code begins

11
DATA FLOW DIAGRAM

 A Data Flow Diagram (DFD) is a process – oriented graphical representation of an


application system. A DFD “is a picture of the movement of data between external
entities and the processes and data stores within a system.”

 The components of a typical dataflow diagrams are: the process, the flow, the data
store, and the terminator.

12
0 Level DFD in Car Rental Management System

13
First Level DFD – Car Rental Management System:

14
Second Level DFD - Car Rental Management System:

15
USE-CASE DIAGRAM

16
SAMPLE CODING

ADMIN FORM CODE:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Admin extends JFrame implements ActionListener
{
JButton SUBMIT;
JPanel panel;
JLabel label1,label2;
final JTextField text1,text2;
Admin()
{
label1 = new JLabel();
label1.setText("Admin Name:");
text1 = new JTextField(15);

label2 = new JLabel();


label2.setText("Password:");
text2 = new JPasswordField(15);

SUBMIT=new JButton("SUBMIT");

panel=new JPanel(new GridLayout(3,1));


panel.add(label1);
panel.add(text1);
panel.add(label2);
panel.add(text2);
panel.add(SUBMIT);
add(panel,BorderLayout.CENTER);
SUBMIT.addActionListener(this);
setTitle("ADMIN FORM");

}
public void actionPerformed(ActionEvent ae)
{
String value1=text1.getText();
String value2=text2.getText();
if (value1.equals("swathi") && value2.equals("241100"))
{
UserDetails page=new UserDetails();
17
Details d=new Details();
Container c1=d.getContentPane();
c1.setLayout(new FlowLayout());
c1.setBackground(Color.YELLOW);
d.setSize(600,600);
d.setVisible(true);
d.getContentPane();
}
else
{
System.out.println("enter the valid username and password");
JOptionPane.showMessageDialog(this,"Incorrect login or password",
"Error",JOptionPane.ERROR_MESSAGE);
}
}
}
class AdminDemo
{
public static void main(String arg[])
{
try
{
Admin frame=new Admin();
Container c=frame.getContentPane();
c.setLayout(new FlowLayout());
c.setBackground(Color.YELLOW);
frame.setSize(400,400);
frame.setVisible(true);
}
catch(Exception e)
{JOptionPane.showMessageDialog(null, e.getMessage());}
}
}

USER DETAILS CODE:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Details extends JFrame implements ActionListener
{
JButton NEXT;
JPanel panel;
JList list;
JLabel label1,label2,label3,label4,label5,label6;
final JTextField text1,text2,text3,text4,text5;
18
String[] gender = { "Male", "Female", "Others"} ;
final JComboBox<String> g = new JComboBox<String>(gender);
Details()
{
label1 = new JLabel();
label1.setText("Name");
text1 = new JTextField(15);

label2 = new JLabel();


label2.setText("Age");
text2 = new JTextField(15);

label3 = new JLabel();


label3.setText("Phone Number");
text3=new JTextField(10);

label4=new JLabel();
label4.setText("Email");
text4=new JTextField(15);

label5=new JLabel();
label5.setText("Gender");

label6=new JLabel();
label6.setText("Address");
text5=new JTextField(15);

NEXT=new JButton("NEXT");

panel=new JPanel(new GridLayout(8,3));


panel.add(label1);
panel.add(text1);
panel.add(label2);
panel.add(text2);
panel.add(label3);
panel.add(text3);
panel.add(label4);
panel.add(text4);
panel.add(label5);
panel.add(g);
panel.add(label6);
panel.add(text5);

panel.add(NEXT);
add(panel,BorderLayout.CENTER);
NEXT.addActionListener(this);
19
setTitle("User Details");
}

public void actionPerformed(ActionEvent ae)


{
String value1=text1.getText();
String value2=text2.getText();
String value3=text3.getText();
String value4=text4.getText();
String value5=text5.getText();

if (value1.equals(value1) && value2.equals(value2))


{
CarRenting cr=new CarRenting();
Car q=new Car();
Container c3=q.getContentPane();
c3.setLayout(new FlowLayout());
c3.setBackground(Color.YELLOW);
q.setSize(600,600);
q.setVisible(true);
}
else
{
System.out.println("Incorrect Input");
JOptionPane.showMessageDialog(this,"Incorrect Input",
"Error",JOptionPane.ERROR_MESSAGE);
}
}
}
class UserDetails
{
public static void main(String args[])
{
try
{
Details d=new Details();
Container c=d.getContentPane();
c.setLayout(new FlowLayout());
c.setBackground(Color.YELLOW);
d.setSize(600,600);
d.setVisible(true);
}
catch(Exception e)
{JOptionPane.showMessageDialog(null, e.getMessage());}
}
}

20
CAR RENTING CODE:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Car extends JFrame implements ActionListener
{
JButton SUBMIT;
JPanel panel;
JList list;
JLabel label1,label2,label3,label4;
final JTextField text1,text2,text3;
String[] carname = { "Hyundai", "Maruthi Suzuki", "Swift"} ;
final JComboBox<String> cn = new JComboBox<String>(carname);
Car()
{
label1 = new JLabel();
label1.setText("From");
text1 = new JTextField(15);

label2 = new JLabel();


label2.setText("To");
text2 = new JTextField(15);

label3 = new JLabel();


label3.setText("Car Name");

label4=new JLabel();
label4.setText("Date of Journey");
text3=new JTextField(15);

SUBMIT=new JButton("SUBMIT");

panel=new JPanel(new GridLayout(6,2));


panel.add(label1);
panel.add(text1);
panel.add(label2);
panel.add(text2);
panel.add(label3);
panel.add(cn);
panel.add(label4);
panel.add(text3);

panel.add(SUBMIT);
add(panel,BorderLayout.CENTER);
SUBMIT.addActionListener(this);
21
setTitle("Car Renting");

}
public void actionPerformed(ActionEvent ae)
{
String value1=text1.getText();
String value2=text2.getText();
String value3=text3.getText();
if (value1.equals(value1) && value2.equals(value2))
{
PaymentDetails pd=new PaymentDetails();
Payment p=new Payment();
Container c2=p.getContentPane();
c2.setLayout(new FlowLayout());
c2.setBackground(Color.YELLOW);
p.setSize(400,400);
p.setVisible(true);

}
else
{
System.out.println("Location not found");
JOptionPane.showMessageDialog(this,"Location not found",
"Error",JOptionPane.ERROR_MESSAGE);
}
}
}
class CarRenting
{
public static void main(String args[])
{
try
{
Car q=new Car();
Container c=q.getContentPane();
c.setLayout(new FlowLayout());
c.setBackground(Color.YELLOW);
q.setSize(400,400);
q.setVisible(true);
}
catch(Exception e)
{JOptionPane.showMessageDialog(null, e.getMessage());}
}
}

22
PAYMENT METHOD CODE:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class Payment extends JFrame implements ActionListener


{
JButton CONFIRM;
JPanel panel;
JList list;
JLabel label1,label2,label3,label4;
final JTextField text1;
String[] distance = { "300", "550", "1000"} ;
final JComboBox<String> d = new JComboBox<String>(distance);
String[] days = { "3", "7", "10"} ;
final JComboBox<String> da = new JComboBox<String>(days);
String[] pay = { "Credit card", "Debit Card", "UPI","Cash"} ;
final JComboBox<String> pm = new JComboBox<String>(pay);

Payment()
{
label1 = new JLabel();
label1.setText("Distance in kms");

label2 = new JLabel();


label2.setText("No of Days");

label3 = new JLabel();


label3.setText("Price");
text1 = new JTextField(5);

label4=new JLabel();
label4.setText("Payment Mode");

CONFIRM=new JButton("CONFIRM");

panel=new JPanel(new GridLayout(6,3));


panel.add(label1);
panel.add(d);
panel.add(label2);
panel.add(da);
panel.add(label3);
panel.add(text1);
panel.add(label4);
panel.add(pm);
23
panel.add(CONFIRM);
add(panel,BorderLayout.CENTER);
CONFIRM.addActionListener(this);
setTitle("Payment Details");
}

public void actionPerformed(ActionEvent ae)


{
String value1=text1.getText();

if (value1.equals(value1))
{
ThankYou n=new ThankYou();
Container c4=n.getContentPane();
c4.setLayout(new FlowLayout());
c4.setBackground(Color.YELLOW);
n.setSize(400,400);
n.setVisible(true);

}
else
{
System.out.println("Incorrect Input");
JOptionPane.showMessageDialog(this,"Incorrect Input",
"Error",JOptionPane.ERROR_MESSAGE);
}
}
}

class PaymentDetails
{
public static void main(String args[])
{
try
{
Payment p=new Payment();
Container c=p.getContentPane();
c.setLayout(new FlowLayout());
c.setBackground(Color.YELLOW);
p.setSize(400,400);
p.setVisible(true);
}
catch(Exception e)
{JOptionPane.showMessageDialog(null, e.getMessage());}
24
}
}

THANKYOU CODE:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class ThankYou extends JFrame
{
JPanel panel;
JLabel label1,label2;
ThankYou()
{

label1 = new JLabel();


label1.setText("YOUR CAR IS RESERVED");
label1.setVisible(true);
label2 = new JLabel();
label2.setText("HAPPY TRIP");

panel=new JPanel(new GridLayout(6,2));


panel.add(label1);
panel.add(label2);

add(panel,BorderLayout.CENTER);
setTitle("THANK YOU");

public static void main(String args[])


{
try
{
ThankYou n=new ThankYou();
Container c=n.getContentPane();
c.setLayout(new FlowLayout());
c.setBackground(Color.YELLOW);
n.setSize(400,400);
n.setVisible(true);
}
catch(Exception e)
{JOptionPane.showMessageDialog(null, e.getMessage());}
}
}

25
SCREENS

26
27
28
29
30
TESTING

INTRODUCTION:

Software testing methods are traditionally divided into white- and black-box testing. These two
approaches are used to describe the point of view that a test engineer takes when designing test
cases.

TESTING METHODS:

White Box Testing:

White box testing is when the tester has access to the internal data structures and algorithms
including the code that implement these.

Types of white box testing:

The following types of white box testing exist:

 API testing (application programming interface) - testing of the application using


public and private APIs
 Code coverage - creating tests to satisfy some criteria of code coverage (e.g., the
test designer can create tests to cause all statements in the program to be executed at
least once)

 Fault injection methods - improving the coverage of a test .

Grey Box Testing:

Grey box testing (American spelling: gray box testing) involves having knowledge of internal
data structures and algorithms for purposes of designing the test cases, but testing at the user, or

31
black-box level. Manipulating input data and formatting output do not qualify as grey box, because
the input and output are clearly outside of the "black-box" that we are calling the system under
test. This distinction is particularly important when conducting integration testing between two
modules of code written by two different developers, where only the interfaces are exposed for
test. However, modifying a data repository does qualify as grey box, as the user would not
normally be able to change the data outside of the system under test. Grey box testing may also
include reverse engineering to determine, for instance, boundary values or error messages.

Testing levels:

Tests are frequently grouped by where they are added in the software development process, or by
the level of specificity of the test.

1. Unit Testing- Unit testing refers to tests that verify the functionality of a specific
section of code, usually at the function level. In an object-oriented environment, this
is usually at the class level, and the minimal unit tests include the constructors and
destructors These type of tests are usually written by developers as they work on code
(white-box style), to ensure that the specific function is working as expected. One
function might have multiple tests, to catch corner cases or other branches in the code.
Unit testing alone cannot verify the functionality of a piece of software, but rather is
used to assure that the building blocks the software uses work independently of each
other .Unit testing is also called component testing.

2. Integration Testing- Integration testing is any type of software testing that seeks
to verify the interfaces between components against a software design. Software
components may be integrated in an iterative way or all together ("big bang").
Normally the former is considered a better practice since it allows interface issues to
be localised more quickly and fixed. Integration testing works to expose defects in
the interfaces and interaction between integrated components (modules).
Progressively larger groups of tested software components corresponding to elements

32
of the architectural design are integrated and tested until the software works as a
system.

3. System Testing - System testing tests a completely integrated system to verify


that it meets its requirement.

4. System Integration Testing- System integration testing verifies that a system


is integrated to any external or third party systems defined in the system
requirements.

5. Regression Testing- Regression testing focuses on finding defects after a major


code change has occurred. Specifically, it seeks to uncover software regressions, or old
bugs that have come back. Such regressions occur whenever software functionality that
was previously working correctly stops working as intended. Typically, regressions occur
as an unintended consequence of program changes, when the newly developed part of the
software collides with the previously existing code. Common methods of regression
testing include re-running previously run tests and checking whether previously fixed
faults have re-emerged. The depth of testing depends on the phase in the release process
and the risk of the added features. They can either be complete, for changes added late in
the release or deemed to be risky, to very shallow, consisting of positive tests on each
feature, if the changes are early in the release or deemed to be of low risk

6.Acceptance Testing - Acceptance testing can mean one of two things:

 A smoke test is used as an acceptance test prior to introducing a new build to the
main testing process, i.e. before integration or regression.

 Acceptance testing performed by the customer, often in their lab environment on


their own hardware, is known as user acceptance testing (UAT). Acceptance testing
may be performed as part of the hand-off process between any two phases of
development.

33
7. Alpha Testing- Alpha testing is simulated or actual operational testing by
potential users/customers or an independent test team at the developers' site. Alpha
testing is often employed for off-the-shelf software as a form of internal acceptance
testing, before the software goes to beta testing.

8. Beta Testing - Beta testing comes after alpha testing. Versions of the software,
known as beta versions, are released to a limited audience outside of the programming
team. The software is released to groups of people so that further testing can ensure
the product has few faults or bugs. Sometimes, beta versions are made available to the
open public to increase the feedback field to a maximal number of future users

9. Non-Functional Testing - Special methods exist to test non-functional aspects


of software. In contrast to functional testing, which establishes the correct operation of
the software (correct in that it matches the expected behaviour defined in the design
requirements), non-functional testing verifies that the software functions properly even
when it receives invalid or unexpected inputs. Software fault injection, in the form of
fuzzing, is an example of non-functional testing. Non-functional testing, especially for
software, is designed to establish whether the device under test can tolerate invalid or
unexpected inputs, thereby establishing the robustness of input validation routines as
well as error-handling routines. Various commercial non-functional testing tools are
linked from the software fault injection page; there are also numerous open-source and
free software tools available that perform non-functional testing.

10. Software Performance Testing and Load Testing - Performance testing


is executed to determine how fast a system or sub-system performs under a particular
workload. It can also serve to validate and verify other quality attributes of the system,
such as scalability, reliability and resource usage. Load testing is primarily concerned
with testing that can continue to operate under a specific load, whether that be large
quantities of data or a large number of users. This is generally referred to as software
scalability. The related load testing activity of when performed as a non-functional

34
activity is often referred to as endurance testing.Volume testing is a way to test
functionality. Stress testing is a way to test reliability. Load testing is a way to test
performance.

There is little agreement on what the specific goals of load testing are. The terms load
testing, performance testing, reliability testing, and volume testing, are often used
interchangeably.

11. Stability Testing - Stability testing checks to see if the software can
continuously function well in or above an acceptable period. This activity of non-functional
software testing is often referred to as load (or endurance) testing.

12. Usability Testing- Usability testing is needed to check if the user interface is easy
to use and understand.

13. Security Testing -Security testing is essential for software that processes
confidential data to prevent system intrusion by hackers.

35
BIBILIOGRAPHY
Books
Software Engineering and Project Management
AUTHOR: Pankaj Jalote
Site Address
1. www.academia.edu
2. www.code-projects.org
3. www.softwareengineeringdaily.

36

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy