在线图书管理系.doc_第1页
在线图书管理系.doc_第2页
在线图书管理系.doc_第3页
在线图书管理系.doc_第4页
在线图书管理系.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

web课程设计 题目:在线图书管理系统 专 业:计算机科学与基础 班 级:1130502 姓 名:肖书刚 学 号:201130050234 指导老师:李丽华 完成时间:2013.6.19 在线图书管理系一:实验目的 主要还是检验自己是否可以将学到知识与实际操作相结合,这样不仅可以考验自己的动手能力而且还能增强自己的思维能力,让自己又一步得到提升。课程设计目标 课程设计总的目标是衡量学生是否取得学习效果,培养学生具有专业网站初步的规划、设计、制作能力。具体表现在网站内容、功能、安全等方面合理策划和规划;培养具有主页和二级页面的创意、设计等方面的技术处理能力和具有强大的动态效果制作能力。培养学生具有基于后台数据库的编程技术,实现客户服务器端交互式动态网页的制作能力,掌握实际网页设计与制作开发流程和开发方法。二:实验内容 : 利用自己在课堂内外所学的知识,用Visual Studio 2008处理数据库的功能,实现对图书馆信息的管理。主要功能为管理有关用户、管理员、书籍和借阅的信息等。本系统的结构分为用户信息管理模块、书籍信息管理模块、借阅信息管理模块、管理者管理信息模块和查询处理模块。图书馆管理系统框图如图所示成功进入图书馆管理系统管理员用户查询图书借阅图书图书管理查询图书增加图书修改图书删除图书登录失败E-R模型设计 实体列表实 体描 述用 户所有借阅者,查阅者,以及系统管理员,由用户ID标识图 书图书馆所有图书,由图书ID标识借 阅图书ID、借阅ID、借书日期、借阅证号等属性,由借阅ID标识系统的E-R模型该图书管理系统的E-R模型,如图所示用户图书借阅图书管理管理员UIDUNameUPwdUBookIDBookIDBookNameBookTypeBookAuthorBookPriceBookPicBookContentBookIssueIssIDBookIDIssBookIDIssDateTimemN1m 系统的E-R模型数据库的设计1. 创建数据库 (1)在服务器资源管理器中的任一节点右击。(2)执行快捷菜单中的“新建数据库”命令,并在打开的“创建数据库”对话框中输入数据库名BookManage,其他可采用默认值。 (3)单击“确定”按钮,则新建的数据库就会出现在服务器上。2创建数据表创建数据库后,为BookManage数据库添加数据表,步骤如下。 (1)在服务器资源管理器中右击数据库BookManage下的“表”文件夹在弹出的快捷菜单中执行“新建表”命令。 (2)添加表的字段和其他详细资料。各表数据结构如下表所示。表用户信息(userinfo)列 名含 义数据类型说明UID用户IDint自动,主键UName用户名vchar(50)不为空UPwd密码vchar(50)不为空UState用户权限,管理员=1,普通用户=2int不为空,默认值为2UBookID借阅证号bigint可以为空表图书信息(bookinfo)列 名含 义数据类型主 键BookID图书IDbigint自动,主键BookName图书名称Varchar(50)不为空BookType类别Varchar(100)不为空BookAuthor作者Varchar(100)不为空BookPrice价格smallmoney不为空BookPic封面Varchar(200)允许为空BookContent内容简介text不为空BookIssue图书制定访问码Varchar(50)不为空表借阅信息(issueinfo)列 名含 义数据类型说明IssID借阅IDbigint自动,主键BookID图书IDbigint外键IssBookID借阅证号bigint不为空IssDateTime借书日期datetime不为空 数据库中表的关系 在数据库中新建BookManage数据库的数据库关系图如图所示图 数据库关系图界面设计 1用户登录界面 本系统的用户非为普通用户和管理用户,管理用户具有系统提供的所有权限,普通用户可以查询图书、借阅图书。代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace BookManage public partial class FrmMain : Form public static DialogResult result; public FrmMain() InitializeComponent(); /查询子窗体是否存在 public bool checkchildfrm(string childfrmname) foreach (Form childFrm in this.MdiChildren) if (childFrm.Name = childfrmname) if(childFrm.WindowState =FormWindowState.Minimized) childFrm.WindowState = FormWindowState.Normal; childFrm.Activate(); return true; return false;/用户登录菜单的事件处理private void 用户登录ToolStripMenuItem_Click(object sender, EventArgs e) /检测该窗口是否处于打开状态 if (this.checkchildfrm(frmLogin) = true) return; /窗口已经打开,返回 frmLogin user = new frmLogin();/实例化登录窗体 user.ShowDialog(); /登录窗体以模式对话框的方式的打开 /判断是否登录成功,登录成功则启用相应的菜单和按钮 if (result = DialogResult.OK) this.tsbtnAddBook.Enabled = true; this.mnuUpdateBook.Enabled = true; this.mnuAddBook.Enabled = true; /登录按钮事件处理 private void tsbtnLogin_Click(object sender, EventArgs e) if (this.checkchildfrm(frmLogin) = true) return; frmLogin user = new frmLogin(); user.ShowDialog(); if (result = DialogResult.OK) this.tsbtnAddBook.Enabled = true; this.mnuUpdateBook.Enabled = true; this.mnuAddBook.Enabled = true; /图书查询按钮Click事件处理 private void tsbtnSearch_Click(object sender, EventArgs e) if (this.checkchildfrm(frmSearchBook) = true) return; frmSearchBook book = new frmSearchBook(); book.MdiParent = this; /设置为当前窗体的子窗体 book.Show(); /图书检索菜单Click事件处理private void 图书检索ToolStripMenuItem_Click(object sender, EventArgs e) if (this.checkchildfrm(frmSearchBook) = true) return; frmSearchBook book = new frmSearchBook(); book.MdiParent = this; book.Show(); /图书入库菜单Click事件处理private void 图书入库ToolStripMenuItem1_Click(object sender, EventArgs e) if (this.checkchildfrm(frmAddBook) = true) return; frmAddBook objbook = new frmAddBook(); objbook.MdiParent= this; objbook.Show(); /图书入库按钮Click事件处理 private void tsbtnAddBook_Click(object sender, EventArgs e) if (this.checkchildfrm(frmUpdateBook) = true) return; frmUpdateBook objbook = new frmUpdateBook(); objbook.MdiParent = this; objbook.Show(); /图书更新菜单Click事件处理 private void 图书修改ToolStripMenuItem_Click(object sender, EventArgs e) if (this.checkchildfrm(frmUpdateBook) = true) return; frmUpdateBook objbook = new frmUpdateBook(); objbook.MdiParent= this; objbook.Show(); /图书借阅按钮事件处理 private void tsbtnIssue_Click(object sender, EventArgs e) if (this.checkchildfrm(frmIssueBook) = true) return; frmIssueBook issuebook = new frmIssueBook(); issuebook.MdiParent= this; issuebook.Show(); private void tsbtnExit_Click(object sender, EventArgs e) Application.Exit(); private void 退出ToolStripMenuItem1_Click(object sender, EventArgs e) Application.Exit(); private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) Application.Exit(); /窗体载入时事件处理 private void FrmMain_Load(object sender, EventArgs e) this.tsbtnAddBook.Enabled = false; this.mnuAddBook.Enabled = false; this.mnuUpdateBook.Enabled = false;2.图书入库界面管理员有权限将图书添加到数据库中,图书入库界面的设计如图所示图 图书入库界面在窗体的左边的分组框中添加标签和文本框,用来接收管理员输入的图书信息,以便保存到数据库中。在右边的分组框中添加DataGridView控件,可以显示数据库中的图书信息,新添加的图书信息也可以显示出来。3. 图书查询界面图书查询提供组合查询的方式,界面窗体名称为“frmSearchBook.cs”,图书类别组合框中的项是从数据库中获取的,在设计时不需要添加内容。在条件组合框中输入“or”和“and”,来动态实现条件组合。在窗体中添加2个分组框(GroupBox)控件:搜索条件、搜索结果,各种控件的添加如图所示图 图书查询界面在右边的分组框中添加DataGridView控件,单击右上角的黑色三角,选择“在父容器中停靠”选项。代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace BookManage public partial class frmSearchBook : Form public frmSearchBook() InitializeComponent(); private void btnSerch_Click(object sender, EventArgs e) string cbo1 = this.cboOR.Text; string cbo2 = this.cboAnd.Text; string booktype = cboType.Text; string bookname = this.txtName.Text; string bookcontent = this.txtContent.Text; /定义sql语句 string sql = select * from bookInfo where BookType= + booktype + + cbo1 + BookName like % + bookname + % + cbo2 + BookContent like % + bookcontent + %; /调用DataAccess.GetDataSetBySql方法 DataSet Myds = DataAccess.GetDataSetBySql(sql); DataTable table = Myds.Tables0; /指定数据源 this.dgvSearchBook.DataSource = table; private void frmSearchBook_Load(object sender, EventArgs e) /图书类别组合框初始化 DataSet Myds = DataAccess.GetDataSetBySql(select distinct BookType from bookInfo); DataTable table = Myds.Tables0; for (int i = 0; i 0) MessageBox.Show(此书有借阅,不能删除); return; else string sql = delete from bookInfo where BookID= + this.txtbID.Text + ; if (DataAccess.UpdateDataTable(sql) MessageBox.Show(删除成功, 提示, MessageBoxButtons.OK); else MessageBox.Show(删除失败, 提示, MessageBoxButtons.OK); this.txtAuthor.Text = ; this.txtbContent.Text = ; this.txtbID.Text = ; this.txtbName.Text = ; this.txtbPic.Text = ; this.txtbPrice.Text = ; this.txtbType.Text = ; private void btnClose_Click(object sender, EventArgs e) this.Close(); 数据库的连接(1)定义数据库连接字符串,代码如下:Private static string ConnectString = Data Source= (local)sqlexpress;DataBase=BookManage.mdf;(2)创建Connection对象,代码如下:SqlConnection con = new SqlConnection(ConnectString);(3)打开连接,代码如下:con.Open();(4)关闭连接,代码如下:con.Close(); 操作数据库中的数据using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;namespace BookManage class DataAccess private static string ConnectString = Data Source =A20SQLEXPRESS;AttachDbFilename=F:BookManagedataBookManage.mdf;Integrated Security=False;/数据库连接字符串 / / 根据表名获取数据集的表 / / / public static DataTable GetDataSetByTableName(string table) using (SqlConnection con = new SqlConnection(ConnectString)/创建数据库连接对象 string sql = select * from + table + ;/查询sql语句try SqlDataAdapter adapter = new SqlDataAdapter(sql, con);/创建适配器对象 DataSet ds = new DataSet();/创建数据集对象 adapter.Fill(ds, table);/填充数据集 return ds.Tables0;/返回数据表 catch (SqlException ex) throw new Exception(ex.Message); ; public static DataSet GetDataSetBySql(string sql) using (SqlConnection con = new SqlConnection(ConnectString)/创建数据库连接对象 SqlDataAdapter adapter = new SqlDataAdapter(sql,con);/创建适配器对象 DataSet ds = new DataSet();/创建数据集对象 try adapter.Fill(ds);/填充数据集 return ds;/返回数据集 catch (SqlException ex) throw new Exception(ex.Message) public static SqlDataReader GetDataReaderByID(int id) using (SqlConnection con = new SqlConnection(ConnectString) string sql = select * from bookinfo where bookid= + id;/sql语句 try SqlCommand comm = new SqlCommand(sql, con);/创建Command对象 con.Open();/打开连接 SqlDataReader reader = comm.ExecuteReader();/创建DataReader对象 reader.Read();/读取数据 return reader;/返回DataReader catch (SqlException ex) throw new Exception(ex.Message); public static bool UpdateDataTable(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论