C语言链表图书管理系统

/******************************************
名称:图书管理系统
作者: 崔孝磊
时间:2013年4月
版本:V1.0
******************************************/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int i;
bool flag=true;
struct lib
{
char ID[20];
char author[20];
char name[30];
char chubanshe[30];
struct lib *next;
};
struct lib *link=NULL;
struct lib *lastbook=NULL;
struct lib *add(struct lib *lastbook)
{
struct lib *a;
a=NULL;

if(lastbook==NULL)
{
lastbook=new lib;
link=lastbook;
printf("欢迎进入图书添加界面^_^\n");
printf("请输入添加的书的ID号^_^\n");
scanf("%s",lastbook->ID);
printf("请输入书的作者^_^\n");
scanf("%s",lastbook->author);
printf("请输入书名^_^\n");
scanf("%s",lastbook->name);
printf("请输入书的出版社^_^\n");
scanf("%s",lastbook->chubanshe);
lastbook->next=NULL;
}
else
{
a=new lib;
printf("欢迎进入图书添加界面^_^\n");
printf("请输入添加的书的ID号^_^\n");
scanf("%s",a->ID);
printf("请输入书的作者^_^\n");
scanf("%s",a->author);
printf("请输入书名^_^\n");
scanf("%s",a->name);
printf("请输入书的出版社^_^\n");
scanf("%s",a->chubanshe);
a->next=NULL;
lastbook->next=a;
lastbook=a;
}
printf("图书添加完毕^_^\n");
return lastbook;
}
void display()
{
struct lib *p;
i=0;
p=link;
if(p==NULL)
{
printf("对不起,现在图书馆一本书还都没有,建议您先添加图书^_^\n");
}
else
{
while(p!=NULL)
{
i++;
printf("%d. ID:%-12s作者:%-12s书名:%-12s出版社:%-12s\n",i,p->author,p->chubanshe,p->ID,p->name);
p=p->next;
}
}
}
void shanchu()
{
int j,k;
struct lib *p,*a;
p=link;
if(p==NULL)
{
printf("对不起,现在图书馆一本书还都没有,建议您先添加图书^_^\n");
}
else
{
display();
printf("请输入您要删除第几本书吧^_^\n");
scanf("%d",&j);
if(j>i)
{
printf("对不起,压根就没有那么多的书^_^\n");
}
else if(j<i)
{
for(k=1;k<=j-2;k++)
{
p=p->next;
}
a=p->next;
p->next=a->next;
delete(a);
printf("记录删除成功\n");
}
else
{
for(k=1;k<=j-2;k++)
{
p=p->next;
}
a=p->next;
delete(a);
p->next=NULL;
lastbook->next=p;
printf("记录删除成功\n");
}
}
}
void display2(int j)
{
struct lib *p;
int m;
p=link;
for(m=1;m<=j-1;m++)
{
p=p->next;
}
printf("%d. ID:%-12s作者:%-12s书名:%-12s出版社:%-12s\n",j,p->author,p->chubanshe,p->ID,p->name);

}
void chazhao()
{
int selete=0,m=0;


char a[20];
struct lib *p;
p=link;
printf("欢迎进入查找界面^_^\n");
if(p==NULL)
{
printf("对不起,现在图书馆中还没有图书呢^_^\n");
}
else
{
printf("1.按ID号查找\t2.按作者查找\t3.按书
名查找\t4.按出版社查找\n");
scanf("%d",&selete);
if(selete==1)
{
printf("您现在进入ID查找界面,请输入ID号\n");
scanf("%s",a);
while(p!=NULL)
{
m++;
if(strcmp(p->ID,a)==0)
{
display2(m);
break;
}
else
p=p->next;
}
if(p==NULL)
printf("对不起,数据库中没有您找的书\n");
}
else if(selete==2)
{
printf("您现在进入作者查找界面,请输入作者\n");
scanf("%s",a);
while(p!=NULL)
{
m++;
if(strcmp(p->author,a)==0)
{
display2(m);
break;
}
else
p=p->next;
}
if(p==NULL)
printf("对不起,数据库中没有您找的书\n");
}
else if(selete==3)
{
printf("您现在进入书名查找界面,请输入书名\n");
scanf("%s",a);
while(p!=NULL)
{
m++;
if(strcmp(p->name,a)==0)
{
display2(m);
break;
}
else
p=p->next;
}
if(p==NULL)
printf("对不起,数据库中没有您找的书\n");
}
else if(selete==4)
{
printf("您现在进入出版社查找界面,请输入出版社名\n");
scanf("%s",a);
while(p!=NULL)
{
m++;
if(strcmp(p->chubanshe,a)==0)
{
display2(m);
break;
}
else
p=p->next;
}
if(p==NULL)
printf("对不起,数据库中没有您找的书\n");
}
else
{
printf("对不起,您的输入有误,请重新选择\n");
}
}
}
void zhuce()
{
FILE *fp;
int m=1;
char name[20],mima[20],mima2[20];
fp=fopen("user.txt","a+");
if(fp==NULL)
{
printf("对不起,系统出错,文件打开失败!!!\n");
}
else
{
printf("请输入账号:");
scanf("%s",name);
while(m)
{
printf("请输入密码:");
scanf("%s",mima);
printf("请再次输入密码:");
scanf("%s",mima2);
if(strcmp(mima,mima2)==0)
m=0;
else
{
printf("对不起,您两次输入的密码不同,请重新输入^_^\n");
}
}
}
fprintf(fp," %s %s ",name,mima);
printf("注册成功,直接进入系统\n");
system("pause");
system("cls");
fclose(fp);
}
int denglu(int j)
{
FILE *fp;
char name[20],mima[20],name2[20],mima2[20];

fp=fopen("user.txt","r+");
if(fp==NULL)
{
printf("对不起,文件打开失败!\n");
}
else
{
printf("账号:");
scanf("%s",name);
printf("密码:");
scanf("%s",mima);
while(fscanf(fp,"%s%s",name2,mima2)!=EOF)
{
if((strcmp(name2,name2)==0)&&(strcmp(mima,mima2)==0))
{
printf("尊敬的%s用户,欢

迎使用图书管理系统\n",name);
system("pause");
system("cls");
flag=true;
return 1;
}
}
fclose(fp);
if(j>1)
printf("对不起,您的输入有误,您还有%d次机会,请重新输入\n",j-1);
return 0;
}

}
void main()
{

char selete[10],n;
int j,k;

printf("欢迎进
入图书管理系统^_^\n");
printf("1.已有账号登陆\t\t\t2.新用户注册\n");
printf("请输入您的选择\n");
scanf("%d",&n);
if(n==1)
{
for(j=3;j>=0;j--)
{
if(j!=0)
{
k=denglu(j);
if(k==1)
break;
else
continue;
flag=false;
}
else
flag=false;
}
}
else if(n==2)
{
zhuce();
}
else
{
printf("对不起,您的输入有误,系统自动退出\n");
}
while(flag)
{
printf("请选择您要做的事情:\n1.全部图书浏览\t2.新图书添加\t3.图书删除\t4.图书查找\t5.图书借阅\t0.退出\n");
scanf("%s",&selete);
switch(selete[0])
{
case '0':flag=false;break;
case '1':display();system("pause");break;
case '2':lastbook=add(lastbook);break;
case '3':shanchu();system("pause");break;
case '4':chazhao();system("pause");break;
default:printf("对不起,您的输入有误,请重新输入\n");break;
}
system("cls");
}
printf("谢谢使用本系统^_^\n");
}



相关主题
相关文档
最新文档