#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
FILE* fp;
struct BOOK
{ int id,usr[10],total,store,days[10];
char name[30],author[20],publish[40];
}books[100];
void page_title(char *menu_item)
{ printf("\t\t\t************欢迎使用图书馆管理系统**********\n\n- %s -\n\n",menu_item); }
void zhuce(void)
{char temp1[10],temp2[10],temp3[10],yhmtmp[10],mm[10];
printf("输入用户名\n");
fflush(stdin);
gets(yhmtmp);
printf("输入密码\n");
fflush(stdin);
gets(temp1);
printf("输入密码确认\n");
fflush(stdin);
gets(temp2);
if(!strcmp(temp1,temp2))
{strcpy(mm,temp1);
printf("注册成功\n");
}
else
{printf("输入密码确认\n");
gets(temp3);
if(!strcmp(temp1,temp3))
{strcpy(mm,temp1);
printf("注册成功\n");
}
else
printf("注册失败\n");
}
}
void login()
{
fp=fopen("lg.flag","w+");
fclose(fp);
}
void denglu(void)
{
char s1[10],s2[10],yhm[10],mm[10];
{
fp=fopen("lg.flag","w+");
fclose(fp);
}
printf("输入用户名\n");
fflush(stdin);
gets(s1);
printf("输入密码\n");
fflush(stdin);
gets(s2);
if(!(strcmp(s1,yhm))&&!(strcmp(s2,mm)))
printf("登陆成功\n");
}
void return_confirm(void)
{ printf("\n按任意键返回……\n");
getch(); }
int search_book(void)
{ int n,i;
system("cls");
fp=fopen("lg.flag","r");
if(fp==NULL)
{
printf("请首先进行系统登陆\n");
system("pause");
return 0;
}
printf("请输入图书序号:");
scanf("%d",&i);
for(n=0;n<100;n++)
{ if(books[n].id==i)
{ printf("序号:%d\n",books[n].id);
printf("书名:%s\n",books[n].name);
printf("作者:%s\n",books[n].author);
printf("出版社:%s\n",books[n].publish);
printf("存数:%d\n",books[n].store);
printf("总数:%d\n",books[n].total);
return n; } }
printf("\n没有找到相关记录.\n");
return -1; }
int book_search(void)
{ int n,i=1;
char nam[30];
system("cls");
fp=fopen("lg.flag","r");
if(fp==NULL)
{
printf("请首先进行系统登陆\n");
system("pause");
return 0;
}
printf("请输入书名:");
scanf("%s",&nam);
printf("查询结果如下:\n");
for(n=0;n<100;n++)
{ if((strcmp(books[n].name,nam)==0))
{ printf("序号:%d\t",books[n].id);
printf("书名:%s\t",books[n].name);
printf("作者:%s\t",books[n].author);
printf("出版社:%s\t",books[n].publish);
printf("存数:%d\t",books[n].store);
printf("总数:%d\n",books[n].total);i=0;
} }
if(i==1)
printf("\n没有找到相关记录.\n");
return -1; }
int book_change(void)
{
int n,i;
system("cls");
fp=fopen("lg.flag","r");
if(fp==NULL)
{
printf("请首先进行系统登陆\n");
system("pause");
return 0;
}
page_title("修改图书信息");
printf("请输入要修改的图书序号:");
scanf("%d",&i);
for(n=0;n<100;n++)
{
if(books[n].id==i)
{
printf("修改书名:");
scanf("%s",books[n].name);
printf("修改作者:");
scanf("%s",books[n].author);
printf("修改出版社名:");
scanf("%s",books[n].publish);
printf("修改总数:");
scanf("%d",&books[n].total);
printf("修改图书信息成功.\n");
books[n].store=books[n].total;
return n;
}
}
printf("\n没有找到相关记录.\n");
return -1;
}
int book_show(void)
{int n,i=1;
system("cls");
fp=fopen("lg.flag","r");
if(fp==NULL)
{
printf("请首先进行系统登陆\n");
system("pause");
return 0;
}
for(n=0;n<100;n++)
{
if(strlen(books[n].name)!=0)
{
printf("序号:%d\t",books[n].id);
printf("书名:%s\t",books[n].name);
printf("作者:%s\t",books[n].author);
printf("出版社:%s\t",books[n].publish);
printf("存数:%d\t",books[n].store);
printf("总数:%d\n",books[n].total);
i=0;
}
}if(i==1)
printf("\n没有找到相关记录.\n");
return -1;
}
void book_out(void)
{int n,s,l,d;
system("cls");
fp=fopen("lg.flag","r");
if(fp==NULL)
{
printf("请首先进行系统登陆\n");
system("pause");
return;
}
page_title("借阅图书");
if((n=search_book())!=-1&&books[n].store>0)
{printf("请输入借书证序号:");
scanf("%d",&s);
printf("请输入可借天数:");
scanf("%d",&d);
for(l=0;l<10;l++)
{if(books[n].usr[l]==0)
{ books[n].usr[l]=s;
books[n].days[l]=d;
break; } }
books[n].store--; }
if(n!=-1&&books[n].store==0) printf("此书已经全部借出.\n");
return_confirm(); }
void book_in(void)
{ int n,s,l;
system("cls");
fp=fopen("lg.flag","r");
if(fp==NULL)
{
printf("请首先进行系统登陆\n");
system("pause");
return;
}
page_title("归还图书");
if((n=search_book())!=-1&&books[n].store<books[n].total)
{printf("借阅者图书证列表:\n");
for(l=0;l<10;l++)
if (books[n].usr[l]!=0)
printf("[%d] - %d天\n",books[n].usr[l],books[n].days[l]);
printf("请输入借书证序号:");
scanf("%d",&s);
for(l=0;l<10;l++)
{if(books[n].usr[l]==s)
{ books[n].usr[l]=0;
books[n].days[l]=0; break; } }
books[n].store++; }
if(n!=-1&&books[n].store==books[n].total)
printf("全部入藏.\n");
return_confirm(); }
void book_add(void)
{ int n;
system("cls");
fp=fopen("lg.flag","r");
if(fp==NULL)
{
printf("请首先进行系统登陆\n");
system("pause");
return;
}
page_title("注册新书");
for(n=0;n<100;n++)
if(books[n].id==0) break;
printf("序号:");
scanf("%d",&books[n].id);
printf("书名:");
scanf("%s",&books[n].name);
printf("作者:");
scanf("%s",&books[n].author);
printf("出版社:");
scanf("%s",&books[n].publish);
printf("数量:");
scanf("%d",&books[n].total);
books[n].store=books[n].total;
return_confirm(); }
int book_del(void)
{
int n,num,i;
system("cls");
fp=fopen("lg.flag","r");
if(fp==NULL)
{
printf("请首先进行系统登陆\n");
system("pause");
return 0;
}
page_title("删除图书");
printf("请输入所要删除的书的编号:");
scanf("%d",&num);
for(n=0;n<100;n++)
{
if(books[n].id==num)
for(i=n;i<100;i++)
{ books[i].id=books[i+1].id;
strcpy(books[i].name,books[i+1].name);
strcpy(books[i].publish,books[i+1].publish);
printf("该书已删除.\n");
return n;
}
}
printf("没有找到相关记录\n");
return -1;
}
void main(void)
{
menu: page_title("操作选单");
printf(" ╔═════════════════╗\n");
printf(" ║---------请用数字选择操作---------║\n");
printf(" ║------------注册账号-----------1--║\n");
printf(" ║-------------登陆系统----------2--║\n");
printf(" ║-------------注册新书----------3--║\n");
printf(" ║-------------借阅图书----------4--║\n");
printf(" ║----------查询图书信息---------5--║\n");
printf(" ║---------修改图书信息----------6--║\n");
printf(" ║-------------归还图书----------7--║\n");
printf(" ║-------------删除图书----------8--║\n");
printf(" ║-------------显示图书----------9--║\n");
printf(" ║-------------退出系统----------0--║\n");
printf(" ║------------请按数字键:-----------║\n");
printf(" ╚═════════════════╝\n");
rewind(stdin);
switch(getch())
{
case '1' : zhuce(); break;
case '2' : denglu(); break;
case '3' : book_add(); break;
case '4' : book_out(); break;
case '5' : book_search(); break;
case '6' : book_change(); break;
case '7' : book_in(); break;
case '8' : book_del(); break;
case '9' : book_show(); break;
case '0' : exit(0);
}goto menu;
}