恳求大lao们邦忙简单分析下这个C程序 课设要用的

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct {
char number[10];
char name[20];
char author[20];
char publish[50];
char time[20];
float price;
}mbook;
typedef struct {
int count;
mbook book[100];
}mlibrary;
mlibrary library;

void save()
{
FILE *fp;
if((fp=fopen("library.doc","w"))==NULL)
{
printf("\n 无法保存信息\n");
return;
}
fwrite(&library.count,sizeof(int),1,fp);
fwrite(library.book,sizeof(library.book[0]),library.count,fp);
}

void putin() /定义录入函数/
{
int y=1;
system("cls");
while(y)
{
printf("\t请输入图书编码 :");
scanf("%s",library.book[library.count].number);
printf("\t请输入书名 :");
scanf("%s",library.book[library.count].name);
printf("\t请输入作者名 :");
scanf("%s",library.book[library.count].author);
printf("\t请输入出版商 :");
scanf("%s",library.book[library.count].publish);
printf("\t请输入录入时间 :");
scanf("%s",library.book[library.count].time);
printf("\t请输入书本价格 :");
fflush(stdin);
scanf("%f",&library.book[library.count].price);
library.count++;
printf("\n是否继续录入 (1是;0否 ) :");
fflush(stdin);
scanf("%d",&y);
if (y!=1)
{
y=0;
break;
}
}
save();
}

void lookup()
{
int i;
system("cls");

printf("编码\t书名\t作者名\t出版商\t录入时间\t价格\n");
for(i=0;i<library.count;i++)
{
printf("%s\t%s\t%s\t%s\t%s\t%-12.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);
}
fflush(stdin);
getchar();

}

void search_by_name() /定义按书名查询/
{
int i;
char s2[20];
int flag=1;
printf("\n请输入你想要查找的书名: ");
fflush(stdin);
scanf("%s",s2);
printf("编码\t书名\t作者名\t出版商\t录入时间\t价格\n");
for(i=0;i<library.count;i++ )
if(strcmp(s2,library.book[i].name)==0)
{
flag=0;
printf("%s\t%s\t%s\t%s\t%s\t%-12.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);
}
if (flag)
{
printf("无法找到!");
}
fflush(stdin);
getchar();
}

void search_by_author() /定义按作者名查询/
{
int i;
char s3[20];
int flag=1;
printf("请输入你要查找的书籍作者名: ");
fflush(stdin);
scanf("%s",s3);
printf("编码\t书名\t作者名\t出版商\t录入时间\t价格\n");
for(i=0;i<library.count;i++ )
if(strcmp(s3,library.book[i].author)==0)
{
flag=0;
printf("%s\t%s\t%s\t%s\t%s\t%12.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);
}
if (flag)
{
printf("无法找到!");
}
fflush(stdin);
getchar();
}

void search() /定义查询函数/
{
int a;
system("cls"); /进行清屏/
printf("\t\t*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("开始查询\n");
printf("\t\t\t1---------------按照书名查询\n");
printf("\t\t\t2---------------按照作者名查询\n");
printf("\t\t\t0---------------退出\n");
printf("\t\t
~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*\n") ;
printf("\t\t您的选择是:");
fflush(stdin);
scanf("%d",&a);
switch(a)
{
case 1:
search_by_name();
break;
case 2:
search_by_author();
break;
case 0:
return;
}
}

void del() /定义删除函数/
{
int i;
char number[10];
system("cls"); /清屏/
printf("\n 请输入您想要删除的书籍的编码:");
fflush(stdin);
scanf("%s",number);

for (i=0;i<library.count;i++)
{
    if(strcmp(number,library.book[i].number)==0)break;    
}
if (i!=library.count)
{
    for(;i<library.count-1;i++)
    {
        strcpy(library.book[i].name,library.book[i+1].name);
        strcpy(library.book[i].number,library.book[i+1].number);
        strcpy(library.book[i].publish,library.book[i+1].publish);
        strcpy(library.book[i].author,library.book[i+1].author);
        strcpy(library.book[i].time,library.book[i+1].time);
        library.book[i].price=library.book[i+1].price;
    }
    library.count--;
}
else
    printf("\n 找不到!\n");
save();
fflush(stdin);
getchar();

}
void update()
{
int i;
char number[10];
system("cls"); /清屏/
printf("\n 请输入您想要修改的书籍的编码:");
fflush(stdin);
scanf("%s",number);

for (i=0;i<library.count;i++)
{
   if(strcmp(number,library.book[i].number)==0)
   {
       printf("编码\t书名\t作者名\t出版商\t录入时间\t价格\n");
       printf("%s\t%s\t%s\t%s\t%s\t%12.2f\n",library.book[i].number,library.book[i].name,library.book[i].author,library.book[i].publish,library.book[i].time,library.book[i].price);
       break;
   }
}
if (i!=library.count)
{
    mbook book;
    printf("\n请您输入修改后的信息 :\n");
    printf("\t请输入您修改后的编码     :");
    scanf("%s",book.number);
    printf("\t请输入您修改后的书名     :");
    scanf("%s",book.name);
    printf("\t请输入您修改后的作者名   :");
    scanf("%s",book.author);
    printf("\t请输入您修改后的出版商   :");
    scanf("%s",book.publish);
    printf("\t请输入您修改后的录入时间 :");
    scanf("%s",book.time);
    printf("\t请输入您修改后的价格     :");
    fflush(stdin);
    scanf("%f",&book.price);

    strcpy(library.book[i].name,book.name);
    strcpy(library.book[i].number,book.number);
    strcpy(library.book[i].publish,book.publish);
    strcpy(library.book[i].author,book.author);
    strcpy(library.book[i].time,book.time);
    library.book[i].price=book.price;
    save();
}
else
    printf("\n 无法找到!\n");
fflush(stdin);
getchar();

}
int main()
{
int a;
FILE *fp;
if((fp=fopen("library.doc","r"))==NULL)
{
printf("\n无法打开图书信息!\n");
fp=fopen("library.doc","w+");
printf("\n开始阅读信息然后进入程序\n");
library.count=0;
fwrite(&library.count,sizeof(int),1,fp);

fclose(fp);
}
fread(&library.count,sizeof(int),1,fp);
fread(library.book,sizeof(library.book[0]),library.count,fp);
fclose(fp);

 do
 {
    system("cls");
    printf("\n\t\t\t\t图书信息管理系统\t\t\t\t\n");
    printf("\t\t*********************************************\n");
    printf("\t\t\t1 --------------------录入图书信息\n");
    printf("\t\t\t2 --------------------浏览图书信息 \n");
    printf("\t\t\t3 --------------------查询图书信息\n");
    printf("\t\t\t4 --------------------删除图书信息\n");
    printf("\t\t\t5 --------------------修改图书信息\n");
    printf("\t\t\t0 --------------------退出程序\n");
    printf("\t\t**********************************************\n");
    printf("\t\t   请选择:  ");
    fflush(stdin);
    scanf("%d",&a);
    switch(a)
    {
    case 1:
        putin();
        break;
    case 2:
        lookup();
        break;
    case 3:
        search();
        break;
    case 4:
        del();
        break;
    case 5:
        update();
        break;
    case 0:
        printf("\n\n退出!\n\n");
        break;
    default:
        printf("\n没有该选择!\n");
    }
 }while(a!=0);
 save();

}

就是图书管理系统进行增删改查,
用结构体数组mbook[100]存储图书信息,保存时写到文件里
根据用户输入的数字选项进行操作
具体哪里不明白呢