根据提供的文件信息,我们可以归纳出该程序的主要功能与其实现方式。这是一份用C语言编写的简单电话簿程序,其主要目标是帮助用户管理联系人信息,包括姓名、电话号码、手机号码以及电子邮件地址等。 ### 核心知识点 #### 1. 数据结构定义 在程序中,通过定义一个名为`struct person`的数据结构来存储每个联系人的相关信息: - `char name[8]`:用于存储联系人的姓名。 - `char tel[15]`:用于存储固定电话号码。 - `char mbtel[50]`:用于存储手机号码。 - `char mail[50]`:用于存储电子邮箱地址。 #### 2. 文件操作 为了持久化存储联系人信息,程序使用了文件操作函数: - **文件名**: `char filename[20];`,用于存储文件路径。 - **文件指针**: `FILE *fp;`,用于指向文件。 #### 3. 主函数逻辑 - **初始化**: 在主函数`main()`中首先调用`creat()`函数创建或初始化电话簿文件。 - **循环菜单**: - 显示菜单并接收用户输入:用户可以选择添加、查找、修改、删除或显示联系人信息,以及退出程序。 - 根据用户的选择调用相应的函数执行相应操作。 #### 4. 功能函数实现 - **创建联系人信息文件** (`void creat()`): - 提示用户输入文件名,并创建或打开文件。 - 读取用户输入的联系人信息,写入文件,直到输入特定结束标记为止。 - **显示所有联系人信息** (`void output()`): - 打开文件,并逐行读取并打印文件中的联系人信息。 - **添加新联系人** (`void append()`): - 以追加模式打开文件,提示用户输入新的联系人信息,并将其添加到文件末尾。 - **查找联系人** (`void search()`): - 用户输入需要查找的姓名,程序遍历文件,查找匹配项并显示出来。 - **修改联系人信息** (`void modify()`):虽然没有给出具体实现代码,但可以推断其基本逻辑是先查找后修改。 - 查找指定联系人,如果找到,则允许用户修改相关信息。 - **删除联系人** (`void delete()`):同样未给出具体实现,但可推测其基本流程为: - 查找指定联系人,如果找到,则从文件中删除。 ### 具体实现细节 #### 文件创建与初始化 - 使用`fopen()`函数打开文件,如果文件不存在则创建。 - 使用`fprintf()`函数格式化输出联系人信息到文件中。 #### 显示联系人信息 - 使用`fscanf()`函数从文件中读取一行联系人信息。 - 使用`printf()`函数显示每一行读取的信息。 #### 添加联系人 - 以追加模式(`"a"`)打开文件,确保不会覆盖原有数据。 - 使用`fprintf()`向文件末尾添加新的联系人信息。 #### 查找联系人 - 遍历文件,比较输入的姓名与文件中的姓名字段是否相同。 - 如果匹配,则显示该联系人的所有信息。 #### 修改与删除功能 - 这两个功能的具体实现依赖于文件操作和数据处理技术。 - 可能需要读取整个文件内容到内存中,进行查找、修改或删除操作后再重新写回文件。 这个电话簿程序实现了基本的联系人管理功能,使用C语言中的文件操作和数据结构来完成这些任务。对于初学者来说,这是一个很好的学习项目,可以帮助理解C语言的基本概念和技术要点。
#include<string.h>
struct person
{
char name[8];
char tel[15];
char mbtel[50];
char mail[50];
};
char filename[20];//全局变量
FILE *fp;
void creat();
void output();
void search();
void append();
void modify();
void delete();
int main()
{
int m;
creat();
while(1)
{
printf("\n\n添加,请按1");
printf("\n查找,请按2");
printf("\n修改,请按3");
printf("\n删除,请按4");
printf("\n输出,请按5");
scanf("%d",&m);
if(m>=0&&m<=5)
{
switch(m)
{
case 1: append();
break;
case 2: search();
break;
case 3: modify();
break;
case 4: delete();
break;
case 5: output();
break;
case 0: exit(0);
}
printf("\n\n操作完毕,请再次选择!");
}
else
printf("\n\n选择错误,请再次选择!");
}
}
//输入电话薄信息
void creat()
{
struct person one;
long s1;
剩余7页未读,继续阅读
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于景观生态风险评价的流域景观格局优化,教学视频和资料,喜欢的就下载吧,保证受用
- java设计模式-建造者模式(Builder Pattern)
- C语言刷题-lesson5_1731564764305.pdf
- JavaScript开发指南PDG版最新版本
- JavaScript程序员参考(JavaScriptProgrammer'sReference)pdf文字版最新版本
- jQuery1.4参考指南的实例源代码实例代码最新版本
- CUMCM-2018-D.pdf
- jQueryapi技术文档chm含jQuery选择器使用最新版本
- DWIN_SET.rar
- transformer-transformer