Title: File Management System
( Creating a Address book in C )
Source code:
#include <stdio.h>
#include <string.h>
struct Person {
char name[30];
char phone[30];
char email[30];
char address[30];
};
void addressbook(){
printf("\n--- Contact Management System ---\n");
printf("1. Add Contact\n");
printf("2. View all Contacts\n");
printf("3. View a specific contact\n");
printf("4. Delete Contact\n");
printf("[Link] a contact\n");
printf("6. delete all contacts \n");
printf("7. Search a contact\n");
printf("8. Exit ");
}
void addContact() {
FILE *file = fopen("C:\\files\\[Link]", "a");
if (file == NULL)
{
perror("Error opening file");
return;
}
struct Person newPerson;
printf("Enter name: ");
scanf("%s", &[Link]);
printf("Enter phone number: ");
scanf("%s",&[Link]);
printf("Enter email: ");
scanf("%s", &[Link]);
printf("Enter address: ");
scanf("%s", &[Link]);
fprintf(file, "%s %s %s %s ", [Link], [Link], [Link],[Link]);
fclose(file);
printf("Contact added successfully.\n");
}
void viewContacts() {
FILE *file = fopen("C:\\files\\[Link]", "r");
if (file == NULL) {
perror("Error opening file");
return;
}
struct Person currentPerson;
printf("Contacts:\n");
while (fscanf(file, "%s %s %s %s", &[Link], &[Link],
&[Link],&[Link]) != EOF) {
printf(" \n%s\n%s\n%s\n%s\n", [Link], [Link],
[Link],[Link]);
}
fclose(file);
}
void deleteContact() {
char name[30];
printf("Enter name to delete: ");
scanf("%s", &name);
FILE *file = fopen("C:\\files\\[Link]", "r");
FILE *tempFile = fopen("C:\\files\\[Link]", "w");
struct Person currentPerson;
int found = 0;
while (fscanf(file, "%s %s %s %s", &[Link], &[Link], &[Link],
&[Link]) != EOF)
{
if (strcmp([Link], name) != 0)
{
fprintf(tempFile, "%s %s %s %s\n", [Link], [Link],
[Link],[Link]);
}
else {
found = 1;
}
}
fclose(file);
fclose(tempFile);
remove("C:\\files\\[Link]");
rename("C:\\files\\[Link]", "C:\\files\\[Link]");
if (found)
{
printf("Contact '%s' deleted successfully.\n", name);
}
else {
printf("Contact '%s' not found.\n", name);
}
}
void deleteall() {
FILE *file = fopen("C:\\files\\[Link]", "r");
FILE *fprt = fopen("C:\\files\\[Link]", "w");
fclose(file);
fclose(fprt);
remove("C:\\files\\[Link]");
rename("C:\\files\\[Link]", "C:\\files\\[Link]");
printf("Contacts deleted successfully.\n");
}
void view(){
FILE *f = fopen("C:\\files\\[Link]", "r");
if (f == NULL)
{
perror("Error opening file");
return;
}
char nameToFind[30];
printf("Enter name to find: ");
scanf("%s", &nameToFind);
struct Person contact;
int found = 0;
while (fscanf(f, "%s %s ", &[Link], &[Link])==2) {
if (strcmp([Link], nameToFind) == 0)
{
printf("Name: %s\nPhone: %s\n ", [Link], [Link]);
found = 1; }
}
if (found!=1)
{ printf("Contact not found\n");
}
fclose(f);
}
void editContact(){
struct Person contact;
FILE *f=fopen("C:\\files\\[Link]","r");
FILE *fprt=fopen("C:\\files\\[Link]","w");
char name[30];
int found=0;
printf("enter the name to edit\n");
scanf("%s",&name);
while(fscanf(f, "%s %s %s %s",&[Link],&[Link],&[Link],&[Link]) == 4){
if(strcmp([Link],name)==0)
{
printf("enter new contact\n");
scanf("%s",&[Link]);
printf("enter new phone\n");
scanf("%s",&[Link]);
printf("enter new email\n");
scanf("%s",&[Link]);
printf("enter new address\n");
scanf("%s",&[Link]);
found=1;
}
fprintf(fprt," %s %s %s %s ",[Link],[Link],[Link],[Link]);
}
fclose(f);
fclose(fprt);
remove("C:\\files\\[Link]");
rename("C:\\files\\[Link]", "C:\\files\\[Link]");
}
void search(){
FILE*f=fopen("C:\\files\\[Link]","r");
struct Person contact;
char name[30];
printf("enter name to search");
scanf("%s",name);
while(fscanf(f, "%s %s %s %s",&[Link],&[Link],&[Link],&[Link])==4){
if(strcmp([Link],name)==0
{ printf("%s %s %s %s",[Link],[Link],[Link],[Link]);
}
}
}
int main() {
int choice;
char name[30];
do {
addressbook();
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1: addContact();
break;
case 2: viewContacts();
break;
case 3: view();
break;
case 4: deleteContact();
break;
case 5: editContact();
break;
case 6: deleteall();
break;
case 7: search();
break;
case 8: printf("Exiting program. Goodbye!\n");
break;
default:
printf("Invalid choice. Please enter a valid option.\n");
}
} while (choice != 8);
return 0; }
Output:
Adding new contacts:
View all contacts:
View a specific contact:
Delete a specific contact:
Delete all contacts:
Adding anew contact +editing a new
contact:
Searching a contact:
Exiting the program: