This application helps to store and manage contacts effectively using the Go programming language. It allows users to add, list, and search contacts in a simple and easy-to-use interface.
Objective
The objective of this program is to provide a basic structure for managing contacts. By using Go, we can efficiently add, store, and search contacts in a text-based interface. This simple contact book will allow you to enter new contacts, display existing ones, and search for a contact based on their name.
Program Code
package main
import (
"fmt"
"strings"
)
// Contact structure to store information about a contact
type Contact struct {
Name string
Phone string
Email string
}
// ContactBook is a slice to store multiple contacts
type ContactBook struct {
contacts []Contact
}
// AddContact adds a new contact to the ContactBook
func (cb *ContactBook) AddContact(name, phone, email string) {
contact := Contact{
Name: name,
Phone: phone,
Email: email,
}
cb.contacts = append(cb.contacts, contact)
}
// ListContacts displays all the contacts in the ContactBook
func (cb *ContactBook) ListContacts() {
if len(cb.contacts) == 0 {
fmt.Println("No contacts available.")
return
}
for i, contact := range cb.contacts {
fmt.Printf("Contact %d: %s, Phone: %s, Email: %s\n", i+1, contact.Name, contact.Phone, contact.Email)
}
}
// SearchContact searches for a contact by name and displays it
func (cb *ContactBook) SearchContact(name string) {
found := false
for _, contact := range cb.contacts {
if strings.ToLower(contact.Name) == strings.ToLower(name) {
fmt.Printf("Found contact: Name: %s, Phone: %s, Email: %s\n", contact.Name, contact.Phone, contact.Email)
found = true
break
}
}
if !found {
fmt.Println("Contact not found.")
}
}
func main() {
var contactBook ContactBook
// Adding sample contacts
contactBook.AddContact("Alice Smith", "123-456-7890", "alice.smith@example.com")
contactBook.AddContact("Bob Johnson", "987-654-3210", "bob.johnson@example.com")
// Listing all contacts
fmt.Println("List of all contacts:")
contactBook.ListContacts()
// Searching for a contact by name
fmt.Println("\nSearch for contact 'Alice Smith':")
contactBook.SearchContact("Alice Smith")
}
Program Structure and Explanation
This Go program implements a simple Contact Book that allows you to:
- Add contacts with a name, phone number, and email.
- List all the contacts currently stored in the contact book.
- Search for a contact by name.
Program Breakdown:
- Contact struct: Defines the structure for storing each contact’s name, phone, and email.
- ContactBook struct: Holds a slice of contacts and has methods to manipulate them.
- AddContact: Adds a new contact to the contact book.
- ListContacts: Displays all contacts stored in the contact book.
- SearchContact: Searches for a contact by their name.
- main function: Acts as the entry point of the program where contacts are added, listed, and searched.
How to Run the Program:
To run this program, follow these steps:
- Ensure you have Go installed on your machine. If not, download it from https://golang.org/dl/.
- Create a new directory and save the program code in a file with a
.go
extension (e.g.,contactbook.go
). - Open your terminal and navigate to the directory where the file is saved.
- Run the program using the following command:
go run contactbook.go
. - The program will display a list of all contacts and search for the contact ‘Alice Smith’.