求做一个“通讯录管理”C++编写的
设计要求:1。利用链表存储通讯录。链表接结点仅含有一个数据域和一个指针域。数据域描述通讯者的相关信息。2。定义通讯录链表,实现链表的建立,通讯者的插入,删除,查询以及输出...
设计要求:
1。利用链表存储通讯录。链表接结点仅含有一个数据域和一个指针域。数据域描述通讯者的相关信息。
2。定义通讯录链表,实现链表的建立,通讯者的插入,删除,查询以及输出等。
如果能用的话 我会追加分的 谢谢了
楼下大哥的貌似不能用。。。而且要用C++写啊 展开
1。利用链表存储通讯录。链表接结点仅含有一个数据域和一个指针域。数据域描述通讯者的相关信息。
2。定义通讯录链表,实现链表的建立,通讯者的插入,删除,查询以及输出等。
如果能用的话 我会追加分的 谢谢了
楼下大哥的貌似不能用。。。而且要用C++写啊 展开
展开全部
#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");
}
这个是我很早前写的,用了结构体,不过还可以吧?
#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");
}
这个是我很早前写的,用了结构体,不过还可以吧?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询