Code:
#include<stdio.h>
#include<stdbool.h>
#define M 11
#define N 15
int main(void)
{
int i, j, k, temp, addr_temp, addr_num, index_temp, delete_index, age2, age[M][1];
char input, save, save2, delete, name[M][N], city[M][N], name2[N], city2[N], search[N], phone[M][N], phone2[N];
bool are_equal, location_exist;
do{
printf("\n**********Main Menu************");
printf("\nAdd an address (press a)");
printf("\nEdit an address (press b)");
printf("\nSearch an address (press c)");
printf("\nDelete an address (press d)");
printf("\nList all addresses (press e)");
printf("\nExit (press f)");
printf("\n*******************************\n\n");
scanf(" %c", &input);
switch(input)
{
case('a'):
{
printf("\n**************Add Address************\n");
printf("Enter nickname: ");
scanf("%s", name2);
for(i=0; i< M-1; i++)
{
if(name[i][0] == 0)
{
addr_temp = i;
j=0;
do
{
name[i][j] = name2[j];
j++;
}
while(name2[j] != '\0');
break;
}
else
continue;
}
printf("Enter age: ");
age: scanf("%d", &age2);
if((age2 >= 1) && (age2 <= 140))
age[addr_temp][0] = age2;
else
{
printf("\nPlease input correct data\n");
goto age;
}
printf("Enter city: ");
scanf("%s", city2);
if(city[addr_temp][0] == 0)
{
j=0;
do
{
city[addr_temp][j] = city2[j];
j++;
}
while(city2[j] != '\0');
}
printf("Enter phone: ");
scanf("%s", phone2);
j=0;
do
{
phone[addr_temp][j] = phone2[j];
j++;
}
while(phone2[j] != '\0');
printf("Save(y/n): ");
scanf(" %c", &save);
if(save =='n')
{
age[addr_temp][0] = 0;
for(j=0; j< N; j++)
{
name[addr_temp][j] = 0;
city[addr_temp][j] = 0;
phone[addr_temp][j] = 0;
}
printf("\nRecord not added...");
}
if(save == 'y')
printf("\nRecord added...");
for(j=0; j< N; j++) //CLEANS THE TEMP HOLDERS
{
name2[j] = 0;
phone2[j] = 0;
city2[j] = 0;
}
break;
}
case ('b'):
{
printf("\n**********Edit an address*************");
printf("\nEnter address number: ");
scanf("%d", &addr_num);
printf("\n");
addr_num = addr_num - 1;
for(j=0; j< N; j++) //CLEANS THE TEMP HOLDERS
{
name2[j] = 0;
name[10][j] = 0;
phone2[j] = 0;
phone[10][j] = 0;
city2[j] = 0;
city[10][j] = 0;
}
if((age[addr_num][0] != 0) && (addr_num >= 0) && (addr_num <=9))
{
printf("Enter new nickname(");
j=0;
do
{
printf("%c", name[addr_num][j]);
j++;
}
while(name[addr_num][j] != '\0');
printf("): ");
scanf("%s", name2);
j=0;
do
{
name[10][j] = name2[j];
j++;
}
while(name[10][j] != '\0');
printf("Enter new age(%d): ", age[addr_num][0]);
age2: scanf("%d", &age2);
if(age2 >= 1 && age2 <= 140)
age[10][0] = age2;
else
{
printf("\nPlease input correct data\n");
goto age2;
}
printf("Enter new city(");
j=0;
do
{
printf("%c", city[addr_num][j]);
j++;
}
while(city[addr_num][j] != '\0');
printf("): ");
scanf("%s", city2);
j=0;
do
{
city[10][j] = city2[j];
j++;
}
while(city[10][j] != '\0');
printf("Enter new phone(");
j=0;
do
{
printf("%c", phone[addr_num][j]);
j++;
}
while(phone[addr_num][j] != '\0');
printf("): ");
scanf("%s", phone2);
j=0;
do
{
phone[10][j] = phone2[j];
j++;
}
while(phone[10][j] != '\0');
printf("Save(y/n): ");
scanf(" %c", &save2);
if(save2 =='y')
{
age[addr_num][0] = 0;
age[addr_num][0] = age[10][0];
age[10][0] = 0;
for(j=0; j< N; j++)
{
name[addr_num][j] = 0;
name[addr_num][j] = name[10][j];
name[10][j] = 0;
city[addr_num][j] = 0;
city[addr_num][j] = city[10][j];
city[10][j] = 0;
phone[addr_num][j] = 0;
phone[addr_num][j] = phone[10][j];
phone[10][j] = 0;
}
}
if(save2 =='n')
{
age[10][0] = 0;
for(j=0; j< N; j++)
{
name[10][j] = 0;
city[10][j] = 0;
phone[10][j] = 0;
}
}
}
else
printf("\nAddress not found...");
break;
}
case('c'):
{
printf("\n***********Search an address************");
printf("\nEnter nickname to search: ");
scanf("%s", search);
j=0;
for(i=0; i< M-1; i++)
{
while(search[j] == name[i][j] && search[j] != '\0' && name[i][j] != '\0')
j++;
if(search[j] == '\0' && name[i][j] == '\0')
{
are_equal = true;
index_temp = i;
break;
}
else if(search[0] == 0 && name[i][0] == 0)
continue;
else
are_equal = false;
}
if(are_equal == false)
{
printf("\nNickname does not exist, address not found");
goto end;
}
if(are_equal = true)
{
printf("\nResult:");
printf("\nNickname: ");
j=0;
do
{
printf("%c", name[index_temp][j]);
j++;
}
while(name[index_temp][j] != '\0');
printf("\nAge: %d", age[index_temp][0]);
printf("\nCity: ");
j=0;
do
{
printf("%c", city[index_temp][j]);
j++;
}
while(city[index_temp][j] != '\0');
printf("\nPhone: ");
j=0;
do
{
printf("%c", phone[index_temp][j]);
j++;
}
while(phone[index_temp][j] != '\0');
}
printf("\n*************************************");
break;
}
case('d'):
{
printf("\n***********Delete an Address************");
printf("\nEnter address number to delete: ");
scanf("%d", delete_index);
delete_index = delete_index - 1;
printf("\nNickname: ");
j=0;
while(name[delete_index][j] != '\0')
{
printf("%c", name[delete_index][j]);
j++;
}
printf("\nAge: %d", age[delete_index][0]);
printf("\nCity: ");
j=0;
while(city[delete_index][j] != '\0')
{
printf("%c", city[delete_index][j]);
j++;
}
printf("\nPhone: "); //NEED TO CHECK
j=0;
while(phone[delete_index][j] != '\0')
{
printf("%c", phone[delete_index][j]);
j++;
}
printf("\nAre you sure(y/n): ");
scanf(" %c", &delete);
if(delete == 'y')
{
age[delete_index][0] = 0;
for(j=0; j< N; j++)
{
name[delete_index][j] = 0;
city[delete_index][j] = 0;
phone[delete_index][j] = 0;
}
printf("\nAddress deleted");
}
if(delete == 'n')
printf("\nAddress not deleted");
break;
}
case('e'):
{
printf("\n*************List all address***************");
printf("\nSN:\tNickname\tAge\tCity\tPhone");
printf("\n\n");
i=0;
while(age[i][0] != 0)
{
i++;
}
break;
}
case('f'):
break;
}
end: printf("\n");
}
while(input != 'f');
return(0);
}