You are on page 1of 22

Index

Sr. No. Contents Page No.


1. INTRODUCTION 1
1.1 Introduction
2. METHODOLOGY 2
2.1 Problem Statement
2.2 System Architecture
2.3 Algorithms
3. SOFTWARE REQUIREMENT SPECIFICATION 4
3.1 Introduction
3.2 Overall Description
4. APPLICATIONS AND ADVANTAGES/DISADVANTAGES 6
4.1 Applications
4.2 Advantages
4.3 Disadvantages
5. RESULT 7
5.1 Result
6. CONCLUSION 8
References 9
Abstract

The purpose of Contact Management System is to automate the existing manual system by the
help of computerized equipment’s and full-fledged computer software, fulfilling their
requirements, so that their valuable data/information can be stored for a longer period with easy
accessing and manipulation of the same. The required software and hardware are easily available
and easy to work with Contact Management System, as described above, can lead to error free,
secure, reliable and fast management system. It can assist the user to concentrate on their other
activities rather to concentrate on the record keeping. Thus it will help organization in better
utilization of resources. The organization can maintain computerized records without redundant
entries. That means that one need not be distracted by information that is not relevant, while
being able to reach the information The aim is to automate its existing manual system by the
help of computerized equipment’s and full-fledged computer software, fulfilling their
requirements, so that their valuable data/information can be stored for a longer period with easy
accessing and manipulation of the same. Basically, the project describes how to manage for good
performance and better services for the clients.
Chapter 1
INTRODUCTION

1.1 Introduction

In an era defined by rapid digital transformation and the proliferation of communication


channels, maintaining effective relationships is not just a convenience but a strategic necessity.
Enter the Contact Management System (CMS), a dynamic tool designed to streamline the
intricate process of organizing, storing, and accessing vital contact information. This report
embarks on a journey to uncover the profound significance of a CMS in the modern landscape,
where networks are sprawling, and interactions are diverse.

The significance of a CMS extends across industries and professions. For sales teams, it's the
backbone of customer relationship management, facilitating lead generation, pipeline
management, and targeted outreach. In marketing, it enables segmentation and personalization,
ensuring that messages resonate with specific audience segments. Even in personal contexts, a
CMS can help individuals stay connected with friends, family, and professional contacts,
fostering meaningful relationships in an increasingly interconnected world.

Throughout this report, we will explore the myriad benefits and functionalities of a modern
CMS, examining how it enhances productivity, drives collaboration, and fosters stronger
relationships. Furthermore, we will delve into best practices for implementing and optimizing a
CMS to suit diverse needs and organizational structures. By the end of this exploration, it will
become evident that a well-implemented CMS is not just a tool but a strategic asset, empowering
individuals and organizations to navigate the complexities of networking and relationship
management with confidence and ease.
Chapter 2
METHODOLOGY

2.1 Problem Statement

Design a mini project using C++ which will use different data structure with or without C++ library.

2.2 System Architecture

+--------------------------------------------------+
| User Interface |
| (Command-line Interface or GUI) |
+---------------------+----------------------------+
|
| +---------------------+
| | Functions |
| +---------------------+
| | addContact() |
| | searchContact() |
| | help() |
| | self_exit() |
| | check_digit() |
| | check_num() |
| +---------------------+
|
+-----------------------+--------------------------------------------------+
| Main Program |
| (Controls program flow and user interaction) |
+---------------------------------------------------------------------------+
| Global Variables |
| (fname, lname, phone_num, and others) |
+---------------------------------------------------------------------------+
| File Input/Output Operations |
| (Reading from and writing to the "number.txt" file) |
+---------------------------------------------------------------------------+
 Explanation:

1. User Interface: This is the part where users interact with the contact
management system. It could be a command-line interface (CLI) as your code
suggests or a graphical user interface (GUI) if you decide to expand the system.
2. Functions: These are the core functionalities of the contact management
system. Each function serves a specific purpose, such as adding a contact,
searching for a contact, providing help information, and exiting the program.
Additionally, there are helper functions for checking the validity of phone
numbers.
3. Main Program: The main program orchestrates the flow of the system. It
presents options to the user, calls the appropriate functions based on user input,
and handles any errors or unexpected conditions.
4. Global Variables: These are the variables shared across different functions in
the program. They store information about contacts, such as first name, last
name, and phone number.
5. File Input/Output Operations: This part of the program handles reading from
and writing to the "number.txt" file where contact information is stored. It
ensures that contacts are saved and retrieved correctly.

2.3 Algorithm

1. Start

2. Display main menu options:

- Add Contact

- Search Contact

- Help

- Exit

3. Read user's choice from input

4. If user chooses:

a. Add Contact:

i. Prompt user to enter first name, last name, and phone number

ii. Validate phone number:


- Check if it contains 10 digits

- Check if it contains only numeric characters

iii. If phone number is valid:

- Open "number.txt" file in append mode

- Write contact details (first name, last name, phone number) to the file

- Close the file

- Display success message

- Return to main menu

iv. If phone number is invalid:

- Display appropriate error message

- Return to main menu

b. Search Contact:

i. Prompt user to enter a keyword (either first name or last name)

ii. Open "number.txt" file for reading

iii. Read each line from the file

iv. If keyword matches first name or last name in any line:

- Display contact details (first name, last name, phone number)

- Set found flag to true

- Exit loop

v. If no matching contact is found:

- Display appropriate message

vi. Close the file

vii. Return to main menu


c. Help:

- Display help information

- Return to main menu

d. Exit:

- Display exit message

- End the program

5. End
Chapter 3
SOFTWARE REQUIREMENT SPECIFICATION

3.1 Introduction
Purpose: To develop a Contact Management System using C++ and data structures.

Scope: The system will include basic functionalities of a CMS, such as collecting data, storing
data, and retrieval of data.

3.2 Overall Description

1. Product Functions: The main function of the CMS is to collect, store and retrieve data as
per user needs.
2. User Characteristics: Technical proficiency, frequency in use, time constrains, etc.
3. Operating Environment: The code for the contact management system is written in C++,
which is a versatile programming language that can run on various operating environments.
However, the specific environment where the code can run depends on factors such as the
system dependencies, compiler compatibility, and platform support.
4. Design and Implementation Constraints: Security, Platform Compatibility, Scalability,
etc.

3.3 Specific Requirements


- Functional Requirements:
1. Adding, Viewing, Editing, and Deleting Contacts:
Allow users to perform basic CRUD operations on contacts.
2. Searching Contacts:
Enable users to search for contacts by name, phone number, or email.
3. Sorting and Filtering Contacts:
Provide options to sort contacts alphabetically and filter them based on criteria.
4. User Authentication and Authorization:
Implement authentication to ensure only authorized users access the system.
5. Importing and Exporting Contacts:
Support importing contacts from external sources and exporting them for backup or
sharing.
6. Help and Support:
Provide contextual help and support resources for users.
7. Feedback and Improvement:
Incorporate user feedback to continuously enhance the system.

- Non-Functional Requirements:
Page | 4
1. Usability: Intuitive interface, clear feedback.

2. Performance: Prompt response, efficient handling of data.

3. Reliability: Stable operation, error resilience.

4. Security: Data confidentiality, authentication.

5. Scalability: Ability to handle growth in users and data.

6. Portability: Compatibility across different platforms.

7. Accessibility: Support for users with disabilities.

8. Maintainability: Easy to maintain and extend.

9. Backup and Recovery: Data backup and restore options.

- External Interface Requirements


1. External Interface:
 User Interface: Intuitive GUI or CLI for user interaction.
 File System: Read/write operations to the contact database file.
2. Hardware Interface:
 Standard computing hardware: Runs on desktops, laptops, tablets, or
smartphones.
 Input/output devices: Utilizes keyboards, mice, touchscreens, or voice input.
3. Software Interface:
 Operating System: Compatible with Windows, Linux, macOS.
 Programming Languages and Libraries: C++, standard libraries for file I/O
and string manipulation.
 Development Tools: IDEs like Visual Studio, Code::Blocks, or CLion.
Chapter 4
APPLICATION ADVANTAGES / DISADVANTAGES

4.1 Application
1. Personal Contact Management
2. Professional Networking
3. Customer Relationship Management
4. Sales and Marketing

4.2 Advantages

1. Centralized data storage

2. Efficient organization and segmentation

3. Streamlined communication

4. Improved productivity

5. Enhanced collaboration

6. Data insights

7. Scalability

4.3 Disadvantages

1. Dependency on technology
2. Data security concerns
3. Learning curve
4. Cost
5. Integration challenges
6. Data duplication and inconsistency
7. Customization limitations
Chapter 5
RESULT

Contact Management.
1. Add Contact
2. Search Contact
3. Help
4. Exit
>1
Enter First Name: omkar
Enter Last Name: dorugade
Enter 10-digit Phone Number: 987654120

Phone Number Must Contain 10-Digits!!


Press any key to continue..

Contact Management.
1. Add Contact
2. Search Contact
3. Help
4. Exit
>2
Enter Name To Search: omkar
Contact Details
First Name: omkar
Last Name: dorugade
Phone Number: 2233445566

Contact Management.
1. Add Contact
2. Search Contact
3. Help
4. Exit
>4
Thank You For Visiting..
Chapter 6
CONCLUSION

In conclusion, the development of the Contact Management System (CMS) represents a significant
step towards improving contact organization and communication efficiency. Through the
implementation of features such as adding, viewing, editing, and searching contacts, the CMS
provides users with a user-friendly interface for managing their contact information.

The project successfully addressed functional requirements such as data storage, user interaction,
and data manipulation, while also considering non-functional requirements like usability,
performance, and security. By adhering to best practices in software development, the system
ensures reliability, scalability, and maintainability.

Overall, the Contact Management System project represents a valuable contribution to contact
organization and relationship management, offering users a robust and efficient solution for
managing their contact information in today's digital world.
References

- https://www.geeksforgeeks.org/design-snake-and-ladder-game-using-python-
oops/
- https://wiki.python.org/moin/PythonGameLibraries
- https://www.codingal.com/coding-for-kids/blog/top-5-python-game-
development-libraries-for-kids/
Source Code

#include <iostream>

#include <conio.h>

#include <fstream>

using namespace std;

string fname, lname, phone_num;

void addContact();

void searchContact();

void help();

void self_exit();

bool check_digit(string);

bool check_num(string);

int main(){

short int choice;

system("cls");

system("color 0A");

cout << "\n\n\n\t\t\t Contact Management.";

cout << "\n\n\t1. Add Contact\n\t2. Search Contact\n\t3. Help\n\t4. Exit\n\t>";

cin >> choice;

switch (choice){

case 1:

addContact();
break;

case 2:

searchContact();

break;

case 3:

help();

break;

case 4:

self_exit();

break;

default:

cout << "\n\n\t Invalid Input !";

cout << "\n\t Press any key to continue..";

getch();

main();

break; }

return 0;}

void self_exit(){

system("cls");

cout << "\n\n\n\t\tThank You For Visiting..";

exit(1);}

void help(){

cout << "Display Help";}


void addContact(){

ofstream phone("number.txt", ios::app);

system("cls");

cout << "\n\n\t Enter First Name: ";

cin >> fname;

cout << "\n\n\t Enter Last Name: ";

cin >> lname;

cout << "\n\n\t Enter 10-digit Phone Number: ";

cin >> phone_num;

if ((check_digit(phone_num)) == true){

if (check_num(phone_num) == true){

if (phone.is_open()){

phone << fname << " " << lname << " " << phone_num << endl;

cout << "\n\t Contact Saved Successfully..";

cout << "\n\t Press any key to continue..";

getch();

main();}

else{

cout << "\n\t Error Opening File!!!";

cout << "\n\t Press any key to continue..";

getch();

main();}}

else{
cout << "\n\t Phone Number Must Contain Numbers Only!!";

cout << "\n\t Press any key to continue..";

getch();

main();}}

else{

cout << "\n\n\t Phone Number Must Contain 10-Digits!!";

cout<<"\n\t Press any key to continue..";

getch();

main();}

phone.close();}

void searchContact(){

bool found = false;

ifstream myfile("number.txt");

string keyword;

cout << "\n\t Enter Name To Search: ";

cin >> keyword;

while (myfile >> fname >> lname >> phone_num){

if (keyword == fname || keyword == lname){

system("cls");

cout << "\n\n\n\t\t Contact Details..";

cout << "\n\n\t First Name: " << fname;

cout << "\n\n\t Last Name: " << lname;

cout << "\n\n\t Phone Number: " << phone_num;


found = true;

break; }}

if (found == false){

cout << "\n\t No Contacts Found..";

cout<<"\n\t Press any key to continue..";

getch();

main();}}

bool check_digit(string x){

if (x.length() == 10)

return true;

else

return false;}

bool check_num(string x){

bool check = true;

for (int i = 0; i < x.length(); i++){

if (!(isdigit(int(x[i])))){

check = false;

break;}}

if (check == true)

return true;

if (check == false)

return false;}

You might also like