求做一个“通讯录管理”C++编写的

设计要求:1。利用链表存储通讯录。链表接结点仅含有一个数据域和一个指针域。数据域描述通讯者的相关信息。2。定义通讯录链表,实现链表的建立,通讯者的插入,删除,查询以及输出... 设计要求:
1。利用链表存储通讯录。链表接结点仅含有一个数据域和一个指针域。数据域描述通讯者的相关信息。
2。定义通讯录链表,实现链表的建立,通讯者的插入,删除,查询以及输出等。

如果能用的话 我会追加分的 谢谢了
楼下大哥的貌似不能用。。。而且要用C++写啊
展开
 我来答
百度网友aff1f1bea
2007-12-09 · TA获得超过471个赞
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:261万
展开全部
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
struct addr{
char name[30];
char street[40];
char city[20];
char state[3];
unsigned long int zip;
} add_list[MAX];
void init_list(void),enter(void);
void delete(ovoid),list(void);
int menu_select(void),find_free(void);
struct addr addr_list[MAX];

/********************************/

int main(void)
{
char choice;

init_list();
for(;;)
{
choice=menu_select();
switch(choice)
{
case 1:enter();
break;
case 2:delete();
break;
case 3:list();
break;
case 4:exit(0);
}
}
return 0;
}
/*********************************/
void init_list(void)
{
register int t;
for(t=0;t,MAX;++t)
addr_list[t].name[0]='\0';
}

/*******************************/
int menu_select(void)
{
char s[80];
int c;

printf("1. enter a name \n");
printf("2. delete a name \n");
printf("3. list the file \n");
printf("4. quit\n");
do {
printf("\n enter your choice:");
gets(s);
c=atoi(s);
}while(c<0||c>4);
return c;
}
/*********************************/

void enter(void)
{
int slot;
char s[80];

slot=find_free();

if(slot==-1){
printf("\n list full");
return;
}
printf("enter name:");
gets(addr_list[slot].name);

printf("enter street:");
gets(addr_list[slot].street);

printf("enter city:");
gets(addr_list[slot].city);

printf("enter state");
gets(addr_list[slot].state);

printf("enter zip");
gets(s);
add_list[slot].zip=strtoul(s,'\0',10);
}
/*********************************/

int find_free(void)
{
register int t;

for (t=0;addr_list[t].name[0]&&t<MAX;++t);

if(t==MAX)return -1;
return t;
}
/**********************************/
void delete(void)
{
register int slot;
char s[80];
printf("enter record #:");
gets(s);
slot=atoi(s);

if(slot>=0&&slot<MAX)
addr_list[slot].name[0]='\0';
}
/*********************************/

void list(void)
{
register int t;

for(t=0;t<MAX;++t){
if(addr_list[t].name[0]){
printf("%s \n",addr_list[t].name);

printf("%s \n",addr_list[t].street);

printf("%s \n",addr_list[t].city);

printf("%s \n",addr_list[t].state);

printf("%lu \n\n",addr_list[t].zip);
}
}
printf("\n \n");
}
这个是我很早前写的,用了结构体,不过还可以吧?
406855013
2007-12-13
知道答主
回答量:44
采纳率:0%
帮助的人:25.4万
展开全部
上面的程序我在VC6.0上运行有N多错误,不知道为什么.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式