📄 图书管理系统.c
字号:
else
{
InsertyonghuList(yl,j,rd);
yl->length++;
}
}
else
{
InsertyonghuList(yl,j,rd);
yl->length++;
}
return OK;
}
void Addyonghulist() // 加入用户函数
{
reader rd;
printf("\n请输入要添加用户的信息:\n");
printf("请输入该用户编号:");
scanf("%d",&rd.num);
printf("请输入该用户名称:");
scanf("%s",rd.name);
//strcpy(rd.borrowname,"0");
rd.borrownum=0;
rd.btime[0]=0;
rd.btime[1]=0;
rd.btime[2]=0;
rd.ltime[0]=0;
rd.ltime[1]=0;
rd.ltime[2]=0;
if(Addyonghu(yl,rd))
{
printf("添加成功!\n");
}
else
{
printf("添加失败!\n");
}
}
status Deleteyonghulist() //删除用户函数
{
yonghuList p;
int n;
int j=1;
printf("请输入要删除的用户编号:");
scanf("%d",&n);
p=yl->next;
while(p && j<yl->length && n>p->rd.num)
{
p=p->next;
j++;
}
if(!p)
{
printf("出现错误!\n");
return ERROR;
}
if(Deleteyonghu(j))
{
printf("删除成功!\n");
yl->length--;
}
else
printf("删除失败!\n");
return OK;
}
status Modifyyonghulist() //修改用户函数
{
yonghuList p;
int n;
printf("请输入要修改的用户编号:");
scanf("%d",&n);
if(Modifyyonghu(n))
printf("修改成功!\n");
else
printf("修改失败!\n");
return OK;
}
void Printyonghu(yonghuList L) // 显示用户
{
yonghuList p;
p=L->next;
printf("\n以下 %d 个用户信息分别为:\n",L->length);
printf("用户编号 名称 借书编号 借书时间 还书时间\n");
while(p!=NULL)
{
printf(" %5d %8s %10d %4d%3d%3d %4d%3d%3d\n",p->rd.num,p->rd.name,p->rd.borrownum,
p->rd.btime[0],p->rd.btime[1],p->rd.btime[2],p->rd.ltime[0],p->rd.ltime[1],p->rd.ltime[2]);
p=p->next;
}
}
void Printyonghulist() // 显示用户函数
{
Printyonghu(yl);
}
status bookborrowexit(book bk) // 判断借阅图书是否存在
{
int flag=0;
bookList p;
if(bl)
{
p=bl->next;
while(p)
{
if(p->bk.num==bk.num)
{
if(p->bk.curremain>0)
{
p->bk.curremain--;
return OK;
}
else
{
printf("此书没有现存!\n");
return ERROR;
}
flag=1;
}
else
p=p->next;
}
if(!flag)
return ERROR;
}
else
printf("没有图书!\n");
}
status booklendexit(reader rd,book bk) // 判断还书是否存在
{
yonghuList p;
bookList q;
p=yl->next;
while(p )
{
if(p->rd.num = rd.num)
{
break;
}
else
p=p->next;
}
q=bl->next;
while(q)
{
if(q->bk.num==bk.num && p->rd.borrownum==bk.num)
{
q->bk.curremain++;
return OK;
}
else
q=q->next;
}
return ERROR;
}
void yonghuborrowexit(reader rd) // 判断用户借书是否存在
{
yonghuList p;
book bk;
int flag=0;
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
if(yl)
{
p=yl->next;
while(p)
{
if(p->rd.num==rd.num)
{
flag=1;
printf("用户可以借书!\n");
printf("请输入所要借图书的编号:");
scanf("%d",&bk.num);
if(bookborrowexit(bk))
{
//strcpy(p->rd.borrowname,bk.num);
p->rd.borrownum=bk.num;
p->rd.btime[0]=timeinfo->tm_year+1900;
p->rd.btime[1]=timeinfo->tm_mon+1;
p->rd.btime[2]=timeinfo->tm_mday;
p->rd.ltime[0]=p->rd.btime[0];
p->rd.ltime[1]=p->rd.btime[1]+1;
if(p->rd.ltime[1]>12)
{
p->rd.ltime[1]-=12;
p->rd.ltime[0]++;
}
p->rd.ltime[2]=p->rd.btime[2];
printf("此书借阅成功!\n");
break;
}
else
{
printf("你输入的信息错误!\n");
break;
}
}
else
p=p->next;
}
if(!flag)
{
printf("你输入的用户不存在!\n请重新输入!\n");
}
}
else
printf("没有用户记录!\n");
}
void yonghulendexit(reader rd) // 判断用户还书是否存在
{
yonghuList p;
book bk;
int flag=0;
if(yl)
{
p=yl->next;
while(p)
{
if(p->rd.num==rd.num)
{
flag=1;
printf("用户可以还书!\n");
printf("请输入所要还的图书的编号:");
scanf("%d",&bk.num);
if(booklendexit(rd,bk))
{
//strcpy(p->rd.borrowname,"0");
p->rd.borrownum=0;
p->rd.btime[0]=0;
p->rd.btime[1]=0;
p->rd.btime[2]=0;
p->rd.ltime[0]=0;
p->rd.ltime[1]=0;
p->rd.ltime[2]=0;
printf("还书成功!\n");
break;
}
else
{
printf("你输入的图书不存在!\n");
break;
}
}
else
p=p->next;
}
if(!flag)
{
printf("你输入的用户不存在!\n请重新输入!\n");
}
}
else
printf("没有用户记录!\n");
}
void yonghu() // 用户系统
{
int i;
printf("\n欢迎进入用户系统\n");
printf("<1>创建用户\n");
printf("<2>添加用户\n");
printf("<3>删除用户\n");
printf("<4>修改用户\n");
printf("<5>显示用户\n");
printf("<0>退出\n");
while(scanf("%d",&i),i)
{
switch(i)
{
case 1:Createyonghulist();break;
case 2:Addyonghulist();break;
case 3:Deleteyonghulist();break;
case 4:Modifyyonghulist();break;
case 5:Printyonghulist();break;
case 0:exit(0);break;
}
}
}
void Addbooklist() //添加图书函数
{
book bk;
printf("\n请输入要添加图书的信息:\n");
printf("请输入该图书编号:");
scanf("%d",&bk.num);
printf("请输入该图书名称:");
scanf("%s",bk.name);
printf("请输入该图书作者:");
scanf("%s",bk.writer);
printf("请输入该图书的现存量:");
scanf("%d",&bk.curremain);
printf("请输入该图书的库存量:");
scanf("%d",&bk.sumremain);
if(AddBook(bl,bk))
{
printf("添加成功!\n");
}
else
{
printf("添加失败!\n");
}
}
status Deletebooklist() // 删除图书函数
{
bookList p;
int n;
int j=1;
printf("请输入要删除的图书编号:");
scanf("%d",&n);
p=bl->next;
while(p && j<bl->length && n>p->bk.num)
{
p=p->next;
j++;
}
if(!p)
{
printf("出现错误!\n");
return ERROR;
}
if(DeleteBook(j))
{
printf("删除成功!\n");
bl->length--;
}
else
printf("删除失败!\n");
return OK;
}
status Modifybooklist() // 修改图书函数
{
bookList p;
int n;
printf("请输入要修改的图书编号:");
scanf("%d",&n);
if(ModifyBook(n))
printf("修改成功!\n");
else
printf("修改失败!\n");
return OK;
}
void Printbooklist() // 显示图书函数
{
Printbook(bl);
}
void tushu() // 图书系统
{
int i;
printf("\n欢迎进入图书系统\n");
printf("<1>创建图书\n");
printf("<2>添加图书\n");
printf("<3>删除图书\n");
printf("<4>修改图书\n");
printf("<5>显示图书\n");
printf("<0>退出\n");
while(scanf("%d",&i),i)
{
switch(i)
{
case 1:CreateBookList();break;
case 2:Addbooklist();break;
case 3:Deletebooklist();break;
case 4:Modifybooklist();break;
case 5:Printbooklist();break;
case 0:exit(0);break;
}
}
}
void jieshu() // 借书系统
{
reader rd;
printf("\n欢迎进入借书系统\n");
printf("请输入用户编号:");
scanf("%d",&rd.num);
yonghuborrowexit(rd);
}
void huanshu() //还书系统
{
reader rd;
printf("\n欢迎进入还书系统\n");
printf("请输入用户编号:");
scanf("%d",&rd.num);
yonghulendexit(rd);
}
void Admin() // 管理员
{
int n,i;
char c[5];
char m[5];
m[0]='a';m[1]='d';m[2]='m';m[3]='i';m[4]='n';
getchar();
printf("请输入密码:");
for(i=0;i<5;i++)
{
c[i]=getch();
if(c[i]>='0'||c[i]<='9'||c[i]>='a'||c[i]<='z'||c[i]>='A'||c[i]<='Z')
putchar('*');
}
if(c[0]==m[0]&&c[1]==m[1]&&c[2]==m[2]&&c[3]==m[3]&&c[4]==m[4])
{
printf("\r\r欢迎管理员登录\n\n");
printf("\r\r<1>用户系统\n");
printf("\r\r<2>图书系统\n");
printf("\r\r<0>退出系统\n");
while(scanf("%d",&n),n){
switch(n)
{
case 1:yonghu();break;
case 2:tushu();break;
case 0:exit(0);break;
}
}
}
else
printf("\n密码不正确!\n");
}
void Yonghu() // 用户
{
int n;
printf("\r\r欢迎用户登录\n\n");
printf("\r\r<1>借书系统\n");
printf("\r\r<2>还书系统\n");
printf("\r\r<0>退出系统\n");
while(scanf("%d",&n),n){
switch(n)
{
case 1:jieshu();break;
case 2:huanshu();break;
case 0:exit(0);break;
}
}
}
void main()
{
int n;
printf("\r\r图书管理系统\n\n");
printf("\r\r<1>管理员登录\n");
printf("\r\r<2>用户登录\n");
printf("\r\r<0>退出系统\n");
while(scanf("%d",&n),n)
{
switch(n)
{
case 1:Admin();break;
case 2:Yonghu();break;
case 0:exit(0);break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -