Java 课程设计结题报告.docx

上传人:b****6 文档编号:12944672 上传时间:2023-06-09 格式:DOCX 页数:26 大小:1.80MB
下载 相关 举报
Java 课程设计结题报告.docx_第1页
第1页 / 共26页
Java 课程设计结题报告.docx_第2页
第2页 / 共26页
Java 课程设计结题报告.docx_第3页
第3页 / 共26页
Java 课程设计结题报告.docx_第4页
第4页 / 共26页
Java 课程设计结题报告.docx_第5页
第5页 / 共26页
Java 课程设计结题报告.docx_第6页
第6页 / 共26页
Java 课程设计结题报告.docx_第7页
第7页 / 共26页
Java 课程设计结题报告.docx_第8页
第8页 / 共26页
Java 课程设计结题报告.docx_第9页
第9页 / 共26页
Java 课程设计结题报告.docx_第10页
第10页 / 共26页
Java 课程设计结题报告.docx_第11页
第11页 / 共26页
Java 课程设计结题报告.docx_第12页
第12页 / 共26页
Java 课程设计结题报告.docx_第13页
第13页 / 共26页
Java 课程设计结题报告.docx_第14页
第14页 / 共26页
Java 课程设计结题报告.docx_第15页
第15页 / 共26页
Java 课程设计结题报告.docx_第16页
第16页 / 共26页
Java 课程设计结题报告.docx_第17页
第17页 / 共26页
Java 课程设计结题报告.docx_第18页
第18页 / 共26页
Java 课程设计结题报告.docx_第19页
第19页 / 共26页
Java 课程设计结题报告.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java 课程设计结题报告.docx

《Java 课程设计结题报告.docx》由会员分享,可在线阅读,更多相关《Java 课程设计结题报告.docx(26页珍藏版)》请在冰点文库上搜索。

Java 课程设计结题报告.docx

Java课程设计结题报告

浙江科技学院

程序设计综合课程设计报告

班级:

学号:

姓名:

指导教师:

 

二○一一年六月七日

设计日期自2011年4月8日至2011年6月7日

目录

1前言1

2设计内容2

2.1系统设计2

2.1.1需求分析2

2.1.2系统功能模块2

2.1.3功能设计3

2.2数据库设计与实现4

2.2.1数据库需求分析4

2.2.2数据库逻辑结构设计4

2.3系统的设计与实现5

2.2.1登录界面(Login)5

2.2.2主界面(MainWindow)6

2.2.3密码修改界面(Mima)10

2.2.4密码修改数据库链接(MimaConnect)11

2.2.5读者种类界面(ZhongleiReader)12

2.2.6读者种类数据库链接(ZhongleiReader)16

2.2.7读者基本信息(ReaderInformation)17

2.2.8查询报表界面(ShowRecord)17

2.2.9图片欣赏界面(Haha)18

2.2.10图书登记管理界面(Booktable)19

2.2.11关于界面(Massage)19

2.4数据库配置19

3设计总结与体会20

4参考文献21

1前言

2010年为期3星期的时间,我在浙江科技学院第一次做课程设计,由于之前没有实际项目开发的经验,先是阅读了很多JAVA方面的书籍,其中以SWING编程为主,然后结合理论知识,在指导老师的指导下完成了基于JAVA的图书管理系统的开发。

通过上次的课程设计,我学到了很多专业知识,也获得了不少的编程经验,使我在编程能力上有了很大的提高,通过理论联系实际使我对项目开发也有了比较清晰的了解。

在此次工程实习中我主要完成的工作是:

在JDK6.0环境下用JAVA语言以及Access2003完成图书管理系统。

从需求分析开始,按照软件工程的整个流程一步步的做下来,最终完成整个软件的设计。

2设计内容

2.1系统设计

2.1.1需求分析

本图书管理系统具有如下功能模块:

密码修改模块:

对当前登陆用户进行登陆密码的修改。

报表模块:

基本书籍浏览表。

以表格的形式展现给用户所有书本的基本信息。

时钟模块:

在主界面提供了本地当时的时间(日期,时间,星期*)。

图片欣赏模块:

提供图片浏览功能。

音乐模块:

提供音乐欣赏功能,可以随时关闭和开启。

基本信息管理模块:

对读者基本信息进行管理,可以添加、查询、修改和删除基本信息。

2.1.2系统功能模块

本系统分为以下四大模块:

系统管理模块、基本信息管理模块、成绩管理模块、报表模块。

 

图2-1功能模块划分图

2.1.3功能设计

各模块功能设计如下:

1.系统管理模块:

可以方便地了解系统,欣赏音乐和图片。

2.基本信息管理模块:

基本信息录入功能,输入读者信息,可以实现添加此信息到相应的数据库db(读者基本信息表)表里。

基本信息查询功能,输入编号,可以查询此读者信息的详细。

基本信息修改功能:

输入编号,可以显示此读者信息的详细,然后作修改操作,并保存修改后的信息到相应的数据库表里。

基本信息删除功能:

输入编号,可以显示该读者信息的详细,然后作删除操作,可以把数据库表中对应的该学生的记录全部删除。

3.读者种类管理模块:

读者种类基本信息录入功能,输入读者种类信息,可以实现添加此信息到相应的数据库db(读者种类信息表)表里。

基本信息查询功能,输入编号,可以查询此读者信息的详细。

基本信息修改功能:

输入编号,可以显示此读者信息的详细,然后作修改操作,并保存修改后的信息到相应的数据库表里。

基本信息删除功能:

输入编号,可以显示该读者信息的详细,然后作删除操作,可以把数据库表中对应的该学生的记录全部删除。

4.报表模块:

基本信息浏览表功能:

通过以表格的形式,给用户显示数据库里所有书籍读者种类对应的书名编号,书名,作者,借书期限的信息一目了然,可以浏览所有书籍的基本信息。

2.2数据库设计与实现

2.2.1数据库需求分析

根据本系统的需求分析,需要4张表。

读者种类表:

存放读者的借阅信息。

读者基本信息表:

存放读者详细的注册信息。

书籍表:

存放书籍的详细信息。

用户表:

存放用户的账号密码的信息。

2.2.2数据库逻辑结构设计

下面是本系统设计的表及其作用。

表2-1数据表说明

表名

表的作用

bookInformation(读者种类表)

存放读者的借阅信息

readerInformation(读者基本信息表)

存放读者详细的注册信息

book(书籍表)

存放书籍的详细信息

user(用户表)

存放用户的账号密码的信息

 

下面是各个表的详细结构。

1.bookInformation(读者种类表),见表2-2

表2-2bookInformation(读者种类表)

字段名称

数据类型

是否为空

是否主键

是否外键

种类编号

Int(4)

种类名称

char(50)

借书数量

Int(4)

借书期限

char(10)

2.readerInformation(读者基本信息表),见表2-3

表2-3readerInformation(读者基本信息表)

字段名称

数据类型

是否为空

是否主键

是否外键

读者编号

Int(4)

读者姓名

char(10)

读者种类

char(50)

读者性别

char(10)

读者单位

char(10)

读者住址

char(50)

读者号码

char(10)

读者日期

char(10)

2.book(书籍表),见表2-4

表2-4book(书籍表)

字段名称

数据类型

是否为空

是否主键

是否外键

书名

char(50)

作者

char(10)

现存

char(10)

时间

日期/时间

4.user(用户表),见表2-5

表2-5user(用户表)

字段名称

字段说明

数据类型

是否为空

是否主键

是否外键

id

编号

Int(4)

name

用户名

char(30)

psword

登录密码

char(30)

admin

是否管理员

Int(4)

2.3系统的设计与实现

对于本系统各个功能块的实现,是通过JAVA语言在JDK6.0环境下完成的,界面是用JAVASWING编写的,用Access2003实现JAVA语言与数据库的连接,最后完成整个系统的开发。

2.2.1登录界面(Login)

登录窗口是很多应用系统中不可缺少的组成部分。

通过验证用户输入的用户名和密码,决定是否允许用户进入系统,在一定程度上保证系统的安全。

本系统建立一个登录窗口,运行界面如图2-4所示。

图2-4登陆界面

本登录窗口在对话框上使用JTextField接收用户名,使用JPasswordField接收密码。

在按钮动作事件中对用户名和密码进行校验。

按确定键进入主界面,按取消键退出系统。

2.2.2主界面(MainWindow)

主界面是负责应用程序的,由它调用其他模块。

因此应该具有操作性好、界面清晰的特点,使用户能够很方便地找到所需功能。

根据功能需求和总体设计的结果,主界面包括菜单栏,图书登记管理,图片欣赏,音乐开关,时间系统。

可以通过点击菜单项进入相应的功能模块,此窗口的类名为“MainWindow”,窗体布局设置为默认面板BorderLayout。

在此窗体上添加菜单栏menuBar,和一个工具栏toolBar。

主界面如图2-5所示。

图2-5主界面

菜单栏bar的内容如表2-7所示。

表2-7菜单栏组成列表

名称

类型

文本

menul_01

JMenu

图书管理

menul_02

JMenu

学生管理

menul_03

JMenu

借阅管理

menul_04

JMenu

查询报表

menul_05

JMenu

关于

menul_06

JMenu

帮助

item1

JMenuItem

图书现存

item2

JMenuItem

图书翻新

图书登记管理

JMenuItem

图书登记管理

item3

JMenuItem

密码服务

item4

JMenuItem

自助服务

读者种类信息

JMenuItem

读者种类信息

读者基本信息

JMenuItem

读者基本信息

item5

JMenuItem

借阅信息

查询报表

JMenuItem

查询报表

关于

JMenuItem

关于

通过主界面来进入其他界面的方法为:

调用其他类里的构造方法或者方法。

因为跟数据库连接的缘故,所以所调用的类的构造函数必须设置成带rs(结果返回集)参数的。

主界面添加子窗体的方法,实现如下:

publicstaticvoidaddIFame(JInternalFrameiframe){

DESKTOP_PANE.add(iframe);}

主界面还调用了菜单栏和按钮的连接方法,实现如下:

publicclassMenuActions{

publicstaticMenuAndButtonActionMENUANDBUTTONACTION=newMenuAndButtonAction();

privatestaticclassMenuAndButtonActionextendsAbstractAction{

MenuAndButtonAction(){

putValue(Action.NAME,"图书登记管理");

}

publicvoidactionPerformed(ActionEvente){

MainWindow.addIFame(newBooktable());

}

}}

主界面上的音乐控制按钮实现如下:

finalJButtonbutton1=newJButton("停止音乐");

button1.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

chosenClip.stop();

button1.setLabel("开启音乐");

i++;

if(i%2==0){

{chosenClip.loop();

button1.setLabel("停止音乐");}

if(i%2!

=0){

{chosenClip.stop();

button1.setLabel("开启音乐");}

}

}

}

});

音乐播放功能实现如下:

 

try{

chosenClip=Applet.newAudioClip(file1.toURL());

chosenClip.loop();

}

catch(Exceptione){

e.printStackTrace();

}

主界面上的时间模块实现如下:

intdelay=1000;

ActionListenerdraw=newActionListener(){

publicvoidactionPerformed(ActionEventevt){

repaint();

}

};

newTimer(delay,draw).start();

}

publicvoidpaint(Graphicsg){

Calendarnow=newGregorianCalendar();

inthour=now.get(Calendar.HOUR_OF_DAY);

intminute=now.get(Calendar.MINUTE);

intsecond=now.get(Calendar.SECOND);

Stringst;

if(hour<10)

st="0"+hour;

else

st=""+hour;

if(minute<10)

st+=":

0"+minute;

else

st+=":

"+minute;

if(second<10)

st+=":

0"+second;

else

st+=":

"+second;

g.setColor(newColor(245,245,245));

g.fillRect(940,23,50,20);

g.setColor(Color.blue);

g.drawString(st,940,40);

Daten=newDate();

Stringssss=String.format("%ty/%tm/%td",n,n,n);

g.setColor(Color.BLACK);

g.drawString(ssss,940,52);

Stringsss=String.format("%tA",n);

g.drawString(sss,945,64);

g.setColor(newColor(169,169,169));

}

2.2.3密码修改界面(Mima)

此界面是给予用户自己修改自己的密码的界面,不能修改别人的登录密码。

在原始密码处输入刚刚使用的登录密码,否则弹出如图如图2-6所示

图2-6

在新建密码输入新的登录密码,并在确认密码处输入相同的密码,否则弹出如图如图2-7所示

图2-7

在数据全部正确时弹出如图如图2-8

图2-8

 

密码修改界面运行界面入下图2-9

 

图2-9

此界面导入了图片,实现的代码如下:

ImageIconii=newImageIcon(getClass().getResource("/Picture/c.jpg"));

JLabeluppicture=newJLabel(ii);

this.add(uppicture,BorderLayout.NORTH);

本界面运用BorderLayout和FlowLayout布局,用面板加以实现。

在按钮上增加监听器,点击出发事件。

2.2.4密码修改数据库链接(MimaConnect)

此类写了2.2.3密码修改界面(Mima)的数据库链接方法。

检验密码的主要代码实现如下:

Strings=Mima.passwordField1.getText();

con=DriverManager

.getConnection("jdbc:

odbc:

Driver={MicrosoftAccessDriver(*.mdb)};DBQ=db/db.mdb");

sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_UPDATABLE);

if(!

(Mima.passwordField1.getText().equals(Login.loginmima))){

JOptionPane.showMessageDialog(null,"原密码错误!

","警告",2);

return;

}

elseif(Mima.passwordField2.getText().equals(Mima.passwordField3.getText()))

;

else

{JOptionPane.showMessageDialog(null,"两次输入的密码不一致!

","警告",2);

return;

}

con.close();

密码修改的SQL语句如下

sql.executeUpdate("updateusersetpsword='"+

Mima.passwordField2.getText()+"'wherepsword='"+Mima.passwordField1.getText()+"'andname='"+Login.loginuser+"'");

2.2.5读者种类界面(ZhongleiReader)

此类记录了读者的编号,种类,借书的数量和期限。

本类运用BorderLayout和BoxLayout布局。

增加了图片和按钮,输入框,标签等。

运行界面如下图2-10

图2-10

如图所示,该窗体实现了增加,去除,修改,查询4个功能。

查询:

 

如果输入空,则结果如下图2-11

图2-11

 

其余都有警告框,不再图片显示。

当修改时,输入的编号不在数据库中,会弹出“不存在此编号”警告框

当增加时,先弹出确认对话框,若输入的编号已在数据库中,会弹出“已存在此编号”警告框。

当去除时,先弹出确认对话框,若输入的编号不在数据库中,会弹出“不存在此编号”警告框如下图2-12

图2-12

 

往种类编号里输入数字1,点击查询按钮

图2-13-1

以下给出用BoxLayout布局的实现代码

BoxbaseBox,boxV1,boxV2,boxV3,boxV4;

boxV1=Box.createVerticalBox();

boxV1.add(newJLabel("种类编号"));

boxV1.add(Box.createVerticalStrut(13));

boxV1.add(newJLabel("种类名称"));

boxV1.add(Box.createVerticalStrut(13));

boxV1.add(newJLabel("借书数量"));

boxV1.add(Box.createVerticalStrut(13));

boxV1.add(newJLabel("借书期限"));

boxV1.add(Box.createVerticalStrut(13));

boxV3=Box.createHorizontalBox();

boxV3.add(add);

boxV3.add(Box.createHorizontalStrut(20));

boxV3.add(del);

boxV3.add(Box.createHorizontalStrut(20));

boxV3.add(revise);

boxV3.add(Box.createHorizontalStrut(20));

boxV3.add(query);

boxV2=Box.createVerticalBox();

boxV2.add(种类编号);

boxV2.add(Box.createVerticalStrut(8));

boxV2.add(种类名称);

boxV2.add(Box.createVerticalStrut(8));

boxV2.add(借书数量);

boxV2.add(Box.createVerticalStrut(8));

boxV2.add(借书期限);

boxV2.add(Box.createVerticalStrut(8));

baseBox=Box.createHorizontalBox();

boxV4=Box.createVerticalBox();

baseBox.add(boxV1);

baseBox.add(Box.createHorizontalStrut(10));

baseBox.add(boxV2);

boxV4.add(Box.createVerticalStrut(33));

boxV4.add(baseBox);

boxV4.add(Box.createVerticalStrut(15));

boxV4.add(boxV3);

setLayout(newFlowLayout());

add(boxV4);

2.2.6读者种类数据库链接(ZhongleiReader)

此类写了链接读者种类信息界面的数据库链接,里面封装了4个方法:

查询,增加,修改,去除。

具体关键部分实现如下:

查询SQL语句

rs=sql.executeQuery("SELECT*FROMbookInformationwhere种类编号="+no);

while(rs.next()){

ZhongleiReader.种类名称.setText(rs.getString

(2));

ZhongleiReader.借书数量.setText(rs.getString(3));

ZhongleiReader.借书期限.setText(rs.getString(4));

JOptionPane.showMessageDialog(null,"查询成功!

");

}

增加SQL语句

rs=sql.executeQuery("select*frombookInformation");

rs.moveToInsertRow();

rs.updateInt(1,Integer.parseInt(ZhongleiReader.种类编号.getText()));

rs.updateString(2,ZhongleiReader.种类名称.getText());

rs.updateInt(3,Integer.parseInt(ZhongleiReader.借书数量.getText()));

rs.updateString(4,ZhongleiReader.借书期限.getText());

rs.insertRow();

删除SQL语句

sql.executeUpdate("deletefrombookInformationwhere种类编号="+no);

更新SQL语句

sql=con.createStatement();

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2