课程设计——图书管理系统

library.h
#ifndef LIBRARY_INCLUDE
#define LIBRARY_INCLUDE

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

#include<windows.h>
#include<time.h>

typedef struct BOOK{
	long number;
	char name[30];
	char author[30];
	char press[30];
	long presstime;
	int exist;
	int total;
	struct BOOK *next;
}book;

typedef struct KEY{
	long key;
	book *adress;
	struct KEY *next;
}keynode;

typedef struct READER{
	long number;
	char name[15];
	char sex;
	char password[16];
	int residue;
	long borrowed[10][2];
	int limit;
	struct READER *next;
}reader;
char *lc(int i);
char *sc(char p);
void showR(reader *tr,book *bhead);
void showB(book *p);
book *S_name(book *head,char name[]);
void S_author(book *head);
keynode *initindex(book *head);
void delkey(keynode *keyhead);
book *S_number(long num,book *bhead);
reader *S_reader(reader *rhead,long num);
book *Bload();
reader *Rload();
void Bsave(book *Bhead);
void Rsave(reader *Rhead,book *bhead);
void insert(book *bhead);
void reg(reader *head);
reader *login(reader *rhead,book *bhead);
void borrow(reader *temp,book *Bhead);
void returnbook(book *bhead,reader *temp);
void style();
void intpsd(char *psd);
void menu(struct BOOK *Bhead,reader *Rhead);
void menu2(reader *temp,reader *rhead,book *bhead);
long backtime();
#endif

borrow_return.cpp
#include"library.h"
void borrow(reader *temp,book *Bhead)
{
	style();
	long num;
	int i;
	char t,k,name[30];
	book *Bbook;
	getch();
	system("cls");
	while(1)
	{
		printf("\n                        ┏━━━━━━━━━━┓                        ");
		printf("\n█━━━━━━━━━━━┫借书                ┣━━━━━━━━━━━█");
		printf("\n                        ┗━━━━━━━━━━┛                        ");
		printf("\n请输入您要查找借阅书籍的方式:");
		printf("\n                           1、按书号查找\n");
		printf("\n                           2、按作者查找\n");
		printf("\n                           3、按书名查找\n");
		printf("\n                           4、返回主菜单\n");
		t=getch();
		switch(t)
		{
		case '1':
		{
			printf("\n请输入您要查找的书籍编号:");
			scanf("%d",&num);
			if((Bbook=S_number(num,Bhead))!=NULL)
			{
				showB(Bbook);
				printf("\n请问你是否要借阅该书籍?Y/N");
				k=getch();
				if(k=='Y'||k=='y')
					goto borrow;
				else
					break;
			}
			else
				break;
		}
		case '2':
		{
			S_author(Bhead);
			break;
		}
		case '3':
		{
			printf("\n请输如您要查找的书籍名:");
			scanf("%s",name);
			if((Bbook=S_name(Bhead,name))!=NULL)
			{
				showB(Bbook);
				printf("\n请问你是否要借阅该书籍?Y/N");
				k=getch();
				if(k=='Y'||k=='y')
					goto borrow;
				else
					break;
			}
			else
				continue;
			break;
		}
		default:
			return;

borrow:	if(Bbook!=NULL&&temp->residue>0&&Bbook->exist>0)
		{
			temp->residue--;
			Bbook->exist--;
			for(i=0;i<10;i++)
			{
				if(temp->borrowed[i][0]==0)
				{
					temp->borrowed[i][0]=Bbook->number;
					temp->borrowed[i][1]=backtime();
					break;
				}
			}
			printf("\n                       借阅成功!");
		}
		else
			if(!(temp->residue>0))
				printf("\n您只能借阅10本书籍!");
			else
				if(!(Bbook->exist>0))
					printf("\n该书没有库存,请借阅其他书籍!");

		printf("\n您要继续借阅书籍吗?Y/N");
		t=getch();
		if(t=='y'||t=='Y')
			continue;
		else
		break;
		}
	}
}


void returnbook(book *bhead,reader *temp)
{
	long num;
	int i,j=0;
	char t;
	book *p;
	printf("\n                        ┏━━━━━━━━━━┓                        ");
	printf("\n█━━━━━━━━━━━┫还书                ┣━━━━━━━━━━━█");
	printf("\n                        ┗━━━━━━━━━━┛                        ");
	printf("\n\n请输入您所还
目 录 1 需求分析 2 2 数据库的概念设计 2 3 数据库的逻辑设计 3 4 数据库的物理设计 4 5 应用程序设计 6 6 编程实现 10 总结与体会 13 致 谢 14 参考文献 15 数据库原理及应用课程设计报告 1 需求分析 1.1 任务和要求 用户有以下需求:建立读者档案;建立图书档案,建立书目索引;完成日常图书检索、借、还工作,对读者档案、图书档案、借、还系统的访问,必需进行身份验证。 1.2系统总体功能设计 图书馆管理系统主要提供的功能包括图书入库、借出、归还以及对读者的信息管理 。 (1) 图书借阅: 借阅图书时应按图书馆的规则进行借阅,例如不超过5本,如果已有超时借阅的图书,则在归还前不允许再借阅等等。 (2) 图书归还: 对于图书遗失或超期归还的情况应根据图书馆的规则进行处罚。 (3) 新图书信息入库: 建立图书信息库,以便读者进行查询和借阅。 (4) 图书信息管理: 图书因使用过久或信息过时需做下架处理,或者在读者借阅书籍时发生遗失的情况下需做遗失处理,这些都需要修改数据库关于书籍的信息。 (5) 读者信息管理: 对读者应该提供能办证、修改、注销;访问时要进行身份验证,办证、修改、注销应记录操作员编号、操作日期、理由、审批记录等功能 (6) 图书信息查询: 一般读者在借阅书籍前都需查询图书馆关于所借书籍的大概信息:该图书是否在馆—是否已借出—在馆中的书架号;除查询书籍外读者还可查询关于自身的信息:是否有超期未还的图书,还可借阅书籍数目等。 1.3软硬件运行环境及开发工具 Visual Basic 6.0 SQL Server 2000 2 数据库的概念设计 E-R模型图:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值