通讯录的制作数据结构c语言版

通讯录的设计

一、设计思路:

经过一个学期的程序设计学习,我逐渐了解了计算机的基本原理和c语言的基本常识,并可以逐渐自己来实现一些简单的程序任务。此次程序设计我选择了通讯录设计,通过函数、结构体的定义以及一些基本操作运用,经过一个多月的编写、调试、测试,最终完成了该程序的设计。以下为我的设计思路:

首先,确定通讯录的功能,我初步设计了六项功能:输入(程序中对应 enter() )、删除(程序中对应delete() )、显示通讯录(程序中对应list() )、搜索(程序中对应search() )、保存(程序中对应save() )、装载(程序中对应 load() )。

其次,对于存储的数据结构,我则主要选择了一下几个方面的信息:姓名、性别年龄、籍贯、手机、下一个指针(用于链表的操作与实现)、当前指针(用于链表的操作与实现)。 二、程序源代码:

#include struct address{ 个address结构*/

char name[10]; char sex[2]; char age[2];

/*姓名*/

/*创建一

} list_entry;

struct address *start; /*指向列表中第一个入口*/

struct address *last; /*指向列表中最后一个入口*/

void

enter(),display(),search(),save(),load();

menu_select(),list(),delet(),inputs();

main() {

/*性别*/

/*年龄*/

char native[10]; /*籍贯*/ char telephone[12]; /*手机*/ struct address *next; /*下一

个入口的指针 */

struct address *prior; /*当前

记录的指针*/

char s[20],choice; struct address *info;

start=last=NULL; /*列表长

度清零*/

for(;;) {

/*列循环的一

个用法*/

switch(menu_select()){

case 1: enter(); /*输入1,

进入enter()程序,是输入通讯录*/

break;

case 2:delet(); /*输入2,

进入delete()程序,是删除一个记录*/

break;

case 3:list();

/*输

入3,进入list()程序,是列表显示通信录*/

break;

case 4:search();

/*输

入4,进入search()程序,搜索一个街道*/

break;

case 5:save();

/*输

入5,保存列表到磁盘文件*/

break;

case 6:load();

/*输

入6,从磁盘文件读入列表*/

break;

case 7:return(0); }

}

}

/*选择一个选项*/ menu_select() {

char s[20]; int c;

printf(\输入一个名字(直接回车则退出)\\n\

printf(\删除一个名字\\n\ printf(\列表显示\\n\ printf(\搜索查询\\n\

printf(\保存文件\\n\ printf(\装入文件\\n\

printf(\退出\\n\

do{ printf(\输入您的选择:\

/*名字长度为0,停止输入*/

inputs(\

gets(s);

c=atoi(s);

}while (c<0||c>7); return c;

}

/*输入名字和地址*/ void enter() {

struct

address

*info,*dls_store();

for(;;){

info=(struct address *)

malloc(sizeof(list_entry));

if (!info) { printf(\内存溢出\ return;

}

inputs(\

名:\

if (!info->name[0]) break;

别:\

inputs(\

龄:\

inputs(\

贯:\

inputs(\

话:\

start=dls_store(info,start);

/*保存在第一个记录里*/ }

/*输入循环*/

}

inputs(prompt,s,count) /*这个

函数用于输入长度为count的一个字符串,用于防止字符串长度超过它的空间,并提出警告*/

char *prompt; char *s; int count; {

char p[255];

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4