“基于C#的图书馆管理信息系统”实训项目的设计与实现
2014-08-07郑林芳
收稿日期:2014-04-10
作者简介:郑林芳(1978-),广东省财政职业技术学校讲师,硕士。研究方向:计算机应用。(广东广州/510445)摘要:实训周是本校每学期的固有教学安排,对于中职计算机专业的学生来说,在实训周把所学知识融合,开发设计出管理信息系统是知识应用与能力培养的有效途径之一。本文从实训项目调研、实训项目开发设计、实训项目验收的“三段”出发,阐述了基于C#的图书馆管理信息系统的设计与实现。
关键词:中职;计算机专业;C#图书管理信息系统;实训项目
中图分类号:G712文献标识码:A文章编号:1005-1422(2014)05-0120-03一、引言
实训周是我校每学期固有的教学安排,实训在中职生的学习生活中占有极其重要的地位。只有通过实训,中职学生才能把学到的专业知识和技能加以融合应用,为以后的实习工作生活打定坚实的基础。计算机专业的学生第三学期开设了《C#程序设计》和《数据库》这两门专业课程,把这两门课程知识点融合的图书管理系统的设计与实现将是本学期实训周的实训内容。
本周实训即课程设计将采用“三段”式教学方法,即本周实训采用“实训项目调研、实训项目开发设计、实训项目验收”的三段式教学方法。本周实训将重点突出学生的主体地位,以培养学生发现问题、分析问题、解决问题的能力以及创新思维与技术综合应用的能力,使学生能够自己去探究、自己去发现和自己去解决问题,以致在学到知识的同时其能力也有所提高,而成为学习的真正主人。
二、实训项目调研
教师在图书管理实际使用的基础上,给出图书馆管理系统项目的总体大概的需求,即要求实现基本的图书借还功能。学生根据自己的调研,对需求进行可行性分析,并确定自己的开发目标,制定开发计划。在实训周项目上,学生确定的开发目标可以不局限于给定的项目需求,以此充分调动学生的创新思维,培养其创新能力。
三、实训项目开发设计
学生按照开发计划独立完成项目的开发。整个开发过程中,以学生自主开发为主,教师为辅。教师的作用仅为答疑、开发过程监控以及对共性问题进行总结与归纳。在此过程中,学生的分析问题、解决问题的能力将得到有效的锻炼。
1.图书馆管理信息系统主要功能
图书管理涉及图书信息、读者信息、图书借阅信息、系统用户信息等多种数据管理。不同的用户对管理信息系统具有不同的操作权限,本系统设计了图书馆管理人员、图书馆工作人员、借阅者三种角色,图书馆管理人员具有用户身份管理、图书管理、读者管理的权限;图书馆工作人员具有图书的借、还权限;而借阅者拥有书目查询和借阅情况查询的功能。
2.图书馆管理信息系统的具体实现
(1)数据库设计。图书馆管理信息系统是典型的管理信息系统(ManagementInformationSystem,MIS),在系统后台要建立和维护数据库,作为中小型的MIS,根据成本及需求,本实训项目采用了SQLServer数据库。在局部实体关系(ER)模式中可以得出:一个借阅者只能具有一种身份,而一种身份可以被多个借阅者所具有;一本图书只能属于一种图书类别,而一种图书类别可以包含多本图书;一个用户可以借阅多本不同的书,而一本图书也可以被不同的用户所借阅。在全局实体关系模式中把局部ER模式进行综合,最后再对全局ER进行优化,得到数据库的概念设计,根据其概念设计,得到数据库的逻辑设计,本系统数据库包含以下数据表:
①图书信息表(tb_book),包括图书编号、图书名称、作者、出版社、出版日期、价格、数量、类型、备注等字段。
②借出图书信息表(tb_BookOut),包括借出图书编号、图书编号、借书证编号、伸出日期等字段。
③借阅者信息表(tb_Person),包括借书证编号、姓名、性别、电话、身份证、密码、罚款、身份、备注等字段。
④身份信息表(tb_Identity),包括身份、最长借阅时间、最大借阅数量等字段。
⑤图书类别信息表(tb_Type),包括类别编号、类别、类别描述等字段。
数据库包含表与表之间的关系,根据之前的ER模式来确定,比如图书信息表中“类型”来源于图书类别信息表中现有的类型;借出图书信息表中“图书编号”来源于图书信息表中现有的图书编号;“借书证编号”来源于借阅者信息表中现有的借书证编号;借阅者信息表中“身份”来源于身份信息表中现有的身份。根据业务逻辑合理定义表与表之间的关联,确保数据的一致和完整性。
(2)程序功能模块设计。根据实训项目要实现的基本功能,主要可以归纳为以下几个部分:公共类设计;登录;图书馆管理人员的用户管理、图书管理和书目管理;图书馆工作人员的借书、还书和所有用户的查询等功能。
①公共类设计。为了节省系统资源,实现代码重用,在系统中以公共类方式来组织和封装一些常用的方法和事件,比如数据库的连接和SQL语句的执行。本系统中定义了公共类dataSQL,其封装了数据连接dataconn、执行SQL语句得到数据集getDataSet和执行SQL语句sqlExec的方法。执行相应的SQL语句返回相应数据集的getDataSet方法的部分代码如下:
SqlCommandcmd=newSqlCommand(sSQL,conn);
conn.Open();
intn=cmd.ExecuteNonQuery();
SqlDataAdapterda=newSqlDataAdapter(sSQL,conn);
DataSetds=newDataSet();
da.Fill(ds,"结果集别名");
returnds;
②登录。系统登录模块主要用于对进入系统的用户进行安全检查和权限分配,以防止非法用户的登录和使用。用户输入账号、密码和用户类别进入相应的系统用户界面
③图书馆管理人员的用户管理、图书管理和书目管理。图书馆管理人员对用户的管理包括添加、删除、修改和查询用户信息;同样对图书和书目的管理包括添加、删除、修改和查询功能。其设计核心即是对数据库执行SQL语句,对数据库进行增、删、改、查询操作。添加用户的部分代码如下:
strSql="insertintotb_person(借书证号,姓名,性别,电话,密码,身份)values";
strSql+="各字段值";
dataSQLdata=newdataSQL();
data.dataconn();
if(data.sqlExec(strSql))
MessageBox.Show("用户添加成功");
else
MessageBox.Show("用户添加失败");
·实习实训·“基于C#的图书馆管理信息系统”实训项目的设计与实现④借书。借书功能是图书馆信息系统的主要功能之一,图书馆工作人员在借书操作时,只要读入借书者的借书证号,就能显示借阅者信息和已借图书信息;工作人员只要输入图书编号,点击“借出”系统自动判定用户是否能借阅此书,如果没有超出数量或者没有借阅相同的书,则借阅成功,否则失败。
在借书功能中程序实现的过程如下:根据图书编号和借书证号查询“借出图书信息表”判定该借阅者是否借阅相同的图书;如果该借阅者没有借阅相同的图书,则查询“图书信息表”得到该书的库存;如果有库存,则借阅成绩,同时更新该书的库存数量。更新图书的库存数量部分代码如下:
strSql="updatetb_bookset图书的库存数量=图书的库存数量-1wherebID=图书编号";
data.dataconn();
data.sqlExec(strSql);
⑤还书。同样还书功能也是图书馆信息系统的主要功能之一,图书馆工作人员在还书操作时,只要读入借书者的借书证号,就能显示借阅者信息和已借图书信息;工作人员只要选定要归还的图书,点击“还书”系统将自动判定用户借阅此书是否超期,如果超期,更新该借阅者的罚款信息;归还成功,更新该书的库存数量。还书功能涉及到多表联合的查询,还书功能的部分代码如下:
strSql="deletefromtb_bookoutwhereBid="图书编号”;
data.dataconn();
if(data.sqlExec(strSql))
{MessageBox.Show("还书成功");
strSqlkc="updatetb_bookset图书库存数目=图书库存数目+1whereBid="图书编号";
dataSQLdatakc=newdataSQL();
datakc.dataconn();
datakc.sqlExec(strSqlkc);
}
else
MessageBox.Show("还书失败");
⑥模糊查询。管理系统的每种身份用户都能对图书和借阅进行查询。在图书查询界面上,可通过图书编号、图书名和作者等条件进行模糊查询所要结果;在借阅查询上可通过用户的借书证号进行查询。图书查询的部分代码如下:
strSql="select*fromtb_bookwhereBidlike'%图书编号%'andBnamelike'%图书名%'andBwriterlike'%作者%'";
data.dataconn();
ds=data.getDataSet(strSql);
if(ds!=null)
dataGridView.DataSource=ds.Tables[0];//显示查询结果
else
MessageBox.Show("查无记录");
四、实训项目验收
通过实训周的努力,学生完成了实训项目的设计与实现。学生准备好项目实训报告和项目程序,在班级里进行公开项目验收和总结报告。教师和学生一起对完成的项目进行验收与评价,按照相应的评分标准和分数比例给出相应成绩。对于优秀作品,教师除了在班级里进行展示与点评外,学生将进行项目经验分享。项目验收需学生提交开发的项目和相关的报告资料。
五、总结
本文从实训项目调研、实训项目开发设计和实训项目验收的“三段”式教学手段出发,以图书馆管理信息系统的开发和设计为例,重点介绍了实验项目的设计和实现,详细阐述了项目的各种功能模块的实现,通过实训周的实训,培养学生发现问题、分析问题、解决问题的能力,达到实训项目的目的。
参考文献:
[1]谢书良.C#任务导引教程[M].北京:清华大学出版社,2012.
[2]蒙祖强.C#程序设计教程[M].北京:清华大学出版社,2010.
[3]李娟.基于项目开发的C#程序设计[M].北京:北京大学出版社,2012.
责任编辑何丽华