#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 10
struct library
{
int num;
char book_name[30];
char writer[30];
char sort_num[3];
char pub_company[30];
char pub_time[30];
char price[30];
};
typedef struct library LIB;
LIB lib[N];
FILE *fp;
int all=0;
int menu(void);
void input(void);
void output(void);
void save(void);
void del(void);
void search(void);
void xiugai(void);
/*void sort(void);*/
main()
{
for(;;)
{
switch(menu())
{
case 1:input();break;
case 2:output();break;
case 3:save();break;
case 4:search();break;
case 5:xiugai();break;
case 6:del();break;
/* case 7:sort();break; */
case 0:exit(1);break;
}
}
}
int menu(void)
{
char m[3];
int n;
printf("\t\t1:input\n");
printf("\t\t2:output\n");
printf("\t\t3:save\n");
printf("\t\t4:search\n");
printf("\t\t5:xiugai\n");
printf("\t\t6:del\n");
printf("\t\t7:sort\n");
printf("\t\t0:exit\n");
printf("\t\tplease choose a operation(0-7):\n");
scanf("%s",m);
n=atoi(m);
return(n);
}
void input(void)
{
int i;
char m[3];
for(i=all;i<N;i++)
{
all++;
clrscr();
printf("please input informations:\n");
printf("\t\tnum:\n");
scanf("%d",&lib[i].num);
printf("\t\tbook_name:\n");
scanf("%s",lib[i].book_name);
printf("\t\twriter:\n");
scanf("%s",lib[i].writer);
printf("\t\tsort_num:\n");
scanf("%s",lib[i].sort_num);
printf("\t\tpub_company:\n");
scanf("%s",lib[i].pub_company);
printf("\t\tpub_time:\n");
scanf("%s",lib[i].pub_time);
printf("\t\tprice:\n");
scanf("%s",lib[i].price);
a: printf("\t\tyes/no continue input?\n");
printf("\t\t1:yes\n");
printf("\t\t2:no\n");
scanf("%s",m);
if(atoi(m)==1)
continue;
else if(atoi(m)==2)
return;
else
{
printf("\t\tinput error!\n");
goto a;
}
}
}
void output(void)
{
int i;
for(i=0;i<all;i++)
{
printf("\t\t%d\n",lib[i].num);
printf("%s\t\t%s\t\t%s\n",lib[i].book_name,lib[i].writer,lib[i].sort_num);
printf("%s\t\t%s\t\t%s\n",lib[i].pub_company,lib[i].pub_time,lib[i].price);
}
}
void save(void)
{
int i;
if((fp=fopen("file.c","wb"))==NULL)
{
printf("can not open the file");
exit(1);
}
for(i=0;i<all;i++)
{
if(fwrite(&lib[i],sizeof(LIB),1,fp)!=1)
{
printf("can not write!");
exit(1);
}
}
fclose(fp);
printf("You have successful to save it!\n");
}
void search(void)
{
int i,flag;
char m[3];
char name[30];
clrscr();
printf("\t\tplease choose your way of search:\n");
printf("\t\t1:by book_name!\n");
printf("\t\t2:by writer!\n");
scanf("%s",m);
i=atoi(m);
switch(i)
{
case 1:{
printf("\t\tplease input the book_name:\n");
scanf("%s",name);
flag=0;
for(i=0;i<N;i++)
{
if(strcmp(name,lib[i].book_name)==0)
{
printf("\t\t%d\n",lib[i].num);
printf("%s\t\t%s\t\t%s\n",lib[i].book_name,lib[i].writer,lib[i].sort_num);
printf("%s\t\t%s\t\t%s\n",lib[i].pub_company,lib[i].pub_time,lib[i].price);
flag=1;break;
}
}
if(flag==0)
printf("\t\tnot find the book!\n");
}
case 2:{
printf("\t\tplease input the writer:\n");
scanf("%s",name);
flag=0;
for(i=0;i<N;i++)
{
if(strcmp(name,lib[i].writer)==0)
{
printf("\t\t%d\n",lib[i].num);
printf("%s\t\t%s\t\t%s\n",lib[i].book_name,lib[i].writer,lib[i].sort_num);
printf("%s\t\t%s\t\t%s\n",lib[i].pub_company,lib[i].pub_time,lib[i].price);
flag=1;break;
}
}
if(flag==0)
printf("\t\tnot find the wtiter!\n");
}
}
}
void xiugai(void)
{
int i,flag;
char name[30],n[3];
clrscr();
printf("\t\tplease input the book_name of xiugai :\n");
scanf("%s",name);
flag=0;
for(i=0;i<N;i++)
{
if(strcmp(name,lib[i].book_name)==0)
{
printf("\t\t%d\n",lib[i].num);
printf("%s\t\t%s\t\t%s\n",lib[i].book_name,lib[i].writer,lib[i].sort_num);
printf("%s\t\t%s\t\t%s\n",lib[i].pub_company,lib[i].pub_time,lib[i].price);
printf("\t\tplease input xiugai's the informations:\n");
printf("\t\tnum:\n");
scanf("%d",&lib[i].num);
printf("\t\tbook_name:\n");
scanf("%s",lib[i].book_name);
printf("\t\twriter:\n");
scanf("%s",lib[i].writer);
printf("\t\tsort_num:\n");
scanf("%s",lib[i].sort_num);
printf("\t\tpub_company:\n");
scanf("%s",lib[i].pub_company);
printf("\t\tpub_time:\n");
scanf("%s",lib[i].pub_time);
printf("\t\tprice:\n");
scanf("%s",lib[i].price);
flag=1;break;
}
}
if(flag==0)
printf("\t\tnot find xiugai's the book!\n");
}
void del(void)
{
int i,j,flag;
char name[30];
clrscr();
printf("\t\tplease input the book_name of del:\n");
scanf("%s",name);
flag=0;
for(i=0;i<N;i++)
{
if(strcmp(name,lib[i].book_name)==0)
{
printf("\t\t%d\n",lib[i].num);
printf("%s\t\t%s\t\t%s\n",lib[i].book_name,lib[i].writer,lib[i].sort_num);
printf("%s\t\t%s\t\t%s\n",lib[i].pub_company,lib[i].pub_time,lib[i].price);
for(j=N;j>i;j--)
{
lib[j-1].num=lib[j].num;
strcpy(lib[j-1].book_name,lib[j].book_name);
strcpy(lib[j-1].writer,lib[j].writer);
strcpy(lib[j-1].sort_num,lib[j].sort_num);
strcpy(lib[j-1].pub_company,lib[j].pub_company);
strcpy(lib[j-1].pub_time,lib[j].pub_time);
strcpy(lib[j-1].price,lib[j].price);
flag=1;
printf("\t\tdel ok!\n");
break;
}
}
}
if(flag==0)
printf("\t\tno information of the book!\n");
}