> 백엔드 개발 > C++ > C 연습: 간단한 전화번호부 애플리케이션 구축

C 연습: 간단한 전화번호부 애플리케이션 구축

Barbara Streisand
풀어 주다: 2025-01-22 04:24:14
원래의
1011명이 탐색했습니다.

Practicing C: Building a Simple Phonebook Application

C 프로그래밍을 배우는 가장 좋은 방법 중 하나는 실습을 통한 것입니다. 이 기사에서는 제가 최근 완료한 프로젝트인 간단한 전화번호부 애플리케이션 작성을 단계별로 안내합니다. 이 프로그램을 사용하면 연락처를 추가, 보기, 삭제할 수 있으며 C에서 파일 처리 및 기본 데이터 관리를 보여줍니다.


자세한 코드 설명

전화번호부 애플리케이션의 전체 코드는 다음과 같습니다.

<code class="language-c">#include <stdio.h>
#include <string.h>

// 函数声明
void addContact(char name[], char number[]);
void viewContacts();
void deleteContact(char name[]);

int main() {
    int choice;
    char name[20];
    char number[20];

    printf("-- 欢迎使用您的电话簿! -- \n");

    do {
        // 显示菜单
        printf("\n您想执行什么操作?\n");
        printf("1. 创建新联系人\t 2. 查看电话簿\t 3. 删除联系人\t 4. 退出\n");
        scanf("%d", &choice);

        switch (choice) {
            case 1:
                // 添加新联系人
                printf("很好,让我们创建一个新的联系人:\n");
                printf("输入联系人的姓名:\n");
                scanf("%s", name);
                printf("现在输入电话号码:\n");
                scanf("%s", number);
                addContact(name, number);
                break;
            case 2:
                // 查看电话簿
                printf("这是您的电话簿:\n");
                viewContacts();
                break;
            case 3:
                // 删除联系人
                printf("输入要删除的联系人的姓名:\n");
                scanf("%s", name);
                deleteContact(name);
                break;
        }
    } while (choice != 4); // 循环直到用户选择“退出”

    return 0;
}

// 向电话簿添加联系人的函数
void addContact(char name[], char number[]) {
    FILE *pFile;
    pFile = fopen("Phonebook.txt", "a");
    if (pFile == NULL) {
        printf("打开电话簿时出错。");
        return;
    }
    fprintf(pFile, "姓名: %s \t 电话: %s\n", name, number);
    printf("联系人已创建!\n");
    fclose(pFile);
}

// 查看电话簿中所有联系人的函数
void viewContacts() {
    char fileContent[200];
    FILE *pFile;
    pFile = fopen("Phonebook.txt", "r");

    while (fgets(fileContent, sizeof(fileContent), pFile)) {
        printf("\n%s", fileContent);
    }

    fclose(pFile);
}

// 从电话簿中删除联系人的函数
void deleteContact(char name[]) {
    FILE *pFile, *pTrash;
    char line[200], contactName[20], contactNumber[20];

    pFile = fopen("Phonebook.txt", "r");
    pTrash = fopen("Trash.txt", "w");

    if (pFile == NULL || pTrash == NULL) {
        printf("打开文件时出错。");
        return;
    }

    while (fgets(line, sizeof(line), pFile)) {
        sscanf(line, "姓名: %s \t 电话: %s\n", contactName, contactNumber);
        if (strcmp(name, contactName) != 0) {
            fputs(line, pTrash);
        }
    }

    fclose(pFile);
    fclose(pTrash);

    // 将旧的电话簿替换为更新后的版本
    remove("Phonebook.txt");
    rename("Trash.txt", "Phonebook.txt");
    printf("联系人已删除。");
}</code>
로그인 후 복사

프로그램 기능

이 프로그램은 세 가지 주요 기능을 구현합니다.

  1. 연락처 추가:

    • 사용자가 이름과 전화번호를 입력하도록 허용합니다.
    • 연락처를 Phonebook.txt라는 파일에 저장하세요.
  2. 연락처 보기:

    • Phonebook.txt에 저장된 모든 연락처를 읽고 표시합니다.
  3. 연락처 삭제:

    • 사용자가 입력한 이름을 기준으로 연락처를 삭제합니다.
    • 임시 파일을 만들어 삭제된 연락처를 필터링한 후 원본 파일을 교체하세요.

이 연습을 통해 얻은 주요 지식

  1. C 언어에서 파일 처리:

    • fopen, fclose 및 파일 작업 기능을 사용하세요.
    • 파일을 열거나 액세스할 수 없는 경우 오류를 처리합니다.
  2. 문자열 처리:

    • 문자열 비교 및 ​​구문 분석에는 strcmp 및 sscanf와 같은 함수를 사용하세요.
  3. 기본 데이터 관리:

    • 간단한 텍스트 파일로 데이터를 저장하고 정리합니다.
    • 임시 파일을 생성하여 파일 내용을 교체하거나 업데이트하세요.

코드 테스트 방법

  1. 코드를 .c 파일에 복사하고 C 컴파일러(예: gcc)로 컴파일합니다.
<code class="language-bash">gcc -o phonebook phonebook.c</code>
로그인 후 복사
  1. 컴파일된 프로그램 실행:
<code class="language-bash">./phonebook</code>
로그인 후 복사
  1. 화면의 지시에 따라 연락처를 추가, 보기, 삭제합니다.
  2. Phonebook.txt를 열어 데이터가 예상대로 저장되었는지 확인하세요.

잠재적 개선

이 프로그램은 훌륭한 시작점이지만 시도해 볼 수 있는 몇 가지 개선 사항은 다음과 같습니다.

  1. 입력 확인:

    • 전화번호가 유효한지 확인하세요(예: 숫자만 가능).
    • 전화번호부에 중복된 이름이 표시되는 것을 방지하세요.
  2. 개선된 UI:

    • 자세한 지침을 제공하세요.
    • scanf 대신 fgets를 사용하면 여러 단어로 된 이름을 사용할 수 있습니다.
  3. 향상된 파일 처리:

    • 보안을 위해 데이터를 암호화합니다.
    • 구조화된 형식(예: CSV 또는 JSON)을 사용하세요.
  4. 고급 기능:

    • 연락처를 빠르게 찾을 수 있는 검색 기능을 구현하세요.
    • 전화번호부를 알파벳순으로 정렬하세요.

요약

이 연습은 C 언어의 파일 처리 및 기본 데이터 관리에 대한 이해를 강화하는 데 도움이 되었습니다. 이는 보다 복잡한 프로젝트의 구성 요소 역할을 할 수 있는 간단하면서도 실용적인 프로그램입니다. C를 처음 접한다면 한 번 시도해 보세요. 재미있고 보람찬 프로그래밍 연습 방법입니다!

위 내용은 C 연습: 간단한 전화번호부 애플리케이션 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿