




免费预览已结束,剩余21页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于visual studio c#的图书信息管理系统(c/s模式)学号: 40姓名: 学院: 数计学院 日期: 2011-12-8 24目录系统概述1需求分析1系统设计1开发环境1系统结构1功能模块1软件结构1数据库设计2概念设计2逻辑设计2数据库实施4power designer sql server 20054表结构6服务器端逻辑7完整性约束7触发器8存储过程9系统概述图书信息管理系统主要完成图书基本信息以及图书借阅信息的管理。实现新书入库、读者注册、管理员添加修改删除、管理员登陆、图书借阅、图书归还以及信息导出。图书信息管理系统基于c#,采用c/s模式,实现了基本信息的管理。需求分析图书基本信息包括:isbn、图书标题、作者、出版社、所属类别、出版日期、可借副本、内容简介和操作员。需要实现图书信息的添加、查询以及数据导出。读者基本信息包括:读者编号、读者姓名、学院、性别、出生日期、级别、电子邮件和操作员。需要实现读者基本信息的添加、修改、查询以及数据的导出。管理员信息包括:管理员账号、管理员密码、管理员级别和真实姓名。需要实现管理员的信息的添加、删除和修改。图书借阅信息包括:读者编号、图书isbn号、借阅日期、还书日期、是否包含附件以及操作员。需要实现图书的借阅和归还。系统设计开发环境开发环境:visual studio 2008+power designer 15.1+sql server 2005操作系统:window 7 旗舰版系统结构功能模块图书管理新书入库、图书查询、图书信息导出;读者管理读者注册、读者信息查询、读者信息导出;借阅管理图书借阅、图书归还。软件结构数据库设计概念设计包含三个实体:book(图书)、readers(读者)和users(管理员),三者的关系如下power designer中设计的conceptual data model(数据概念模型)逻辑设计主要包含四张表、一个存储过程和两个触发器(表borrow)。表:users(管理员表)、book(图书表)、readers(读者表)和borrow(借阅表)。存储过程:get_reader_info(用于获取读者信息和借书的总册数),详细代码见下一节。触发器:borrow_book(用于借阅图书时检测图书是否借完,没有借完则添加图书借阅记录并将所借图书可借副本减1,insert触发)、return_book(用户归还图书时将所还图书可借副本加1,update触发),详细代码见下一节。关系表如下:power designer中生成的logical data model(逻辑数据模型)power designer中逻辑模型的组成部分数据库实施power designer sql server 2005power designer中导出数据库脚本选择数据库类型和文件名以及路径sql server 2005中执行power designer导出的sql脚本执行完后的结果表结构book表字段名称数据类型是否为空描述isbn (pk)char(50)isbn号authorchar(12)作者publisherchar(12)出版社titlechar(100)图书标题typechar(20)所属类别amountint可借副本publishdatedatetime出版日期introtext内容简介uname (fk)char(12)操作员users表字段名称数据类型是否为空描述uname (pk)char(12)管理员账号upwdchar(12)管理员密码utitlechar(12)管理员级别truenamechar(12)真实姓名readers表字段名称数据类型是否为空描述userid (pk)char(12)读者编号usernamechar(12)读者姓名academychar(50)学院sexchar(2)性别birthdaydatetime出生日期levelsint级别emailchar(100)电子邮件uname (fk)char(12)操作员borrow表字段名称数据类型是否为空描述isbn (pk)char(50)图书isbn号userid (pk)char(12)读者姓名borrowdate (pk)datetime借书日期returndatedatetime还书日期attachmentchar(2)是否包含附件uname (fk)char(12)操作员服务器端逻辑完整性约束实体完整性:所有表中的主键均不能为空(默认已经建立)。用户自定义完整性:readers表中的sex字段的值限定在“男”和“女”这两个值。powerd esigner中进入sex字段的属性设置界面powerd esigner中为sex字段这种check约束powerd esigner中sex建立check约束后的sql语句触发器borrow_book:用于借阅图书时检测图书是否借完,没有借完则添加图书借阅记录并将所借图书可借副本减1,insert触发),详细代码如下:create trigger borrow_bookon borrowfor insertasdeclare total int,userid varchar(12)select top 1 userid = userid from insertedselect total = (5*levels) from readers where userid = useridif(select count(*) from borrow a where a.userid = userid and a.returndate is null)=total )beginif(select book.amount from book,inserted where book.isbn = inserted.isbn)0)begindeclare msg varchar(60)select msg = 提示:您的书本已经超期【+convert(varchar(2),d)+】天,请先交罚金后再还书!raiserror(msg,16,1)rollback transactionendelseupdate book set amount = amount + 1where isbn = (select top 1 isbn from inserted)存储过程get_reader_info:用于获取读者信息和借书的总册数,代码如下create procedure get_reader_info (uid varchar(12) asdeclare books intbeginselect books = count(*) from borrowselect *,books totalbooks from readers where userid = uidend页面设计与实现主要窗体设计数据库配置程序登录界面主界面子窗口 数据库操作核心代码数据库连接public conndb() if (conn = null) try string current = directory.getcurrentdirectory();/获取当前根目录 ini ini = new ini(current + /config.ini); console.write(current + /config.ini); databasename = ini.readvalue(dataset, databasename); server_url = ini.readvalue(dataset, serverurl); username = ini.readvalue(dataset, username); userpwd = ini.readvalue(dataset, password); conn = new oledbconnection(); conn.connectionstring = provider=sqloledb.1;data source= + server_url + ;initial catalog= + databasename + ;user id= + username + ;pwd= + userpwd;/连接数据库的字符串 /conn.connectionstring = provider=sqloledb.1;data source=.;initial catalog=zq;user id=sa;pwd=zdy123;/连接数据库的字符串 if (conn.state = connectionstate.closed) conn.open();/打开数据库连接 catch(exception e) messagebox.show(提示:数据库连接失败,请检查数据库配置文件!n+e.message, 数据库连接异常, messageboxbuttons.ok, messageboxicon.error); 数据库数据操作 /添加、修改数据 public int update(string sql) oledbcommand comm = new oledbcommand(); comm.commandtext = sql; comm.commandtype = commandtype.text; comm.connection = conn; int x = 0; try x = comm.executenonquery(); catch(oledbexception e) x = 0; int n = e.message.indexof(!)+1; string msg = ; if (n = 0) if (e.message.indexof(重复键) -1) msg = 提示:您添加或者修改的数据中包含已经存在的数据,表单中带(*)的为不能重复的项。; else msg = e.message.substring(0, n); messagebox.show(msg, 数据更新失败, messageboxbuttons.ok, messageboxicon.error); /messagebox.show(e.message, 数据更新失败, messageboxbuttons.ok, messageboxicon.error); /console.writeline(e.message); connclose(); return x; 数据查询/查询数据 public dataset select(string sql) oledbcommand comm = new oledbcommand(); oledbdataadapter da = new oledbdataada
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 先进泵站安全制度培训课件
- 创文标准培训课件
- 第14课 唐诗五首 野望 公开课一等奖创新教学设计-【课堂无忧】新课标同步核心素养课堂
- 《搭船的鸟》 说课稿
- 【大单元】二上第七单元 20《雾在哪里》 +公开课一等奖创新教学设计
- “环境描写”写作技巧48招法(讲义)
- 内河水运船员安全培训课件
- 聚合物药物递送系统-洞察及研究
- 兄弟连益智器具课件
- 化压力为动力课件
- 《会计基础工作规范》课件
- 公证与婚姻家庭事务
- 产业园区运营模式(课件)
- 自动化设备机械加工件来料检验标准
- 水管风管沿程阻力计算书+局部阻力软件
- 软件工程导论课件(第六版)(张海潘编著)(1-13章)
- 全成本管理探索与实践
- 电烙铁焊接技术培训
- GB/T 40529-2021船舶与海洋技术起货绞车
- GA 392-2009警服雨衣
- 商务礼仪情景剧剧本范文(通用5篇)
评论
0/150
提交评论