电子通讯录(1)

电子通讯录(1)这是一个基于链表的项目 由于之前学习了怎样来创建一个单链表 在一个基础上就想来做一个电子通讯录玩玩 项目需求 制作一个电子通讯录 通过该通讯录能存入好友 ID 号 姓名 英文 手机号码 家庭住址 公司电话 模块包括 主界面 主要显示软件功能 A

大家好,我是讯享网,很高兴认识大家。

这是一个基于链表的项目,由于之前学习了怎样来创建一个单链表,在一个基础上就想来做一个电子通讯录玩玩。

项目需求: 制作一个电子通讯录,通过该通讯录能存入好友 ID 号、姓名(英文) 、手机号码、家庭住址、公司电话。

模块包括  :

  主界面:主要显示软件功能。
A)  添加好友信息。
B)  列表好友信息。(包含排序功能)
C)  搜索好友
D)  删除好友


  添加好友:
用户输入 INSERT 命令后,让用户输入好友信息。添加成功或失败都需要提示用户。


  列表好友:
用户输入 DISPLAY 命令后,好友信息升序排列。


  搜索好友:
用户输入 SEARCH 命令后,让用户输入将要搜索好友姓名查询。如果未搜索到
请友好提示。如果搜索到,显示出该好友信息。

  删除好友:
用户输入 DELETE 命令后,让用输入将要删除好友姓名删除,如果存在同名的
多个好友,则列表出,所有同名的好友信息,让用户通过输入 ID 号删除。提示用
户删除成功。  

由于用链表来实现,将每个好友的信息都放入一个结构体中作为一个结点。首先要先创建这个链表,将每个好友的信息添加到这个链表中构成这个通讯录。其次就是对这个通讯录进行操作,说白了就是对链表进行增删改查等。


讯享网

一个好友包括5个信息。可以建一个如下的结构体。

typedef struct friend { int id; //结点数据 char name[20]; char phone[20]; char addr[20]; char company_phone[20]; struct friend *next; //结点指针 }Friend; typedef Friend* PFriend; //重命名结点指针类型

讯享网
我这次是用头结点的方式来创建的链表的。在main函数中定义一个PFriend类型的结点为head_node。

创建链表我用的是尾插法,在结构体中有id,name[]等数据,我选择用id作为一个递增的值,通过id++就可以不断的插入结点。

         因为主界面会显示4个内容,在主函数中用switch..case..语句来判断。

下面是初写的一个只能实现添加好友的版本。

讯享网#include <stdio.h> #include <stdlib.h> #define OK 0 #define ERROR -1 #define MALLOC_ERROR -2 typedef struct friend { int id; //结点数据 char name[20]; char phone[20]; char addr[20]; char company_phone[20]; struct friend *next; //结点指针 }Friend; typedef Friend *PFriend; //重命名结点指针类型 int Add_Friend(PFriend s,int id) { if (s == NULL) { return ERROR; } //要插入的朋友信息 PFriend friend = (PFriend)malloc(sizeof(Friend)/sizeof(char)); if (friend == NULL) { return MALLOC_ERROR; } friend->id = id; printf ("\n\tput your name:"); scanf ("%s",friend->name); printf ("\n\tput your phone:"); scanf ("%s",friend->phone); printf ("\n\tput your addr:"); scanf ("%s",friend->addr); printf ("\n\tput your company_phone:"); scanf ("%s",friend->company_phone); friend->next = NULL; //找最后一个结点 PFriend temp = s; while (temp->next) { temp->next = temp; } temp->next = friend; return OK; } void interface() { printf ("1) 添加好友\n"); printf ("2) 列举好友\n"); printf ("3) 搜索好友\n"); printf ("4) 删除好友\n"); printf ("请选择:"); } int main() { int id = 0; PFriend head_node = (PFriend)malloc(sizeof(Friend)/sizeof(char)); if (head_node == NULL) { return MALLOC_ERROR; } head_node->next == NULL; //选择 char choice[2]; system("clear"); //清屏 while(1) { interface(); scanf ("%s",choice); //字符串以"\n"结尾 switch(choice[0]) { case '1'://添加好友 { id++; if (Add_Friend(head_node,id) != OK) { return ERROR; system("clear"); printf ("\n\n\n"); printf ("\t添加好友失败,请重新添加!"); } system("clear"); printf ("\n\n\n"); printf ("\t添加好友成功!\n"); break; } case'2'://列举好友 { break; } case'3'://搜索好友 { break; } case'4'://删除好友 { break; } default: { system("clear"); printf ("\n\n\n"); printf ("请输入正确的选项!\n\n\n"); break; } } } system("claer"); return 0; } 



小讯
上一篇 2025-01-10 12:48
下一篇 2025-03-30 17:32

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/24985.html