版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京信息工程大学课程设计报告课程名称数据库系统基础设计题目图书管理系统姓名学号专业班级2011级计科2班2013年12月26号1引言TOC\o"1-2"1.1问题的提出图书管理系统是一个学校不可缺少的部分,它的内容对于学校的管理者和读者来说都至关重要,直接关系到图书的借用率,所以开发图书管理系统能够为管理员和读者提供充足的信息和快捷的查询手段。编写程序系统主要实现图书馆的增加图书、查询图书、删除图书、借阅图书、还书;增加借书证、查询借书证、删除借书证、借书信息、借书限制等智能化管理过程。图书管理者只需略懂电脑知识就可以简易的操作该图书管理系统。1.2任务与分析本课题主要的目的是:1.强化和巩固理论基础,掌握数据库编程的基本技巧;2.要求用C#语言或其它语言及相应开发环境,实现一个小型完整程序的设计与开发;系统概述:1.图书管理:每种图书都有书名、书号(ISBN)、一名或多名作者(译者)、出版社、定价和内容简介。图书信息登入、查询和维护。2.读者管理,包括增加读者、修改读者信息,查询借书证持有人,删除读者信息等功能4.借还图书、资料的登记、超期处理等。5.图书、资料查询,借、还图书和资料情况查询。6.图书、资料借阅情况的统计分析,以此作为图书馆图书、资料订够的依据之一。设计要求:1.进行需求分析,编写数据字典。2.设计E-R图。3.实现新进图书的数据录入。4.实现对所有购进图书的分类查询和分类统计。5.能够按图书编号、图书名等分类查询现有图书的数量。6.记录借阅者的个人资料和所借图书的书名、书号数据等。2程序的主要功能2.1添加功能添加一本图书的基本信息,包括书名、书号、名作者(译者)、出版社和图书简介。添加读者的相关信息添加图书借阅的基本信息,包括书号,借书证号,借书日期,应还书日期。2.2删除功能删除一本图书的基本信息,删除读者的基本信息,删除图书借阅基本信息。删除读者相关信息2.3显示功能显示所有图书信息,包括图书代码,图书名称,作者,出版社和简介。显示所有借阅信息,包括读者号,图书号,借书日期,应还书日期。2.4查找功能图书信息查找,可以更具图书代码,图书名称,作者,出版日期和出版社进行查找。读者信息查找,可更具读者姓名,读者编号,年龄,性别和所在系进行查找。借阅信息查询,可更具图书编号和读者编号进行查询。2.5修改功能对图书和读者的信息进行修改。2.6备份和还原功能对数据库数据进行备份和还原,保护数据库的安全3系统的总体结构3.1模块描述图书馆信息管理系统可以分为四个模块,“综合查询模块”,“读者登陆模块”,“借还图书模块”,和“系统维护模块’。
为了区分不同的用户,我们设置管理员和普通用户的登录,分别对管理员和普通用户进行不同的用户权限设置,对他们的所能进行的操作进行不同的限制图书馆信息管理系统的功能模块如下图(2-1)所示
备份与还原管理员信息维护图书信息维护读者信息维护借阅查询修改密码密码修改还书管理借书管理读者登录管理员登录多条件查询图书信息查询系统维护借还管理综合查询图书管理系统备份与还原管理员信息维护图书信息维护读者信息维护借阅查询修改密码密码修改还书管理借书管理读者登录管理员登录多条件查询图书信息查询系统维护借还管理综合查询图书管理系统图2-12.2系统总体流程图用户进入图书馆管理系统,成功登陆后,首先进行权限验证,对于普通管理员可以进行借书处理,还书处理,逾期处理,。读者可以进行图书信息查询,修改自己的密码,查阅自己的借阅记录,图书续借,罚金信息查询。系统管理员可以进行图书,读者信息维护,系统维护等操作开始开始退出安全管理管理员信息密码修改用户信息管理图书信息管理密码修改借阅查询图书查询管理员登录普通用户登录判断登录退出安全管理管理员信息密码修改用户信息管理图书信息管理密码修改借阅查询图书查询管理员登录普通用户登录判断登录 第3章数据库设计3.1数据库需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入,收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后而后具体设计打下基础。根据分析,可以列出以下数据项和数据结构:图书信息,包括的数据项有:ISBN号,索书号,书名,作者,价格,出版日期,出版社,管理员信息:管理员号,姓名,电话,身份证号,密码,权限。借阅信息:,读者账号,借出时间,应还时间。罚金信息:读者账号,金额。读者信息:读者账号,姓名,性别,身份证号,系别,密码。3.2数据库物理结构设计得到上面的数据项和数据结构后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。以下分别是读者E-R图,图书E-R图,借阅信息E-R图,出版社E-R图,书库E-R图读者E-R图读者读者性别读者证号姓名押金身份证号出生日期登录密码身份图书E-R图图书图书价格ISBN编号图书类型书名作者出版时间图书译者出版社借阅信息E-R图借阅信息借阅信息读者证号借出时间归还时间借阅状态图书条形码类别出版日期价格出版社图书名ISBN作者身份证生日密码编号姓名性别类别类别出版日期价格出版社图书名ISBN作者身份证生日密码编号姓名性别类别译者译者管理图书管理图书管理员管理员管理管理借阅借阅图书借阅读者图书借阅读者出生日期姓名出生日期姓名编号押金性别编号押金性别读者证号密码身份证号读者证号密码身份证号借阅状态归还时间借出时间图书借阅状态归还时间借出时间图书ISBN职业职业3.3数据库逻辑结构设计在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。图书管理系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。表(3-2)图书数据表字段名类型长度是否为空主键外键说明ISBNvarchar20否是否ISBN号datevarchar20否否否booknamevarchar40否否否书名writervarchar20否否否作者Pricenumeric否否否单价Publishervarchar40是否是(出版社)出版社publishdatedatetime4是否否出版日期表(3-6)读者数据表字段名类型长度是否为空主键外键说明ISBNvarchar20否是否读者账号namevarchar8否否否姓名sexchar2否否否性别identityCardchar18否否否身份证号telvarchar20是否否电话keepmoneymoney10是否否押金zyvarchar20是否否职业datevarchar20是否否出生日期表(3-3)图书借阅数据表字段名类型长度是否为空主键外键说明bookisbnchar20否是否图书编号readerisbnchar20否否示(读者)读者账号borrowdatedatetime否是否借出时间shouldbackdatedatetime否否否应还时间bookpricemoney4否否否价格booknamevatchar20否否否书名表(3-8)用户数据表字段名类型长度是否为空主键外键说明idchar4否是否管理员编号namevarchar8否否否姓名telvarchar11否否否电话adminchar1否否否用户类别passwordvarchar20否否否密码sexchar2否否否性别identityCardchar18否否否身份证号ageint2否否否年龄第4章详细设计4.1用户界面设计当今软件界的所有软件无不是可视化的用户界面,它的好处不外乎它有美观、直接、操作者易懂和操作方便等好处。本系统设计思想:“为用户设计,而不是设计者”本系统设计原则:界面美观、操作方便并能高效率地完成工作。界面根据用户需求设计。界面能引导用户操作的功能,并能提供一些帮助功能。4.1.1登录界面系统登录界面截图如下:在用户登录界面,我们设置一个用户类别的选项,来判断登录系统的用户身份,不同的身份具有不同的权限,以此来保障系统的安全代码如下:stringstr="server=Lenovo-Y470;uid=sa;pwd=123;database=db_library;";SqlConnectioncon=newSqlConnection(str);stringsql="selectname,password,adminfromtb_userswherename='"+textBox1.Text+"'andpassword='"+textBox2.Text+"'andadmin='"+comboBox1.Text+"'";SqlCommandcmd=newSqlCommand();//打开数据库连接cmd.CommandText=sql;cmd.Connection=con;con.Open();SqlDataReaderrd=cmd.ExecuteReader();if(rd.Read()){if(comboBox1.Text=="1"){//MessageBox.Show("正在登陆");a=textBox2.Text;MainFormmForm=newMainForm();mForm.Show();//显示管理员登录界面con.Close();this.Visible=false;}//if(radioButton1.Text=="0")else{a=textBox2.Text;ViceMainFormmForm=newViceMainForm();mForm.Show();//显示普通用户的登录界面con.Close();this.Visible=false;}}else{MessageBox.Show("请输入正确的账户和密码");}}privatevoidbutton2_Click(objectsender,EventArgse){this.Close();//关闭窗口}4.1.2主界面显示管理员主界面截图如下代码如下namespaceWindowsFormsApplication1{publicpartialclassMainForm:Form{publicMainForm(){InitializeComponent();}privatevoid图书数据维护ToolStripMenuItem_Click(objectsender,EventArgse){FmDataTSTS=newFmDataTS();TS.Show();}privatevoid读者数据维护ToolStripMenuItem_Click(objectsender,EventArgse){FmDataDZDZ=newFmDataDZ();DZ.Show();}privatevoid用户数据维护ToolStripMenuItem_Click(objectsender,EventArgse){FmDataYHYH=newFmDataYH();YH.Show();}privatevoid用户密码修改ToolStripMenuItem_Click(objectsender,EventArgse){FmDataMMMM=newFmDataMM();MM.Show();}privatevoid图书借阅ToolStripMenuItem_Click(objectsender,EventArgse){FmJYJY=newFmJY();JY.Show();}privatevoid图书搜索ToolStripMenuItem_Click(objectsender,EventArgse){FmCXCX=newFmCX();CX.Show();}privatevoid图书归还ToolStripMenuItem_Click(objectsender,EventArgse){FmGHGH=newFmGH();GH.Show();}privatevoid数据库还原ToolStripMenuItem_Click(objectsender,EventArgse){;SqlConnectionconn=newSqlConnection("Server=Lenovo-Y470;Database=master;uid=sa;pwd=123;");SqlConnectionc=newSqlConnection("Server=Lenovo-Y470.;Database=master;uid=sa;pwd=123;Trusted_Connection=False");c.Open();//c.Close();SqlCommandcmdRT=newSqlCommand();cmdRT.CommandType=CommandType.Text;cmdRT.Connection=c;cmdRT.CommandText=@"usemasterrestoredatabasetb_libraryfromdisk='C:/ba.bak'withreplace";try{cmdRT.ExecuteNonQuery();MessageBox.Show("Restoresuccessed.");}catch(Exceptionex){MessageBox.Show(ex.Message);}finally{c.Close();}}privatevoid数据库备份oolStripMenuItem_Click(objectsender,EventArgse){SqlConnectionconn=newSqlConnection("Server=Lenovo-Y470;Database=master;uid=sa;pwd=123;");SqlCommandcmdBK=newSqlCommand();cmdBK.CommandType=CommandType.Text;cmdBK.Connection=conn;cmdBK.CommandText=@"backupdatabasedb_librarytodisk='C:/ba.bak'withinit";try{conn.Open();cmdBK.ExecuteNonQuery();MessageBox.Show("Backupsuccessed.");MessageBox.Show("已备份于c盘根目录下.");conn.Close();}catch(Exceptionex){MessageBox.Show(ex.Message);}finally{conn.Close();conn.Dispose();}}privatevoid退出ToolStripMenuItem1_Click(objectsender,EventArgse){this.Close();}}}4.1.3图书数据维护模块界面如下代码如下:namespaceWindowsFormsApplication1{publicpartialclassFmDataTS:Form{publicFmDataTS(){InitializeComponent();}privatevoidgroupBox1_Enter(objectsender,EventArgse){}privatevoidTxtTSBH_TextChanged(objectsender,EventArgse){}privatevoidFormDataTS_Load(objectsender,EventArgse){try{SqlConnectioncon=DBConnect.con();Stringsql="SELECT*FROMtb_bookInfo";SqlDataAdapterAdpt=newSqlDataAdapter(sql,con);DataSetds=newDataSet();Adpt.Fill(ds,"tb_bookInfo");dataGridView1.DataSource=ds.Tables[0].DefaultView;con.Close();}catch(Exceptioncw){MessageBox.Show(cw.Message);}}publicvoidbinding(){try{TxtTSBH.Text=dataGridView1.SelectedCells[0].Value.ToString();TxtTSLB.Text=dataGridView1.SelectedCells[1].Value.ToString();TxtTSMC.Text=dataGridView1.SelectedCells[2].Value.ToString();TxtTSZZ.Text=dataGridView1.SelectedCells[3].Value.ToString();//TxtTSYZ.Text=dataGridView1.SelectedCells[4].Value.ToString();TxtTSCBS.Text=dataGridView1.SelectedCells[4].Value.ToString();TxtCBRQ.Text=dataGridView1.SelectedCells[5].Value.ToString();TxtTSJG.Text=dataGridView1.SelectedCells[6].Value.ToString();}catch(Exceptioncw){MessageBox.Show(cw.Message);}}privatevoiddataGridView1_CellContentClick(objectsender,DataGridViewCellEventArgse){binding();}privateBooleanCheck(stringTSid){SqlConnectioncon=DBConnect.con();con.Open();Stringsql="select*fromtb_bookInfowhereISBN='"+TSid+"'";SqlCommandcmd=newSqlCommand(sql,con);SqlDataReaderrd;rd=cmd.ExecuteReader();intx=0;while(rd.Read())x++;con.Close();if(x>0){returntrue;}else{returnfalse;}}privatevoidBtnAdd_Click(objectsender,EventArgse){if(TxtTSBH.Text!="")if(!Check(TxtTSBH.Text)){SqlConnectioncon=DBConnect.con();con.Open();SqlCommandcmd=newSqlCommand();cmd.CommandText="INSERTINTOtb_bookInfoVALUES('"+TxtTSBH.Text+"','"+TxtTSLB.Text+"','"+TxtTSMC.Text+"','"+TxtTSZZ.Text+"','"+TxtTSCBS.Text+"','"+TxtCBRQ.Text+"','"+TxtTSJG.Text+"')";cmd.Connection=con;cmd.ExecuteNonQuery();MessageBox.Show("输入数据成功!");Stringsql="SELECT*FROMtb_bookInfo";SqlDataAdapterAdpt=newSqlDataAdapter(sql,con);DataSetds=newDataSet();Adpt.Fill(ds,"tb_bookInfo");dataGridView1.DataSource=ds.Tables[0].DefaultView;con.Close();}else{MessageBox.Show("图书编号不能重复");}else{MessageBox.Show("图书编号不能为空");}}privatevoidBtnUpdate_Click(objectsender,EventArgse){if(MessageBox.Show("你确定要修改图书数据吗!","消息框",MessageBoxButtons.OKCancel,MessageBoxIcon.Information)==DialogResult.OK){if(TxtTSBH.Text!="")if(Check(TxtTSBH.Text)){try{SqlConnectioncon=DBConnect.con();con.Open();SqlCommandcmd=newSqlCommand();cmd.CommandText="UPDATEtb_bookInfoSETtypeId='"+TxtTSLB.Text+"',bookname='"+TxtTSMC.Text+"',writer='"+TxtTSZZ.Text+"',publisher='"+TxtTSCBS.Text+"',date='"+TxtCBRQ.Text+"',price='"+TxtTSJG.Text+"'whereISBN='"+TxtTSBH.Text+"'";cmd.Connection=con;cmd.ExecuteNonQuery();MessageBox.Show("修改数据成功!");Stringsql="SELECT*FROMtb_bookInfo";SqlDataAdapterAdpt=newSqlDataAdapter(sql,con);DataSetds=newDataSet();Adpt.Fill(ds,"tb_bookInfo");dataGridView1.DataSource=ds.Tables[0].DefaultView;con.Close();}catch(Exceptioncw){MessageBox.Show(cw.Message);}}else{MessageBox.Show("图书编号不存在");}else{MessageBox.Show("图书编号不能为空");}}}privatevoidBtnDelete_Click(objectsender,EventArgse){if(MessageBox.Show("你确定要删除图书数据吗!","消息框",MessageBoxButtons.OKCancel,MessageBoxIcon.Information)==DialogResult.OK){if(TxtTSBH.Text!="")if(Check(TxtTSBH.Text)){try{SqlConnectioncon=DBConnect.con();con.Open();SqlCommandcmd=newSqlCommand();cmd.CommandText="DELETEFROMtb_bookInfoWHEREISBN='"+TxtTSBH.Text+"'";cmd.Connection=con;cmd.ExecuteNonQuery();MessageBox.Show("删除数据成功!");Stringsql="SELECT*FROMtb_bookInfo";SqlDataAdapterAdpt=newSqlDataAdapter(sql,con);DataSetds=newDataSet();Adpt.Fill(ds,"tb_bookInfo");dataGridView1.DataSource=ds.Tables[0].DefaultView;con.Close();}catch(Exceptioncw){MessageBox.Show(cw.Message);}}else{MessageBox.Show("图书编号不存在");}else{MessageBox.Show("图书编号不能为空");}}}4.1.4读者数据维护模块读者数据维护模块截图如下:代码参照图书信息维护代码4.1.5用户管理模块用户管理模块截图如下代码如下参照图书信息维护代码4.1.6密码修改模块在密码修改模块中我们要求用户输入旧密码,验证旧密码是否正确,若正确,则进入新密码设置界面,重复输入两次新密码,若两次新密码输入相同,则设置新密码成功,否则设置新密码失败,以此来确保密码的安全性截图如下关键代码如下:privatevoidbutton1_Click(objectsender,EventArgse){if((Form1.a).Equals(TxtJMM.Text)){FmXMMXMM=newFmXMM();XMM.Show();this.Visible=false;};}//a为静态变量,用来得到文本框内的值privatevoidBrnQR2_Click(objectsender,EventArgse){if(textBox1.Text==textBox1.Text){SqlConnectioncon=DBConnect.con();con.Open();SqlCommandcmd=newSqlCommand();cmd.CommandText="updatetb_userssetpassword='"+textBox1.Text+"'";cmd.Connection=con;cmd.ExecuteNonQuery();MessageBox.Show("密码修改成功");}}4.1.7图书借阅界面图书借阅界面截图如下代码如下namespaceWindowsFormsApplication1{publicpartialclassFmJY:Form{publicFmJY(){InitializeComponent();}privatevoidFmJY_Load(objectsender,EventArgse){try{SqlConnectioncon=DBConnect.con();Stringsql="SELECT*FROMbookborrow6";SqlDataAdapterAdpt=newSqlDataAdapter(sql,con);DataSetds=newDataSet();Adpt.Fill(ds,"bookborrow6");dataGridView1.DataSource=ds.Tables[0].DefaultView;con.Close();}catch(Exceptioncw){MessageBox.Show(cw.Message);}}publicvoidbinding(){try{textBox1.Text=dataGridView1.SelectedCells[0].Value.ToString();textBox2.Text=dataGridView1.SelectedCells[1].Value.ToString();textBox3.Text=dataGridView1.SelectedCells[2].Value.ToString();textBox4.Text=dataGridView1.SelectedCells[3].Value.ToString();//TxtTSYZ.Text=dataGridView1.SelectedCells[4].Value.ToString();textBox5.Text=dataGridView1.SelectedCells[4].Value.ToString();textBox6.Text=dataGridView1.SelectedCells[5].Value.ToString();//TxtTSJG.Text=dataGridView1.SelectedCells[6].Value.ToString();}catch(Exceptioncw){MessageBox.Show(cw.Message);}}privatevoidlabel6_Click(objectsender,EventArgse){}privatevoiddataGridView1_CellContentClick_1(objectsender,DataGridViewCellEventArgse){binding();}privateBooleanCheck(stringtsid){SqlConnectioncon=DBConnect.con();con.Open();Stringsql="select*fromtb_bookInfowhereISBN='"+tsid+"'";SqlCommandcmd=newSqlCommand(sql,con);SqlDataReaderrd;rd=cmd.ExecuteReader();intx=0;while(rd.Read())x++;con.Close();if(x>0){returntrue;}else{returnfalse;}}privatevoidbutton1_Click(objectsender,EventArgse){if(textBox1.Text!="")if(!Check(textBox1.Text)){SqlConnectioncon=DBConnect.con();con.Open();SqlCommandcmd=newSqlCommand();cmd.CommandText="INSERTINTObookborrow6VALUES('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"','"+textBox5.Text+"','"+textBox6.Text+"')";cmd.Connection=con;cmd.ExecuteNonQuery();MessageBox.Show("输入数据成功!");Stringsql="SELECT*FROMbookborrow6";SqlDataAdapterAdpt=newSqlDataAdapter(sql,con);DataSetds=newDataSet();Adpt.Fill(ds,"bookborrow6");dataGridView1.DataSource=ds.Tables[0].DefaultView;con.Close();}else{MessageBox.Show("图书编号不能重复");}else{MessageBox.Show("图书编号不能为空");}}}4.1.8图书归还界面图书归还界面如下4.2.1数据库的备份和还原数据库备份和数据库还原是为了保证数据库的内容安全而设置的代码如下:privatevoid数据库备份ToolStripMenuItem_Click(objectsender,EventArgse){SqlConnectionconn=newSqlConnection("Server=Lenovo-Y470;Database=master;uid=sa;pwd=123;");SqlCommandcmdBK=newSqlCommand();cmdBK.CommandType=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年宁波鄞州区东吴镇人民政府编外人员招聘6人考试模拟卷附答案
- 2025广西贵港市金融投资发展集团有限公司招聘4人考前自测高频考点模拟试题附答案
- 2025安徽皖信人力资源管理有限公司招聘望江某电力外委人员1人(公共基础知识)测试题附答案
- 2026广西财经学院公开招聘教职人员72人笔试备考试题及答案解析
- 2026四川自贡医元健康管理有限责任公司招聘工作人员11人笔试参考题库及答案解析
- 迎新年庆元旦师生活动策划【演示文档课件】
- 资阳市雁江区审计局2026年公开招聘编外专业人员(2人)笔试备考题库及答案解析
- 2026山东省科创集团有限公司权属企业招聘5人笔试参考题库及答案解析
- 2026浙江宁波市北仑区港航管理中心招聘编外人员1人笔试备考题库及答案解析
- 2026中国铁建海洋产业技术研究院招聘28人笔试备考题库及答案解析
- 04S519小型排水构筑物1
- 2023年个税工资表
- 劳动者个人职业健康监护档案
- 2023新青年新机遇新职业发展趋势白皮书-人民数据研究院
- 《两角和与差的正弦、余弦、正切公式》示范公开课教学PPT课件【高中数学人教版】
- 管理学原理教材-大学适用
- 变电站一次侧设备温度在线监测系统设计
- GB/T 6579-2007实验室玻璃仪器热冲击和热冲击强度试验方法
- GB/T 16913.3-1997粉尘物性试验方法第3部分:堆积密度的测定自然堆积法
- GB/T 12621-2008管法兰用垫片应力松弛试验方法
- 重庆大学介绍课件
评论
0/150
提交评论