自己写的电话簿管理系统 链表实现
根据提供的文件信息,我们可以分析并总结出一个电话簿管理系统的相关知识点。该系统采用链表作为数据结构,实现了电话簿的基本功能,包括记录添加、删除、查找等操作。接下来将详细解析这些知识点。 ### 一、电话簿管理系统概述 电话簿管理系统是一种用于存储联系人信息的软件应用,它允许用户添加、编辑、删除以及查询联系人的详细信息。在这个系统中,联系人信息通常包括姓名、地址和电话号码等。本系统使用链表作为基础数据结构来存储联系人信息,链表的优点在于动态分配内存,可以方便地在任何位置插入或删除节点。 ### 二、链表基础知识 链表是一种常见的线性数据结构,其中每个元素都是一个节点,每个节点包含两部分:数据和指向下一个节点的指针。对于电话簿管理系统而言,链表中的每个节点都存储了一个联系人的信息(如姓名、地址和电话号码),并且包含一个指向下一个联系人节点的指针。 #### 2.1 节点结构定义 在代码片段中,定义了名为 `slink` 的结构体类型,用于表示链表中的节点: ```c typedef struct dianhua { char name[20]; // 姓名 char address[20]; // 地址 int tele; // 电话号码 struct dianhua *next; // 指向下一个节点的指针 } slink; ``` #### 2.2 功能函数定义 针对电话簿管理系统的具体功能,定义了一系列函数,包括创建、录入、修改、删除、查找和显示联系人信息等: - **创建链表** (`chuangjian`):初始化链表。 - **录入联系人信息** (`luru`):添加新的联系人到电话簿中。 - **修改联系人信息** (`change`):更新已存在的联系人信息。 - **删除联系人信息** (`dalate`):移除电话簿中的联系人。 - **查找联系人信息** (`find`):根据特定条件(如姓名)查找联系人。 - **显示所有联系人信息** (`see`):展示电话簿中的所有联系人。 - **添加联系人信息** (`add`):与录入功能类似,但在具体实现上可能有所不同。 ### 三、系统核心功能详解 #### 3.1 创建链表 在电话簿管理系统启动时,需要先创建一个空的链表。这通常涉及到为链表头分配内存,并将其初始化为空(即 `NULL`)。 #### 3.2 录入联系人信息 此功能允许用户输入新联系人的详细信息,如姓名、地址和电话号码,并将其添加到链表中。为了保持链表的有序性,可以根据需要对节点进行排序。 #### 3.3 修改联系人信息 用户可以通过提供联系人的姓名或电话号码来查找并修改该联系人的信息。这涉及到遍历链表找到指定联系人节点,并更新其数据。 #### 3.4 删除联系人信息 当用户希望从电话簿中移除某个联系人时,可以调用此功能。通过提供联系人的姓名或电话号码来定位该联系人,并从链表中删除对应的节点。 #### 3.5 查找联系人信息 此功能允许用户根据姓名或电话号码查找联系人信息。系统会遍历整个链表,并返回匹配的联系人节点。 #### 3.6 显示所有联系人信息 此功能用于显示电话簿中所有联系人的信息。系统将遍历整个链表,并按顺序打印出每个联系人的详细信息。 ### 四、系统界面设计 电话簿管理系统的用户界面是通过控制台实现的,用户通过输入数字选择不同的操作。例如,可以选择添加新的联系人、查看现有联系人列表等。 ### 五、安全性考虑 在系统启动时,设置了密码验证机制以确保只有授权用户才能访问电话簿。密码验证函数 `password()` 负责检查用户输入的密码是否正确。 ### 六、总结 这个电话簿管理系统通过链表这一数据结构实现了基本的联系人管理功能。它不仅提供了直观的用户界面,还考虑到了一定的安全性问题。通过对这些功能的具体实现进行学习,初学者可以更好地理解链表的工作原理以及如何在实际项目中应用它们。
#include <stdio.h>
#include <malloc.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#define PASSWORD "123"
/*******************************定义函数块******************************/
int password(); //密码验证
void sysmeun(struct dianhua *); //系统主菜单显示
void chuangjian(struct dianhua *&);
void luru(struct dianhua *&); //信息录入
void change(struct dianhua *&); //信息修改
void dalate(struct dianhua *&); //信息删除
void find(struct dianhua *&); //信息查找
void see(struct dianhua *&); //信息全览
void add(struct dianhua *&); //信息增加
/********************定义结构体*******************************/
typedef struct dianhua
{
char name[20]; //姓名
char address[20]; //地址
int tele; //电话
struct dianhua *next; //指针域
}slink;
/************************主函数***********************/
void main()
{
chuangjian(l);
password();
sysmeun(l);
}
/************************密码验证******************************/
int password()
{
char word[20];
int b=0;
printf("\n\n\n\n\n\t\t欢 迎 使 用 本 系 统!登录密码为123\n");
printf("\n\n\n\t\t\t_________________\n");
printf("\t\t\t 学生管理系统\n");
printf("\t\t\t_________________\n");
printf("\t\t\t 用户名:xiaobin \n");
printf("\t\t\t_________________\n");
printf("\t\t\t 密 码:");
scanf("%s",&word);
if(strcmp(word,PASSWORD)==0)
{
return(1);
}
else
{printf("输入错误,请按任意键返回!");
getch();
system("cls");
password();
}
}
剩余9页未读,继续阅读
- 90后中年java2014-05-29还不错,挺有借鉴意义的,受益良多
- 粉丝: 20
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助