⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 library.c

📁 图书管理系统开发 主要用到链表知识 很好很强大 欢迎下载!!!
💻 C
📖 第 1 页 / 共 2 页
字号:
		else
			break;
	} 
	if(j <= L->length)
	{
		if(!p)
		{
			printf("出现错误!\n");
			return ERROR;
		}
		if(p->rd.num == rd.num)
		{
			printf("该用户存在!\n");
			return ERROR;
		}
		else
		{
			InsertyonghuList(yl,j,rd);
			yl->length++;
		}
	}
	else
	{
		InsertyonghuList(yl,j,rd);
		yl->length++;
	}
	return OK;
}

void Addyonghulist()     // 添加用户函数
{
	reader rd;
	int j;
	printf("\n请输入要添加用户的信息:\n");
	printf("请输入该用户编号:");
	scanf("%d",&rd.num);
	printf("请输入该用户名称:");
	scanf("%s",rd.name);
	rd.count=0;
	for(j=0;j<N;j++)
	{
		rd.bw[j].borrownum=0;
		rd.bw[j].btime[0]=0;
		rd.bw[j].btime[1]=0;
		rd.bw[j].btime[2]=0;
		rd.bw[j].ltime[0]=0;
		rd.bw[j].ltime[1]=0;
		rd.bw[j].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,n))
	{
		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;
	int i;
	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.bw[0].borrownum,
				p->rd.bw[0].btime[0],p->rd.bw[0].btime[1],p->rd.bw[0].btime[2],p->rd.bw[0].ltime[0],p->rd.bw[0].ltime[1],p->rd.bw[0].ltime[2]);
		if(p->rd.count)
		{
			for(i=1;i<p->rd.count;i++)
			{
				printf(" %5d %8s  %10d    %4d%3d%3d    %4d%3d%3d\n",p->rd.num,p->rd.name,p->rd.bw[i].borrownum,
					p->rd.bw[i].btime[0],p->rd.bw[i].btime[1],p->rd.bw[i].btime[2],p->rd.bw[i].ltime[0],p->rd.bw[i].ltime[1],p->rd.bw[i].ltime[2]);
			}
		}
		p=p->next;
    } 
}

void Findyonghulist()
{
	int n;
	printf("请输入所要查找的用户编号:");
	scanf("%d",&n);
	Findyonghu(n);
}

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");
		return ERROR;
	}
}

status booklendexit(reader rd,book bk)   // 判断还书是否存在
{
	yonghuList p;
	bookList q;
	int i,j;
	p=yl->next;
	if(bl)
	{
		while(p )
		{
			if(p->rd.num == rd.num)
			{
				break;
			}
			else
				p=p->next;
		} 
		q=bl->next;
		while(q)
		{
			if(q->bk.num==bk.num)
			{
				for(i=0;i<p->rd.count;i++)
				{
					if(p->rd.bw[i].borrownum==bk.num)
					{
						q->bk.curremain++;
						p->rd.bw[i].borrownum=0;
						p->rd.bw[i].btime[0]=0;
						p->rd.bw[i].btime[1]=0;
						p->rd.bw[i].btime[2]=0;
						p->rd.bw[i].ltime[0]=0;
						p->rd.bw[i].ltime[1]=0;
						p->rd.bw[i].ltime[2]=0;
						for(j=i;j<p->rd.count;j++)
							p->rd.bw[j]=p->rd.bw[j+1];
						p->rd.count--;
						return OK;
					}
				}
			}
			else
				q=q->next;
		}
		return ERROR;
	}
	else
	{
		printf("没有此图书!\n");
		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))
				{
					if(p->rd.count < N)
					{
						p->rd.bw[p->rd.count].borrownum=bk.num;

						p->rd.bw[p->rd.count].btime[0]=timeinfo->tm_year+1900;
						p->rd.bw[p->rd.count].btime[1]=timeinfo->tm_mon+1;
						p->rd.bw[p->rd.count].btime[2]=timeinfo->tm_mday;
						p->rd.bw[p->rd.count].ltime[0]=p->rd.bw[p->rd.count].btime[0];
						p->rd.bw[p->rd.count].ltime[1]=p->rd.bw[p->rd.count].btime[1]+1;
						if(p->rd.bw[p->rd.count].ltime[1]>12)
						{
							p->rd.bw[p->rd.count].ltime[1]-=12;
							p->rd.bw[p->rd.count].ltime[0]++;
						}
						p->rd.bw[p->rd.count].ltime[2]=p->rd.bw[p->rd.count].btime[2];
						p->rd.count++;
						printf("此书借阅成功!\n");
						break;
					}
					else
					{
						printf("已达到借阅极限!\n你最多可以借阅 %d !\n",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))
				{
					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("<6>查找用户\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 6:Findyonghulist();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,n))
	{
		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("<6>查找图书\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 6:FindBooklist();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("\n\n\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 + -