简单图书管理系统的设计与开发.docx
- 文档编号:7129921
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:44
- 大小:3.07MB
简单图书管理系统的设计与开发.docx
《简单图书管理系统的设计与开发.docx》由会员分享,可在线阅读,更多相关《简单图书管理系统的设计与开发.docx(44页珍藏版)》请在冰豆网上搜索。
简单图书管理系统的设计与开发
武汉理工大学华夏学院
课程设计报告书
课程名称:
JAVA课程设计
题目:
简单图书管理系统的设计与开发
系名:
信息工程系
专业班级:
计算机1112
姓名:
梁海传
学号:
10210411209
指导教师:
刘春燕
2013年9月13日
课程设计任务书
学生姓名:
梁海传专业班级:
计算机1112
指导教师:
刘春燕工作单位:
信息工程系
设计题目:
简单图书管理系统的设计与开发
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1。
学生用户对图书管理系统的要求
(1)借阅图书,续借图书,归还图书
(2)查询学生用户基本资料和借阅图书情况
(3)按各种方式查询图书馆的藏书
2.图书管理员对图书管理系统的要求
(1)图书信息录入,注销陈旧图书;
(2)对新手进行登记或注销
(3)信息查询,可根据不同关键字进行条件查询;
设计报告撰写格式要求:
1、明确课程设计的目的和重要性,认真领会课程设计的题目,读懂课程设计指导书的要求,学会设计的基本方法与步骤,学会如何运用前修知识与收集、归纳相关资料解决具体问题的方法.严格要求自己,要独立思考,按时、独立完成课程设计任务。
2、设计报告:
要求层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段完全相同者一律以抄袭论处。
设计报告正文字数不少于0。
2万字(不包括附录)
时间安排:
消化资料、系统调查 1天
项目原型开发 1天
数据库建模 1天
系统管理1天
用户管理2天
系统功能实现3天
系统打包,验收1天
指导教师签字:
2013年9月1日
系主任签字:
2013年9月1日
1目标
建立学生信息管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平。
帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化.随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现图书信息的管理势在必行。
目前图书管理的借阅工作部分大多数还是手工管理,工作效率很低,并且不能及时了解图书的种类和用户比较需求的图书等,不能更好的适应当前读者的借阅要求.手工管理还存在这许多弊端,由于不可避免的人为因素,造成数据的遗漏、误报。
计算机信息化管理有着储存量大,速度快等许多优点,提供给我们的处理信息及时快捷,因此我们利用计算机提供给我们的信息对读者的借阅过程形成一整套动态的管理能够极大地提高图书管理管理的效率,这也是图书管理的科学化、正规化管理,与世界接轨的重要条件。
2软件开发环境与技术简介
2.1开发工具介绍
MyEclipse,SQL数据库
2.2数据库系统
SQL数据库
2.3硬件环境
Windowxp
2。
4软件环境
(1)操作系统:
WindowsXP
(2)开发工具:
MyEclipse7.0
(3)数据库:
mySQL
3系统需求分析
随着读书及图书数量的不断增加,其管理工作难度也愈来愈大,为了提高效率,减轻劳动强度,采用计算机管理日常借阅工作,就显得由为重要.在计算机飞速发展的今天,将计算机这一信息利器应用于日常管理,已是势必所然,他可以带来意想不到的效益,同时为企业的飞速发展提供了无限潜力。
采用计算机管理信息系统极大的提高了管理人员的工作效率,大大减少了出错率。
鉴于此,我选择了图书管理系统作为本次课程设计的题目.图书管理涉及图书信息、管理员信息、读者信息等多种数据管理。
从管理的角度可将图书分为两类:
图书信息管理、读者数据管理.图书信息管理包括图书征定、查询等操作,读者数据管理包括读者信息管理和个人信息的录入、修改和删除。
系统的主要目的是实现一个图书管理系统.系统有2类用户分别为管理员、学生.管理员经口令认证进人系统后,管理员可完成维护系统的功能,包括管理图书和管理会员.读者会员则完成查询图书、修改个人资料、查询个人借阅信息的功能,工作完成后可以退出系统.
随着图书的日益增多,传统的手工图书管理不仅工作量大,而且容易出现问题。
图书管理设计的内容非常复杂而且繁多,比如拥有图书信息录入管理、用户信息管理、图书借阅管理和归还管理,图书的查询和修改等。
由于系统主要是为方便管理员定制开发的,因此针对图书管理的实际工作而言,经过了反复地论证,最终确定了图书管理系统的设计方案,图书管理系统的主要功能为:
4系统总体设计
4。
1系统功能简介
1。
学生用户对图书管理系统的要求
(1)借阅图书,续借图书,归还图书
(2)查询学生用户基本资料和借阅图书情况
(3)按各种方式查询图书馆的藏书
(4)可以修改学生自己的资料
2.图书管理员对图书管理系统的要求
(1)图书信息录入,注销陈旧图书;
(2)对新手进行登记或注销
(3)信息查询,可根据不同关键字进行条件查询;
(4)可以注册新管理员,查询所有图书和学生资料
4。
2系统功能模块规划
依据需求分析阶段得到的数据流图,在保证系统基本功能要求的前提下,结合系统业务流程确定系统必须具备的所有功能,由此给出图书馆管理系统的系统功能模块图如图4。
0所示:
图4.0
4.3系统数据库设计
admin表是管理员用户记录用户的信息(包括:
管理员id,编号,名字,与密码),id号自动递增如表4。
1
图4.1
book表用于记录书籍的详细信息(包括:
图书id,编号,书名,作者,是否在馆,和借书日期),如表4。
2
图4。
2
tb_user表用于记录学生用户登录的详细信息(包括:
用户名,密码,qq,年龄,性别,联系电话,邮箱和个人描述),如表4.3
图4.3
4.4数据库的连接技术
4。
4。
1前提是MyEclipse已经能正常开发Java工程
4。
4。
2。
安装MySQL
个人使用的是版本是mysql—5.0.22-win32。
zip
4。
4。
3下载JDBC驱动
个人使用的是mysql-connector—java-5.1。
22.zip,所需要的就是解压缩之后其中的mysql—connector—java-5.1。
22—bin。
jar
4.4.4建立数据库与表格
在mysql内新建数据库连接取名wb,再创建表格tb_user
并且要包含如图4。
3的字段
4。
4。
5代码测试
packagecom.softeem.dao;
importjava。
sql。
*;
importjava.util。
ArrayList;
importjava.util.List;
importcom.softeem.model。
User;
importcom。
softeem.model。
Userbook;
publicclassUserDAO{
//注册
publicbooleanadd(Stringusername,Stringupass,Stringsex,intage,
Stringemail,Stringtel,Stringqq,Stringdescr){
booleanflag=false;
//将数据存放到db中去
try{
//加载驱动
Class。
forName(”com.mysql。
jdbc.Driver”);
//建立连接与数据库的连接
Connectionconn=DriverManager.getConnection(
”jdbc:
mysql:
//localhost:
3306/wb”,”root",”123456”);
//准备sql语句,用来实现数据库的执行代码
Stringsql=”insertintotb_user(username,upass,sex,age,email,tel,qq,descr)values(’”+username+”',’"+upass+”',’”+sex+"’,"+age+”,’”
+email+”','"+tel+"','”+qq+"’,’”+descr+"’)”;
//准备对象
Statementst=conn。
createStatement();
//执行
flag=!
st。
execute(sql);
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione){
e。
printStackTrace();
}
returnflag;
}
}
}
如下是需要几项注意的步骤:
1)关于mysql—connector-java—5.1。
22-bin.jar的存放位置。
在MyEclipse具体的java工程中新建一存放jar包的文件夹(如lib),将mysql-connector—java—5。
1.22—bin.jar复制到文件夹中,选中jar包右击———>BuildPath--—>AddToBuildPath,即可。
若出现ClassNotFoundExceptioncom。
mysql。
jdbc。
Driver的提示,则正是由于缺少导入jar包所造成的。
2)如果已经对MySQL的使用很熟悉,则可忽略这条。
个人在测试连接时,老是出现这样的异常提示:
SQLException:
Communicationslinkfailure
Thelastpacketsentsuccessfullytotheserverwas0millisecondsago。
Thedriverhasnotreceivedanypacketsfromtheserver。
3)在使用上面的代码测试时,需要更改的地方有:
//MySQL数据库的用户名,密码,数据库名
代码如下:
Connectionconn=DriverManager。
getConnection(
”jdbc:
mysql:
//localhost:
3306/wb","root",”123456”);
5系统详细设计
5。
1登陆模块
在这个模块中,需要判断是管理员登陆还是学生登陆,在登陆的时候都要判断在数据库内书否有一样的数据与之账号和密码一样的数据,在判断数据库与之相匹配后才可以完成登陆过程。
而在登陆成功后需要不同的页面跳转,学生有学生的页面,而管理员有管理员的页面,两个页面不相干,来实现不同身份的权限问题。
具体如以下流程图5。
1:
否
学生
是
管理员
否
是
是
图5。
2登陆流程图
5.2管理员模块
图书管理主要实现的功能是对新购的图书进行入库和废书记录从库中删除。
当新书被放入图书馆时,管理员登录进入系统,把图书的信息添加到图书馆管理系统中,并指定是放到哪一个藏书馆中。
这时图书可以被读者查询到,并可以借阅.当要把一本废书删除时,图书管理员登录进入系统,查找到这一本书,并将其删除.这时,这一本图书将不再能被查询到。
管理员除了注销图书还可以新增图书,编辑图书:
修改图书在馆状态,此外,管理员还可以注册新的管理员账号,学生是不能注册管理员的。
管理员除了以上权限外还可以查看所有学生的信息,但是不能看到学生的密码。
5.3图书管理模块
图书管理主要实现的功能是对新购的图书进行入库和废书记录从库中删除。
当新书被放入图书馆时,管理员登录进入系统,把图书的信息添加到图书馆管理系统中,并指定是放到哪一个藏书馆中。
这时图书可以被读者查询到,并可以借阅.当要把一本废书删除时,图书管理员登录进入系统,查找到这一本书,并将其删除。
这时,这一本图书将不再能被查询到。
如图5。
3:
图5.3图书管理流程图
5.4图书借阅模块
借阅管理功能是提供给管理员使用的。
当有一个读者要借书的时候,管理员输入读书条形码,单击“确定”按钮,会显示读者姓名,性别,读者类型,证件类型,证件号码,可借数量,然后在图书条形码中输入条形码或者在图书名称里输入图书名称,单击“确定"按钮,就会显示图书名称,借阅时间,应还时间,出版社,书架,单价,再单击“完成借阅”按钮就完成了一次借阅。
5。
4学生模块
这一块主要就是,学生登陆以后显示学生自己的信息,而且还可以修改自己的信息,比如密码等。
除外,学生还可以查看所有图书,进行查阅,当到达日期后还可以进行续借,由于图书管的书籍太多,所以我们添加了条件查阅功能,首先选择所要查询到的类型,如:
图书名称,图书编号,还有图书的作者。
选着完查阅类型后,再在输入框里面输入所需要查询的条件。
便可查到多需要的内容了.
三
6系统测试与运行
登陆界面,在登陆界面进行选择所要登陆的类型,学生和管理员。
登陆错误,这继续留在这个界面,而登陆成功,则会分别登陆到学生或管理员的界面。
图6.1登陆界面测试与运行
如果管理员登陆成功就会进入管理员所进入的界面如图6.2。
该界面包括查看学生信息,编辑图书,新增图书和注册新管理员.
6.2管理员的管理界面
管理员点击查看学生信息便会进入如下界面。
该界面包括学生信息,还有修改和删除学生的信息。
6。
3查看学生信息界面
图书管理界面.包括图书的编辑,续借时间,删除等等。
6.4图书管理界面
学生的注册界面。
这个界面需要在登陆界面里点击注册链接便可链接进入到本界面来.点击注册便可以将学生的信息记录到数据库,然后就可以进行登陆操作了.
6.5学生注册界面
学生在成功登陆系统后可以通过条件来查询图书,可以查询和修改自己的个人资料具体如图6.6.
图6。
6学生登陆后界面
学生点击修改自己的信息后,便可以修改自己的信息,但是只能够修改自己的密码.其他资料已经设置为只读文本不能修改.如下图6。
6:
在学生系统里的复选框选择:
图书名称,确定查询类型,然后再在输入框内输入123(图书在数据库内的名称),点击查询后就可以获取该书的资料,而且可以点击续借,从而实现续借.具体界面如图6。
8:
总结
两个星期的忙碌紧张而又有条不紊的java课程设计,使我有机会对本专业的基本理论、专业知识和基本技术有了更深入的了解和体会,使我在大学中所学到的知识得到了系统和升华,真正达到了学以致用.
在设计的过程中,我掌握了很多JSP的编程知识,还有myeclips开发环境的熟悉,到界面设计,服务器servlet的创建等等,还有数据库mysql的创建,表格等等。
并对这种成熟并广泛应用的技术进行了深入的学习.设计的过程也是一个再学习的过程,在遇到问题的时候我尽量自己想办法解决,这在很大程度上激发了我们的自学能力;在没有办法解决的情况下,从梅老师那里我学到了很多的知识,梅老师对我的指导起到了画龙点睛的作用。
以往我们曾经有过多次设计的体会,但只是设计一个模块或一个小系统,而这一次课程设计设计是综合所学的管理和计算机的知识来设计一个适合运行管理的系统软件。
我在设计中经常出现一些问题不知该如何解决,在此时许多同学给予了我们帮助。
在设计的过程中增加了于实际接触的机会,不仅培养了我的自学和编程能力,让我在即将离开学校进入社会之前有了一定的资本,提高了我与人沟通的能力.
在我的程序设计过程中,我充分的体会到了“实践出真知”这一点,书本上的知识是不够的,只有把理论与实践相结合才能够真正的学到知识。
一个管理信息系统的设计,不可能一步到位,还需要不断的完善和补充.同时,系统中还存在许多问题,有待在日后的使用中发现和解决.编程前的深思熟虑是减少程序调试工作量的重要方法,只有进行充分考虑,才会减少调试过程中的工作量。
虽然在开始写程序之前我们做了多的准备工作,但在真正的写程序时仍然发现许多问题,有些问题是分析时的疏漏,有些则是如果不做无论如何也想不到的。
在java课程设计过程中,得到了李老师的指导与支持。
在总体结构、功能的把握上给予了非常大的帮助,同时根我们提供了非常优越的设计环境,并对我在编程、数据库设计等细节工作上给予了耐心的指导,对于我顺利完成这次毕业设计起到了关键性的作用。
梅老师认真负责的工作态度、严谨的治学风格,使我深受启发;开发的同时,和同学之间的相互探讨也使我获益匪浅。
同时感谢在大学四年生活中给予我关心和帮助的老师和同学,是他们教会了我专业的知识和做人的道理。
通过这次java课程设计我还明白了作为一名计算机专业的大学毕业生,我们要会的不仅仅是编写代码,更重要的是要有整体把握系统设计的能力。
我会在以后的工作和学习中不断完善自己,为自己翻开辉煌的新篇章。
转眼间,大学生活已经过去了两年,回首过去两年年的大学生活,真是有苦也有乐,然而更多的则是收获。
计算机专业的java课程设计任务繁重,但正是在这两个紧张而充实的设计中,我感到自己的知识得到了一次升华。
在新的世纪里,人们自然对未来有许多美好的愿望和设想.现代科学技术的飞速发展,改变了世界,也改变了世界的生活.作为新世纪的大学生,应当站在世界的发展前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求。
新世纪需要具有丰富现代科学知识、能够独立解决面临任务、有创新意识的新型人才。
参考文献
[1]王建华.ASPNET2.0动态网站开发技术与实践[M].北京:
电子工业出版社,2007。
[7]耿祥义,张跃平.《JSP实用教程》。
清华大学出版社,2003年
[13]赛奎春。
《JSP工程应用与项目实践》。
机械工业出版社,2002年8月
[15]贺松平.基于MVC模式的B/S架构的研究及应用[D].武汉:
华中科技大学,
[8]王夕宁,王晓平.JSP通用模块及典型系统开发实例导航[M].北京:
人民邮电出版社,2006
[4]孙一林,彭波.《JSP数据库编程实例》.清华大学出版社,2002年
附录A:
系统核心代
packagecom。
softeem。
dao;
importjava。
sql.*;
publicclassUserDAO{
//注册新的学生账号
publicbooleanadd(Stringusername,Stringupass,Stringsex,intage,
Stringemail,Stringtel,Stringqq,Stringdescr){
booleanflag=false;
//将数据存放到db中去
try{
//加载驱动
Class.forName("com。
mysql。
jdbc.Driver");
//建立连接
Connectionconn=DriverManager。
getConnection(
”jdbc:
mysql:
//localhost:
3306/wb",”root”,”123456”);
//准备语句
Stringsql="insertintotb_user(username,upass,sex,age,email,tel,qq,descr)values('”
+username+”’,'”+upass+"’,’”+sex+"',”+age+",'”+email+”’,'"+tel+”',’”+qq+”’,’”+descr+”’)”;
//准备对象
Statementst=conn。
createStatement();
//执行
flag=!
st。
execute(sql);
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione){
e。
printStackTrace();
}
returnflag;
}
//注册图书信息
publicbooleanaddbook(Stringbkid,Stringbkname,Stringbkin,Stringwriter){
//注册管理员
publicbooleanaddadmin(Stringadid,Stringadname,Stringadpass){
booleanflag=false;
try{
Class。
forName("com。
mysql.jdbc.Driver”);
Connectionconn=DriverManager.getConnection(”jdbc:
mysql:
//localhost:
3306/wb”,"root",”123456”);
Stringsql=”insertintoadmin(adid,adname,adpass)values(’”+adid+”','”+adname+"’,'”+adpass+”’)”;
Statementst=conn.createStatement();
//执行
flag=!
st.execute(sql);
}catch(ClassNotFoundExceptione){
//TODOAuto—generatedcatchblock
e.printStackTrace();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e。
printStackTrace();
}
returnflag;
}
//登录
publicbooleanlogin(Stringusername,Stringupass){
booleanflag=false;
try{
//加载驱动
Class。
forName(”com.mysql.jdbc.Driver");
//建立连接
Connectionconn=DriverManager。
getConnection(
”jdbc:
mysql:
//localhost:
3306/wb”,"root","123456”);
//准备语句
Stringsql=”select*fromtb_userwhereusername='"+username
+”'andupass='”+upass+"’”;
//准备对象
Statementst=conn.createStatement();
//执行
//CUD写booleana=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 图书 管理 系统 设计 开发