Chapter 1 INTRODUCTION Background of the Study Parking in big parking lot can be very challenging and effortful. Even when an indication is provided that a small percentage of slots is still available in the enormous car parks, most drivers do not seem to be able to locate those slots. Car Parking Slot Allocation System is a system that automates the searching and guides drivers on which location is their chosen slot located in the parking area. The system is designed to prevent problems usually associated with parking cars in a certain parking lot. How does it work?
When a car is waiting at the entrance, the operator will give the driver the slot card number indicating where to park in the area. This will avoid time delay if there are any cars waiting in the entrance waiting for their turn. How does the system know which parking slot to allocate? The group created a simulation of a parking lot which composed of two separate parking areas – Parking Area A and Parking Area B, and thus each area is consisting of 40 parking slots. Because there are two parking areas in the parking lot, both of this areas will be applied using Allocation Algorithm.
The application of Allocation algorithm in these areas will only allocate the vacant or available slots. Those slots that are not vacant or already occupied will not be allocated anymore and this will be ignored by the system. The purpose of this project is to simulate and implement a real parking lot environment that allocate vacant parking slots using Allocation algorithm. As computer science students, the used and application of algorithm is the most important foundation of the field of Computer Science. Through this algorithm, this will tell the computer to do the task in the most efficient manner.

Hence, by applying Allocation algorithm in the group’s study, an effective and efficient solution in the problems of allocating parking slots will be easily located by the system because of the application of algorithm. In addition, an algorithm is a solution of a problem by a finite sequence of instructions each of which can be performed by a machine. Every computer program is essentially a set of instructions placed in a systematic fashion, that when executed, produce a desired result. The advantages covered in this system will be user interaction, ease f use, and effectiveness in demonstrating Allocation algorithm to those who don’t know much about it. Furthermore, the group hope that through this project, they can improve technological improvement to the car parking establishment in making an efficient and systematic car parking. Statement of the Problem The researchers envision solving the problems by answering the following questions: 1. How does the application of Allocation algorithm will be implemented in the Car Parking Slot Allocation System? 2. How will Allocation algorithm allocate or search vacant slots? 3. Will Allocation algorithm allocate occupied slots? 4.
How does the system know which parking slot to allocate? 5. How to simulate the parking areas consisting of 80 slots that applies Allocation algorithm? Objectives of the Study The primary objectives of this study are the following: 1. 2. To implement the application of Allocation algorithm in allocating and searching for vacant or available parking slot. 3. To create and design a sample parking lot that demonstrate the simulation and use of Allocation algorithm. 4. To test and prove that the used of Allocation algorithm in the simulation of the parking areas will be functional, applicable and appropriate. Significance of the Study
This study will be implemented and expected to give good effects and will be beneficial to the following: For the Operators, this study is significant to the Operators because this will provide a valuable guide to the advantages and disadvantages of the car parking operations. For the Car Drivers, this project easily Helps the car drivers in finding parking slot quickly with no trouble. The system helps to cut down the amount of searching time that drivers spend on looking for an available parking slot. Therefore, through this project, it will save their time by providing instant space availability information and frustration levels.
For the Students, they would be able to use this data for them to get the ideas and references if they are planning to conduct the same study. This study could inspire interested students to make their own project or improve and innovate on our project. This helps them enhance their skills and potential in their field of specialization. For the Future Researchers, this project will benefit other group of researchers who wish to undertake similar studies as they can get more background information from the result of the study, which can serve as a basis to modify or improve their own research.
For the Proponents, conduting this study is significant to the proponents because it can add knowledge in their field as a computer science student. It also enables them to research more about programming languages and various algorithms which is very essential in their course. Through this study, this also adds significant knowledge and experience to the proponents’ capabilities of making a simulation system. Scope and Delimitation There is no hardware required in the system, the group limit its study on the algorithm used together with the simulation of the parking lot.
The group used Allocation algorithm in conducting the study to emphasize the use and its function in the implementation of the system. The group created a simulation of the parking lot so as to indicate the result of the algorithm. In the simulation, a car will run to locate the slot that has been selected. Once the car reaches the correct slot, it will stop and the animation ends there. The purpose of the simulation is to guide the driver to the slot where it is located. The group colored the vacant slots with color white, while the slots that are already occupied are colored with color red.
Also in this study, the group included other features which is beneficial in the system such as generation of reports – specifically list of cars report and income report, and the parking payment system. The parking payment system will calculate the total payment of the driver during its parking period. Other than that, this study will not describe problems regarding human decision making or behavior issues. Like, if the driver will park on the wrong slot of fail to follow the operator had recommended, the system will identify the slot that the driver has chosen to be occupied and that the rong slot which the driver had wrongly parked will be noticed as available in the system. Problems like this will arouse conflicts in the parking lot. The solution of this matter will depend on the behavior of the driver. Another consideration in this study is that, if the parking area provides 5 slots, 5 cars can be parked in the area. When the driver forgets to remember where he parked his car in an area, the operator will ask for the plate number of the car and then the system will identify where slot the car was parked. The driver is also able chose whether to follow recommendations provided by the operator of the system or not.
The driver is still able to choose any slot he/she likes. This study is also not about creating new parking slots. Once a parking lot is fully loaded, the parking problem remains. There are other solutions to solve that problem, but they are outside the scope of this study. Definitions of Terms Algorithm. It is the central concept of Computer Science. Formally, an algorithm is defined as a well-ordered collection of unambiguous and effectively computable operations that, when executed, produces a result in a finite amount of time. Algorithms are intended to solve computational problems.
Allocation Algorithm. It is an algorithm that will only allocate slots which are vacant or available. Allocated Slot. A slot is called allocated when there is no car parked at the slot, but the system is guiding a car to that specific slot. Cars. This refers to those designed to run primarily on roads, typically have four wheels and is construct principally for the transportation of people. Entrance. It is a location in the parking lot where cars can enter in the parking lot. Exit. It is a location in the parking lot where cars can exit or leave in the parking lot.
Full. A parking lot is called full or filled, if all the slots are occupied. This means that no slot is vacant. Gray-box Testing. The gray-box testing is a combination of black-box and white-box testing. The intention of this testing is to find out the defects related to bad design or bad implementation of the system. Microsoft Access. It is the database application from the Microsoft Office Suite of applications. Usually abbreviated as MS Access. It is an easy-to-use program for creating and maintaining databases. Microsoft Visual Basic 6. It is the third generation ve-driven programming language and integrated environment (IDE) from Microsoft for its COM programming model. Visual Basic is also considered a relatively easy to learn and use programming language, because of its graphical development features and BASIC heritage. Occupied slot. A slot is called occupied if and only if a car is parked on the slot. Parking. It is the act of stopping a vehicle and leaving it unoccupied for more than a brief time. Parking Lot. It is a building or area that contains slots where cars can be parked. A parking lot has at least one entrance and exit. Simulation.
It is the imitation of some real thing available, state of affairs, or process. The act of simulating something generally entails representing certain key characteristics or behaviors of a selected physical or abstract system. Slot. A certain amount of space in a car park, often surrounded by white stripes, that can hold exactly one car. System. It is a collection of elements or components that are organized for a common purpose. Vacant Slot. A slot is called vacant when there is no car parked on the slot, and the system is not guiding any car to this slot at the moment. Chapter 2 REVIEW OF RELATED LITERATURE AND STUDIES
Apparently, this problem is not very new. Siemens already wrote about it in the early 90’s and they were already thinking about solutions back than. Concrete results where not found at that time though. Toyota (a car manufacturer from Japan) started developing Parking Guidance and Information (PGI) systems in 1995. It looks like there isn’t much guidance though. The users seem to guide themselves, after receiving information about parking intensity around the city. Initiatives like this also arose in other countries but they only indicate an approximation of the number of vacant slot per car park.
Related Literature iSpot One of the initiatives out there is iSpot, also referred to as iPark. The creators, four students from Boston University, call it a vision based awareness system. The project identified the exact same problem and tried to find a solution for it. Though the system uses digital cameras to detect whether slots are vacant or not, it does offer single space monitoring as well as parking slot reservation. Parking slot reservation can be compared with the user preference for certain slots.
The information about which slot is vacant and which one isn’t is communicated to the user at the entrance using an image of the car park, so the user can choose one of the vacant slots and drive there. Though their system has quite some overlap with the group’s system, there are some problems which are not addressed. First of all, the system uses digital cameras in combination with license plate extraction to detect whether certain slots are occupied, and to keep track of the cars. Though this might sound promising on paper, an initiative like this could get quite some resistance from organizations which are fighting for privacy.
Another problem which is not addressed is the chaos of the crowd. Everybody sees which slots are vacant, but the system does not assign specific cars to specific slots. This could lead to a situation where car A sees a vacant slot on the screen at the entrance, and decides to go there. Car B sees the same vacant slot, because car A did not yet reach that slot, and also decides to choose that one. When car B arrives at the slot, he sees that car A already parked there. Car B is now lost in the big car park and the only way to find himself a vacant slot it to search for it himself in the old fashioned way.
This could not only happen for two cars, but as long as the first car did not reach the slot. All but the first of those cars will end up unsatisfied. If this keeps happening, the original problem isn’t really solved at all. Cars drive to slots which turn out to be occupied when they arrive. IrisNET Another interesting project is called IrisNET from Intel. The project doesn’t have much to do with the group’s problem but defines a platform that connects cheap sensor-nodes, to the monitor. To speed up the acceptance of this platform, Intel created a couple of demo implementations.
One of those demo implementations is called the Parking spot Finder. Webcam information from a large network of webcams, can be used for a higher goal, if combined. Feeds from webcams all over a car park, or as Intel states it, all over the city, can be combined to gather information about vacancy of parking slots. What does the demonstration look like? Cheap webcams are pointed to parking slots, or small groups of parking slots. Computers near these webcams can process the information, and determine whether certain parking slots are vacant or not.
This information can be fed to the network. Central computers gather all this information via IrisNET and combine it to make a list or vacant parking slots. This list can then be offered to other services, like Yahoo maps, for example. People could see the vacant slots on their car navigation system using existing technology. It’s just a matter of connecting the services via IrisNET. It seems like a complete system, even for a demo implementation. It is not clear whether the problem of guiding multiple cars to the same spot or how to keep a reservation, was solved.
Knowing the fact that this is just a demonstration of IrisNET, could mean that the system does not provide these extras. We can conclude that this Parking spot Finder is a great source of inspiration, but not a solution for the parking problem as stated in the previous chapter. EzPARK EzPARK is the name of a company as well as the product they are developing. The mission statement of EzPARK is the following: “EzPARK is a low-cost, wireless parking lot infrastructure that enables the customers to see the empty spaces at the entrance, and leads them to their vehicles on their way back”.
This system seems to satisfy quite some of our requirements. EzPARK does what iSpot does, and on top of that, also leads customers back to their vehicles. Apart from that, the system also gives a hint to the driver, where to park the car, which is a form of guiding him. So if all the cars park where they are told to park, the system would work like the one we want. Unfortunately, that is a significant assumption. Apart from this, it is unclear how the system decides which slot to hint. How does EzPARK solve the problem? When the user enters the car park, he receives 2 RFID tokens and a hint where to park.
One of the RFID tokens would be left in the car, to identify the car, and the other one would identity the user itself. The system can associate the two when the user returns for its car. The RFID tag in his car is also used to register whether a parking spot is occupied or not. Combining the availability information of all spots can result in a hint for a new visitor. The entire car park will have to be filled with RFID readers, which communicate to each other wireless so all the information of the slot states can be centralized. These wireless units, so called MOTEs, are prefabbed sensor nodes.
Apart from the fact that there is no actual guidance during the driving through the car park, this seems to be a very good product to solve the original problem. But the problem remains, what if driver D decides to park on the same spot as driver E, driving in front of him. Driver E would have to go all the way back to the entrance to find a new parking slot, or he could solve it the old fashioned way. And why would the system prefer one spot over another when giving a hint? Related Studies The Urban Parking Finder is another project, done by a small group of students. They tried to find the closest parking spot in an urban setting.
Though their report doesn’t describe how to measure whether a spot is vacant or not, their simulation works like you would expect. They made a bunch of virtual streets with cars parked all over the place, and some vacant slots. A car could drive around within the streets and whenever the user is interested in a parking slot, he can press a button and the system calculates the closest parking slot, as well as the shortest path to that slot, and gives directions to the user to guide him. This solution only solves a small part of our problem but interestingly enough, a part that was not mentioned in the other initiatives.
The students don’t describe how exactly they calculate the closest parking slot, but it probably looks very much like the “close to the exit” allocation algorithm. The Parking Space Optimization Service from the University of Zurich describe an e- Parking model where not only the driver and parking lots communicate with the system, but also events and businesses in the neighborhood, payment services etc. The system also takes care of reservations. Cars can identify themselves using Bluetooth when they enter or leave the car park. The payment is made automatically when the car leaves the car park.
Please note that this system might seem brilliant on paper, the future seems to be far from a living implementation of such a system. Every user should have a properly configured Bluetooth device in his car. Another identification method could be used to solve this though. Apart from the identification issue, the paper does not mention any active guidance. The Parking Meter Supervision System describes an urban non-free parking system. This might not be the kind of system we are looking for, but this is a system that was actually tested in a Japanese city and the results are very promising.
The system displays vacant parking spot information around the city so drivers can spend less time searching for a free slot. Without the system 14. 1 cars parked on a slot each day on average. After introducing the system, this increased to 15. 9 cars on a slot on average. These figures show the need for a parking guidance systems, though the problem might be slightly bigger in urban areas. The Assessment of Parking Search using Sensor tries to solve the problem a little differently. Sensors are placed within the vehicles. These vehicles gather information while they drive.
Vacant slots can be located this way. The information including a location is wirelessly transmitted to other cars within a certain range. These cars retransmit the information to the cars they “meet”, and so on. If one driver is looking for a vacant slot, he/she will be informed of the existence of that slot by a passing car. All the information expires, so it doesn’t leave the surrounding area of the parking slot. Thought this initiative might not directly solve our problem, the approach of the problem is original and worth mentioning. The system was simulated but never built.
The IcanPARK is a remote management system for all types of car parks. Each slot is equipped with a little sonar system which determines whether a car is parked on that slot. Signs inform the driver where to find the nearest vacant slot. The entire system can be monitored by an operator, who can check the car park status, make reservations or close certain areas for maintenance. The allocation problem is not addressed in this project. Last but not least, the group found out about Sipark. Sipark is the world’s largest Parking Guidance System is in the making at Munich Airport, developed by Siemens.
This system monitors each individual parking slot using ultrasound sensors and guides cars to vacant slot using this information. The guiding is done by hundreds of LED displays all over the car park. The solution also includes zone and aisle counting. This means that any vehicles still en route to a parking space are also acquired by the system which avoids guiding too many drivers into a sector that only contained a few unoccupied spaces when the car entered the car park. Chapter 3 METHODOLOGY Method Used
The researchers’ primary methods in gathering information are through internet research, consultations, and observation and surveys. With these methods, the group is able to gather data on the behavior, practices, opinions, interests and perceptions of the drivers and parking establishment owners and even the parking operator on the existing and the proposed system, and then such data is analyzed, organized and interpreted. The analysis and design which is very crucial in the whole development of the project will be drawn based on the actual data gathered and also with the inputs coming from the group’s IT Consultant.
Sources of Data The sources of data that the group used are the methods and techniques applied in gathering informatiion that will formalize the necessities in order to simplify details concerning the application of algorithm and simulation. However, the methods and techniques are not enough for the group, so they had also conducted a research on related literatures and existing studies with regards to the system. For that, related literatues and related studies contributed a lot because this leads them to give answers to some questions they had not understood.
On the other hand, the group did have constant discussions with their IT Consulatant and Adviser, in which they suggested their ideas to help the group understand the flow of the system. With this, all gathered facts and information were significantly used for the generation of the system. Procedure of the Study In conducting the study, the group had a discussion on the matter with regards to the development of the car parking simulation system. The group initially identifies the objectives and aims of the study.
Then, the group looked for related literature to see whether there are any initiatives like this. Looking for related literatures and studies is the most important step because in doing any project, it gives information and details about a certain study. Next, the group discussed the information gathered from the methods used and from the brief discussion with IT experts, the group are able to recognized and understand the nature of the system to be built. From this, the group are able to identify the software and hardware requirements that will be used for this project.
After getting all of the information, the next step is the coding and designing of the simulation of the system which denotes the programming and database interaction. Afterwards, the last step is the integration of both algorithm of the system and then test whether the system achieve the goal or not and make an analysis of the project result. Requirements and Specifications For the research component of this project, access to the library’s resources and the Internet will be critical. More importantly, this project involves a significant coding component.
All coding for this project will be done in Visual Basic 6, and, where necessary, the group used the Adobe Shockwave Flash 8 as a tool to display the car parking simulation interaction. Access to a decent computer with Microsoft Visual Runtime Library and glut libraries installed will be essential. Microsoft Acces is used as the database of the system. No special hardware will be required. However, a faster computer (Pentium 500 or better) will help speed up the testing phases of the project, and a good graphics card 9GeForce or better) will ensure a smooth animation to see car parking simulator in operation.
Approaches and Algorithm The goal of the project is to implement a parking lot simulation system that simulates car parking operations which guide drivers to a vacant parking slot. The focus will be on applying Allocation algorithm on the system which will determine and allocate the vacant slots. Allocation algorithm is noted for its performance and accuracy, it enjoys widespread used and it is widely used in pathfinding and graph traversal, the process of plotting an effeciently traversable path between points, called nodes. Peter Hart, Nils Nillson and Bertram Raphael first described the algorithm in 1968.
Meaning, by applying this algorithm to the system, it will only allocate those slots which are vacant or available. Those slots which are already occupied will be unnoticed and will be ignored by the system. Though this algorithm will not be very sophisticated and not very complex, it just allocates vacant slots. The group finds that the application of Allocation algorithm is very interesting in the simulation of the system. In the development process, the group had used the top-down approach which play a key role in this project.
The top-down approach emphasize planning and a complete understanding of the system. Top-down approach is the process of breaking the overall procedure or task into component parts and then subdivide each component module until the lowest level of detail has been reached. It is called top-down approach since it starts “at the top” with a general problem and design specific solutions to its sub problems. Using this method, a complex problem is separated into simpler parts, which can be programmed easily. Software Design and Programming
In the software design and programming, the design is performed in a visualize and detailed manner, code generation of the system was accomplished without much complication. For this reason, the group used a high level programming language like the Microsoft Visual Basic 6. 0 for the coding and design of the system. With respect to the type of application, the right programming language is chosen essentially by the group for its graphical environment and ease of use. Implementation Besides the practical implementations of the system, the problem can also be used for theoretical purposes.
In both the practical and theoretical implementations the time it takes to solve the problem has been essential. In certain instances, it has been proven that in order to solve the problem (to an optimum) an excessive amount of time is required. For such instances we have come to rely on algorithms that sacrifice the quality of the solution in favour of reducing the solving time. Testing Procedure In the testing procedure, the group tested the performance of the system according to the program made. The group used the gray-box testing. The gray-box testing is combination of black-box and white-box testing.
The intention of this testing is to find out the defects related to bad design or bad implementation of the system. This means, every after coding and design of the system, application of gray-box testing takes place. The group designed test cases based upon their knowledge of the system. For example, the group consider a hypothetical case wherein they have to test the Allocation algorithm if it works as it was designed in the simulation of the parking lot. And after that by means of testing, it integrates as each feature is added in the system.
Since the project is a computer program, testing included debugging the code and running through the program to make sure that it did what it was intended. The group used the gray-box testing because it is non-intrusive, it is not biased, and it applies straight forward technique of testing. The group makes sure that the system will work properly and accurately, and that through the use of gray-box testing, it will minimize and eliminate any errors that will interrupt in the system. TimeLine ID| Task| Start| Finish| Duration| 1| Project Proposal| 6/20/2011| 6/24/2011| 4 days| | Project Title Approval| 6/27/2011| 6/29/2011| 2 days| 3| Planning ; Analysis| 7/1/2011| 7/9/2011| 8 days| 4| Initial Data Gathering| 7/11/2011| 7/29/2011| 18 days| 5| Data Modeling| 8/2/2011| 8/13/2011| 11 days| 6| Problem Modeling| 8/15/2011| 8/22/2011| 7 days| 7| Project Objectives| 8/17/2011| 8/27/2011| 10 days| 8| Document Analysis| 9/5/2011| 9/30/2011| 25 days| 9| Algorithm| 10/3/2011| 10/15/2011| 12 days| 10| Final Project Documentation| 10/13/2011| 10/20/2011| 7 days| 11| Project Defense| 10/22/2011| 10/22/2011| 1 day| 2| System Modeling ; Requirements| 11/7/2011| 11/19/2011| 12 days| 13| System Coding| 11/28/2011| 2/13/2012| 77 days| 14| Database Implementation| 12/5/2011| 1/30/2012| 53 days| 15| Animation| 12/12/2011| 2/4/2012| 54 days| 16| System Analysis ; Design| 1/16/2012| 2/13/2012| 28 days| 17| System Testing ; Finalization| 2/17/2012| 2/25/2012| 13 days| 18| Final Documentation| 2/13/2012| 2/25/2012| 12 days| 19| Project PPT Presentation| 2/23/2012| 2/26/2012| 3 days| 20| Final Defense| 2/28/2012| 2/28/2012| 1 day| Chapter 4 RESULTS AND DISCUSSIONS Results and Discussions
After the group studied and identified the objectives, problems and solutions, the function of the system, the programming language used and the current program it has, the implementation of Allocation algorithm takes place. At first, the group conducted several studies and researches on what approaches and algorithm were appropriate and compatible to the system to minimize the time of searching and allocating vacant slots. The group gathered all the necessary facts and came up to the use of one programming approach that has proven to be most productive, it is called the top-down approach.
The top-down approach is the process of breaking the overall procedure or task into component parts and then subdivide each component module until the lowest level of detail has been reached. It is called top-down approach since it starts “at the top” with a general problem and design specific solutions to its sub problems. Using this method, a complex problem is separated into simpler parts, which can be programmed easily. Then, after gathering information and applying the to-down approach, the group started to program and apply the algorithm that was planned to be used.
The program codes was initialized to integrate the simulation and the other features of the system that where also incorporated with the group’s objectives. In the simulation of the system, the group started by determining the number of slots and came up with 80 slots. The group divide this 80 slots into two, making it 40 slots per area. There are two areas, parking area A and Parking area B. Parking area A and Parking Area B both occupies the Allocation algorithm. Filled or occupied parking slot are colored with red, while the vacant or available parking slot are colored with white.
In the Parking Areas, both applies the Allocation algorithm where it only search and allocate the vacant slots. The slots which are not vacant will not be recognize because they are already occupied. For example, if parking slot 1A is already occupied, the slot will turned into red for indication that it is not anymore available. The system is responsible for choosing the parking slot available and will automatically print out the slot card number. If the driver is waiting in the parking lot, waiting for his turn to get inside, the operator will give the driver a printed slot card number so as to identify which area is the slot located.
The good thing here is that, it will lessen the time of waiting and avoid time delay. The designing and development of the simulation was also very crucial for this will be the basis of implementing the Allocation algorithm. In the simulation, the car will locate the slot that has been selected, this serves as a guidance to the driver in locating the selected slot. Apart from this, other features of the system where also implemented such features are the payment system and generation of reports. These features are also very important for this will be very beneficial to the operator and the owner of the parking lot establishment.
The calculation of payment is through the rate per minute. This will calculate the time of entry in the parking lot, the duration of parking in the parking area until the car leaves the area. With this, the generation of income report is conducted since it is incorporated with the payment. Another generation of report is the list of cars, this are the records of all the cars that had park in the parking lot. The operator could view and print these reports daily, weekly, monthly, annualy or any days the operator wants.
After implementing the simulation, the payment system and the generation of reports, the next thing the group implemented is the database of the system. The database is one of the most critical and sensitive part. The construction of the tables and the amount of data will either make or break the entire application. The database of the system is not quite large but the group make sure that the database will not be very complicated and complex. Upon database completion, technical and trial and error analysis were carried out by the group to remove glitches in the animation and also in the programming.
Thus, through further study, implementation, analysis, and a series of testing of the entire system the group was able to achieve its goals and objectives. Chapter 5 SUMMARY, CONCLUSIONS AND RECOMMENDATIONS Summary There are various concepts in computer science which can be compared when searching, allocating and choosing the right parking slot. This concept is through the algorithm used. The algorithm used in this study is the Allocation algorithm. This algorithm allocates the parking slot that are vacant or available. Parking slots that are occupied will be ignored and will not be allocated by the system.
The Allocation algorithm was initially analyzed, before implementing to the simulation system. A cost function is created to measure which of these algorithms would give better results under which circumstances. This cost function measured and calculate the efficiency and accuracy of the algorithm used, and so the different algorithm was compared under different situation. Differences are small but there is quite something to win over the old situation where no guidance were given. The implementation of the Allocation algorithm along with the simulation of the parking lot can mimic most legal car movements.
The simulation was created and tested and this seems to imitates the drivers preferences of choosing the parking slot and locate the slot directly. To summarize, the group implemented and tested the system succesfully, and met its desired goals and objectives of the project. Conclusions After a series of crucial programming and designing of the system, trial and error, and evaluating different allocation strategies, there are several conclusions to draw. The system met its desired expectations on the project.
The system can now search and allocate which slots are available and occupied using the Allocation algorithm. The other features of the system such as the payment system and generation of reports was also implemented and can now be easy to managed because the system administrates the reality of the actual car parking lot. The slot that is chosen by the driver will get occupied as soon as he enters the parking lot. However, the group did not find a method to prevent neglecting of recommendations or choices of the driver, or in cases when the driver forgets which slot was recommended to him.
In situations like this, whenever a driver might decide to neglect a recommendation or either his preferred choice of slot, this has a big influence on the system, but this is a matter of the driver’s behavior. Because there was no actual parking lot to run tests on, the group implemented a parking lot simulation. The animation is relatively simple but it depict every step in developing Allocation algorithm. Nonetheless, before the animation takes place, some conditions must be met. The animation was done by using the Adobe Shockwave Flash 8, showing a graphical representation of the parking lot that communicates with the system.
The simulation can model the most basic movements in a parking lot and the recommendation system can “real-time” adapt to new situations. The simulation is a tool to demonstrate the work of the different algorithms used by the group. Recommendations The system has many capabilities that the group did not include due to lack of time and budget of materials. Some of this is the printing of receipt of the payment system. The group would like to have the printer receipt but was too expensive. Along with that, the future researchers could also enhance the simulation of the system, like creating more slots and making more entrances and exits.
Also for future recommendations, there are many rooms for improvement to ensure the reliability and impeccability of the system. A potential approach of enhancing the system is to implement the security system such as image processing technique so that security and safety in the parking lot is rest assured. This could be very helpful since safety is very important nowadays. And thus, the group would like to recommend the application of image compression algorithm for this will be very effective in a way of capturing images from time to time. Aside from that, another recommendation for future researchers is the reservation system.
The reservation system does not take drivers preferences into account yet, but people or the drivers specifically could be able to make a reservation over the internet and this reservation could be linked to the licensed plate number of their car. So, these are just some of the recommendations that the group would like to commend on future reasearchers who are interested in making the study in a different manner. Chapter 6 BIBLIOGRAPHY Internet Sources: [1]Caldrera International Inc. (February 11, 2003) Allocation Algorithm. Retrieved, January 18, 2012. From www. osr507doc. sco. com/en/tools/ld_alloc. html web address. 2]G. P. Kegel (March 2009) The Parking Spot Finder. Retrieved, October 10, 2011. From www. alexandria. tue. nl/extra1/afstversl/wsk-i/kegel2009 web address. [3]Lou Tylee (1998) Learn Microsoft Visual Basic 6. 0. Retrieved, November 17, 2011. From www. thainguyen. edu. vn/Thanhvien/c2bachquangsc web address. [4]Ningyuan Chen (September 2011) Simple Parking Lot Management System. Retrieved, August 3, 2011. From www. publications. theseus. final/handle/134024 web address. [5]Ramdeo Anand (May 5, 2010) Gray-box Testing. Retrieved, February 15, 2012. From http://www. testinggeek. com/gray-box-testing web address. 6]Rochester Institute of Technology (December 6, 2001) Best-Fit Allocation Algorithm. Retrieved, January 5, 2012. From www. cs. rit. edu/~ark/lectures/gc/03_03_03. html web address. [7]Wikipedia – The Free Encyclopedia (March 2011) Allocation Algorithm. Retrieved, September 29, 2011. From http://en. wikipedia. org/wiki/Allocation_algorithm web address. [8]Wikipedia – The Free Encyclopedia (June 2011) Top-down Approach. Retrieved, January 10, 2012. From http://en. wikipedia. org/wiki/Top_down_approach web address. Chapter 7 APPENDICES Screen Shots Fig. 1: Main Form (Parking Area A) Fig. 2: Main Form (Parking Area B) Fig. : Login Form Fig. 4: Slot Card Form Fig. 5: Out Car Form Fig. 6: Payment Rate Form Fig. 7: Account Setting Form Fig. 8: Database Form Fig. 9: Logout Form REPORTS: Fig. 10: Car List Report Form Fig. 11: Income Report Form Source Code ModPark________________________________________________________________ Global CON As ADODB. Connection Public RSpark As ADODB. Recordset Sub main() Set CON = New ADODB. Connection CON. Open “Provider=Microsoft. JET. OLEDB. 4. 0;data source = ” ; App. Path ; “db. mdb;” ; “jet oledb:database password=ParkMe;” Load frmMain frmMain. Show vbModeless Load frmLogin frmLogin. Show vbModeless
End Sub frmMain________________________________________________________________ Dim x, y, z, s, ok As Integer Dim hold, m As String Private Sub cmdPlay_Click() On Error GoTo PlayERR If hold = “” Then Exit Sub If cmdPlay. Caption = “PLAY Animated Parking” Then cmdSearch. Enabled = False cmdPark. Enabled = False If Right(hold, 1) = “A” Then swf1. LoadMovie 0, App. Path ; “SWF” ; hold ; “. swf” ElseIf Right(hold, 1) = “B” Then swf2. LoadMovie 0, App. Path ; “SWF” ; hold ; “. swf” End If For s = 1 To 40 lblcar2(s). Enabled = False lblCar1(s). Enabled = False Next cmdPlay. Caption = “STOP Animated Parking”
ElseIf cmdPlay. Caption = “STOP Animated Parking” Then cmdSearch. Enabled = True cmdPark. Enabled = True If Right(hold, 1) = “A” Then swf1. LoadMovie 0, App. Path ; “SWF” ; ” . swf” ElseIf Right(hold, 1) = “B” Then swf2. LoadMovie 0, App. Path ; “SWF” ; ” . swf” End If For s = 1 To 40 lblcar2(s). Enabled = True lblCar1(s). Enabled = True Next cmdPlay. Caption = “PLAY Animated Parking” End If PlayERR: End Sub Private Sub Form_Unload(Cancel As Integer) If MsgBox(“Are you sure you want to exit? “, vbYesNo, “System Exit”) = vbYes Then Me. Enabled = False Load frmLogOut frmLogOut. Show vbModeless End If Cancel = 1
End Sub Private Sub lblCar1_Click(Index As Integer) For x = 1 To 40 If lblcar2(x). BackColor = vbYellow Then MsgBox “There is a selected slot in Parking Area B. Please deselect it first by double-clicking the yellow slot before continuing. “, _ vbOKOnly, “Parking Area B Error” Exit Sub End If Next If lblCar1(Index). BackColor <> vbRed Then lblCar1(Index). BackColor = vbYellow hold = Index & “A” ElseIf lblCar1(Index). BackColor = vbRed Then hold = “” End If x = Index nump = x For Index = 1 To 40 If Index <> x Then If lblCar1(Index). BackColor <> vbRed Then lblCar1(Index). BackColor = vbWhite End If End If
Next End Sub Private Sub lblcar2_Click(Index As Integer) For x = 1 To 40 If lblCar1(x). BackColor = vbYellow Then MsgBox “There is a selected slot in Parking Area A. Please deselect it first by double-clicking the yellow slot before continuing. “, _ vbOKOnly, “Parking Area A Error” Exit Sub End If Next If lblcar2(Index). BackColor <> vbRed Then lblcar2(Index). BackColor = vbYellow hold = Index & “B” ElseIf lblcar2(Index). BackColor = vbRed Then hold = “” End If x = Index nump = x For Index = 1 To 40 If Index <> x Then If lblcar2(Index). BackColor <> vbRed Then lblcar2(Index). BackColor = vbWhite End If
End If Next End Sub Private Sub lblcar2_DblClick(Index As Integer) If lblcar2(Index). BackColor = vbRed Then Load frmOut frmOut. lblout. Caption = lblcar2(Index). Caption frmOut. Show vbModeless Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblPark where SlotNo='” & lblcar2(Index). Caption & “‘”, CON, adOpenKeyset, adLockOptimistic With RSpark frmOut. txtPlate1. Text = Left(! PlateNo, 3) frmOut. txtPlate2. Text = Right(! PlateNo, 3) frmOut. lblTI = ! TimeIn End With Me. Enabled = False Exit Sub End If lblcar2(Index). BackColor = vbWhite hold = “” End Sub Private Sub lblCar1_DblClick(Index As Integer)
If lblCar1(Index). BackColor = vbRed Then Load frmOut frmOut. lblout. Caption = lblCar1(Index). Caption frmOut. Show vbModeless Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblPark where SlotNo='” & lblCar1(Index). Caption & “‘”, CON, adOpenKeyset, adLockOptimistic With RSpark frmOut. txtPlate1. Text = Left(! PlateNo, 3) frmOut. txtPlate2. Text = Right(! PlateNo, 3) frmOut. lblTI = ! TimeIn End With Me. Enabled = False Exit Sub End If lblcar2(Index). BackColor = vbWhite End Sub Private Sub mnuChange_Click() If user = “Operator” Then MsgBox “Permission denied! Please contact the Administrator. , vbInformation, “Administrator Only” Exit Sub End If Me. Enabled = False Load frmAccount frmAccount. Show vbModeless End Sub Private Sub mnuDB_Click() If user = “Operator” Then MsgBox “Permission denied! Please contact the Administrator. “, vbInformation, “Administrator Only” Exit Sub End If Me. Enabled = False Load frmDB frmDB. Show vbModeless frmDB. Height = 980 frmDB. Width = 7300 End Sub Private Sub mnuLogout_Click() Load frmLogin frmLogin. Show vbModeless End Sub Private Sub mnuExit_Click() Unload Me End Sub Private Sub mnuIncome_Click() Me. Enabled = False Load frmReport frmReport. Show vbModeless frmReport.
Caption = “Income Report” End Sub Private Sub mnuList_Click() Me. Enabled = False Load frmReport frmReport. Show vbModeless frmReport. Caption = “Car List Report” End Sub Private Sub mnuLost_Click() Me. Enabled = False Load frmOut frmOut. Show vbmdeless frmOut. txtPlate1. Enabled = True frmOut. txtPlate2. Enabled = True frmOut. cmdSLost. Enabled = True End Sub Private Sub mnuRate_Click() If user = “Operator” Then MsgBox “Permission denied! Please contact the Administrator. “, vbInformation, “Administrator Only” Exit Sub End If Me. Enabled = False Load frmRate frmRate. Show vbModeless End Sub Private Sub Timer1_Timer() blday. Caption = Format(Now, “dd mmmm yyyy”) lbltime. Caption = Format(Now, “hh:mm:ss AMPM”) End Sub Private Sub txtPlate1_Change() If Len(txtPlate1. Text) = 3 Then txtPlate2. SetFocus End If End Sub Private Sub txtPlate1_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyBack Then Exit Sub If KeyAscii ; vbKeyA Or KeyAscii ; vbKeyZ Then KeyAscii = 0 End If End Sub Private Sub txtPlate2_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyBack Then Exit Sub If KeyAscii ; vbKey0 Or KeyAscii ; vbKey9 Then KeyAscii = 0 End If End Sub Private Sub cmdPark_Click() If Len(txtPlate1. Text) ; 3 Or Len(txtPlate2.
Text) ; 3 Then Exit Sub Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblPark where PlateNo='” ; txtPlate1. Text ; “-” ; txtPlate2. Text ; “‘”, CON, adOpenKeyset, adLockPessimistic With RSpark If ! TimeOut = “-” Then MsgBox “The inputed plate number already exist. “, vbInformation, “Ops! ” Exit Sub End If End With ok = 0 For z = 1 To 40 If lblcar2(z). BackColor = vbYellow Or lblCar1(z). BackColor = vbYellow Then z = 40 ok = 1 End If Next If ok = 1 Then Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblPark”, CON, adOpenKeyset, adLockPessimistic With RSpark .AddNew Date = Format(Now, “dd mm yyyy”) !PlateNo = txtPlate1. Text ; “-” ; txtPlate2. Text ! TimeIn = Format(Now, “hh:mm ampm”) !TimeOut = “-” !SlotNo = hold !Amount = “0” .Update hold = “” End With Call DataPut Call Check txtPlate2. Text = “” txtPlate1. Text = “” lblS. Caption = “—” cmdSearch. Caption = “Search” txtPlate1. SetFocus End If End Sub Sub DataPut() lv1. ListItems. Clear lv2. ListItems. Clear Dim d, y, holdDate As Variant Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblPark where TimeOut='” ; “-” ; “‘”, CON, adOpenKeyset, adLockOptimistic With RSpark Do While Not .
EOF d = Left(! Date, 2) m = Mid(! Date, 4, 2) Call month y = Right(! Date, 4) holdDate = d ; ” ” ; m ; ” ” ; y If Right(! SlotNo, 1) = “A” Then Set k = lv1. ListItems. Add(, , holdDate) k. SubItems(1) = ! PlateNo k. SubItems(2) = ! TimeIn k. SubItems(3) = ! SlotNo ElseIf Right(! SlotNo, 1) = “B” Then Set k = lv2. ListItems. Add(, , holdDate) k. SubItems(1) = ! PlateNo k. SubItems(2) = ! TimeIn k. SubItems(3) = ! SlotNo End If .MoveNext Loop End With End Sub Sub month() Select Case m Case “01” m = “Jan” Case “02” m = “Feb” Case “03” m = “Mar” Case “04” m = “Apr” Case “05” m = “May”
Case “06” m = “Jun” Case “07” m = “Jul” Case “08” m = “Aug” Case “09” m = “Sep” Case “10” m = “Oct” Case “11” m = “Nov” Case “12” m = “Dec” End Select End Sub Sub Check() For x = 1 To 40 lblcar2(x). BackColor = vbWhite lblCar1(x). BackColor = vbWhite Next Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblPark”, CON, adOpenKeyset, adLockOptimistic If RSpark. RecordCount ; 0 Then Do While Not RSpark. EOF For x = 1 To 40 If lblcar2(x). Caption = RSpark! SlotNo Then lblcar2(x). BackColor = vbRed ElseIf lblCar1(x). Caption = RSpark! SlotNo Then lblCar1(x). BackColor = vbRed End If Next RSpark. MoveNext Loop
End If End Sub frmLogin_______________________________________________________________ Private Sub cmdExit_Click() If MsgBox(“Are you sure you want to exit? “, vbYesNo, “System Exit”) = vbYes Then Unload Me End Else Cancel = 1 End If End Sub Private Sub cmdGO_Click() Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblAccount”, CON, adOpenKeyset, adLockOptimistic If txtPass. Text = RSpark! Password And txtUser. Text = RSpark! UserName Then Unload Me frmMain. Enabled = True frmMain. Show vbModeless Else MsgBox “Incorrect Username or Password. Please try again! “, vbExclamation, “Login Error” txtPass. Text = “” xtUser. Text = “” txtUser. SetFocus End If End Sub Private Sub Form_Load() Me. Icon = LoadPicture(App. Path ; “ParkMe. ico”) imgLogin. Picture = LoadPicture(App. Path ; “GraphicLogIn. jpg”) Dim mByte() As Byte Open App. Path ; “Park. dat” For Binary As #1 Open “C:WINDOWSdb. mdb” For Binary As #2 ReDim mByte(0 To LOF(1)) Get #1, , mByte() Put #2, , mByte() Close #1 Close #2 End Sub frmSlotPrint___________________________________________________________ Private Sub Form_KeyPress(KeyAscii As Integer) lblEnter. Visible = False Dim f, w As Integer Me. PrintForm If KeyAscii = vbKeyReturn Or KeyAscii = 13 Then
If MsgBox(“Is there an approaching car? “, vbYesNo, “Parking Slot”) = vbYes Then If Right(lblSlot. Caption, 1) = “A” Then back1: nump = nump + 1 If nump = 41 Then nump = 1 End If If frmMain. lblCar1(nump). BackColor = vbRed Then w = 0 For f = 1 To 40 If frmMain. lblCar1(f). BackColor = vbRed Then w = w + 1 If w = 40 Then MsgBox “There are no more vacant parking slot! “, vbExclamation, “Parking Area A Error” Unload Me frmMain. Enabled = True frmMain. Show frmMain. txtPlate1. SetFocus Exit Sub End If End If Next GoTo back1 End If frmMain. lblCar1(nump). BackColor = vbYellow hold = nump & “A” ElseIf Right(lblSlot.
Caption, 1) = “B” Then back2: nump = nump + 1 If nump = 41 Then nump = 1 End If If frmMain. lblcar2(nump). BackColor = vbRed Then w = 0 For f = 1 To 40 If frmMain. lblCar1(f). BackColor = vbRed Then w = w + 1 If w = 40 Then MsgBox “There are no more vacant parking slot! “, vbExclamation, “Parking Area B Error” Unload Me frmMain. Enabled = True frmMain. Show frmMain. txtPlate1. SetFocus Exit Sub End If End If Next GoTo back2 End If frmMain. lblcar2(nump). BackColor = vbYellow hold = nump & “B” End If End If End If Me. Enabled = False Unload Me frmMain. Enabled = True frmMain. Show frmMain. txtPlate1. SetFocus End Sub rmOut_________________________________________________________________ Dim dumm, hold, hold1, hold2 As Single Dim hr, min As Variant Private Sub cmdCancel_Click() frmMain. Enabled = True Unload Me End Sub Private Sub cmdChange_Click() On Error GoTo Err txtAmount. Text = Format(txtAmount, “####0. 00”) txtChange. Text = Format(txtAmount – dumm, “####0. 00”) If Left(txtChange. Text, 1) = “-” Then txtChange. Text = Right(txtChange. Text, 5) MsgBox “The amount paid is not enough! The amount lack P” & txtChange. Text, vbExclamation, “Payment Error” txtChange. Text = “” End If Err: End Sub Private Sub cmdCompute_Click()
Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblRate”, CON, adOpenKeyset, adLockOptimistic If lblout. Caption = “—” Then Exit Sub lblTO. Caption = Format(Now, “hh:mm ampm”) hold1 = Left(lblTI. Caption, 2) * 60 hold1 = hold1 + Mid(lblTI. Caption, 4, 2) hold2 = Left(lblTO. Caption, 2) * 60 hold2 = hold2 + Mid(lblTO. Caption, 4, 2) If hold2 < hold1 Then hold2 = hold2 + 720 End If dumm = hold2 – hold1 If dumm > 60 Then hold = dumm / 60 hr = hold If Mid(hold, 2, 1) = “. ” Then hr = Left(hold, 1) ElseIf Mid(hold, 3, 1) = “. ” Then hr = Left(hold, 2) End If hold = hr * 60 min = dumm – hold lblTotal.
Caption = hr ; “hr/s and ” ; min ; “min/s” Else lblTotal. Caption = dumm ; ” min/s” End If dumm = Format(dumm, “####0. 00”) * RSpark! Rate lblPay. Caption = Format(dumm, “####0. 00”) End Sub Private Sub cmdOut_Click() If lblTI. Caption = “” Then MsgBox “No plate number was found! Please check the correct plate number again. “, vbExclamation, “Plate Number Error” Exit Sub End If If txtChange. Text = “” Then MsgBox “Please pay the parking payment first. “, vbInformation, “Payment Error” Exit Sub End If Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblPark where SlotNo='” ; lblout.
Caption ; “‘”, CON, adOpenKeyset, adLockOptimistic With RSpark !TimeOut = lblTO. Caption !SlotNo = lblout. Caption ; “. ” !TimePark = lblTotal. Caption !Amount = lblPay. Caption .Update End With frmMain. lblS. Caption = “—” frmMain. cmdSearch. Caption = “Search” frmMain. Enabled = True Call frmMain. DataPut Call frmMain. Check frmMain. Show Unload Me End Sub Private Sub cmdSLost_Click() Dim dum As String dum = txtPlate1. Text ; “-” ; txtPlate2. Text Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblPark where PlateNo='” ; dum ; “‘”, CON, adOpenKeyset, adLockOptimistic With RSpark lblout.
Caption = ! SlotNo lblTI. Caption = ! TimeIn End With If lblout. Caption = “” Or Right(lblout. Caption, 1) = “. ” Then lblout. Caption = “—” lblTI. Caption = “” MsgBox “Please type the plate number and click the Search button to out the car. “, vbExclamation, “Out Car Error” End If End Sub Private Sub Form_Load() Me. Icon = LoadPicture(App. Path ; “ParkMe. ico”) imgOut. Picture = LoadPicture(App. Path ; “GraphicLogIn. jpg”) End Sub Private Sub txtAmount_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyBack Or KeyAscii = 46 Then Exit Sub If KeyAscii ; vbKey0 Or KeyAscii ; vbKey9 Then KeyAscii = 0 End If End Sub
Private Sub txtPlate1_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyBack Then Exit Sub If KeyAscii ; vbKeyA Or KeyAscii ; vbKeyZ Then KeyAscii = 0 End If End Sub Private Sub txtPlate2_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyBack Then Exit Sub If KeyAscii ; vbKey0 Or KeyAscii ; vbKey9 Then KeyAscii = 0 End If End Sub frmRate________________________________________________________________ Private Sub cmdCancel_Click() frmMain. Enabled = True Unload Me End Sub Private Sub cmdSave_Click() Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblAccount”, CON, adOpenKeyset, adLockOptimistic If txtRate.
Text = RSpark! Password Then Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblRate”, CON, adOpenKeyset, adLockOptimistic RSpark! Rate = txtNew. Text RSpark. Update MsgBox “Your new rate is ” ; txtNew. Text, “. “, vbInformation, “Rate Status” frmMain. Enabled = True frmMain. Show Unload Me Exit Sub End If MsgBox “Incorrect Password! Please enter the correct password again. “, vbExclamation, “Password Error” txtRate. Text = “” txtRate. SetFocus End Sub Private Sub Form_Load() Me. Icon = LoadPicture(App. Path ; “ParkMe. ico”) imgRate. Picture = LoadPicture(App. Path ; “GraphicLogIn. pg”) Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblRate”, CON, adOpenKeyset, adLockOptimistic txtCurrent. Text = RSpark! Rate End Sub frmDB__________________________________________________________________ Dim x As Integer Private Sub cmdClear_Click() x = 0 lblDB. Caption = “” If MsgBox(“Warning! All data will be permanently deleted. Are you sure you want to continue? “, vbYesNo, “Data Removal”) = vbYes Then Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblPark”, CON, adOpenKeyset, adLockOptimistic If RSpark. RecordCount ; 0 Then Do While Not RSpark. EOF RSpark. Delete adAffectCurrent
RSpark. Update RSpark. MoveNext Loop x = 0 lblDB. Caption = “” Call loadDB Call frmMain. DataPut Call frmMain. Check End If Else Cancel = 1 End If End Sub Private Sub cmdConfirm_Click() Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblAccount”, CON, adOpenKeyset, adLockOptimistic If txtPass. Text = RSpark! Password And txtUser. Text = RSpark! UserName Then Me. Height = 9150 Me. Width = 7530 cmdConfirm. Visible = False txtUser. Enabled = False txtPass. Enabled = False Call loadDB Else MsgBox ” Incorrect username or password. Please try again! “, vbExclamation, “Administrator” txtPass. Text = “” txtUser. Text = “” xtUser. SetFocus End If End Sub Sub loadDB() ListView1. ListItems. Clear Set RSpark = New ADODB. Recordset RSpark. Open “select * from tblPark”, CON, adOpenKeyset, adLockOptimistic With RSpark Do While Not . EOF Set k = ListView1. ListItems. Add(, , ! Date) k. SubItems(1) = ! PlateNo k. SubItems(2) = ! TimeIn k. SubItems(3) = ! TimeOut k. SubItems(4) = ! SlotNo .MoveNext Loop End With End Sub Private Sub cmdDelete_Click() If x = 0 Then Exit Sub Dim d As Integer d = 1 If MsgBox(“Warning! Are you sure you want to delete this data? “, vbYesNo, “Data Removal”) = vbYes Then Set RSpark = New ADODB. Recordset
RSpark. Open “select * from tblPark”, CON, adOpenKeyset, adLockOptimistic If RSpark. RecordCount ; 0 Then Do While Not RSpark. EOF If x = d Then RSpark. Delete adAffectCurrent RSpark. Update x = 0 lblDB. Caption = “” End If d = d + 1 RSpark. MoveNext Loop End If Call loadDB Call frmMain. DataPut Call frmMain. Check Else Cancel = 1 End If End Sub Private Sub Form_Load() Me. Icon = LoadPicture(App. Path ; “ParkMe. ico”) x = 0 End Sub Private Sub Form_Unload(Cancel As Integer) Unload Me frmMain. Enabled = True frmMain. Show vbModeless End Sub Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib. ListItem) x = ListView1.
SelectedItem. Index lblDB. Caption = “Database line ” ; x End Sub frmReport______________________________________________________________ Dim RStemp As ADODB. Recordset Dim CRrep As CRAXDRT. Report Dim CRapp As CRAXDRT. Application Dim sel1, sel2, hold, mn, dy, yr As String Dim d, d1, d2, m, m1, m2, y, y1, y2, fin As Variant Dim pay As Single Private Sub cmdView_Click() On Error GoTo Err If lblMV1. Caption = “” Or lblMV2. Caption = “” Then MsgBox “Please select the appropriate date of report you want to display. “, vbInformation, “Report Advisory” Exit Sub ElseIf m1 ; m2 And y1 = y2 Or y1 ; y2 Or m1 = m2 And y1 = y2
And d1 ; d2 Then MsgBox “Invalid date range! Please select the appropriate range of date. “, vbExclamation, “Report Advisory” Exit Sub End If lblLoad. Caption = “>> Loading……. ” Screen. MousePointer = vbHourglass Set RStemp = New ADODB. Recordset RStemp. Open “select * from tblTemp”, CON, adOpenKeyset, adLockOptimistic If RStemp. RecordCount ; 0 Then Do While Not RStemp. EOF RStemp. Delete adAffectCurrent RStemp. Update RStemp. MoveNext Loop End If If Me. Caption = “Car List Report” Then Set CRrep = CRapp. OpenReport(App. Path ; “CarList. rpt”) ElseIf Me. Caption = “Income Report” Then Set CRrep = CRapp.
OpenReport(App. Path ; “Income. rpt”) End If Set RSpark = New ADODB. Recordset Set RStemp = New ADODB. Recordset RSpark. Open “select * from tblPark”, CON, adOpenKeyset, adLockOptimistic RStemp. Open “select * from tblTemp”, CON, adOpenKeyset, adLockOptimistic pay = 0 pay = Format(pay, “#####0. 00″) Do While Not RSpark. EOF d = Left(RSpark! Date, 2) m = Mid(RSpark! Date, 4, 2) y = Right(rsparkDate, 4) If y1 = y2 Then If m1 = m2 And d = d1 And d = d2 And m = m1 And m = m2 Or _ m1 = m2 And m = m1 And m = m2 And d1 ;; d2 And d ;= d1 And d ;= d2 Or _ m1 ;; m2 And m = m1 And d ;= d1 Or _ 1 ;; m2 And m ; m1 And m ; m2 Or _ m1 ;; m2 And m = m2 And d ;= d2 And y = y1 Then RStemp. AddNew dy = Left(RSpark! Date, 2) mn = Mid(RSpark! Date, 4, 2) Call month yr = Right(RSpark! Date, 4) hold = dy ; ” ” ; mn ; ” ” ; yr RStemp! Date = hold RStemp! PlateNo = RSpark! PlateNo RStemp! TimeIn = RSpark! TimeIn RStemp! TimeOut = RSpark! TimeOut RStemp! SlotNo = RSpark! SlotNo RStemp! TimePark = RSpark! TimePark RStemp! Amount = RSpark! Amount RStemp. Update pay = pay + RSpark! Amount End If ElseIf y1 ; y2 Then If m1 ;; m2 And m = m1 And d ;= d1 Or _ 1 ;; m2 And m ; m1 Or _ m1 ;; m2 And m1 ; m And m ; m2 Or _ m1 ;; m2 And m = m2 And d ;= d2 Or _ m1 = m2 And m = m1 And d ;= d1 Or _ m1 = m2 And m ; m1 Or _ m1 = m2 And m ; m2 Or _ m1 = m2 And m = m2 And d ;= d2 And y ; y1 Then RStemp. AddNew dy = Left(RSpark! Date, 2) mn = Mid(RSpark! Date, 4, 2) Call month yr = Right(RSpark! Date, 4) hold = dy ; ” ” ; mn ; ” ” ; yr RStemp! Date = hold RStemp! PlateNo = RSpark! PlateNo RStemp! TimeIn = RSpark! TimeIn RStemp! TimeOut = RSpark! TimeOut RStemp! SlotNo = RSpark! SlotNo RStemp! TimePark = RSpark! TimePark
RStemp! Amount = RSpark! Amount RStemp. Update pay = pay + RSpark! Amount End If End If RSpark. MoveNext Loop fin = Format(pay, “#####0. 00”) If Me. Caption = “Income Report” Then CRrep. Sections(4). ReportObjects(“crtxtTotal”). SetText fin End If If lblMV1. Caption = lblMV2. Caption Then fin = lblMV1. Caption Else fin = lblMV1. Caption ; ” – ” ; lblMV2. Caption End If CRrep. Sections(1). ReportObjects(“crtxtDate”). SetText fin CRrep. Database. Tables(1). SetDataSource RStemp Screen. MousePointer = vbHourglass CRViewer91. ReportSource = CRrep CRViewer91. ViewReport Screen. MousePointer = vbDefault lblLoad.
Caption = “” Err: End Sub Sub month() Select Case mn Case “01” mn = “Jan” Case “02” mn = “Feb” Case “03” mn = “Mar” Case “04” mn = “Apr” Case “05” mn = “May” Case “06” mn = “Jun” Case “07” mn = “Jul” Case “08” mn = “Aug” Case “09” mn = “Sep” Case “10” mn = “Oct” Case “11” mn = “Nov” Case “12” mn = “Dec” End Select End Sub Private Sub Form_Load() Me. Icon = LoadPicture(App. Path ; “ParkMe. i

Published by
Medical
View all posts