C语言程序设计题!!急!!先谢谢各位大虾帮助!
设计一个图书管理程序,要求:设计结构体数组,结构体中包含数据为:图书编号、图书名作者姓名、出版社名、出版日期。设计各个函数,分别实现以下功能:1.完成图书信息的输入并将录...
设计一个图书管理程序,要求:设计结构体数组,结构体中包含数据为:图书编号、图书名作者姓名、出版社名、出版日期。设计各个函数,分别实现以下功能:1.完成图书信息的输入并将录入的图书按书名的字母的顺序排序;2.显示所有图书的信息;3.输入作者姓名,显示该作者编写的图书记录。设计菜单,通过选择菜单调用以上各函数!
如果以上要求全部满足,可以适当的给与加分!谢谢各位大虾!小弟急着用!请注意,从百度上搜索也行,但可能没有我想要的答案,因为我已经搜索过了!如果有一样的答案,分数会给第一个答案的作者!谢谢了! 展开
如果以上要求全部满足,可以适当的给与加分!谢谢各位大虾!小弟急着用!请注意,从百度上搜索也行,但可能没有我想要的答案,因为我已经搜索过了!如果有一样的答案,分数会给第一个答案的作者!谢谢了! 展开
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<m;i++)
{k=i;
for(j=i+1;j<m;j++)
if(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;h<t;h++)
printf("%-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<w;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();
}
#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<m;i++)
{k=i;
for(j=i+1;j<m;j++)
if(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;h<t;h++)
printf("%-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<w;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();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询