C语言实现的简单通讯录例子

本程序主要利用C语言中链表和文件的相关知识,实现了能够增删改查操作的简易通讯录程序。根目录下的ctt文件是存放通讯录信息的文件,可以直接用文本编辑器打开。但是不要改动固定的格式。代码中,多处出现重复的条件判断,导致代码重复。不过,有机会的话会进行修改。

部分代码如下:

/**

 * @Desc:这是一个实现通讯录的C源代码

 * @Author:乌鸟

 * @Version:0.1

 * @URL:http://huxuemail.web-104.com

 * @QQ交流群:235173087(欢迎加入)

 */



#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <windows.h>



//这里定义的是联合体中字符数组的长度。

#define C_NAME_SIZE 10

#define C_SEX_SIZE 3

#define C_AGE_SIZE 5

#define C_PHONE_SIZE 12

#define C_QQ_SIZE 12

#define C_PROVINCE_SIZE 20

#define C_CITY_SIZE 20

#define C_COMMENT_SIZE 100



//亲,很明显,这是函数说明!

void insRecord();//插入一条记录的实现

void inputs(char *prompt,char *info,int count);//插入一条记录时,逐行输入信息的实现

struct addr *linkNode(struct addr *i,struct addr *top);//输入完一条记录后,将当前的缓冲节点连接到链表中的实现

struct addr *find(char *name);//查找出指定的节点的实现

void seaRecord();//查找记录的实现

void delRecord();//删除记录的实现

int selectMenu();//主菜单的实现

void disRecord(addr *info);//显示一条记录的实现

void disRecords();//显示全部记录的实现

void getInfo(); //根据ctt文本中的记录,逐条返回数据项,并实现将信息插入链表,即程序启动的初始化状态的实现

void initInputs(char *initInfo[]);//输入完一条记录后,将当前的缓冲节点连接到链表中的实现

void saveRecords();//将链表中的信息全部写到磁盘文件中的实现

void saveToFile(addr *info);//将每条信息记录放到新建的文件中的实现

void editRecord();//修改记录的实现

void about();//显示作者信息的实现





//全局的东东



//联合体

struct addr

{

    char c_name[C_NAME_SIZE];

    char c_sex[C_SEX_SIZE];

    char c_age[C_AGE_SIZE];

    char c_phone[20];

    char c_qq[C_QQ_SIZE];

    char c_province[C_PROVINCE_SIZE];

    char c_city[C_CITY_SIZE];

    char c_comment[C_COMMENT_SIZE];



    struct addr *next;//pointer to next entry ^^

};



//全局指针变量,info存储当前缓冲的节点、start和last存储最后一个节点、head存储头节点

struct addr *info,*start,*last,*head;

//初始化用,与head有关的变量

static int n = 0;

下载:源代码下载地址

你可能感兴趣的:(C语言)