
数据结构建通讯录的课程设计 15
要求:第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。第二个模块——Menu()的功能是:显示英文提示选单。第三个模块——Quit(...
要求:第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。
第二个模块——Menu()的功能是:显示英文提示选单。
第三个模块——Quit()的功能是:退出选单。
第四个模块——Create()的功能是:创建新的通讯录。
第五个模块——Add()的功能是:在通讯录的末尾,写入新的信息,并返回选单。
第六个模块——Find()的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。
第七个模块——Alter()的功能是:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回菜单。
第八个模块——Delete()的功能是:删除某人信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回菜单。
第九个模块——List()的功能是:显示通讯录中的所有记录。
小弟才学数据结构,学得很是不好
现在有本数据结构设计题,很急.希望前辈帮我做下,要完整,执行能通过的,追分150分 展开
第二个模块——Menu()的功能是:显示英文提示选单。
第三个模块——Quit()的功能是:退出选单。
第四个模块——Create()的功能是:创建新的通讯录。
第五个模块——Add()的功能是:在通讯录的末尾,写入新的信息,并返回选单。
第六个模块——Find()的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。
第七个模块——Alter()的功能是:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回菜单。
第八个模块——Delete()的功能是:删除某人信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回菜单。
第九个模块——List()的功能是:显示通讯录中的所有记录。
小弟才学数据结构,学得很是不好
现在有本数据结构设计题,很急.希望前辈帮我做下,要完整,执行能通过的,追分150分 展开
1个回答
展开全部
//xieai999
#include <stdio.h>
#include <string.h>
typedef struct study
{
int number;
char name[30];
char state[2];
}LT;
typedef struct book
{
LT *s[1000];
int top;
}LY;
void CreatLT(LT **s,int a,char g[],char c[])
{
(*s)=(LT *)malloc(sizeof(LT));
(*s)->number=a;
int i=0;
while(i<30)
{
if(g[i]!='\0')
(*s)->name[i]=g[i];
else
(*s)->name[i]='\0';
i++;
}
(*s)->state[0]=c[0];
(*s)->state[1]='\0';
}
void CreatLY(LY **r)
{
(*r)=(LY *)malloc(sizeof(LY));
(*r)->top=-1;
}
void Seek(LY *a)
{
printf("1,号码\n2,书名\n3,状态\n");
int x,i,y,k,symble=0;
char d[10],e[1];
scanf("%d",&x);
switch(x)
{
case 1:
printf("书号:");
scanf("%d",&y);
i=0;
for(i;i<=a->top;i++)
{
if(y==a->s[i]->number)
{
printf("%d %s %s\n",a->s[i]->number,a->s[i]->name,a->s[i]->state);
break;
}
if(i==a->top)
printf("没找到\n");
}
break;
case 2:
i=0;
printf("书名:");
scanf("%s",&d);
for(i;i<=a->top;i++)
{
if(strlen(d)==strlen(a->s[i]->name))
for(k=0;k<strlen(d);k++)
{
if(d[k]!=a->s[i]->name[k])
break;
if(k==strlen(d)-1)
{
printf("%d %s %s\n",a->s[i]->number,a->s[i]->name,a->s[i]->state);
symble=1;
}
}
if(symble==1)
break;
if(i==a->top)
printf("没找到\n");
}
break;
case 3:
printf("状态(Y/N)\n");
scanf("%s",&e);
i=0;
for(i;i<=a->top;i++)
{
if(a->s[i]->state[0]==e[0])
printf("%d %s %s\n",a->s[i]->number,a->s[i]->name,a->s[i]->state);
}
break;
default:
printf("没有该选项\n");
break;
}
}
main()
{
printf("欢迎进入图书管理系统\n");
int k=0,i=0;
LT *s[1000],*p;LY *A;
CreatLY(&A); char a[30]="",b[2]="";
for(k; ;k++)
{
printf("1,输入\n2,输出\n3,查询\n4,删除\n5,修改\n0,退出\n");
int x,number,j=0,h;
scanf("%d",&x);
switch(x)
{
case 1:
printf("编号(必须是整数):");
scanf("%d",&number);
printf("书名:");
scanf("%s",&a);
printf("状态(注意:只能输入N(借出)/Y(未借出)):");
scanf("%s",&b);
CreatLT(&s[i],number,a,b);
A->top++;
A->s[A->top]=s[i];
i++;
break;
case 2:
j=0;
while(j<=A->top)
{
printf("%d %s %s\n",A->s[j]->number,A->s[j]->name,A->s[j]->state);
j++;
}
break;
case 3:
Seek(A);
break;
case 4:
printf("要删除的书号:");
scanf("%d",&number);
j=0;
for(j;j<=A->top;j++)
{
if(A->s[j]->number==number)
{
p=A->s[A->top];
A->s[A->top]=A->s[j];
A->s[j]=p;
A->top--;
break;
}
if(j==A->top)
printf("没有这本书\n");
}
break;
case 5:
printf("要修改的书号:");
scanf("%d",&number);
j=0;
for(j;j<=A->top;j++)
{
if(A->s[j]->number==number)
{
printf("1,修改书号\n2,修改书名\n3,修改状态\n");
scanf("%d",&number);
if(number==1)
{
printf("新书号:");
scanf("%d",&number);
A->s[j]->number=number;
break;
}
else
if(number==2)
{
printf("新书名:");
scanf("%s",&a);
h=0;
while(A->s[j]->name[h]!='\0')
{
if(a[h]!='\0')
A->s[i]->name[h]=a[h];
else
A->s[i]->name[h]='\0';
h++;
}
break;
}
else
if(number==3)
{
printf("新状态:");
scanf("%s",&b);
A->s[i]->state[0]=b[0];
break;
}
else
{
printf("输入错误\n");
j=j-1;
}
}
if(j==A->top)
printf("没有这本书\n");
}
break;
case 0:
h=10000;
break;
default:
printf("没有该选项\n");
break;
}
if(h==10000)
break;
}
}
自己改一下吧,,,
#include <stdio.h>
#include <string.h>
typedef struct study
{
int number;
char name[30];
char state[2];
}LT;
typedef struct book
{
LT *s[1000];
int top;
}LY;
void CreatLT(LT **s,int a,char g[],char c[])
{
(*s)=(LT *)malloc(sizeof(LT));
(*s)->number=a;
int i=0;
while(i<30)
{
if(g[i]!='\0')
(*s)->name[i]=g[i];
else
(*s)->name[i]='\0';
i++;
}
(*s)->state[0]=c[0];
(*s)->state[1]='\0';
}
void CreatLY(LY **r)
{
(*r)=(LY *)malloc(sizeof(LY));
(*r)->top=-1;
}
void Seek(LY *a)
{
printf("1,号码\n2,书名\n3,状态\n");
int x,i,y,k,symble=0;
char d[10],e[1];
scanf("%d",&x);
switch(x)
{
case 1:
printf("书号:");
scanf("%d",&y);
i=0;
for(i;i<=a->top;i++)
{
if(y==a->s[i]->number)
{
printf("%d %s %s\n",a->s[i]->number,a->s[i]->name,a->s[i]->state);
break;
}
if(i==a->top)
printf("没找到\n");
}
break;
case 2:
i=0;
printf("书名:");
scanf("%s",&d);
for(i;i<=a->top;i++)
{
if(strlen(d)==strlen(a->s[i]->name))
for(k=0;k<strlen(d);k++)
{
if(d[k]!=a->s[i]->name[k])
break;
if(k==strlen(d)-1)
{
printf("%d %s %s\n",a->s[i]->number,a->s[i]->name,a->s[i]->state);
symble=1;
}
}
if(symble==1)
break;
if(i==a->top)
printf("没找到\n");
}
break;
case 3:
printf("状态(Y/N)\n");
scanf("%s",&e);
i=0;
for(i;i<=a->top;i++)
{
if(a->s[i]->state[0]==e[0])
printf("%d %s %s\n",a->s[i]->number,a->s[i]->name,a->s[i]->state);
}
break;
default:
printf("没有该选项\n");
break;
}
}
main()
{
printf("欢迎进入图书管理系统\n");
int k=0,i=0;
LT *s[1000],*p;LY *A;
CreatLY(&A); char a[30]="",b[2]="";
for(k; ;k++)
{
printf("1,输入\n2,输出\n3,查询\n4,删除\n5,修改\n0,退出\n");
int x,number,j=0,h;
scanf("%d",&x);
switch(x)
{
case 1:
printf("编号(必须是整数):");
scanf("%d",&number);
printf("书名:");
scanf("%s",&a);
printf("状态(注意:只能输入N(借出)/Y(未借出)):");
scanf("%s",&b);
CreatLT(&s[i],number,a,b);
A->top++;
A->s[A->top]=s[i];
i++;
break;
case 2:
j=0;
while(j<=A->top)
{
printf("%d %s %s\n",A->s[j]->number,A->s[j]->name,A->s[j]->state);
j++;
}
break;
case 3:
Seek(A);
break;
case 4:
printf("要删除的书号:");
scanf("%d",&number);
j=0;
for(j;j<=A->top;j++)
{
if(A->s[j]->number==number)
{
p=A->s[A->top];
A->s[A->top]=A->s[j];
A->s[j]=p;
A->top--;
break;
}
if(j==A->top)
printf("没有这本书\n");
}
break;
case 5:
printf("要修改的书号:");
scanf("%d",&number);
j=0;
for(j;j<=A->top;j++)
{
if(A->s[j]->number==number)
{
printf("1,修改书号\n2,修改书名\n3,修改状态\n");
scanf("%d",&number);
if(number==1)
{
printf("新书号:");
scanf("%d",&number);
A->s[j]->number=number;
break;
}
else
if(number==2)
{
printf("新书名:");
scanf("%s",&a);
h=0;
while(A->s[j]->name[h]!='\0')
{
if(a[h]!='\0')
A->s[i]->name[h]=a[h];
else
A->s[i]->name[h]='\0';
h++;
}
break;
}
else
if(number==3)
{
printf("新状态:");
scanf("%s",&b);
A->s[i]->state[0]=b[0];
break;
}
else
{
printf("输入错误\n");
j=j-1;
}
}
if(j==A->top)
printf("没有这本书\n");
}
break;
case 0:
h=10000;
break;
default:
printf("没有该选项\n");
break;
}
if(h==10000)
break;
}
}
自己改一下吧,,,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询