根据提供的文件信息,我们可以了解到这是一个基于C语言编写的通讯录管理系统。下面将对该系统的几个关键知识点进行详细解析。 ### C语言通讯录管理系统的结构 该系统主要由以下几个部分构成: 1. **数据结构定义**:定义了一个名为`struct Student`的数据结构来存储通讯录中的个人信息。 2. **功能实现**: - 插入联系人信息(`Insert`) - 显示所有联系人信息(`Show`) - 读取文件(`Read`) - 写入文件(`Write`) ### 数据结构定义 ```c struct Student /*Աṹ*/ { char Name[20]; char Sex[10]; char Add[40]; char Number[20]; char Poc[20]; /*ʱ*/ }; ``` 这里定义了一个`struct Student`结构体,用于存储联系人的信息,包括姓名、性别、地址、电话号码以及邮政编码。 ### 功能详解 #### 1. 插入联系人信息(`Insert`) 此功能允许用户输入并保存联系人的信息至数组`students`中。具体流程如下: - 输入联系人的姓名、性别、地址、电话号码及邮政编码。 - 性别字段只接受“Ա”(男性)或“Ů”(女性),不满足条件则重新输入。 - 电话号码必须为11位数字,不符合则提示错误并重新输入。 - 邮政编码必须为6位数字,不符合则提示错误并重新输入。 - 输入完成后询问是否继续添加新联系人,直至不再添加为止。 ```c void Insert() /*¼뺯*/ { while (1) { char m; printf(":"); scanf("%s", &students[num].Name); getchar(); // ...省略其他输入处理代码... printf("Ƿ?(y/n)"); m = getchar(); getchar(); if (m != 'y') { break; } } } ``` #### 2. 显示所有联系人信息(`Show`) 此功能负责输出所有已录入的联系人信息。 ```c void Show() /*ʾ*/ { int i; printf("%6s%6s%14s%14s%10s\n", "", "Ա", "ͨѶַ", "ֻ", "ʱ"); printf("-------------------------------------------------------------------------------\n"); for (i = 0; i < num; i++) { printf("%6s%6s%14s%14s%10s\n", students[i].Name, students[i].Sex, students[i].Add, students[i].Number, students[i].Poc); printf("-------------------------------------------------------------------------------\n"); } } ``` #### 3. 读取文件(`Read`) 此功能用于从指定路径的文件中读取已有的联系人信息,并填充到`students`数组中。 ```c void Read() /*ļȡ*/ { FILE *fp; int i; if ((fp = fopen("D:\\ͨѶ¼.txt", "r")) == NULL) { printf("ܴļ!\n"); return; } if (fread(&num, sizeof(int), 1, fp) != 1) { printf("ļΪ!"); } else { for (i = 0; i < num; i++) { fread(&students[i], sizeof(struct Student), 1, fp); } } fclose(fp); } ``` #### 4. 写入文件(`Write`) 此功能负责将当前的联系人信息保存至文件中。 ```c void Write() /*ļд뺯*/ { FILE *fp; int i; if ((fp = fopen("D:\\ͨѶ¼.txt", "w")) == NULL) { printf("ܴļ!\n"); return; } if (fwrite(&num, sizeof(int), 1, fp) != 1) { printf("дļ!\n"); } for (i = 0; i < num; i++) { if (fwrite(&students[i], sizeof(struct Student), 1, fp) != 1) { printf("дļ!\n"); } } fclose(fp); } ``` ### 小结 本系统通过简单的文本界面实现了通讯录的基本功能,包括联系人的增删改查以及数据的持久化存储。通过对以上各部分的详细分析,我们可以了解到如何在C语言中使用结构体存储复杂数据类型,如何进行基本的文件操作以及如何设计简单的用户交互界面。这对于学习C语言编程和理解基本的数据管理和文件处理具有很好的参考价值。
#include <string.h>
#include <stdlib.h>
struct Student /*定义人员结构体*/
{
char Name[20];
char Sex[10];
char Add[40];
char Number[20];
char Poc[20]; /*定义邮编*/
};
struct Student students[1];
int num=0; /*定义全局变量*/
void Insert() /*录入函数*/
{
while(1)
{
char m;
printf("请输入姓名:");
scanf("%s",&students[num].Name);
getchar();
while(1)
{
printf("请输入性别(男 or 女):");
scanf("%s",&students[num].Sex);
if(strcmp(students[num].Sex,"男")==0||strcmp(students[num].Sex,"女")==0)
{
break;
}
{
printf("您的输入有误!\n");
}
getchar();
}
printf("请输入通讯地址:");
scanf("%s",&students[num].Add);
getchar();
while(1)
{
printf("请输入手机号:");
scanf("%s",students[num].Number);
if(strlen(students[num].Number)!=11)
{
printf("您输入的手机号错误,请重新输入!\n");
continue;
}
else
{
break;
}
getchar();
}
while(1)
{
printf("请输入邮编:");
scanf("%s",&students[num].Poc);
if(strlen(students[num].Poc)!=6)
{
剩余10页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助