/*设一个通信录由以下几项数据信息构成:
数据项 类型
姓名 字符串
地址 字符串
字符串
电话号码 字符串
试为通信录数据定义类型和定义通信录变量,实现功能:存取、显示、删除记录、查询记录等功能*/
#include<stdio.h>
#include<string.h>
#define N 100
struct Person{
char name[10];
char address[15];
char post[7];
char phnum[15];
Person *next;
}Per[N];
static int M=0;
void Input(){
if(M==N){
printf("容量已满!\n\n");
return;
}
int i;
char ch='y';
for(i=M;i<N;i++){
printf("第 %d 个联系人的姓名: ",M+1);
scanf("%s",&Per[i].name);
printf("\t地址: ");
scanf("%s",&Per[i].address);
printf("\t: ");
scanf("%s",&Per[i].post);
printf("\t电话号码: ");
scanf("%s",&Per[i].phnum);
字符串长度17模式串长度8 M++;
do{
printf("是否继续(y/n): ");
scanf("%c",&ch);
}while(ch!='y'&&ch!='Y'&&ch!='n'&&ch!='N');
if(ch!='y'&&ch!='Y')
return;
}
printf("\t容量已满!\n");
return;
}
void scan(){
if(M==0){
printf("记录为空,请先存取!\n\n");
return;
}
int i,j;
Person temp;
for(i=0;i<M-1;i++){
for(j=i+1;j<M;j++){
if(strcmp(Per[i].name,Per[j].name)>0){
strcpy(temp.name,Per[i].name);
strcpy(Per[i].name,Per[j].name);
strcpy(Per[j].name,temp.name);
strcpy(temp.address,Per[i].address);
strcpy(Per[i].address,Per[j].address);
strcpy(Per[j].address,temp.address);
strcpy(temp.post,Per[i].post);
strcpy(Per[i].post,Per[j].post);
strcpy(Per[j].post,temp.post);
strcpy(temp.phnum,Per[i].phnum);
strcpy(Per[i].phnum,Per[j].phnum);
strcpy(Per[j].phnum,temp.phnum);
}
}
}
printf("\t姓名\t地址\t\t电话号码\n");
for(i=0;i<M;i++)
printf("\t%s\t%s\t%s\t\t%s\n",Per[i].name,Per[i].address,Per[i].post,Per[i].phnum);
printf("\n\n");
return;
}
void search(){
if(M==0){
printf("记录为空,请先存取!\n\n");
return;
}
char name[10],address[15],post[7],phnum[15],ch;int n,i,j;
do{
do{
printf("1.按姓名查 2.按地址查 3.按查 4.按电话号码查\n");
scanf("%d",&n);
}while(n!=1&&n!=2&&n!=3&&n!=4);
if(n==1){
printf("要查的姓名: ");
scanf("%s",&name);
for(i=0;i<M;i++){
if(strcmp(name,Per[i].name)==0){
printf("\t姓名\t地址\t\t电话号码\n");
printf("\t%s\t%s\t%s\t\t%s\n",Per[i].name,Per[i].address,Per[i].post,Per[i].phnum);
break;
}
}
if(i==M)
printf("没有你要的联系人的信息!\n");
}
if(n==2){
printf("要查的地址: ");
scanf("%s",&address);
for(i=0;i<M;i++){
if(strcmp(address,Per[i].address)==0){
printf("\t姓名\t地址\t\t电话号码\n");
for(j=i;j<M;j++){
if(strcmp(address,Per[j].address)==0)
printf("\t%s\t%s\t%s\t\t%s\n",Per[j].name,Per[j].address,Per[j].post,Per[j].phnum);
}
break;
}
}
if(i==M)
printf("没有你要的联系人信息!\n");
}
if(n==3){
printf("要查的: ");
scanf("%s",&post);
for(i=0;i<M;i++){
if(strcmp(post,Per[i].post)==0){
printf("\t姓名\t地址\t\t电话号码\n");
for(j=i;j<M;j++){
if(strcmp(post,Per[j].post)==0)
printf("\t%s\t%s\t%s\t\t%s\n",Per[j].name,Per[j].address,Per[j].post,Per[j].phnum);
}
break;
}
}
if(i==M)
printf("没有你要的联系人信息!\n");
}
if(n==4){
printf("要查的电话号码: ");
scanf("%s",&phnum);
for(i=0;i<M;i++){
if(strcmp(phnum,Per[i].phnum)==0){
printf("\t姓名\t地址\t\t电话号码\n");
for(j=i;j<M;j++){
if(strcmp(phnum,Per[j].phnum)==0)
printf("\t%s\t%s\t%s\t\t%s\n",Per[j].name,Per[j].address,Per[j].post,Per[j].phnum);
}
break;
}
}
if(i==M)
printf("没有你要的联系人信息!\n");
}
do{
printf("是否继续(y/n)");
scanf("%c",&ch);
}while(ch!='y'&&ch!='Y'&&ch!='n'&&ch!='N');
}while(ch=='y'||ch=='Y');
return;
}
void Delete(){
char name[10],ch;int i,j;
do{
if(M==0){
printf("记录为空,请先存取!\n\n");
return;;
}
printf("输入要删除的联系人姓名: ");
scanf("%s",name);
for(i=0;i<M;i++){
if(strcmp(name,Per[i].name)==0){
printf("\t姓名\t地址\t\t电话号码\n");
printf("\t%s\t%s\t%s\t\t%s\n",Per[i].name,Per[i].address,Per[i].post,Per[i].phnum);
do{
printf("确定删除?(y/n)");
scanf("%c",&ch);
}while(ch!='y'&&ch!='Y'&&ch!='n'&&ch!='N');
if(ch=='y'||ch=='Y'){
for(j=i;j<M-1;j++){
strcpy(Per[j].name,Per[j+1].name);
strcpy(Per[j].address,Per[j+1].address);
strcpy(Per[j].post,Per[j+1].post);
strcpy(Per[j].phnum,Per[j+1].phnum);
}
M--;
}
break;
}
}
if(i==M)
printf("没有要删除的联系人!\n");
do{
printf("是否继续(y/n): ");
scanf("%c",&ch);
}while(ch!='y'&&ch!='Y'&&ch!='n'&&ch!='N');
}while(ch=='y'||ch=='Y');
return;
}
void main(){
int choose;
while(1){
do{
printf("\t1.存取;\n\t2.显示;\n\t3.删除记录;\n\t4.查询记录;\n\t5.退出;\n\t请选择功能: \n");
scanf("%d",&choose);
}while(choose!=1&&choose!=2&&choose!=3&&choose!=4&&choose!=5);
if(choose==1)
Input();
else if(choose==2)
scan();
else if(choose==3)
Delete();
else if(choose==4)
search();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论