Java课程设计校园IP查询系统.docx

上传人:b****8 文档编号:10489389 上传时间:2023-02-13 格式:DOCX 页数:17 大小:653.16KB
下载 相关 举报
Java课程设计校园IP查询系统.docx_第1页
第1页 / 共17页
Java课程设计校园IP查询系统.docx_第2页
第2页 / 共17页
Java课程设计校园IP查询系统.docx_第3页
第3页 / 共17页
Java课程设计校园IP查询系统.docx_第4页
第4页 / 共17页
Java课程设计校园IP查询系统.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

Java课程设计校园IP查询系统.docx

《Java课程设计校园IP查询系统.docx》由会员分享,可在线阅读,更多相关《Java课程设计校园IP查询系统.docx(17页珍藏版)》请在冰豆网上搜索。

Java课程设计校园IP查询系统.docx

Java课程设计校园IP查询系统

JAVA程序设计课程设计报告

课题:

校园IP系统查询

姓名:

学号:

专业班级:

指导教师:

设计时间:

评阅意见:

 

评定成绩:

指导老师签名:

年月日

 

 

2.1功能模块划分...........................2

 

一、系统描述:

校园IP地址查询系统采用Java语言和SQL语句结合设计开发,将局域网内的IP地址进行分组归类,用户可以查询局域网内任一IP地址的归属。

要进行本系统的开发,必须对数据库比较熟悉,并且应该熟悉Java编程,而且还要熟悉利用JDBC进行数据连接的知识。

为了数据信息的表达和数据信息的网络传输,这个系统Mysql数据库来存储数据,即先通过JDBC-ODBC连接,将数据从文件中读取出来再存储到数据库中,然后GUI界面中的查询,通过数据库的连接,采用sql语句判断数据是否存在数据库中。

二、分析与设计:

2.1、功能模块划分:

2.1.1、把IP地址信息放在统一的ip.txt文件中,通过程序把文件中的数据输入到数据库中。

2.1.2、校园IP地址查询系统的主界面:

校园IP地址查询系统的的这界面主要包括IP地址显示区间、IP地址输入栏、IP地址检索信息输出栏、“查询”按钮、“退出”按钮。

(对照表将有利于对照查询地结果的正确性)

根据实际需求设计的主界面如下图。

校园IP地址查询主界面

2.2、数据库结构描述:

2..2.1、建立ip地址信息数据库

校园ip地址查询系统选用mysql作为数据库,sqlyog为msql的可视化界面。

2.2.2、创建ip地址信息库

(一)创建数据库表,如下图

(二)创建数据库表名,如下图

2.3、系统详细设计文档:

校园IP地址查询系统要求比较高的响应速度和异构平台的互通,它需要实现如下功能:

(1)IP信息存储功能。

根据输入文本文件的IP地址信息,通过JDBC-ODBC数据库连接实现对mysql数据库的连接,将IP地址信息存储到数据库中。

数据库中的每一条IP地址信息由2个段:

IP地址、IP地址所属地址,并且以IP地址为索引以保证地址信息的唯一性。

将IP地址存储在mysql数据库中有利于实现数据源的唯一性,也有利于IP信息数据更新的简单性和高效性。

IPDB类的主要作用是将IP地址写入数据库,它首先从文本文件中读取IP地址段信息,然后再将这些信息写入数据库中保存。

(2)IP信息查询功能。

根据GUI界面中的查询,程序保存GUI界面输入的IP地址,通过数据库的连接,采用sql语句判断数据输入的IP地址是否存在数据库中。

如果存在则根据IP地址,来获取存在数据库中,有关这个IP地址的所属地址信息。

然后返回给GUI界面,以供用户读取。

如果不存在,则返回“所查询的IP地址不输入我们学校的”;这个功能主要是由IPJFrame类和MySql类实现,IPJFrame类主要是负责界面设计,以及显示返回的结果,Mysql类主要是连接数据库,实行查询IP地址,检索IP地址的所属的地址信息。

2.4、各个模块的实现方法描述:

校园IP地址查询系统的的这界面主要包括IP地址显示区间、IP地址输入栏、IP地址检索信息输出栏、“查询”按钮、“退出”按钮。

IP地址显示区罗列出局域网内所有的IP地址分段及其属主情况、查询地址输入区用于输入需要查询的IP地址,另外还需要给查询按钮和退出按钮添加相应的事件处理逻辑。

2.5、测试数据及期望结果:

三、源代码:

这段代码是把IP地址的基本信息文件导入到数据库中

publicvoidsaveIPtoDB()throwsException

{

toDBdb=newtoDB();

bf=newBufferedReader(newFileReader("E:

\\javaclass\\test4\\src\\test\\ip.txt"));

while((s=bf.readLine())!

=null)

{

for(inti=0;i<4;i++)

{

ip[i]="";

}

intindex=0;

StringTokenizerst=newStringTokenizer(s,"");

while(st.hasMoreElements())

{

s=(String)st.nextElement();

ip[index++]=s;

}

ipinfo=ip[1]+""+ip[2]+""+ip[3];

sql="insertIP"+"values('"+ip[0]+"','"+ipinfo+"')";

db.connection(sql);

db.execute();

}

}

这段代码是校园IP地址查询系统的界面

jLabel1.setFont(newjava.awt.Font("宋体",1,24));//NOI18N

jLabel1.setText("校园IP地址查询");

jLabel2.setFont(newjava.awt.Font("宋体",1,14));//NOI18N

jLabel2.setText("输入待查询的IP地址:

");

shuRuTextField.setFont(newjava.awt.Font("宋体",1,14));//NOI18N

jLabel4.setIcon(newjavax.swing.ImageIcon("C:

\\DocumentsandSettings\\Administrator\\桌面\\ip.jpg"));//NOI18N

jLabel4.setText("jLabel4");

jLabel5.setFont(newjava.awt.Font("宋体",1,14));//NOI18N

jLabel5.setText("查询结果:

");

xianShiTextField.setFont(newjava.awt.Font("宋体",1,14));//NOI18N

findButton.setFont(newjava.awt.Font("宋体",1,14));//NOI18N

findButton.setText("查询");

findButton.addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(java.awt.event.ActionEventevt){

findButtonActionPerformed(evt);

}

});

exitButton.setFont(newjava.awt.Font("宋体",1,14));//NOI18N

exitButton.setText("退出");

exitButton.addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(java.awt.event.ActionEventevt){

exitButtonActionPerformed(evt);

}

});

javax.swing.GroupLayoutjPanel1Layout=newjavax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(144,144,144)

.addComponent(jLabel1))

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING,false)

.addGroup(javax.swing.GroupLayout.Alignment.LEADING,jPanel1Layout.createSequentialGroup()

.addGap(37,37,37)

.addComponent(jLabel3)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE)

.addComponent(jLabel4,javax.swing.GroupLayout.PREFERRED_SIZE,344,javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(javax.swing.GroupLayout.Alignment.LEADING,jPanel1Layout.createSequentialGroup()

.addGap(60,60,60)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false)

.addGroup(jPanel1Layout.createSequentialGroup()

.addComponent(jLabel2)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(shuRuTextField,javax.swing.GroupLayout.PREFERRED_SIZE,189,javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel1Layout.createSequentialGroup()

.addComponent(jLabel5)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(xianShiTextField)))))

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(91,91,91)

.addComponent(findButton)

.addGap(82,82,82)

.addComponent(exitButton)))

.addContainerGap(61,Short.MAX_VALUE))

);

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jLabel1)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel2)

.addComponent(shuRuTextField,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(202,202,202)

.addComponent(jLabel3))

.addGroup(jPanel1Layout.createSequentialGroup()

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel5)

.addComponent(xianShiTextField,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabel4)))

.addGap(18,18,18)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(exitButton)

.addComponent(findButton))

.addContainerGap(25,Short.MAX_VALUE))

);

javax.swing.GroupLayoutlayout=newjavax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jPanel1,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE)

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jPanel1,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE)

);

pack();

}

privatevoidfindButtonActionPerformed(java.awt.event.ActionEventevt){

shuChu="";

xianShiTextField.setText("");

StringstrIP=shuRuTextField.getText();

if(strIP.length()==0)

{

shuChu="请输入待查询的IP地址!

";

shuRuTextField.setText(shuChu);

return;

}

else

{

intr=0;

r=strIP.indexOf(".");

if(r>2)

{

shuChu=newMySql().mySelect(strIP);

xianShiTextField.setText(shuChu);

}

else

{

shuChu="你查询的IP不合法!

";

shuRuTextField.setText(shuChu);

}

}

}

privatevoidexitButtonActionPerformed(java.awt.event.ActionEventevt){

System.exit(0);

}

这段代码是实现查询功能的

publicStringmySelect(Stringselect_value)

{

Stringsql="select*fromip"+"whereip='"+select_value+"'";

toDBdb=newtoDB();

db.connection(sql);

try

{

rs=db.executeQuery();

while(rs.next())

{

ipinfo=rs.getString("info");

}

if(ipinfo==null)

{

result="您查询在IP地址不是我们学校的";

}

else

{

result=ipinfo;

}

}

catch(Exceptione)

{

e.printStackTrace();

}

returnresult;

}

四、总结:

通过这次课程设计使我受益匪浅。

拿到这个课题时我们刚开始时就觉得不是很容易,但是当我们仔细的分析后我们发现其实并不是很难。

首先就明确每一个人得任务,然后再分工。

我是负责数据库的数据,刚开始我只是按照一定的顺序和一定的规律构造出一系列的IP地址,其中包括了我们学校的全部地方。

请老师帮我们检查后发现,我们的IP有一些是不合法的,这是我们又到网上查了一些关于IP地址相关的知识,更深刻的认识了IP地构造,以及原理,更正了数据后,又将数据分了类制造了一张表,便于数据查询时的核对。

我很佩服我们小组的另外几位成员,他们完成了任务的关键部分。

奇思构想,完成那些函数,那些功能,巧妙的利用函数与JDBC将数据与数据库连接起来,将数据与程序连接起来。

同时也让我觉得其实团结就是力量,使我也懂得了团队的力量,懂得成员之间的合作与交流。

一个大的工程不管有多复杂,但是只要你有信心,有勇气去将它分解成一个一个的小的项目,那个工程也就迎刃而解了。

这正是我们今后将要面对的,也是要解决的,这一次课程设计业是一次不错的历练。

五、参考文献:

[1].黄晓明.课程设计案例精编(第二版).中国水利水电出版社,2007

[2].邱加永.jsp基础与案例开发详解.清华大学出版社,2009

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

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1