C语言实现通讯录系统课程设计

C语言实现通讯录系统课程设计

本次课程设计旨在通过实现一个简单的通讯录系统,帮助初学者巩固C语言基础知识,并初步了解数据结构相关操作和应用。

基本功能

通讯录系统主要包含以下功能:

  1. 添加联系人
  2. 删除联系人
  3. 修改联系人信息
  4. 查找联系人
  5. 显示所有联系人信息
  6. 清空联系人

设计思路

通讯录系统主要使用链表数据结构作为存储方式,并且通过读写文件将链表数据结构永久保存到外部存储器中。具体实现步骤如下:

  1. 定义一个通讯录结构体类型,包含联系人信息,如姓名,性别,电话等。
  2. 定义一个链表节点结构体类型,每个节点存储一个联系人信息。
  3. 定义一个链表类型,包含链表头指针和尾指针,便于插入和删除操作。
  4. 通过读取文件中的数据建立通讯录,初始化链表。
  5. 完成各个操作函数的实现,具体内容见下文。

代码示例

添加联系人

// 定义一个新的联系人
struct contact new_contact;
// 从用户输入中获取联系人信息
contact_input(&new_contact);
// 判断联系人是否已存在
if (find_contact(&new_contact) != NULL) {
    printf("联系人已存在,添加失败。\n");
    return;
}
// 新建链表节点,保存联系人信息
struct contact_node* node = (struct contact_node*) malloc(sizeof(struct contact_node));
node->contact = new_contact;
node->next = NULL;
// 将新建节点插入到链表末尾
if (contacts.tail == NULL) {
    contacts.head = contacts.tail = node;
} else {
    contacts.tail->next = node;
    contacts.tail = node;
}
printf("添加联系人成功。\n");

使用上述代码,可以实现向通讯录中添加一个新的联系人。我们首先定义了一个新的联系人结构体,通过调用contact_input()函数获取用户输入的联系人信息,然后使用find_contact()函数查找是否存在相同联系人,如果不存在则创建一个新的链表节点,最后通过修改链表的头指针和尾指针来插入新节点。最后输出结果。

查找联系人

// 从用户输入中获取需要查找的联系人姓名
char search_name[MAX_NAME_LEN];
printf("请输入需要查找的联系人姓名:");
fgets(search_name, MAX_NAME_LEN, stdin);
strip(search_name);
// 调用查找函数获取联系人信息
struct contact_node* result = find_contact_by_name(search_name);
if (result != NULL) {
    printf("查找到了以下联系人:\n");
    print_contact(&result->contact);
} else {
    printf("未找到联系人。\n");
}

上述代码中,我们通过fgets()函数从标准输入中获取需要查找的联系人姓名,并调用find_contact_by_name()函数查找联系人。如果找到了相应的联系人,则通过print_contact()函数输出联系人信息,如果未找到则输出相应提示。需要注意的是,为了安全起见,我们在输入后通过strip()函数清除输入字符串中的空格和换行符。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现通讯录系统课程设计 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • AJAX开发简略 (第二部分)

    下面我来详细讲解“AJAX开发简略 (第二部分)”的完整攻略。 AJAX开发简略(第二部分) 在上一篇文章中,我们已经了解到 AJAX 的定义、用途和基本的使用方法。本篇文章将介绍如何使用 AJAX 进行数据交互,以及如何避免常见的 AJAX 开发问题。 数据交互 AJAX 最常见的用途就是向服务器获取数据并更新页面,而且这个过程是异步进行,不会阻塞页面加载…

    C 2023年5月22日
    00
  • C语言中如何进行代码重用?

    在 C 语言中,可以使用函数来实现代码重用。函数是一段可重用的代码块,它可以接收参数,执行一定的操作,然后返回结果。 以下是 C 语言中实现代码重用的步骤: 定义函数:使用 function_name() 关键字定义一个函数,并在花括号中输入函数操作的代码。 函数参数:在函数括号中可以定义函数参数,用于传递数据或变量。可以使用参数的默认值或者变量的地址来传递…

    C 2023年4月27日
    00
  • C语言实现的程序员老黄历实例

    针对“C语言实现的程序员老黄历实例”,如果你想要实现这个小项目,可以按照以下步骤进行操作。 步骤一:确定项目目录并初始化 首先,在你的终端或者命令行中,切换到你要创建这个项目的目录下,比如 C:/Users/your_name/Desktop/programer_calender。 在该目录下执行以下命令初始化项目 mkdir calender cd cal…

    C 2023年5月23日
    00
  • C语言 字符串指针详解及示例代码

    C语言 字符串指针详解及示例代码 什么是字符串指针? 在C语言中,字符串指针通常用来存储字符串的地址,字符串指针变量以及字符串变量有所不同:字符串变量是进行字符串内容及长度操作的,而字符串指针变量不同,它仅存储字符串的地址,这意味着字符串指针变量可以指向不同的字符串。 字符串指针变量的声明方式: char *stringPointer; 字符串指针的赋值 字…

    C 2023年5月24日
    00
  • ThinkPHP中Common/common.php文件常用函数功能分析

    首先我们来讲一下ThinkPHP中Common/common.php文件的作用。 Common/common.php文件是ThinkPHP中的一个核心文件,它包含了许多常用的函数和全局变量。这些函数和变量可以在应用程序中的任何地方使用,而不需要重新定义或导入。这大大简化了应用程序的开发流程,让开发者可以更加专注于应用程序的业务逻辑本身。 接下来,我们将对Co…

    C 2023年5月23日
    00
  • C语言实现散列表(哈希Hash表)实例详解

    下面我将为您详细讲解“C语言实现散列表(哈希Hash表)实例详解”的完整攻略。 概述 哈希(Hash)是一种能够快速定位存储位置的技术。哈希表(Hash Table)也叫散列表,是利用哈希函数(Hash Function)进行访问的数据结构。C语言中的哈希表主要分为两种:开放地址法和链表法。 开放地址法又分为线性探测法、二次探测法和双重散列法。本文主要介绍使…

    C 2023年5月23日
    00
  • java 和 json 对象间转换

    Java和JSON都是广泛使用的编程语言和数据格式,将Java对象转换为JSON对象可以方便地在网络间传输数据。同样,将JSON对象转换为Java对象也可以使其在Java程序中方便使用。下面是Java和JSON对象间转换的完整攻略。 Java对象转换为JSON对象 Java对象转换为JSON对象通常使用第三方库,常用的是Google提供的Gson库和阿里巴巴…

    C 2023年5月23日
    00
  • C语言实现斗地主的核心算法

    下面我将为您详细讲解C语言实现斗地主的核心算法的完整攻略。 一、实现思路 1.1 牌型定义 我们可以采用两个数组来定义牌的大小和花色,其中大小可以用一个int值表示,花色可以用枚举类型表示。 1.2 发牌过程 发牌的过程可以采用随机数的方式实现,每个玩家依次取一张牌,直到每个玩家取到17张牌。 1.3 牌型判断 我们需要定义一个函数来判断牌的牌型,可以采用s…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部