制作人员:QQ 565274839 刚接触C#,做为练习,花了一周时间做的,功能简单,主要就用到一个sql操作和C#里控件和数据库的操作.
图书管理系统,分为三个模块来做的.客户端(面向读者),操作员端(实际与读者交互人员),系统管理员端(对读者和书目的管理者.)
功能:读者端:查询/修改个人信息,查询书目,续借书.
操作员端:对读者借书/还书的操作
系统管理员端:对读者和书目的管理,增加/修改/删除读者信息,增加/修改/删除书目信息.
数据库设计
-----------------------------------------两个表(Book,BookIndex)共同记录图书信息
create table Book
(
索取号 varchar(35)primary key,
题名 varchar(50)not null,
著者 varchar(40)not null,
出版信息 varchar(50)not null,
附注项 varchar(400)
)------------同种书
create table BookIndex
(
条码号 varchar(10)primary key,
索取号 varchar(35)not null foreign key references Book(索取号),
馆藏地 varchar(20)not null,-------------------------新书阅览室/文理书库/工程技术图书阅览室
书刊状态 varchar(8),-----------------------------------只有可借/不可借
书刊借阅状态 varchar(20)-----------------------------
)-------------单本书
------------------------------------------一个视图来联接这两个表
create view BookinfoView
as
select 条码号,Book.索取号,题名,著者,馆藏地,出版信息,书刊状态,书刊借阅状态,附注项 from Book ,BookIndex where BookIndex.索取号=book.索取号
create table record(---------------------------------------------借书记录(record)
证件号 varchar(8) foreign key references ReaderInfo(证件号),
条码号 varchar(10) foreign key references BookIndex(条码号),
借阅日期 datetime not null,
应归还日期 datetime not null,
还书日期 datetime default(null),
状态 char(4)---------------------------------------------只能是已还/未还
)
create table ReaderInfo(----------------------------------读者信息记录
密码 varchar(25)not null,
证件号 varchar(8) primary key,
姓名 varchar(20) not null,
年龄 tinyint check(年龄>0 and 年龄<100),
性别 varchar(3) check(性别='男' or 性别='女'),
出生日期 datetime not null,
文件程度 varchar(25) default('本科'),
工作单位 varchar(25) not null,
职业 varchar(10),
电话 varchar(15),
[E-MAIL] varchar(30),
最大借书量 tinyint default(5)
)
create table systemmanager(-------------------------------系统管理员
证件号 varchar(8)primary key,
密码 varchar(25)not null
)
create table opertor(-------------------------------------前台操作员
证件号 varchar(8)primary key,
密码 varchar(25)not null
)
------------------------------------------------------------借书储存过程
create proc lendbook @readerId varchar(8),@bookid varchar(10)
as
if((select count(*) from bookindex where 条码号=@bookid and 书刊状态='可借')=1)
begin
declare @c_now tinyint,@c_max tinyint
select @c_now=count(*) from record where 证件号=@readerId and 状态='未还'--已经借书量
select @c_max=最大借书量 from readerinfo where 证件号=@readerId
if(@c_now<@c_max)
begin
declare @t1 datetime,@t2 datetime
set @t1=left(getdate(),10)--当前时间(天)
declare @addre varchar(40),@days tinyint
select @addre=馆藏地 from bookindex where 条码号=@bookid
if(@addre='新书阅览室')set @days=7
else if(@addre='文理书库')set @days=90
else if(@addre='工程技术图书阅览室')set @days=3
set @t2=left(@t1+@days,10)
insert into record values(@readerId,@bookid,@t1,@t2,default,'未还')
update bookindex set 书刊状态='不可借',书刊借阅状态=left(getdate()+@days,10)+'归还' where 条码号=@bookid
end
else
begin
raiserror('超过最大借书量,不能借阅!',15,1)
end
end
else
BEGIN
RAISERROR ('该书因其它原因不可借', 16, 1)
END
--------------------------------------------------------------续借储存过程
create proc renew @readerId varchar(8),@bookid varchar(10),@realaddr varchar(40)
as
if((select count(*) from record where 证件号=@readerId and 条码号=@bookid and 状态='未还')=1)
begin
declare @temp datetime,@t1 datetime,@t2 datetime
set @t1=left(getdate(),10)--当天时间
select @temp=应归还日期 from record where 证件号=@readerId and 条码号=@bookid and 状态='未还'
if(@temp>=@t1)
begin
declare @addre varchar(40),@days tinyint
select @addre=馆藏地 from bookindex where 条码号=@bookid
if(@realaddr=@addre)
begin
if(@addre='新书阅览室')set @days=7
else if(@addre='文理书库')set @days=30
else if(@addre='工程技术图书阅览室')set @days=3
set @t2=@t1+@days
update bookindex set 书刊借阅状态=left(@t2,10)+'归还' where 条码号=@bookid
update record set 应归还日期=left(getdate()+@days,10) where 条码号=@bookid
end
else
begin
declare @st varchar(40)
set @st ='该书应该在 '+@addre
raiserror(@st,15,1)
end
end
else
begin
RAISERROR('超期',16,1)
end
end
else
BEGIN
RAISERROR ('没有该项,或该书已经借出!', 16, 1)
END
-------------------------------------------------------------还书存储过程
----------还书 条码号 馆藏地(区分馆区)
create proc giveback @bookid varchar(10),@addr varchar(40)
as
if((select count(*) from bookindex where 条码号=@bookid and 书刊状态!='可借')=1)
begin
declare @tempaddr varchar(40)
select @tempaddr=馆藏地 from bookindex where 条码号=@bookid and 书刊状态!='可借'
if(@tempaddr=@addr)
begin
declare @temp datetime,@t1 datetime
set @t1=left(getdate(),10)--当天时间
select @temp=应归还日期 from record where 条码号=@bookid and 状态='未还'
if(@temp>=@t1)
begin
update bookindex set 书刊状态='可借' , 书刊借阅状态='在馆' where 条码号=@bookid
update record set 应归还日期=@t1 , 还书日期=@t1 , 状态='已还' where 条码号=@bookid and 状态!='已还'
end
else
begin
raiserror('超期!',16,1)
end
end
else
begin
declare @st varchar(40)
set @st='该书应还于 '+@tempaddr
raiserror(@st,16,1)
end
end
else
begin
raiserror('error,未知错误!',16,1)
end
----------------------------------------------------------借书次限(网上),每本书只能续借一次
新书阅览室 7天,续借一次7天
文理书库 90天,续借一次30天
工程技术图书阅览室 3天,续借一次3天
................
没有合适的资源?快使用搜索试试~ 我知道了~
tushuguanlixitong.rar_library management_tushuguanlixitong_图书 模块
共111个文件
cs:26个
dll:17个
resx:15个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 31 浏览量
2022-09-20
15:01:51
上传
评论
收藏 280KB RAR 举报
温馨提示
图书管理系统,分为三个模块来做的.客户端(面向读者),操作员端(实际与读者交互人员),系统管理员端(对读者和书目的管理者.) 功能:读者端:查询/修改个人信息,查询书目,续借书. 操作员端:对读者借书/还书的操作 系统管理员端:对读者和书目的管理,增加/修改/删除读者信息,增加/修改/删除书目信息.
资源推荐
资源详情
资源评论
收起资源包目录
tushuguanlixitong.rar_library management_tushuguanlixitong_图书 模块 (111个子文件)
UserControl1.cs 31KB
UserControl1.cs 31KB
UserControl1.cs 22KB
UserControl1.cs 20KB
主窗口.cs 12KB
UserControl1.cs 11KB
主窗口.cs 9KB
UserControl1.cs 5KB
Form1.cs 5KB
Form1.cs 4KB
Form1.cs 3KB
主窗体.cs 2KB
书条码号.cs 2KB
AssemblyInfo.cs 2KB
AssemblyInfo.cs 2KB
AssemblyInfo.cs 2KB
AssemblyInfo.cs 2KB
AssemblyInfo.cs 2KB
AssemblyInfo.cs 2KB
AssemblyInfo.cs 2KB
AssemblyInfo.cs 2KB
AssemblyInfo.cs 2KB
AssemblyInfo.cs 2KB
书目查询.cs 2KB
主窗口.cs 1KB
store1.cs 663B
客户端.csproj 6KB
操作员端.csproj 6KB
系统管理员.csproj 6KB
读者信息dll.csproj 5KB
书目管理dll.csproj 5KB
读者信息dll.csproj 5KB
读者信息dll.csproj 5KB
登录Dll.csproj 5KB
查询Dll.csproj 5KB
公共数据dll.csproj 4KB
Thumbs.db 8KB
读者信息dll.dll 52KB
读者信息dll.dll 48KB
读者信息dll.dll 44KB
书目管理dll.dll 44KB
查询Dll.dll 32KB
登录Dll.dll 24KB
登录Dll.dll 24KB
登录Dll.dll 24KB
公共数据dll.dll 16KB
公共数据dll.dll 16KB
公共数据dll.dll 16KB
公共数据dll.dll 16KB
公共数据dll.dll 16KB
公共数据dll.dll 16KB
公共数据dll.dll 16KB
公共数据dll.dll 16KB
公共数据dll.dll 16KB
App.ico 1KB
App.ico 1KB
App.ico 1KB
UserControl1.resx 24KB
UserControl1.resx 24KB
UserControl1.resx 24KB
UserControl1.resx 22KB
UserControl1.resx 13KB
主窗口.resx 12KB
主窗口.resx 9KB
Form1.resx 9KB
UserControl1.resx 9KB
Form1.resx 8KB
Form1.resx 8KB
书目查询.resx 7KB
主窗体.resx 7KB
书条码号.resx 7KB
主窗口.resx 2KB
读者信息dll.sln 919B
书目管理dll.sln 919B
公共数据dll.sln 919B
读者信息dll.sln 919B
读者信息dll.sln 919B
系统管理员.sln 916B
操作员端.sln 910B
查询Dll.sln 907B
登录Dll.sln 907B
客户端.sln 904B
XiHua(初始数据).sql 3KB
读者信息dll.suo 10KB
书目管理dll.suo 10KB
查询Dll.suo 10KB
登录Dll.suo 10KB
读者信息dll.suo 10KB
读者信息dll.suo 10KB
操作员端.suo 9KB
客户端.suo 8KB
系统管理员.suo 8KB
公共数据dll.suo 8KB
Xihua图书管理系统.txt 6KB
关于动态链接库.txt 1KB
www.pudn.com.txt 218B
新建 文本文档.txt 0B
新建 文本文档.txt 0B
新建 文本文档.txt 0B
新建 文本文档.txt 0B
共 111 条
- 1
- 2
资源评论
Kinonoyomeo
- 粉丝: 77
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 美赛数学建模算法-使用Matlab实现非线性规划NonLinearProgramming-国赛-题解.zip
- linux安装java8环境资源包
- 静态路由综合实验模拟ensp
- Unity中WebSocket网络连接的代码以及相关protobuf-net协议转换后的脚本类
- 基于ATLAB + Psychtoolbox 心理学实验,情绪词汇效价判断
- 美赛数学建模算法-使用Matlab实现神经网络NeuralNetwork-包括BP+LVQ-国赛-题解.zip
- hb-mapper-makertbin.log
- dfcf_silence_upgrade_cfw_10.15.3_20240318163518_64.apk
- 美赛数学建模算法-使用Matlab实现多元分析MultivariteAnalysis-包括聚类分析+主成分分析-国赛-题解
- 构成学1.psd
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功