内容发布更新时间 : 2024/12/28 4:51:03星期一 下面是文章的全部内容请认真阅读。
通讯录的设计
一、设计思路:
经过一个学期的程序设计学习,我逐渐了解了计算机的基本原理和c语言的基本常识,并可以逐渐自己来实现一些简单的程序任务。此次程序设计我选择了通讯录设计,通过函数、结构体的定义以及一些基本操作运用,经过一个多月的编写、调试、测试,最终完成了该程序的设计。以下为我的设计思路:
首先,确定通讯录的功能,我初步设计了六项功能:输入(程序中对应 enter() )、删除(程序中对应delete() )、显示通讯录(程序中对应list() )、搜索(程序中对应search() )、保存(程序中对应save() )、装载(程序中对应 load() )。
其次,对于存储的数据结构,我则主要选择了一下几个方面的信息:姓名、性别年龄、籍贯、手机、下一个指针(用于链表的操作与实现)、当前指针(用于链表的操作与实现)。 二、程序源代码:
#include
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];