C语言程序设计题!!急!!先谢谢各位大虾帮助!

2025-05-13 08:30:18
推荐回答(1个)
回答1:

#include"stdio.h"
#include"string.h"
#include"stdlib.h"
void fun1(struct lib *p,int m);
void fun2(struct lib a[10],int t);
void fun3(struct lib c[10],int w);
int n=0;
struct lib
{char num[8];
char name[10];
char writer[10];
char pub[10];
char date[12];
}group[10];
void menu_select()
{int r;
printf("************************菜单************************\n\n\n");
printf(" 1. 输入书籍信息,按图书名的字母排序\n\n\n");
printf(" 2. 显示所有图书的信息\n\n\n");
printf(" 3. 输入作者姓名,显示该作者的图书记录\n\n\n");
printf(" 4. 推出程序\n\n\n");
printf("****************************************************\n\n");
printf("请输入数字选择:");
scanf("%d",&r);
system("cls");
switch(r)
{case 1:fun1(group,n);break;
case 2:fun2(group,n);break;
case 3:fun3(group,n);break;
case 4:exit(0);
}
}

/*第一个函数*/
void fun1(struct lib *p,int m)
{char c[2];
int i,j,k,l;
struct lib temp;
printf("请输入书籍信息:");
do
{printf("\n请输入第%d册图书的编号:",n+1);
scanf("%s",group[n].num);
printf("\n图书名称:");
scanf("%s",group[n].name);
printf("\n作者姓名:");
scanf("%s",group[n].writer);
printf("\n出版社名:");
scanf("%s",group[n].pub);
printf("\n出版日期:");
scanf("%s",group[n].date);
n++;
printf("\n继续输入书籍信息请按Y或y:");
scanf("%s",c);
}while(!(strcmp(c,"Y"))||!(strcmp(c,"y")));
for(i=0;i{k=i;
for(j=i+1;jif(strcmp(p[k].name,p[j].name)>0)
k=j;
temp=p[k];
p[k]=p[i];
p[i]=temp;
}
printf("返回主菜单请按0,推出程序请按1:");
scanf("%d",&l);
switch (l)
{case 0:{system("cls");menu_select();break;}
case 1:exit(0);}
}

/*第二个函数*/
void fun2(struct lib a[10],int t)
{int h,l;
printf("图书编号 图书名称 作者姓名 出版社名 出版日期\n");
for(h=0;hprintf("%-10s%-12s%-12s%-12s%-12s\n",a[h].num,a[h].name,a[h].writer,a[h].pub,a[h].date);
printf("返回主菜单请按0,推出程序请按1:");
scanf("%d",&l);
switch (l)
{case 0:{system("cls");menu_select();break;}
case 1:exit(0);}
}

/*第三个函数*/
void fun3(struct lib c[10],int w)
{char b[10];
int q,l;
printf("请输入作者姓名:");
scanf("%s",b);
printf("图书编号 图书名称 作者姓名 出版社名 出版日期\n");
for(q=0;q{if(strcmp(c[q].writer,b)==0)
printf("%-10s%-12s%-12s%-12s%-12s\n",c[q].num,c[q].name,c[q].writer,c[q].pub,c[q].date);
else printf("无此作者图书信息!\n");}
printf("返回主菜单请按0,推出程序请按1:");
scanf("%d",&l);
switch (l)
{case 0:{system("cls");menu_select();break;}
case 1:exit(0);}
}

void main()
{menu_select();
}