现在的位置: 首页 > 综合 > 正文

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

2013年03月25日 ⁄ 综合 ⁄ 共 1488字 ⁄ 字号 评论关闭

本程序主要利用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;

下载:源代码下载地址

抱歉!评论已关闭.