
学习C语言编程的最佳途径之一就是动手实践。本文将带您逐步完成一个我最近完成的项目:一个简单的电话簿应用程序。此应用演示了C语言中的文件处理和基本数据管理,允许您添加、查看和删除联系人。
代码详解
以下是完整代码:
#include#include // 函数声明 void addcontact(char name[], char number[]); void viewcontacts(); void deletecontact(char name[]); int main() { int choice; char name[20]; char number[20]; printf("-- 欢迎使用您的电话簿! -- \n"); do { // 显示菜单 printf("\n您想执行什么操作?\n"); printf("1. 创建新联系人\t 2. 查看电话簿\t 3. 删除联系人\t 4. 退出\n"); scanf("%d", &choice); switch (choice) { case 1: // 添加新联系人 printf("很好,让我们创建一个新联系人:\n"); printf("请输入联系人的姓名:\n"); scanf("%s", name); printf("现在输入电话号码:\n"); scanf("%s", number); addcontact(name, number); break; case 2: // 查看电话簿 printf("这是您的电话簿:\n"); viewcontacts(); break; case 3: // 删除联系人 printf("请输入要删除的联系人的姓名:\n"); scanf("%s", name); deletecontact(name); break; } } while (choice != 4); // 循环直到用户选择“退出” return 0; } // 向电话簿添加联系人的函数 void addcontact(char name[], char number[]) { FILE *pfile; pfile = fopen("phonebook.txt", "a"); if (pfile == NULL) { printf("打开电话簿失败。"); return; } fprintf(pfile, "姓名: %s \t 电话: %s\n", name, number); printf("联系人已创建!\n"); fclose(pfile); } // 查看电话簿中所有联系人的函数 void viewcontacts() { char filecontent[200]; FILE *pfile; pfile = fopen("phonebook.txt", "r"); while (fgets(filecontent, sizeof(filecontent), pfile)) { printf("\n%s", filecontent); } fclose(pfile); } // 从电话簿中删除联系人的函数 void deletecontact(char name[]) { FILE *pfile, *ptrash; char line[200], contactname[20], contactnumber[20]; pfile = fopen("phonebook.txt", "r"); ptrash = fopen("trash.txt", "w"); if (pfile == NULL || ptrash == NULL) { printf("打开文件失败。"); return; } while (fgets(line, sizeof(line), pfile)) { sscanf(line, "姓名: %s \t 电话: %s\n", contactname, contactnumber); if (strcmp(name, contactname) != 0) { fputs(line, ptrash); } } fclose(pfile); fclose(ptrash); // 将旧电话簿替换为更新后的版本 remove("phonebook.txt"); rename("trash.txt", "phonebook.txt"); printf("联系人已删除。"); }
项目特点
该程序实现了三个核心功能:
-
添加联系人:
- 允许用户输入姓名和电话号码。
- 将联系人信息存储到名为
phonebook.txt的文件中。
-
查看联系人:
- 读取并显示
phonebook.txt文件中存储的所有联系人信息。
- 读取并显示
-
删除联系人:
- 根据用户输入的姓名删除联系人。
- 通过创建临时文件过滤掉已删除的联系人,然后替换原始文件。
学习收获
通过这个练习,我巩固了以下C语言知识:
ISite企业建站系统是为懂点网站建设和HTML技术的人员(例如企业建站人员)而开发的一套专门用于企业建站的开源免费程序。本系统采用了全新的栏目维护模式,内容添加过程中,前后台菜单是一样的,需要维护前台某个栏目的内容,只需要进后台相应栏目即可,一般的企业人员只需要查看简易的说明就可以上手维护网站内容。通过自由度极高的模板系统,可以适应大多数情况的界面需求,后台带有标签生成器,建站只需要构架好HTM
-
文件处理: 熟练运用
fopen、fclose等文件操作函数,并处理文件打开失败的情况。 -
字符串操作: 使用
strcmp和sscanf等函数进行字符串比较和解析。 - 基本数据管理: 学习如何在简单的文本文件中存储和管理数据,以及通过创建临时文件来更新文件内容。
代码测试
- 将代码复制到
.c文件中(例如phonebook.c),并使用C编译器(如 GCC)编译:
gcc -o phonebook phonebook.c
- 运行编译后的程序:
./phonebook
- 按照屏幕提示添加、查看或删除联系人。
- 打开
phonebook.txt文件验证数据是否正确存储。
未来改进
这个程序是一个良好的开端,未来可以考虑以下改进:
- 输入验证: 验证电话号码的有效性(例如,只包含数字),防止重复姓名。
-
用户界面改进: 提供更清晰的提示信息,允许输入包含多个单词的姓名(使用
fgets代替scanf)。 - 增强文件处理: 考虑数据加密以提高安全性,使用更结构化的文件格式(如 CSV 或 JSON)。
- 高级功能: 添加搜索功能,按字母顺序排序联系人。
总结
这个练习帮助我深入理解了C语言的文件处理和基本数据管理。这是一个简单但实用的程序,可以作为更复杂项目的基础。如果您是C语言初学者,强烈推荐您尝试一下!这是一个有趣且有益的学习过程。









