点击借书决定抽穗数量关键时期键一怎么做

数据库大作业:图书借阅系统_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
数据库大作业:图书借阅系统
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩6页未读,
定制HR最喜欢的简历
你可能喜欢豆丁微信公众号
君,已阅读到文档的结尾了呢~~
图书借阅管理系统
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
图书借阅管理系统
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口求哪位管理信息系统的大神帮忙做个作业 学渣一枚 非常感谢问题如下_百度知道
求哪位管理信息系统的大神帮忙做个作业 学渣一枚 非常感谢问题如下
我校图书馆图书借阅管理系统基本要求:
(1)学生可随时查询现有书库中的书籍的名称、数量和存放位置。并且所有书籍由一个唯一的书号进行标识。
(2)学生可随时查询书籍的借出情况,包括借书人的专业、班级、姓名、借书证号、借书和还书日期。任何一...
我有更好的答案
籍{书号(主键)、名称、出版社名称(外键)、图书类别、存放位置、累计借阅次数}学
生{借书证号(主键)、姓名、专业、班级、借书数量}出 版 社{出版社名称(主键)、电话、地址}借书记录{书号(主键)、借书证号(主键)、借阅日期、归还日期、超期记录}书籍--(N-N)--学生书籍--(N-1)--出版社书籍--(1-1)--借书记录学生--(1-N)--借书记录欢迎追问
非常感谢 能否再帮忙画张Er图🙆
采纳率:73%
为您推荐:
其他类似问题
管理信息系统的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。周一至周四:8:30-20:30
周六至周日:8:00-18:00
我的图书馆
MY LIBRARY
您当前所在的位置:首页
一张卡可以一次借2本书 ,期限是30天 ,感谢您对图书馆的关注与支持!
{$$LinkCode,5$$}
{$$LinkCode,12$$}
{$$LinkCode,14$$}
池州市图书馆 www.cztsg.gov.cn All Rights Reserved.
备案号:皖ICP备号-1图书馆管理系统程序设计
代码地址:&https://github.com/yranqiu/tushuguanguanlixitong/tree/master
一.&&简&介
大学为我们提供了自由的学习环境,使我们有更多的时间到图书馆借阅书籍,让我们可以随时掌握各方面的知识,不断提高自我、充实自我,但由于图书馆藏书成千上万,我们很难一本一本的去查找自己感兴趣的书籍,因此我们会经常用到学校为我们提供的图书管理系统,用时间长了便对此产生了兴趣,正好本次课程设计为我们提供了良好的机会,让我们亲自设计并实现了图书管理系统的部分功能。
现已有的图书管理系统,其功能已十分强大,为了便于管理员对图书管理系统进行妥善的管理和读者的查询,图书管理系统为管理员提供了管理日志、管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书入库等功能,为读者提供了书籍查询、读者借阅信息查询、图书网上续借等很多功能。
在对应的界面与Access数据库建立连接,并实现对应的SQL语句进行实现将产生的结果显示出来。并运用捕捉异常的方法,将异常信息显示出来。
实现SQL语句的时候借助前台开发工具中关于数据处理的控件来完成。对于读者而言他们的需求是了解图书的基本情况,自己的借阅情况。总而言之就是实现对各个信息表的查询。对于图书管理员而言要实现的功能相对而言比较多,例如实现新书入库、Access数据库表的创建、系统的维护等等,这些都需要设计和实现的。
&二.&系统功能介绍
2.1系统功能总框图&&
图书馆管理系统功能总框图,如图2-1所示。
图2-1&系统功能框架图
2.2&模块功能介绍
2.2.1&管理员模块功能介绍
1.&管理员登陆
此模块主要是利用MenuBar添加菜单条,利用Menu和MenuItem添加菜单和菜单的各个参数,通过事件ActionEvent&可以实现进入各个模块如管理日志、管理员添加、管理员切
换、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、借阅书籍、归还书
籍、借阅超时及退出的功能。
2.&管理日志
此模块可以清楚的显示出书籍借阅与归还的信息,包括书号、书名、图书证号、借/还、操作日期、已付款额。读者可以通过此模块实现的功能清楚的了解图书被借阅和归还的详细信息,从而给读者带来了很多方便。
3.&管理员添加功能介绍
此模块功能是增加新管理员的登陆帐户。在图书馆管理系统中必须有每一个管理者的帐户让其可以正常进行新图书证的办理、借阅书籍和归还书籍等系统管理。所以在管理员功能模块中增加了管理员添加这个功能。
4.&管理员切换
此模块的主要功能是进行管理员之间的切换,即单击管理员菜单下的管理员切换,就会退出当前管理员界面,从而出现管理员切换窗口,而另一管理员就可以在管理员切换窗口中的用户名和密码两栏中通过输入自己的用户名和密码直接进入该系统。
2.2.2&读者管理
1.&读者添加
此模块主要的实现功能是添加新的读者信息,即当有新的读者要看查看本图书馆中的书藉,可以通过此功能实现,当数据库中存在其新信息,即成为本图书馆的新一位读者。其中信息分别包括图书证号、学生姓名、性别、系别、班级,同时可有三项功能在此处实现,即添加、重置以及返回。
2.读者修改
此模块主要的实现功能对有信息更新的读者进行即时修改,以随时更新读者在数据库中的信息。本模块通过图书证号确定读者,可对读者信息的新图书证号、学短姓名、性别、系别、班级。此处可分别实现对该功能的修改、重置、返回。
3.&读者查询
此模块主要可对所要了解的读者信息。即把读者的信息从数据库调出来,显示在该窗口中的文字区域。查询方式分别有按图书证查询、按姓名查询、按班级查询、按年级查询,并可通过办理入相应的关键字,更加缩小查询范围。此处可实现查询和返回功能。
4.&读者删除
此模块可以删除一些不再使用本系统的读者资料,从而达到对数据库中的清理,即清除一些不必要资料,此处有四种删除途径,分别为按图书证号删除、按姓名删除、按班级删除、安年级删除,并可通过所输入的关键字尽快找到所要删除的资料。此处可分别实现对该功能的修改、重置、返回。
2.2.3书籍管理模块功能介绍
1.&新书入库功能介绍
此模块主要的实现功能是将新来的图书输入到图书馆管理系统的书库当中,其中主要按如下信息往书库中输入,这部分的操作主要是便于书库合理的管理,有利于读者能够对新书有
一个更详细的了解。其中包括如下信息:新书书号、新书名称、新书出版日期、新书出版社、入库数量、编写作者、新书单价。
2.&书籍查询功能介绍
在图书馆管理系统中书籍查询是最基本的功能,读者可以根据自己的需求来查询想要借阅的书籍。本系统是用Java应用程序和Access数据库一起开发的其中利用Java来编程实现功能的代码和布置运行界面。界面是由检索项、检索词和显示文本区三个部分组成的用户根据自己的需要在检索项中选择自己所要按什么字段进行查询,其中书籍查询功能的检索项中可以按书号查询、按书名查询、按作者名查询、按出版社查询、按入库时间查询等基础查询。选择检索项后用户只要在检索词中添写自己所要查询的内容并确定键确认后用户要查询的内容就可以在显示文本区中显示出来。用户可以根据显示的信息得知自己所要借阅书籍的情况。
2.2.4&书籍借阅与归还功能介绍
1.&借阅书籍功能介绍
此模块主要实现读者可凭有效的图书证号,借阅图书馆内未借出的图书。
输入图书证号后,可显示了该图书证持有者的全部信息(包括借书证号、姓名、性别、所在班级、所属系部、当前可借阅图书个数),供读者确认信息。通过输入有效的图书编号,查询该图书的全部信息(包括书号、书名、作者、出版社、是否借出、价格)。借阅成功后,将该图书证号、书号、借阅日期、应还日期信息插入到数据库的表中进行记录。
2.&归还书籍功能介绍
此模块主要实现读者凭所要归还图书的图书证号归还图书。
输入所要归还的图书编号后,可显示了该图书证持有者的全部信息(包括借书证号、姓名、性别、所在班级、所属系部、当前可借阅图书个数),供读者确认信息。还书成功后,从数据库中删除该书的借出记录,并修改数据库中的相应信息。
2.2.5&借阅超时功能介绍
此模块主要实现显示过期图书的信息(包括图书证号、书号、借阅日期、应还日期)提醒读者还书。
2.3&组内任务分工
组内分工情况如下表所示。
表组内分工情况表
读者添加、查询、修改、删除。
书籍借阅与归还模块、借书超期限子系统。
管理员添加、新书入库、按指定条件进行图书查询。
数据库创建、登陆界面设计、管理员模块。
三.&数据库设计
在此图书馆管理系统中,使用到了一个重要的连接,即与数据库ccesss相连。数据库中存有图书馆中所信息,包括读者信息、管理员资料、借阅与退还记录。所有与管理有关的数据皆在其中,是保证系统能够正常实现各种功能的一架桥。
3.1&数据库需求分析
⒈&Admi表,即管理员表,记录了用户名和密码。
⒉&Admirz表,即管理日志表,记录了书号、书名、图书证号、借/还、操作日期、已付款额。
⒊&book表,即图书表,记录了书号、书名、作者、出版社、入库时间、是否借出、价格。
⒋&borrowbook表,即借阅表,记录了图书证号、书号、借阅日期、应还日期。
⒌&person表,即读者表,记录了图书证号、姓名、性别、系别、班级。
3.2&数据库表的设计
表中记录了可以使管理员进入该系统的用户名及密码,如表所示。
表-1&管理员信息表
⒉Admirz表
表中记录借还书日志,用于存下所有对图书操作的记录,以便以后可以翻阅和查找,如表所示。
表-2&管理日志表
表中记录了库内所有图书的所有资料,如表。
表-3&图书表
⒋person表
表中记录库中所有读者的相关信息,如表所示。
表-4&读者表
⒌borrowbook表
表内记录了此时图书的借阅情况,如表所示。
表-5&借阅表
四.&系统功能实现
4.1&管理员模块功能实现
4.1.1&管理员登陆
此模块是整个系统最主要的部分,管理员可以通过此模块实现进入其余各个模块如管理日志、管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、借阅书籍、归还书籍、借阅超时及退出的功能。图书管理系统管理员界面如图4-1所示。
图4-1&图书管理系统管理员
主要程序代码如下:
public&void&actionPerformed(ActionEvent&e)
if(e.getSource()==itemAdmiqh)
this.dispose();
In&winin=new&In("系统登陆
if(e.getSource()==itemtc)
System.exit(0);
if(e.getSource()==itemAdmixj)
CreatAdmi&creatAdmi=new&CreatAdmi("管理员添加
if(e.getSource()==itemAdmirz)
WinTable&wintable=new&WinTable("管理日志
if(e.getSource()==itemBookrk)
AddInfy&addInfy=new&AddInfy();
if(e.getSource()==itemPersonlr)
Winpersonadd&winperson=new&Winpersonadd("读者添加
if(e.getSource()==itemPersoncx)
Winpersonsearch&winperson=new&Winpersonsearch("读者信息查询
if(e.getSource()==itemPersonxg)
Winpersonmodify&winperson=new&Winpersonmodify("读者信息修改
if(e.getSource()==itemPersonsc)
Winpersondelete&winperson=new&Winpersondelete("读者删除
if(e.getSource()==itemBookcx)
Windowjj&ok=new&Windowjj();
if(e.getSource()==itemchaoshi)
day&win=new&day();&
if(e.getSource()==itemBorrowjs)
Borrowbook&win=new&Borrowbook();&
if(e.getSource()==itemBorrowhs)
Returnbook&win=new&Returnbook();&
4.1.2&管理日志
此模块通过定义类WinTable继承顶层容器JFrame,再添加普通容器&JScrollPane、Jpanel,然后通过BorderLayout布局创建界面,最后主要通过数组利用while循环在连接好的数据库中查找表Admirz中的内容,从而实现了可以清楚的显示出书籍借阅与归还信息的功能。管理日志界面如图4-2所示。
图4-2&管理日志
主要程序代码如下:
WinTable(String&s)
try&{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
catch(ClassNotFoundException&e)
{ System.out.println(""+e);
try&{ con=DriverManager.getConnection("jdbc:odbc:sun","123","123");
sql=con.createStatement();
rs=sql.executeQuery("SELECT&*&FROM&Admirz");
while(rs.next())
catch(SQLException&e)
{ System.out.println(""+e);
try&{ con=DriverManager.getConnection("jdbc:odbc:sun","123","123");
sql=con.createStatement();
rs=sql.executeQuery("SELECT&*&FROM&Admirz");
a=new&Object[k][6];
while(rs.next())
for(int&j=0;j&6;j++)
a[i][j]=rs.getString(j+1);
a[i][j]=rs.getDouble(j+1);
con.close();
catch(SQLException&e)
{ System.out.println(""+e);
table=new&JTable(a,name);
Container&con=getContentPane();
getContentPane().add(new&JScrollPane(table),BorderLayout.CENTER);
setBounds(120,125,700,500);
setVisible(true);
validate();
addWindowListener(new&DisposeListener());
4.1.3&管理员添加功能实现
功能介绍:该程序主要实现管理员的添加,以便于让实行对图书管理员的管理。按照标
签提示输入信息,然后点击确定按钮。首先判断管理员名文本框中输入的文本信息是否符合大于3个字符并小于10个字符的规则,如果不符合规则,则提示错误,如果符合规则,再到表中进行查询,如果相同则用提示框提示错误。若无相同则可注册。但还需要保证前后两次的密码相同,才能成功注册,管理员登陆窗口如图-3所示。
图管理员添加成功界面
主要程序代码如下:
&&&&public&void&actionPerformed(ActionEvent&c)
String&b=textUser.getText();
String&d=textPassword1.getText();
String&g=textPassword2.getText();
if(c.getSource()==buttonqk)
{ textUser.setText(null);
textPassword1.setText(null);
textPassword2.setText(null);
if(c.getSource()==buttonEnter||c.getSource()==textPassword2)
if(b.length()&3||b.length()&10)
JOptionPane.showMessageDialog(null,"用户名应在3~10个字符之间");
textUser.setText(null);
try&{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
catch(ClassNotFoundException&e)
{ System.out.println(""+e);
try&{ con=DriverManager.getConnection("jdbc:odbc:sun","123","123");
sql=con.createStatement();
rs=sql.executeQuery("SELECT&*&FROM&Admi&WHERE&用户名="+"'"+b+"'");
if(rs.next())
String&user=rs.getString(1);
if(b.equals(user))
&JOptionPane.showMessageDialog(null,"此管理员已被注册","警告",JOptionPane.WARNING_MESSAGE);
if(d.equals(g))
sql.executeUpdate("INSERTINTOAdmi&VALUES"+"("+"'"+b+"'"+","+"'"+d+"'"+")");
this.dispose();
JOptionPane.showMessageDialog(null,"管理员注册成功");
else&JOptionPane.showMessageDialog(null,"两次输入密码不一致","警告",JOptionPane.ERROR_MESSAGE);
&&&con.close();
&&catch(SQLException&e)
{ System.out.println(""+e);
4.1.4&管理员切换
此模块功能是退出当前管理员界面,进入管理员切换窗口,另一用户可以通过输入自己的用户名和密码直接进入该系统。但此用户名和密码都必须与已经连接好的数据库中表中的用户名和密码相吻合。管理员切换界面如图4-4所示。
&图4-4&管理员切换
主要程序代码如下:
public&void&windowClosing(WindowEvent&e)
e.getWindow().dispose();
4.2&读者管理模块功能实现
4.2.1&读者添加
功能介绍:添加新的读者,使其能够进入图书系统阅览图书,读者添加如图所示。
图读者添加
主要程序代码如下:
&public&void&actionPerformed(ActionEvent&e)
if(e.getSource()==button1)&&&&&&&&//&添加
String&ch=text1.getText();
if(ch.length()!=5){
JOptionPane.showMessageDialog(null,"请输入位图书证号!
text1.setText(null);
&&//连接数据库
String&number,name,sex,dept,classes,record,insertS
number=text1.getText();
name=text2.getText();
if(box1.getState()==true)
sex=box1.getLabel();
sex=box2.getLabel();
dept=text3.getText();
classes=text4.getText();
rs=sql.executeQuery("SELECT&*&FROM&person&WHERE&图书证号
if(rs.next()){
JOptionPane.showMessageDialog(null,"此图书证号已存在","警告",JOptionPane.WARNING_MESSAGE);
text1.setText(null);
record="("+"'"+number+"'"+","+"'"+name+"'"+","+"'"+sex+"'"+","+"'"+dept+"'"+","+"'"+classes+"'"+")";
insertStr="INSERT&INTO&person&VALUES"+
sql.executeUpdate(insertStr);
&&&&&&&&&&&&&&& JOptionPane.showMessageDialog(null,"添加成功!
con.close();
4.2.2&读者修改
功能介绍:对读者需要修改的资料进行重定义,读者信息修改如图4-6所示。
图读者信息修改
主要程序代码如下:
public&void&actionPerformed(ActionEvent&e)
if(e.getSource()==button1)&&&&//修改
String&ch=text1.getText();
if(ch.length()!=5){
JOptionPane.showMessageDialog(null,"请输入5位图书证号!");
text1.setText(null);
&&//连接数据库
String&number,name,sex,dept,classes,newnum,record,updateS
newnum=text5.getText();
number=text1.getText();
name=text2.getText();
if(box1.getState()==true)
sex=box1.getLabel();
sex=box2.getLabel();
dept=text3.getText();
classes=text4.getText();
sql=con.createStatement();
rs=sql.executeQuery("SELECT&*&FROM&person&where&图书证号="+"'"+newnum+"'");
if(rs.next()){
rs1=sql.executeQuery("SELECT&*&FROM&person&where&图书证号="+"'"+number+"'");
if(rs1.next()){
JOptionPane.showMessageDialog(null,"此图书证号已存在","警告",JOptionPane.WARNING_MESSAGE);
text1.setText(null);
updateStr="UPDATE&person&SET&图书证号="+"'"+number+"'"+","+"姓名="+"'"+name+"'"+","+"性别="+"'"+sex+"'"+","+"系别="+"'"+dept+"'"+","+"班级="+"'"+classes+"'"+"WHERE&图书证号="+"'"+newnum+"'";
sql.executeUpdate(updateStr);
JOptionPane.showMessageDialog(null,"修改成功!");
JOptionPane.showMessageDialog(null,"查无此人!");
&&//连接数据库
con.close();
4.2.3&读者查询
功能介绍:可以对数据库中已有的读者信息进行查询。读者查询如图。
图 读者信息查询
主要程序代码如下:
public&void&actionPerformed(ActionEvent&e)
&&&{ &&&&&&
if(e.getSource()==button1&||&e.getSource()==text){&&&&&&&&&&&&&&&&&&&&//&查询
area.setText(null);
if((str=="按图书证号查询
boolean&flag=true,f=
String&num=text.getText();
&&//连接数据库
rs=sql.executeQuery("SELECT&*&FROM&person&where&图书证号
&&&&while(rs.next())
String&number=rs.getString("图书证号
String&name=rs.getString("姓名
String&sex=rs.getString("性别
String&dept=rs.getString("系别
String&classes=rs.getString("班级
area.append("图书证号为的学生信息如下:
area.append("\n姓名:性别:系别:班级
if(f){area.append("查无此人!
catch(SQLException&c)
System.out.println(c);
4.2.4&读者删除
功能介绍:删除数据库中已有信息。读者删除如图所示。
图读者删除
主要程序代码如下:
if(e.getSource()==button1){&&&&&&&&&&&//&删除
area.setText(null);
if((str=="按图书证号删除
String&num=text.getText();
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
catch(ClassNotFoundException&c)
System.out.println(""+c);
&&//连接数据库
rs=sql.executeQuery("SELECT&*&FROM&person&where&图书证号
if(rs.next()){
area.append("该信息已删除!
String&delStr="DELETE&FROM&person&WHERE&图书证号
sql.executeQuery(delStr);
con.close();
catch(SQLException&c)
System.out.println(c);
4.3&书籍管理模块功能实现
4.3.1&新书入库实现
功能介绍:此界面主要完成的功能是往数据库book表中添加新书的记录,在book表中可查看最新的记录。在新书信息输入的过程中,会出现一些异常处理,如某个字段的信息没有填写;新书信息输入字段的过程中,输入的字段类型与给定的字段类型与输入不匹配(如:货币、日期);输入的信息长度超过给定的字段长度等。如果填写的内容正确则可以成功将新书添加入库,新书入库窗口如图4-9所示。
&图添加新书入库界面
主要程序代码如下:
&&&&public&void&actionPerformed(ActionEvent&c)
&&{ if&(c.getSource()==button2)
{ this.dispose();}
if&(c.getSource()==button1)
&&//连接数据库
rs=stm.executeQuery("select&书号&书号
if&(rs.next())
JOptionPane.showMessageDialog(null,&"此书号已存在警告
String&str1,str2,str3,str4,str6,str7,str8,str9,str10;
str1=textField1.getText();&
str10="未借出
m=Float.parseFloat(str9);
&str="("+"'"+str1+"','"+str3+"','"+str8+"','"+str6+"','"+str7+"','"+str10+"',"+m+")";
String&insert="INSERT&INTO&book(书号书名作者出版社入库时间是否借出价格
stm.executeUpdate(insert);
textField1.setText("");
JOptionPane.showMessageDialog(null,&"增加信息成功
con.close();
catch&(Exception&e){JOptionPane.showMessageDialog(null,&"请认真检查各项
然后重试异常警告
&&&&&&&&&&&JOptionPane.WARNING_MESSAGE);
4.3.2查询功能实现
功能介绍:本系统包含两项一是检索项令一个是检索词,在检索项中用户可以根据自己
的需求来选择所要查询的项目并在检索词中添写自己所要查询的内容。本系统副带四个按钮:确定、取消、查看全库,该图书馆管理系统的查询界面如图4-10所示。
图查询系统界面
在该系统中为了用户使用方便还设有查看全库一项,用户可以通过这一功能来查看全库的图书,所查询的内容将在下方的文本区中显示,其界面所示。
图查看全库信息
使用检索词必须得满足一定的查询条件才可以执行,用户必须得在检索项中选择查询方式并添好检索词才可查询否则系统会显示未找到您要查找的内容并给以提示,如图4-12所示。
图检索项按书号查询
主要程序代码如下:
public&void&itemStateChanged(ItemEvent&e)
&&&area.setText(null)&&;&
&&&String&name=choice1.getSelectedItem(); &&
&&&area.append(&"&&&&&&&&&&&&&&&&&请您在检索项中输入您要查找的内容&&:&");
& &public&void&actionPerformed(ActionEvent&e)
&if&(e.getSource()==button2)&&&&&&&&&&&&&&//取消键
&&&&{&&&&text1.setText(null);}
&&&&else&if&(e.getSource()==button3)&&&&&&&&//返回键
&&&&&{&&&this.dispose();&}
else&if&(e.getSource()==button4)&&&&&&&//&查看全库 &&&&&
&&&&&&&& &{&&&&Connection&
&&&&&&&&&&&&&Statement&&
&&&&&&&&&&&&&&&&&ResultSet&&
&&& &&&&&&&&&&&&try&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//建立数据源
&&&&&&&&&&&&&{&Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
&&&catch(ClassNotFoundException&c)
&&&&&&&&&{System.out.println(""+c);}
&&&&&&&&&&&&&&&&try&
&&&&&&&&&&&&&{
&&&&&&&&&&&&con=DriverManager.getConnection("jdbc:odbc:sun","","");
&&&&&&&&&&&&sql=con.createStatement();&& &&
&&&&&&&&&&&&&&&&&&&&&&rs=sql.executeQuery("select&*&from&book&");
while&&&(rs.next()) &&&& &&&&&&
&&&& &&&&&&&&&{
&&&& &&&&&&& &&String&bookname=rs.getString("书名");
&&&&&&&&&&&&String&auther=rs.getString("作者");
&&&&&&&&&&&&String&chubanshe=rs.getString("出版社");
&&&&&&&&&&&&String&bookno=rs.getString("书号");
&&&&&&&&&&&&&&&&String&data=rs.getString("入库时间");
&&&&&&&&&&&&String&yesorno=rs.getString("是否借出"); &&&&& &&&&&&&&area.append("\n书号 &&
&&&&&&&&&&&&&&&&&&&area.append("&&&书名 &&&&&&&&&&&&area.append("&&&作者 &
&&&&&&&&area.append("&&&出版社
&&&&&&& &&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&area.append("&&&\n入库时间 &&&&&&area.append("&&&是否借出 }&
&&&&&&&&&&&&&con.close(); &&&
&&&&&&&&&&&} &
&&&&&&&&&&&catch(SQLException&c)
&&&{&System.out.println(""+c);}
4.4&书籍借阅与归还功能实现
4.4.1&借阅书籍功能实现
输入图书证号&0001&后点击查看按钮,可显示该读者信息,若输入图书证号错误,点击查看按钮则会弹出借书证错误对话框,如图4-13所示。输入图书编号&0000003&按回车键,可显示该图书信息,若输入图书编号错误,按回车键则会弹出图书编号错误对话框,如图4-14所示。点击借阅按钮则会弹出图书借阅成功对话框。借阅书籍功能的具体实现如图4-15所示。
图4-13&借书证错误
图4-14&图书编号错误
图4-15&借阅书籍
主要程序代码如下:
&public&void&actionPerformed(ActionEvent&e)
if(e.getSource()==tj)
if(!tscard.getText().equals(null)&&!tsid.getText().equals(null))
String&str1,str2;
str1=tsid.getText();
str2=tscard.getText();
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
catch(ClassNotFoundException&c)
System.out.println(""+c);
&&//连接数据库
rs=sql.executeQuery("SELECT&*&FROM&person&where&图书证号
String&ls1=null,ls2=null,ls3=
int&is1=0;
if(rs.next())
con.close();
&&//连接数据库
rs=sql.executeQuery("SELECT&*&FROM&book&where&书号
if(rs.next())
if(rs.getString("是否借出未借出
ls3=rs.getString("书名
con.close();
&&//连接数据库
rs=sql.executeQuery("SELECT&count(书号图书
rs.next();
is1=rs.getInt(1);
con.close();
&&//连接数据库
if(ls1==str1&&ls2==str2&&is1&5)
{&&Date&da=new&Date();
int&y=da.getYear()+1900;
int&m=da.getMonth()+1;
int&d=da.getDate();
&&&&&&&&&&&&&&String&jyrq=String.valueOf(y)+"-"+String.valueOf(m)+"-"+String.valueOf(d);
&&//计算借阅时间
String&yhrq=String.valueOf(y)+"-"+String.valueOf(m)+"-"+String.valueOf(d);
String&insertstr="INSERT&INTO&borrowbook&VALUES&('"+ls2+"','"+ls1+"','"+jyrq+"','"+yhrq+"')";
String&updatestr="UPDATE&book&SET&是否借出借出书号
String&insertstr2="INSERT&INTO&Admirz&VALUES('"+ls1+"','"+ls3+"','"+ls2+"','借书
sql.executeUpdate(insertstr);
sql.executeUpdate(insertstr2);
sql.executeUpdate(updatestr);
JOptionPane.showMessageDialog(this,"借阅成功请在之前退还否则将支付滞纳金图书借阅成功&",JOptionPane.WARNING_MESSAGE);
tsid.setText(null);
tscard.setText(null);
4.4.2&归还书籍功能实现
输入图书编号&&点击回车键,则该界面右侧会显示借书者的信息,若图书编号错误则会弹出图书编号错告对话框,如图所示。点击还书按钮会弹出归还成功对话框。归还书籍功能的具体实现,如图所示。
4-16&图书编号错误
4-17&归还书籍
主要程序代码如下:
public&void&actionPerformed(ActionEvent&e)
if(e.getSource()==tj)
String&num=tsid.getText();
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
catch(ClassNotFoundException&c)
System.out.println(""+c);
{ String&tsz=
&&//连接数据库
rs=sql.executeQuery("SELECT&*&FROM&person&where&图书证号=(SELECT&图书证号&FROM&borrowbook&where&书号="+"'"+num+"')");
if(rs.next())
&&&&&&&&&&{
tsz=rs.getString("图书证号");
con.close();
&&//连接数据库
rs=sql.executeQuery("SELECT&*&FROM&vbbook&where&书号="+"'"+num+"'");
&&&&&&&&&&&&&&& Date&da=new&Date();
int&y=da.getYear()+1900;
int&m=da.getMonth()+1;
int&d=da.getDate();
String&czrq=String.valueOf(y)+"-"+String.valueOf(m)+"-"+String.valueOf(d);
String&sm=
int&day=0;
if(rs.next())
sm=rs.getString("书名");
String&yhrq=rs.getString("应还日期");
y=(y-Integer.parseInt(yhrq.substring(0,4)));
int&mm=Integer.parseInt(yhrq.substring(5,7));
d=Integer.parseInt(yhrq.substring(8,10))-d;
while(m&mm)
&//计算还书时间
day=day+d;
JOptionPane.showMessageDialog(this,"您比应还日期晚了"+String.valueOf(day)+"天归还,请交付相应滞纳金","延期还书",JOptionPane.WARNING_MESSAGE);
money=day/10;
tsid.setText(null);
4.5&借阅超时功能实现
数据库(借书表)表中的&应还日期&字段中的时间与当前时间相比较,若比当前时间早则说明该书借阅超时,那么该条记录将在此被显示出来。借阅超时功能具体实现如图所示。
图借阅超时
主要程序代码如下:
&&&&&&//连接数据库
Date&nowtime=new&Date();//当前日期
SimpleDateFormat&matter1=new&SimpleDateFormat("yyyy-MM-dd");
String&stime=matter1.format(nowtime);
String&dyear=stime.substring(0,4);
year2=Integer.parseInt(dyear);//年
String&dmoon=stime.substring(5,7);
moon2=Integer.parseInt(dmoon);//月
String&dday=stime.substring(8,10);
day2=Integer.parseInt(dday);//日
rs=sql.executeQuery("SELECT&*&FROM&borrowbook");
while(rs.next()){x=x+1;}
rs.beforeFirst();
a=new&Object[x][4];
while(rs.next())
&&//计算还书超过的天数
table=new&JTable(a,name);
sPanel.add(new&JScrollPane(table),BorderLayout.CENTER);
sPanel.setEnabled(false);
setBounds(0,0,700,400);
&&&&setVisible(true);
validate();
addWindowListener(new&WindowAdapter()
public&void&windowClosing(WindowEvent&e)
{dispose();
一周的java课程设计已经结束了,在这次课程设计中我组成员共同努力完成了任务,共同学习知识。虽然只是短短的两周时间,可是在这两周我们把课堂里老师讲的知识用到实践中去了,感到非常高兴。在这次课设中我们不仅学到了知识,还锻练了团体合作的能力,在这次课设中我们真正体会到了小组合作精神的重要性,就如古语所说的&万众同心,齐力断金&,这对我们以后的工作有很大的帮助。
这次的课程设计可以看作是一次理论与实践相结合的桥梁,通过这次的课程设计,我们学习到了许多的知识,也认识到了自己目前的不足,那就是缺乏相应的知识与经验,所以在运用和操作方面都不是那么的得心应手。但是,经过这段时间对相关书籍的阅读和分析,我们组顺利的完成了设计,我还明白了在编写程序的时候,应该尽量使界面简洁大方,布局统一。变量类型的定义,一定要够用就好,这样程序就可以尽可能的减少对系统资源的占用。在设计时也免不了存在着一些不足,所以在今后的学习中我们会努力取得更大的进步,对于我们不足的地方希望老师能够及时给予批评,以便我们在今后的学习或工作中能够及时的改正。
阅读(...) 评论()

我要回帖

更多关于 sql 查询关键字数量 的文章

 

随机推荐