Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PROJECT REPORT
ON
Submitted By
CERTFICATE
Submitted By
SANTOSH MESHRAM
2
Acknowledgement
We are very happy for submitting the project report on Cyber Cafe
Management System. Completing a task is never a one-man effort. It is always a
result of invaluable contribution of a number of individuals in a direct or indirect
manner. The successful culmination of our efforts reminds us of our debtless towards
our venerated guide Prof. G.M.VAIDYA SIR for his valuable guidance and thought
provoking encouragement throughout the project. He has given his valuable advice in
the hour of need and provided the requisite facilities for the completion of the project
work. We are also grateful to Prof.. R.K.LOHE SIR Program Co-coordinator of
Y.C.M.O.U study center NYSS Nagpur, for their valuable advises and facilities
provided by them, which paved the way of successful completion of this project. We
take this opportunity to express our sincere thanks to Prof. G.M.VAIDYA SIR for
providing us with required laboratory facilities and cooperation offered to us from time
to time. Last but not least we salute with regard and esteem to all our friends and
colleagues who directly and indirectly helped us to complete our project successfully.
***
PROJECTEES
RAVINDRA LANJEWAR
SANJAY DHAKANE
NABEL KHAN
VINOD KULKARNI
SANTOSH MESHRAM
3
INDEX
Chapter
Chapter Name Page No.
No.
Introduction:
1. Introduction of a project 4
Technology used:
3. Software 6
Hardware
Coding
6. 16
References
7. 32
4
Introduction
5
Introduction
Cyber Caf Management System is used in the Cyber Cafe. Only authorized
user can access this system and gather needed information. Cyber Caf Management
System is a transaction processing application. The system keeps whole details about
customers.
This project has GUI based software that will help in storing, updating and
retrieving the information through various user-friendly modules.
This is the Easy, efficient and innovative Internet Cafe management software. This
software is designed to keep clients in your cyber cafe by providing attractive and easy
interface. Also it has the ability to fully control and charges.
Although our software has many advanced features it's still very easy to use, both
for operators and customers. The user interface is clean and feels very natural even to
beginners. The integrated help system will guide you in case of any problems.
6
Objectives of the project
Privacy is given to the data so that unauthorized person can not gain access to the
Application.
7
Technology used
Environmental Specification:
Hardware:-
Hardware means the physical and tangible parts of computer system.
The main hardware configuration for suggested system is:
Software:-
8
About Visual Basic
9
Visual Basic
The Visual Basic language shipping with Microsoft Visual Studio 6.0 or earlier. For the Visual Basic language
shipping with Microsoft Visual Studio .NET or later.
Visual Basic
Major
Microsoft Visual Studio
implementations
Influenced by BASIC
Website msdn.microsoft.com/vbasic/
10
Screenshot of the Visual Basic 6 IDE
Visual Basic (VB) is the third-generation event-driven programming language and integrated
development environment (IDE) from Microsoft for its COM programming model. Visual Basic
is designed to be relatively easy to learn and use.
Visual Basic was derived from BASIC and enables the rapid application development
(RAD) of graphical user interface (GUI) applications, access to databases using Data Access
Objects, Remote Data Objects, or ActiveX Data Objects, and creation of ActiveX controls and
objects. Scripting languages such as VBA and VBScript are syntactically similar to Visual
Basic, but perform differently.
A programmer can put together an application using the components provided with Visual
Basic itself. Programs written in Visual Basic can also use the Windows API, but doing so
requires external function declarations. The final release was version 6 in 1998. Microsoft's
extended support ended in March 2008 and the designated successor was Visual Basic .NET
(now known simply as Visual Basic).
Like the BASIC programming language, Visual Basic was designed to be easily
learned and used by beginner programmers. The language not only allows programmers
to create simple GUI applications, but can also develop complex applications.
Programming in VB is a combination of visually arranging components or controls on a
form, specifying attributes and actions of those components, and writing additional lines of
code for more functionality. Since default attributes and actions are defined for the
components, a simple program can be created without the programmer having to write
many lines of code. Performance problems were experienced by earlier versions, but with
faster computers and native code compilation this has become less of an issue.
Although programs can be compiled into native code executables from version 5
onwards, they still require the presence of runtime libraries of approximately 1 MB in size.
11
This runtime is included by default in Windows 2000 and later, but for earlier versions of
Windows like 95/98/NT it must be distributed together with the executable.
Forms are created using drag-and-drop techniques. A tool is used to place controls (e.g.,
text boxes, buttons, etc.) on the form (window). Controls have attributes and event
handlers associated with them. Default values are provided when the control is created,
but may be changed by the programmer. Many attribute values can be modified during run
time based on user actions or changes in the environment, providing a dynamic
application. For example, code can be inserted into the form resize event handler to
reposition a control so that it remains centered on the form, expands to fill up the form,
etc. By inserting code into the event handler for a keypress in a text box, the program can
automatically translate the case of the text being entered, or even prevent certain
characters from being inserted.
Visual Basic can create executables (EXE files), ActiveX controls, or DLL files, but
is primarily used to develop Windows applications and to interface database systems.
Dialog boxes with less functionality can be used to provide pop-up capabilities. Controls
provide the basic functionality of the application, while programmers can insert additional
logic within the appropriate event handlers. For example, a drop-down combination box
will automatically display its list and allow the user to select any element. An event handler
is called when an item is selected, which can then execute additional code created by the
programmer to perform some action based on which element was selected, such as
populating a related list.
Alternatively, a Visual Basic component can have no user interface, and instead
provide ActiveX objects to other programs via Component Object Model (COM). This
allows for server-side processing or an add-in module.
The language is garbage collected using reference counting, has a large library of
utility objects, and has basic object oriented support. Since the more common
components are included in the default project template, the programmer seldom needs to
12
specify additional libraries. Unlike many other programming languages, Visual Basic is
generally not case sensitive, although it will transform keywords into a standard case
configuration and force the case of variable names to conform to the case of the entry
within the symbol table. String comparisons are case sensitive by default, but can be
made case insensitive if so desired.
The Visual Basic compiler is shared with other Visual Studio languages (C, C++),
but restrictions in the IDE do not allow the creation of some targets (Windows model
DLLs) and threading models.
Characteristics:-
Visual Basic has the following traits which differ from C-derived languages:
Boolean constant True has numeric value 1.[4] This is because the Boolean data
type is stored as a 16-bit signed integer. In this construct 1 evaluates to 16 binary
1s (the Boolean value True), and 0 as 16 0s (the Boolean value False). This is
apparent when performing a Not operation on a 16 bit signed integer value 0 which
will return the integer value 1, in other words True = Not False. This inherent
functionality becomes especially useful when performing logical operations on the
individual bits of an integer such as And, Or, Xor and Not.[5] This definition of True
is also consistent with BASIC since the early 1970s Microsoft BASIC
implementation and is also related to the characteristics of CPU instructions at the
time.
Logical and bitwise operators are unified. This is unlike some C-derived languages
(such as Perl), which have separate logical and bitwise operators. This again is a
traditional feature of BASIC.
Variable array base. Arrays are declared by specifying the upper and lower bounds
in a way similar to Pascal and Fortran. It is also possible to use the Option Base
13
statement to set the default lower bound. Use of the Option Base statement can
lead to confusion when reading Visual Basic code and is best avoided by always
explicitly specifying the lower bound of the array. This lower bound is not limited to
0 or 1, because it can also be set by declaration. In this way, both the lower and
upper bounds are programmable. In more subscript-limited languages, the lower
bound of the array is not variable. This uncommon trait does exist in Visual
Basic .NET but not in VBScript.
OPTION BASE was introduced by ANSI, with the standard for ANSI Minimal BASIC
in the late 1970s.
Relatively strong integration with the Windows operating system and the
Component Object Model. The native types for strings and arrays are the dedicated
COM types, BSTR and SAFEARRAY.
Banker's rounding as the default behavior when converting real numbers to
integers with the Round function. ? Round(2.5, 0) gives 2, ? Round(3.5, 0) gives 4.
History:-
VB 1.0 was introduced in 1991. The drag and drop design for creating the user
interface is derived from a prototype form generator developed by Alan Cooper and his
14
company called Tripod. Microsoft contracted with Cooper and his associates to develop
Tripod into a programmable form system for Windows 3.0, under the code name Ruby (no
relation to the Ruby programming language).
Tripod did not include a programming language at all. Microsoft decided to combine
Ruby with the Basic language to create Visual Basic.
The Ruby interface generator provided the "visual" part of Visual Basic and this
was combined with the "EB" Embedded BASIC engine designed for Microsoft's
abandoned
"Omega" database system. Ruby also provided the ability to load dynamic link libraries
containing additional controls (then called "gizmos"), which later became the VBX
interface.
Timeline:-
Visual Basic 1.0 for DOS was released in September 1992. The language itself
was not quite compatible with Visual Basic for Windows, as it was actually the
next version of Microsoft's DOS-based BASIC compilers, QuickBASIC and BASIC
Professional Development System. The interface used a Text user interface, using
extended ASCII characters to simulate the appearance of a GUI.
Visual Basic 2.0 was released in November 1992. The programming environment
was easier to use, and its speed was improved. Notably,
forms became instantiable objects, thus laying the foundational concepts of class
modules as were later offered in VB4.
Visual Basic 3.0 was released in the summer of 1993 and came in Standard and
Professional versions. VB3 included version
15
1.1 of the Microsoft Jet Database Engine that could read and write Jet (or Access)
1.x databases.
Visual Basic 4.0 (August 1995) was the first version that could create 32-bit as
well as 16-bit Windows programs. It has three editions; Standard, Professional,
and Enterprise. It also introduced the ability to write non-GUI classes in Visual
Basic. Incompatibilities between different releases of VB4 caused installation and
operation problems. While previous versions of Visual Basic had used VBX
controls, Visual Basic now used OLE controls (with files names ending in .OCX)
instead. These were later to be named ActiveX controls.
With version 5.0 (February 1997), Microsoft released Visual Basic exclusively for
32-bit versions of Windows. Programmers who preferred to write 16-bit programs
were able to import programs written in Visual Basic 4.0 to Visual Basic 5.0, and
Visual Basic 5.0 programs can easily be converted with Visual Basic 4.0. Visual
Basic 5.0 also introduced the ability to create custom user controls, as well as the
ability to compile to native Windows executable code, speeding up calculation-
intensive code execution. A free, downloadable Control Creation Edition was also
released for creation of ActiveX controls. It was also used as an introductory form
of Visual Basic: a regular .exe project could be created and run in the IDE, but not
compiled.
Visual Basic 6.0 (Mid 1998) improved in a number of areas including the ability to
create web-based applications. VB6 has entered
Microsoft's "non-supported phase" as of March 2008. Although the Visual Basic 6.0
development environment is no longer supported, the runtime is supported on
Windows Vista, Windows Server 2008 and Windows 7.
Mainstream Support for Microsoft Visual Basic 6.0 ended on March 31, 2005.
Extended support ended in March 2008. In response, the Visual Basic user
community expressed its grave concern and lobbied users to sign a petition to keep
the product alive. Microsoft has so far refused to change their position on the
matter. (but see) Ironically, around this time (2005), it was exposed that Microsoft's
new anti-spyware offering, Microsoft AntiSpyware (part of the GIANT Company
16
Software purchase), was coded in Visual Basic 6.0. Its replacement, Windows
Defender, was rewritten as C++ code.
VB DOS icon :-
Derivative languages:-
Microsoft has developed derivatives of Visual Basic for use in scripting. Visual
Basic itself is derived heavily from BASIC, and subsequently has been replaced with a
.NET platform version.
AutoCAD, WordPerfect Office 2002, ArcGIS, Sage Accpac ERP, and Business
Objects Desktop Intelligence. There are small inconsistencies in the way VBA is
implemented in different applications, but it is largely the same language as VB6
and uses the same runtime library.
VBScript is the default language for Active Server Pages. It can be used in
Windows scripting and client-side web page scripting.
Visual Basic .NET is Microsoft's designated successor to Visual Basic 6.0, and is
part of Microsoft's .NET platform. Visual Basic.Net compiles and runs using the
.NET Framework. It is not backwards compatible with VB6. An automated
conversion tool exists, but fully automated conversion for most projects is
impossible.[15]
Star Office Basic is a Visual Basic compatible interpreter included in Star Office
suite, developed by Sun Microsystems.
17
Gambas is a Visual Basic inspired free software programming language. It is not a
clone of Visual Basic, but it does have the ability to convert Visual Basic programs
to Gambas.
Visual Basic 5 and 6 can compile code to either native or P-Code but in either
case the runtime is still required for built in functions and forms management.
Versioning problems associated with various runtime DLLs, known as DLL hell
Poor support for object-oriented programming.
Inability to create multi-threaded applications, without resorting to Windows API
calls
18
Inability to create Windows services
Variant types have a greater performance and storage overhead than strongly
typed programming languages
Dependency on complex and fragile COM Registry entries.
The development environment is no longer supported by Microsoft.
All versions of the Visual Basic development environment from 1.0 to 6.0 have
been retired and are now unsupported by Microsoft. The associated runtime environments
are unsupported too, with the exception of the Visual Basic 6 core runtime environment,
which will be officially supported by Microsoft for the lifetime of Windows 7.[19] Third party
components that shipped with Visual Studio 6.0 are not included in this support statement.
Some legacy Visual Basic components may still work on newer platforms, despite being
unsupported by Microsoft and other vendors.
Studio.NET 2002. Later releases of MSDN focused on .NET development and had
significant parts of the Visual Basic 6.0 programming documentation removed. The
Visual Basic IDE can be installed and used on Windows Vista, where it exhibits some
minor incompatibilities which do not hinder normal software development and
maintenance. As of August 2008, both Visual Studio 6.0 and the MSDN documentation
mentioned above are available for download by MSDN subscribers.
Example code :-
The following code snippet displays a message box saying "Hello, World!" as the window
loads:
19
Private Sub Form_Load()
' Execute a simple message box that will say "Hello, World!"
MsgBox "Hello, World!"End Sub
This snippet makes a counter that moves up 1 every second (a label and a timer control need
to be added to the form for this to work):
Option Explicit
Dim Count As Integer
Private Sub Form_Load()
Count = 0
Timer1.Interval = 1000 ' units of milliseconds
End Sub
Private Sub Timer1_Timer()
Count = Count + 1
Label1.Caption = Count
End Sub
VB6 was only considered good for desktop windows application. In VB.NET you can
also develop web applications, distributed applications, create .NET windows and web
controls and components, write windows and web services.
In VB.NET, you can also use reflections to read the meta-data of types and using
reflection emit you can also generate code to define and invoke types at runtime.
20
Components created in VB6 (COM) need to make and update registry
entries. VB.NET does not require any registry entry making the deployment easier.
VB6 used ASP to build web applications. VB.NET uses ASP.NET to build web
applications.
VB6 used ADODB and record-sets to implement data access applications. VB.NET
uses ADO.NET and datasets to build data access applications. The ADO.NET also
supports the disconnected data access.
The main difference is that VB .NET utilizes the .NET framework, which is basically a
huge set of different types of objects and classes you can use. A lot of the basic
coding is the same, but there are new things to call into.
Also, a lot of new controls.
Any langauge run in the .NET framework compiles down to Intermediary Langauge(IL)
which is basically microsoft's custom made assembly langauge. So if you code a
program in C# and then go and code the exact same program in VB .NET or any other
langauge which utilizes the .NET framework, it all ends up pretty similar in the end,
they all compile down to IL. VB .Net is similar to VB 6.0 in terms of graphical user
interfaces.The IDE is compatively much sophisticated.
VB .Net differs from VB in terms of functionality and includes a lot of other features
that is available from the .Net architecture.
VB6 does not support inheritance, VB .NET does- VB6 supports interfaces in an
awkward way and mostly to support underlying COM infrastructure, VB .NET fully
supports interface-based programming - VB6 does not support polymorphism, VB
.NET does
21
Modules
Customer Entry: -
This module is invoked when the customer is Came at Cyber Caf. This time the customer
has allotted the computer on which he have to Access.
Status :-
22
This Module shows the current status of the Cyber caf. It displays which computers are
free and which are busy.
Customer Exit:-
This module is invoked when the costumer is Exit from Cyber. Here the Time Spent and the
charges is calculated. And The Computer which is allotted to the customer is released.
Cyber Setup:-
This Module is invoked when the proprietor of the cyber want to add the detail-information
of the cyber like. Cyber Name, Address, Contact No, Proprietor Name, No Of Pc In Cyber,
etc.
23
Design
Design (Output)
24
Login Form:-
25
New Cyber Setup Form:-
26
Operations :-
27
New Customer Entry Form:-
28
Transaction (Customer Enter):-
29
Customer Exit:-
30
Status Form:-
31
32
Coding
Coding
Design (Output):-
33
MODULE
Public db As ADODB.Connection
Public Sub dbopen()
Set db = New ADODB.Connection
db.Provider = "microsoft.jet.oledb.4.0"
ChDir ("C:\")
db.Open "cyber_db.mdb"
End Sub
34
Private Sub Timer1_Timer()
If ProgressBar1.Value >= 60 Then
Timer1.Interval = 0
Form1.Show
Unload Me
Exit Sub
Else
ProgressBar1.Value = ProgressBar1.Value + 50
End If
End Sub
Login Form:-
Private Sub Command1_Click()
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open "select *from cyber_mst ", db, adOpenDynamic, adLockOptimistic
35
rs.AddNew
rs.Fields("sid") = Text1.Text
rs.Fields("name_of_cyber") = Text2.Text
If Val(Text4.Text) = Val(Text5.Text) Then
rs.Fields("passward") = Text5.Text
Else
MsgBox " Password Mismatched."
End If
rs.Fields("auth_per_name") = Text3.Text
rs.Fields("address") = Text6.Text
rs.Fields("ph_no") = Text7.Text
rs.Update
MsgBox " New Cyber Setup is formed"
rs.Close
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
36
record.MoveNext
Wend
record.Close
record.Open "select * from pcStatus", cnn, adOpenDynamic, adLockOptimistic
Dim i, n As Integer
n = Val(txtPC.Text)
For i = 1 To n
record.AddNew
record.Fields(0) = i
record.Fields(1) = "0"
record.Update
Next
record.Close
cnn.Close
End Sub
End Sub
rs.AddNew
rs.Fields("sid") = Text1.Text
rs.Fields("name_of_cyber") = Text2.Text
If Val(Text4.Text) = Val(Text5.Text) Then
rs.Fields("passward") = Text5.Text
Else
MsgBox " Password Mismatched."
End If
rs.Fields("auth_per_name") = Text3.Text
38
rs.Fields("address") = Text6.Text
rs.Fields("ph_no") = Text7.Text
rs.Update
MsgBox " New Cyber Setup is formed"
rs.Close
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Dim cnn As New ADODB.Connection
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=cyber_db.mdb;Persist
Security Info=False"
Dim record As New ADODB.Recordset
record.Open "select * from pcStatus", cnn, adOpenDynamic, adLockOptimistic
record.MoveFirst
While Not (record.EOF)
record.Delete
record.MoveNext
Wend
record.Close
record.Open "select * from pcStatus", cnn, adOpenDynamic, adLockOptimistic
Dim i, n As Integer
n = Val(txtPC.Text)
For i = 1 To n
record.AddNew
record.Fields(0) = i
record.Fields(1) = "0"
39
record.Update
Next
record.Close
cnn.Close
End Sub
End Sub
Operations :-
40
Private Sub Command1_Click()
Form3.Show
Unload Me
End Sub
Private Sub Command2_Click()
Form4.Show
Unload Me
End Sub
rs1.MoveFirst
rs1.Delete
rs1.Update
rs1.Close
End
41
End Sub
rs1.Close
Combo1.Refresh
Text2.Text = ""
Text3.Text = ""
Combo2.Refresh
Text5.Text = ""
Combo1.Refresh
Form5.Show
Unload Me
End Sub
Private Sub Command2_Click()
Form5.Show
Unload Me
End Sub
Private Sub Command4_Click()
43
CommonDialog1.ShowOpen
CommonDialog1.Filter = "*.gif | *.jpg"
Image2.Picture = LoadPicture(CommonDialog1.FileName)
End Sub
Private Sub Form_Load()
dbopen
Combo1.AddItem ("Male")
Combo1.AddItem ("Female")
Combo2.AddItem ("PAN Card")
Combo2.AddItem ("Driving Licens")
rs3.Close
44
End Sub
Private Sub Form_Unload(Cancel As Integer)
Unload Me
Form5.Show
End Sub
45
Transaction (Customer Enter):-
Dim tcnt As Integer
Dim usid As String
Private Sub Command1_Click()
Dim rs As ADODB.Recordset
dbopen
Set rs = New ADODB.Recordset
rs.Open "select * from trans ", db, adOpenDynamic, adLockOptimistic
On Error Resume Next
rs.MoveLast
rs.AddNew
rs.Fields("tid") = Text1.Text
rs.Fields("cid") = cmbUser.Text
rs.Fields("pc_no") = Val(Combo1.Text)
rs.Fields("entry_time") = Time
rs.Fields("t_date") = Date
rs.Update
rs.Close
Dim rs2 As ADODB.Recordset
Set rs2 = New ADODB.Recordset
rs2.Open "select * from pcStatus where pcNo=" & Val(Combo1.Text), db,
adOpenDynamic, adLockOptimistic
' On Error Resume Next
'rs2.MoveFirst
rs2.Fields(1) = "1"
rs2.Update
46
rs2.Close
Unload Me
Form5.Show
End Sub
Private Sub Command2_Click()
Unload Me
Form5.Show
End Sub
Private Sub Form_Load()
dbopen
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open "select * from trans ", db, adOpenDynamic, adLockOptimistic
On Error Resume Next
rs.MoveLast
tcnt = rs.Fields("tid")
Text1.Text = tcnt + 1
rs.Close
Dim rs1 As ADODB.Recordset
Set rs1 = New ADODB.Recordset
rs1.Open "select * from pcStatus where status = 0", db, adOpenDynamic,
adLockOptimistic
rs1.MoveFirst
Do While Not rs1.EOF
Combo1.AddItem rs1.Fields(0)
rs1.MoveNext
Loop
rs1.Close
Dim rs3 As ADODB.Recordset
Set rs3 = New ADODB.Recordset
47
rs3.Open "select *from loginid ", db, adOpenDynamic, adLockOptimistic
dbopen
rs3.MoveLast
usid = rs3.Fields("sid")
rs3.Update
rs3.Close
rs.Open "select cid from cust_mst where cid not in (select cid from trans
where time_spent=0)", db, adOpenDynamic, adLockOptimistic
While Not (rs.EOF)
cmbUser.AddItem rs.Fields(0)
rs.MoveNext
Wend
rs.Close
End Sub
Private Sub Form_Unload(Cancel As Integer)
Unload Me
Form5.Show
End Sub
Customer Exit:-
Dim hr, min As Integer
Dim pcno As Integer
Dim s_min As Integer
Dim en_min As Integer
Dim en_hr, s_hr As Double
Dim s_time As Double
Dim rmv_itm As Integer
money = 0
Else
If (min > 1) Then
money = 30
End If
money = money + ((hr - en_hr) * 30)
lblMoney.Caption = "Total Charge IS : " & money & " Rs."
End If
End Sub
Private Sub Command1_Click()
rmv_itm = Val(Combo1.Text)
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open "select * from trans where cid=" & Val(Combo1.Text), db,
adOpenDynamic, adLockOptimistic
49
If Not (rs.EOF) Then
pcno = rs.Fields(4)
On Error Resume Next
rs.Fields(2) = Time
hr = Hour(Time)
min = Minute(Time)
en_hr = Hour(rs.Fields(1))
en_min = Minute(rs.Fields(1))
If min < en_min Then
en_hr = en_hr + 1
51
Status Form:-
Private Sub Command1_Click()
Unload Me
Form5.Show
End Sub
52
Advantages of the Software
System fulfills all the user requirements and objectives.
system is capable of keeping all the records of the customers which is very
essential for the Caf Manager.
manpower is reduced.
Privacy is given to the data so that unauthorized person can not gain
access to the Application.
53
Conclusion
Bibliography
54
(References)
2. Visual Basic.
- Gary Cornell
3. Murachs Visual Basic 2005
- Anne Boehm
4. www.google.com
55