c语言通讯录中怎样实现按z键退出程序,求解答代码怎么改
#include<stdio.h>#include<stdlib.h>
#include<string.h>
#define MAX 10
void init(void);/*结构初始化*/
int hello(void);/*系统界面*/
void enter(void);/*录入通讯信息*/
void scan(void); /*浏览通讯信息*/
void inquiry(void);/*查询通讯信息*/
void modify(void);/*修改通讯信息*/
void del(void);/*删除某个通讯信息*/
int find_free(void);/*检测通讯录里是否有空栏*/
struct addr{ /*通讯录结构体*/
char name[30];/*姓名*/
char phone[30];/*电话*/
char email[30];/*电子邮箱地址*/
}address[MAX];
int main()
{
int p;
init();
for(;;)
{
p=hello();
switch(p){
case 1:enter();break;
case 2:scan();break;
case 3:inquiry();break;
case 4:modify();break;
case 5:del();break;
case 6:exit(0);
}
}
return 0;
}
void init()
{
register int t;
for(t=0;t<MAX;t++)
address[t].name[0]='\0';
}
int hello()
{
char a[10];
int b;
printf("\n***************欢迎登陆通讯录系统**************\n");
printf("1.信息录入;\n");
printf("2.信息浏览;\n");
printf("3.信息查询;\n");
printf("4.信息修改;\n");
printf("5.信息删除;\n");
printf("6.退出系统;\n");
printf("***********************************************\n");
printf("请输入你需要的服务:");
do
{
printf("你输入有误,请重新输入:");
gets(a);
b=atoi(a);
}while(b<0||b>6);
return b;
}
void enter()
{
int p;
p=find_free();
if(p==MAX)
{
printf("\n信息储存已满,需要删除其他的,才能执行录入操作\n");
return;
}
printf("请输入姓名:");
gets(address[p].name);
printf("电话号码:");
gets(address[p].phone);
printf("电子邮箱:");
gets(address[p].email);
}
int find_free()
{
register int i;
for(i=0;address[i].name[0]&&i<MAX;i++)
if(i==MAX) return MAX;
return i;
}
void scan()
{
register int j;
for(j=0;j<MAX;j++)
{
if(address[j].name[0])
{
printf("%s %s %s\n",address[j].name,address[j].phone,address[j].email);
}
}
printf("\n\n");
}
void inquiry()
{
char s[30];
int p,i;
printf("请输入需要查找的姓名:");
gets(s);
for(i=0;i<MAX;i++)
{
p=strcmp(s,address[i].name);
if(!p)
{
printf("%s %s %s\n",address[i].name,address[i].phone,address[i].email);
}
}
if(i==MAX)
{
printf("找不到你输入的姓名\n");
}
}
void modify()
{
int p,i;
char s[30];
printf("请输入你需要修改的人的姓名:");
gets(s);
for(i=0;i<MAX;i++)
{
p=strcmp(s,address[i].name);
if(!p)
{
int j;
char m[10];
printf("******************************\n");
printf("1.姓名\n");
printf("2.电话号码\n");
printf("3.电子邮箱\n");
printf("******************************\n");
printf("请输入你要修改的选项:");
do
{
gets(m);
j=atoi(m);
}while(j<1||j>3);
switch(j)
{
case 1: printf("请输入姓名:");
gets(address[i].name);
break;
case 2: printf("电话号码:");
gets(address[i].phone);
break;
case 3: printf("电子邮箱:");
gets(address[i].email);
break;
}
}
}
if(i==MAX)
{
printf("没有你修改人的信息.\n");
}
}
void del()
{
int p,i;
char s[30];
printf("请输入所删除人的姓名:");
gets(s);
for(i=0;i<MAX;i++)
{
p=strcmp(s,address[i].name);
if(!p)
{
address[i].name[0]='\0';
}
}
if(i==MAX)
{
printf("没有你删除人的信息.\n");
}
}