C++

The C language implements the address book system


C language address book system, for your reference, the specific content is as follows

Demand analysis:

Use the method of file reading and writing

Add address book contact information

Delete contact information in the address book

Realize to find contact information in the address book

Implement modification of address book contact information

Implementation to view existing address book contact information

Code implementation:

// main.c
// C Language address book implementation
//
// Created by Brisinga on 15/10/14.
// Copyright © 2015 years  yan. All rights reserved.
//

#include <stdio.h>
#include<string.h>
#define LEN 10
#define NAMELEN 22
#define TELLEN 12

//************* Structure variable definition ****************
// Define the number of contacts
int contactCount = 0;
// Define structure
typedef struct{

 // Define contact name
 char name[NAMELEN];
 // Define contact number
 char tel[TELLEN];

}Person;

// Initializes the contact group
Person contact[LEN];
// Define filename
charchar *path = "a.data";

// Receive the user's input number
int no;
//************** Function declaration ********************

// Initialization declaration
void init();
// Check the statement
int isValid(int n,int min,int max);
// Add contacts
void addContact();
// Delete contacts
void deleteContact();
// Modify contact
void updateContact();
// View all contacts
void doList();
// Search contacts
void searchContact();
// Log out
void quit();
// Contact write file
void writeFile();
//***************************************


int main(int argc, const charchar * argv[]) {


 // Address book initialization
 init();
 printf(" Address book initialization succeeded! \n");



 while (1) {

  // Define the interface
 printf("**********************************\n");
 printf("*********** Welcome to the address book ***********\n");
 printf("***********1. Add contacts *************\n");
 printf("***********2. Delete contacts *************\n");
 printf("***********3. Modify contact *************\n");
 printf("***********4. View all contacts **********\n");
 printf("***********5. Search contacts *************\n");
 printf("***********6. Log out ***************\n");
 printf("**********************************\n");


  // Prompt the user for a number
  printf(" Please enter the operation number: \n");
  scanf("%d",&no);
  // Determine if the input is valid
  isValid(no, 1, 6);
  // Determine the user's actions
  switch (no) {
   case 1:
    // Add contacts
    addContact();
    break;
   case 2:
    // Delete contacts
    deleteContact();
    break;
   case 3:
    // Update contacts
    updateContact();
    break;
   case 4:
    // View contacts
    doList();
    break;
   case 5:
    // Search contacts
    searchContact();
    break;
   case 6:
    // exit
    quit();
    return 0;

   default:
    break;
  }

 }
 return 0;
}

// Address book initialization
void init(){

 // Definition file pointer
 FILEFILE *fp = fopen(path, "r");
 // Determine if the address book exists
 if (fp!=NULL) {
 // If there is
 //1. Number of read contacts
  fread(&contactCount, sizeof(contactCount), 1, fp);
 //2. Read each 1 A contact nts
  for (int i=0; i<contactCount; i++) {
   fread(&contact[i], sizeof(Person), 1, fp);
  }

 }else{

 // If it doesn't exist
 // Create address book
  fp = fopen(path, "wb");
 // Writes the number of current contacts
  fwrite(&contactCount, sizeof(contactCount), 1, fp);

 }
 fclose(fp);

}

// Verify that the input is valid
int isValid(int n,int min,int max){

 // If the input number is greater than min Less than max, It returns 0
 if (n>=min&&n<=max) {
  return 0;
 }

 // Otherwise returns 1
 printf(" Illegal import! \n");
 return 1;

}

// Add contacts
void addContact(){

 // The user is prompted for a name to add a contact
 printf(" Please enter the name of the contact to be added: * Note that there should be no Spaces between names \n");
 // Receiving contact name
 scanf("%s",contact[contactCount].name);
 // Prompt the user for the number to add
 printf(" Please enter the number to add a contact:  * Note that there should be no Spaces between the Numbers \n");
 // Receive contact number
 scanf("%s",contact[contactCount].tel);
 // Ask if you are sure to add
 printf(" Are you sure you want to add it? 1. determine  0. cancel \n");
 scanf("%d",&no);
 if (no) {
  contactCount++;
  // Written to the file
  writeFile();
  printf(" Added successfully! \n");
 }


}

// Delete contacts
void deleteContact(){

 // Show contacts
 doList();
 int flag;
 // The user is prompted for the number of contacts to delete
 printf(" Please enter the number of the contact to delete: \n");
 // Receive the user's input number
 scanf("%d",&no);
 // Determine if the number is valid
 if(!isValid(no, 1, contactCount)){
 // Number the legitimate
  printf(" Are you sure you want to delete it? It cannot be restored after deletion! 1. determine  0. cancel \n");
  scanf("%d",&flag);
  if (flag) {
   // If the contact to be deleted is at the end
  if (no==contactCount) {
   // the contactCount-1
   contactCount--;
  }else{

 // If the contact to be deleted is not at the end
 // Move array elements
   for (int i=no-1; i<contactCount-1; i++) {
    contact[i]=contact[i+1];
   }

  }
 //contactCount--
   contactCount--;
 // Write files
  writeFile();
  }

 }else
 // The number is illegal, exit
  printf(" The number is illegal! \n");
  return ;

}

// Modify contact
void updateContact(){

 // Show contacts
 doList();
 // Prompt the user for the number of contacts to change
 printf(" Please enter the number of the contact to be modified: \n");
 // Receive the user's input number
 scanf("%d",&no);
 // Determine if the number is valid
 int flag;
 if (!isValid(no, 1, contactCount)) {
  // Prompt the user for the name of the new contact
   printf(" Please enter your new name: * Note: No Spaces between names \n");
   // Receive the user's input name
   scanf("%s",contact[no-1].name);
   // Prompt the user for a new phone number
   printf(" Please enter your new phone number: * Note: There should be no space between the phone Numbers \n");
   // Receive the phone number entered by the user
   scanf("%s",contact[no-1].tel);

   // Is the user asked to confirm the change?
  printf(" Are you sure you want to change it? 1. determine  0. cancel \n");
  scanf("%d",&flag);
  if (flag) {

   // Write files
   writeFile();
   printf(" Contact modified successfully! \n");
  }else{

   printf(" The number is illegal!! \n");
   return ;

  }

 }


}

// View all contacts
void doList(){

 printf(" Display all contacts: \n");
 printf(" Serial number \t The name \t The phone \n");
 for (int i=0; i<contactCount; i++) {
  printf("%d\t%s\t%s\n",i+1,contact[i].name,contact[i].tel);
 }

}

// Search contacts
void searchContact(){

 int flag = 1;
 // Receive the user's input name
 char searchName[NAMELEN];
 // Receive calls entered by the user
 char searchTel[TELLEN];
 // Ask the user how to search
 printf(" Please enter how to find:  1. Search by name  2. Look it up by phone number \n");
 // Receive the user's search method
 scanf("%d",&no);
 if (no==1) {
  // Ask the user to enter the name to look for
  printf(" Please enter the name to find: \n");
  scanf("%s",searchName);
  for (int i=0; i<contactCount; i++) {
   if (!strcmp(searchName,contact[i].name)) {
    printf(" The contact you are looking for is: \n");
    printf("%d\t%s\t%s\n",i+1,contact[i].name,contact[i].tel);
    return ;
   }else{

    flag = 0;
   }
  }

 }else if(no==2){

   // Ask the user to enter the phone number they are looking for
  printf(" Please enter the phone number you are looking for: \n");
  scanf("%s",searchTel);
  for (int i=0; i<contactCount; i++) {
   if (!strcmp(searchTel,contact[i].tel)) {
    printf(" The contact you are looking for is: \n");
    printf("%d\t%s\t%s\n",i+1,contact[i].name,contact[i].tel);
    return ;
   }else{

    flag = 0;
   }
  }


 }else{
  printf(" Illegal input! \n");
  return ;
 }
 if (!flag) {
  printf(" I'm sorry! The friend is not in the address book! \n");
 }



}

// Log out
void quit(){

 printf(" System is exiting ...\n");
 printf(" System is out! \n");


}

// Contact write file
void writeFile(){

 // Definition file pointer
 FILEFILE *fp = fopen(path, "wb");
 if (fp!=NULL) {
  // Number of contacts written
  fwrite(&contactCount, sizeof(contactCount), 1, fp);
  // Write to each contact
  for (int i=0; i<contactCount; i++) {

   fwrite(&contact[i], sizeof(Person),1, fp);
  }

 }
 fclose(fp);

}