[go: up one dir, main page]

0% found this document useful (0 votes)
51 views29 pages

C Programming Project - Address Book Management System

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views29 pages

C Programming Project - Address Book Management System

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

PROJECT

ADDRESSBOOK MANAGEMENT
SYSTEM
- By Shivraj Dasarwar
Project Description
• A command-line based address book built in C.
• Allows adding, editing, searching, deleting, and saving contacts.
• Emphasizes modular design, input validation, and file handling.
• Provides user-friendly menu-driven interface.
• Runs efficiently with minimal system resources.
• Easy to understand and modify by beginners.
Why This Project?
• Replaces manual contact tracking with a digital tool.
• Demonstrates file handling and user input in C.
• Reinforces structured programming and modularity.
• Helps understand user interaction flow in console applications.
• Great for learning memory management and data validation.
Features Implemented
• Create contact (with validation).
• Search by name, email, or phone.
• Edit existing contact.
• Delete contact (with confirmation).
• List all contacts.
• Save and load from CSV file.
• Data validation for consistency.
• Reusable modular functions for maintainability.
Tools and Setup
• Language: C
• Compiler: GCC
• Platform: Linux or Windows (terminal-based)
• Storage: AddressBook.csv
Project Modules

• main.c – Entry point & menu navigation


• contact.c / contact.h – Contact operations (add, search, edit, delete)
• file.c / file.h – Load/save to CSV file
Included Project Files
• main.c
• contact.c / contact.h
• file.c / file.h
• AddressBook.csv (output data)
• a.out (compiled executable)
Code Style & Modularity
• Modular programming using header and source files.
• Clearly separated logic: input, file I/O, and contact operations.
• Clean use of struct , array , and validation block.
• Functions are grouped by responsibilities for better readability.
• Code is structured to allow easy debugging and testing.
• Header files provide interface separation and reusability.
• Each operation is self-contained and can be extended independently.
Input Validation Summary
Proper validation ensures reliable, structured, and clean data:
• Name: alphabets , space special character.
• Phone: 10-digit unique number.
• Email: valid format with '@' and '.com’.
• Duplicate entries (same phone or email) are not allowed.
• Blank fields are rejected to ensure completeness.
• Input exceeding the allowed length is automatically trimmed or
rejected.
Name Validation
• It contain Uppercase
• It contain lowercase
• Space
• For the name there is no validation.
Phone Number Validation

•Exactly 10 digits
•Digits only
•Space not allowed
•No duplicates allowed
•Example: 9876543210 → | 123abc4567 →
Email ID Validation

•Must contain @ and end with .com


•No spaces or uppercase letters.
•Must be unique.
•Must not contain special characters (except @).
•Email domain must be properly structured (e.g., gmail.com, outlook.com).
•Cannot start or end with special characters.
•Example: user@mail.com → | User@Mail.Com →
CREATE CONTACT
• Takes input for name, phone, and email.
• Validates all fields before adding.
• Checks for duplicates to avoid redundancy.
• If validation passes, adds contact to memory.
• Shows confirmation message once saved.
• Updates the in-memory list, and optionally saves to file immediately.
• Displays input errors clearly for correction.
• Ensures that data is stored in structured format.
SEARCH CONTACT
• User chooses to search by name, phone, or email.
• Displays matching records with index.
• Useful before edit or delete.
EDIT CONTACT

• User selects a contact and chooses the field to edit.


• Allows modifying name, phone, or email individually.
• New input undergoes the same validation process.
• Contact list is updated in memory with new data.
• Displays both old and new values for user clarity.
• Invalid updates are rejected with proper error messages.
• Changes can be saved immediately to CSV for persistence.
• Helps correct mistakes or update outdated details.
DELETE CONTACT
•Search contact through name, phone email for delete.
•If search through Name then it will show all with this name.
•Select particular index number to delete.
•Select the contact to delete.
•Confirmation prompt for deletion(Y/N).
•Shifts array to fill the deleted index.
LIST CONTACTS

• Displays all saved contacts in a clean list.


• Shows: Name, Phone, Email.
• Helps in review or verification.
SAVE & LOAD
• On start: reads from AddressBook.csv.
• On save: writes all memory data to file.
• Ensures data persistence across sessions.
Challenges Faced
• Handling wrong input types (e.g., text instead of number).
• Avoiding memory issues.
• Preventing duplicate entries.
Conclusion & Future Scope
• Learned the file handling, validation, and modular design.
• Improved confidence in handling user input and file formats.
• Strengthened debugging skills and logical thinking.
• Encouraged me to write clean, maintainable C code.
• Next goals: Add GUI, SQLite database, or mobile sync support.
Address Book Menu – Output Screenshot
Search by Name – Output Screenshot
Search by Phone Number – Output Screenshot
Search by Email – Output Screenshot
Edit Contact – Output Screenshot
Delete Contact – Output Screenshot
Contacts – Output Screenshot
THANK YOU!

You might also like