1 需求分析
需要设计一个简单的通讯录管理系统,来实现联系人信息的长时间存储(包含姓名、性别、年龄、电话号码等),并且在需要时能够查找出相关联系人的信息。需要包含录入、查找、修改、删除、保存等功能。
2 系统设计
2.1系统功能设计
该系统具有联系人基本信息的输入、查询、删除、修改等功能。具体可将本系统分为以下功能,每项功能的主要任务是:
1、录入联系人:完成联系人信息的输入。
2、查询联系人:根据姓名,查询联系人的信息。
3、删除联系人:根据姓名,删除联系人的信息。
4、修改联系人:修改已经录入的联系人的信息。
5、保存文件:保存已经录入的联系人的信息。
6、读取文件:读取已经存储的联系人的信息。
2.2数据结构设计
所有子任务都围绕着一批联系人的信息,每个联系人包括姓名、年龄、性别和电话号码,因此,定义一个联系人的结构体类型如下:
#define MAX_NAME 20
#define MAX_TELE 12
#define MAX_SEX 2
struct Contact
{
char name[MAX_NAME];
char tele[MAX_TELE];
char sex[MAX_SEX];
int age;
}
3主要模块设计与实现
//初始化通讯录
void InitiaContact(struct Contact* p, int *count);
//录入联系人信息
void InputContact(struct Contact* p, int *count);
//显示联系人信息
void ShowContact(struct Contact* p, int *count);
//修改联系人信息
void ModifyContact(struct Contact* p, int *count);
//查找联系人信息
void FindContact(struct Contact* p, int *count);
//删除联系人信息
void DeleteContact(struct Contact* p, int *count);
//保存联系人信息
void SaveContact(struct Contact* p, int *count);
4 系统运行测试
要针对程序处理的不同情况列出有代表性的输入和输出,用足够多的实例说明程序完成了设计任务和目标。
5 源代码清单
//定义结构体以及函数声明
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
#define MAX_NAME 20
#define MAX_TELE 12
#define MAX_SEX 2
struct Contact
{
char name[MAX_NAME];
char tele[MAX_TELE];
char sex[MAX_SEX];
int age;
};
//初始化通讯录
void InitiaContact(struct Contact* p, int *count);
//录入联系人信息
void InputContact(struct Contact* p, int *count);
//显示联系人信息
void ShowContact(struct Contact* p, int *count);
//修改联系人信息
void ModifyContact(struct Contact* p, int *count);
//查找联系人信息
void FindContact(struct Contact* p, int *count);
//删除联系人信息
void DeleteContact(struct Contact* p, int *count);
//保存联系人信息
void SaveContact(struct Contact* p, int *count);
//菜单
void Menu()
{
printf("******************************\n");
printf("** 欢迎使用通讯录 **\n");
printf("**--------------------------**\n");
printf("** **\n");
printf("** 1. 录入联系人信息 **\n");
printf("** 2. 显示联系人信息 **\n");
printf("** 3. 修改联系人信息 **\n");
printf("** 4. 查找联系人信息 **\n");
printf("** 5. 删除联系人信息 **\n");
printf("** 6. 保存联系人信息 **\n");
printf("** 0. 退出 **\n");
printf