#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
typedef struct txl {
char name[20];
char number[20];
int a;
struct txl *next;
} Node;
typedef struct List {
Node *head;
} List;
void menu();
void add(List * plist_add);
void search(List * plist_search);
void print(List * plist_dis);
// 这个函数一定要写
void free_list(List *list) {
Node *i = list->head;
while(i) {
Node *temp = i;
i = i->next;
free(temp);
}
}
int main() {
List list = {.head = NULL};
/*
List list;
list.head = NULL;
*/
int x; //代表几号模式
menu();
scanf("%d", &x);
while(x) {
switch(x) {
case 1:
add(&list);
break;
case 2:
search(&list);
break;
/* case 3: update(); break;
case 4: del(); break; */
/*
case 5:
print(&list);
break;
*/
default:
break;
}
// 没有这个函数
//getch();
getchar();
menu();
scanf("%d", &x);
}
free_list(&list);
return 0;
}
void menu() {
// 没有这个指令
//system("cls");
system("clear");
printf("\n\n\n\n\n\n");
printf("\t\t 通讯录\n");
printf("\t\t|--------------------菜单--------------------|\n");
printf("\t\t|1.输入联系人信息 |\n");
printf("\t\t|2.查找联系人 |\n");
printf("\t\t|3.修改联系人信息 |\n");
printf("\t\t|4.删除联系人 |\n");
printf("\t\t|5.显示全部联系人 |\n");
printf("\t\t|--------------------------------------------|\n");
printf("\t\t|请选择(1-5)");
}
void add(List *plist_add) {
Node *p = malloc(sizeof(*p));
printf("请输入新增联系人姓名:\n");
scanf("%s", p->name);
printf("请输入新增联系人号码:\n");
scanf("%s", p->number);
p->next = plist_add->head;
plist_add->head = p;
#if 0
char name_add[20];
char number_add[20];
printf("请输入新增联系人姓名:\n");
scanf("%s", name_add);
Node *p = (Node *)malloc(sizeof(Node));
// 错
//p->name[20] = name_add[20];
printf("请输入新增联系人号码:\n");
scanf("%s", number_add);
p = (Node *)malloc(sizeof(Node));
// 错
//p->number[20] = number_add[20];
Node *last = plist_add->head;
if(last) {
// 错
last = last->next;
} else {
plist_add->head = p;
}
printf("输入成功!\n");
printf("按任意键返回主菜单\n");
for(p = plist_add->head; p; p = p->next) {
printf("%s - %s", p->name, p->number);
}
#endif
}
void search(List *plist_search) {
char name_search[20];
printf("请输入要查找的联系人\n");
scanf("%s", name_search);
Node *p;
int isfound = 0;
for(p = plist_search->head; p; p = p->next) {
printf("1");
// 为什么要加括号?
//if(strcmp(name_search, (p->name)) == 0) {
if(strcmp(name_search, p->name) == 0) {
printf("该联系人的信息:\n");
printf("%s", p->name);
printf("%s", p->number);
isfound = 1;
}
}
if(!isfound) {
printf("查无此联系人\n");
}
printf("按任意键返回主菜单\n");
getchar();
}
|