根据给定的信息,本文将对“用C简单编写通讯录源代码(经典)”中的关键知识点进行详细解析。本文档提供了一段使用C语言编写的通讯录程序代码,并对其功能进行了划分,包括数据输入、列表展示、查找记录、删除记录、添加记录、文件保存与加载等功能。接下来,我们将对这些知识点进行逐一分析。 ### 1. 数据结构定义 在程序的开始部分定义了一个名为`ADDRESS`的数据结构体,用于存储通讯录中每个条目的具体信息: - `char name[20]`: 存储联系人的姓名,长度限制为20个字符。 - `char units[30]`: 存储联系人的单位或公司名称,长度限制为30个字符。 - `char tele[10]`: 存储联系人的电话号码,长度限制为10个字符。 ### 2. 全局变量与常量 - `#define M 50`: 定义了通讯录最多可以存储的记录数为50条。 - `ADDRESS adr[M]`: 定义了一个`ADDRESS`类型的数组`adr`,用于存储通讯录中的所有记录。 - `int length`: 用于记录通讯录中实际存储的记录数量。 ### 3. 函数定义 文档中定义了一系列函数,用于实现通讯录的基本功能: - `int enter(ADDRESS t[])`: 输入记录至通讯录。 - `void list(ADDRESS t[], int n)`: 显示通讯录中的所有记录。 - `void search(ADDRESS t[], int n)`: 在通讯录中搜索特定的记录。 - `int delete(ADDRESS t[], int n)`: 删除通讯录中的某条记录。 - `int add(ADDRESS t[], int n)`: 向通讯录中添加新记录。 - `void save(ADDRESS t[], int n)`: 将通讯录数据保存至文件。 - `int load(ADDRESS t[])`: 从文件中加载通讯录数据。 - `void display(ADDRESS t[])`: 按照一定顺序显示通讯录记录。 - `void sort(ADDRESS t[], int n)`: 对通讯录中的记录进行排序。 - `void qseek(ADDRESS t[], int n)`: 快速查找通讯录中的记录。 - `void copy()`: 复制通讯录数据至另一个文件。 - `void print(ADDRESS temp)`: 打印一条通讯录记录。 - `int find(ADDRESS t[], int n, char *s)`: 在通讯录中查找含有特定字符串的记录。 - `int menu_select()`: 提供用户菜单选项,让用户选择操作。 ### 4. 主函数main() 主函数通过一个无限循环来不断提示用户选择操作,并根据用户的选择调用相应的函数执行操作。例如: - `case 0: length = enter(adr); break;`: 输入记录至通讯录。 - `case 1: list(adr, length); break;`: 显示通讯录中的所有记录。 - `case 2: search(adr, length); break;`: 在通讯录中搜索特定的记录。 ### 5. 菜单选项处理函数menu_select() 该函数用于显示菜单并获取用户的选项,然后返回所选操作的序号。通过`switch`语句根据不同的选项执行不同的操作。 ### 总结 本文详细介绍了如何使用C语言编写一个简单的通讯录程序,包括数据结构的设计、函数的定义以及主函数的流程控制。通过对这些知识点的理解,读者可以进一步掌握C语言的基础应用及文件操作的相关知识,对于初学者来说是非常好的实践案例。此外,本文还涉及到了基本的数据管理和用户交互,有助于加深对软件开发流程的理解。
用C简单编写通讯录源代码(经典)申请加精通讯录源代码
/*10.3.2源程序*/
/******头文件(.h)***********/
#include "stdio.h" /*I/O函数*/
#include "stdlib.h" /*标准库函数*/
#include "string.h"/*字符串函数*/
#include "ctype.h" /*字符操作函数*/
#define M 50 /*定义常数表示记录数*/
typedef struct /*定义数据结构*/
{
char name[20]; /*姓名*/
char units[30]; /*单位*/
char tele[10]; /*电话*/
}ADDRESS;
/******以下是函数原型*******/
int enter(ADDRESS t[]); /*输入记录*/
void list(ADDRESS t[],int n); /*显示记录*/
void search(ADDRESS t[],int n); /*按姓名查找显示记录*/
int delete(ADDRESS t[],int n); /*删除记录*/
int add(ADDRESS t[],int n); /*插入记录*/
void save(ADDRESS t[],int n); /*记录保存为文件*/
int load(ADDRESS t[]); /*从文件中读记录*/
void display(ADDRESS t[]); /*按序号查找显示记录*/
void sort(ADDRESS t[],int n); /*按姓名排序*/
void qseek(ADDRESS t[],int n); /*快速查找记录*/
void copy(); /*文件复制*/
void print(ADDRESS temp); /*显示单条记录*/
int menu_select(); /*主菜单函数*/
/******主函数开始*******/
main()
{
int i;
ADDRESS adr[M]; /*定义结构体数组*/
int length; /*保存记录长度*/
clrscr(); /*清屏*/
for(;;)/*无限循环*/
{
switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/
{
case 0:length=enter(adr);break;/*输入记录*/
case 1:list(adr,length);break; /*显示全部记录*/
case 2:search(adr,length);break; /*查找记录*/
case 3:length=delete(adr,length);break; /*删除记录*/
case 4:length=add(adr,length); break; /*插入记录*/
case 5:save(adr,length);break; /*保存文件*/
case 6:length=load(adr); break; /*读文件*/
case 7:display(adr);break; /*按序号显示记录*/
case 8:sort(adr,length);break; /*按姓名排序*/
case 9:qseek(adr,length);break; /*快速查找记录*/
case 10:copy();break; /*复制文件*/
case 11:exit(0); /*如返回值为11则程序结束*/
}
}
}
/*菜单函数,函数返回值为整数,代表所选的菜单项*/
menu_select()
剩余12页未读,继续阅读
- 粉丝: 2
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助