引言

C语言作为一种历史悠久且功能强大的编程语言,因其高效、灵活和易于理解的特点,被广泛应用于系统软件、嵌入式系统、游戏开发等领域。本课程报告将带领读者深入了解C语言编程,并通过实际案例——个性化通讯录系统的开发,展示如何运用C语言解决实际问题。

一、C语言编程基础

1.1 C语言发展历程

C语言由Dennis Ritchie在1972年发明,最初是为了在Unix操作系统上编写系统软件。自那时以来,C语言不断发展,逐渐成为全球最流行的编程语言之一。

1.2 C语言特点

  • 高效:C语言编写的程序运行速度快,适合处理大量数据。
  • 灵活:C语言支持多种数据类型和运算符,方便进行复杂运算。
  • 易于理解:C语言语法简洁,易于学习。

1.3 C语言开发环境

  • 编译器:如GCC、Clang等。
  • 编辑器:如VS Code、Sublime Text等。

二、个性化通讯录系统概述

2.1 系统功能

  • 添加联系人:用户可以添加姓名、电话、邮箱等信息。
  • 删除联系人:用户可以删除指定的联系人。
  • 修改联系人:用户可以修改联系人的信息。
  • 查询联系人:用户可以通过姓名、电话或邮箱查询联系人。

2.2 系统架构

  • 数据存储:使用文件系统存储联系人信息。
  • 用户界面:通过命令行界面与用户交互。

三、系统实现

3.1 数据结构

  • 使用结构体(struct)定义联系人信息。
struct Contact {
    char name[50];
    char phone[20];
    char email[50];
};

3.2 功能实现

3.2.1 添加联系人

void addContact(struct Contact *contacts, int *count) {
    struct Contact newContact;
    printf("Enter name: ");
    scanf("%49s", newContact.name);
    printf("Enter phone: ");
    scanf("%19s", newContact.phone);
    printf("Enter email: ");
    scanf("%49s", newContact.email);
    contacts[*count] = newContact;
    (*count)++;
}

3.2.2 删除联系人

void deleteContact(struct Contact *contacts, int count) {
    char name[50];
    printf("Enter name to delete: ");
    scanf("%49s", name);
    for (int i = 0; i < count; i++) {
        if (strcmp(contacts[i].name, name) == 0) {
            for (int j = i; j < count - 1; j++) {
                contacts[j] = contacts[j + 1];
            }
            count--;
            break;
        }
    }
}

3.2.3 修改联系人

void modifyContact(struct Contact *contacts, int count) {
    char name[50];
    printf("Enter name to modify: ");
    scanf("%49s", name);
    for (int i = 0; i < count; i++) {
        if (strcmp(contacts[i].name, name) == 0) {
            printf("Enter new phone: ");
            scanf("%19s", contacts[i].phone);
            printf("Enter new email: ");
            scanf("%49s", contacts[i].email);
            break;
        }
    }
}

3.2.4 查询联系人

void searchContact(struct Contact *contacts, int count) {
    char search[50];
    printf("Enter search term: ");
    scanf("%49s", search);
    for (int i = 0; i < count; i++) {
        if (strstr(contacts[i].name, search) != NULL || strstr(contacts[i].phone, search) != NULL || strstr(contacts[i].email, search) != NULL) {
            printf("Name: %s, Phone: %s, Email: %s\n", contacts[i].name, contacts[i].phone, contacts[i].email);
        }
    }
}

四、总结

通过本课程报告,我们了解到C语言编程的基础知识和个性化通讯录系统的实现过程。通过学习本课程,读者可以掌握C语言编程的基本技能,并能够运用所学知识解决实际问题。在实际开发过程中,读者可以根据需求对系统进行扩展和优化。