快递状态查询系统 java课程设计

上传人:hs****ma 文档编号:565048015 上传时间:2023-07-21 格式:DOCX 页数:12 大小:68.95KB
返回 下载 相关 举报
快递状态查询系统 java课程设计_第1页
第1页 / 共12页
快递状态查询系统 java课程设计_第2页
第2页 / 共12页
快递状态查询系统 java课程设计_第3页
第3页 / 共12页
快递状态查询系统 java课程设计_第4页
第4页 / 共12页
快递状态查询系统 java课程设计_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《快递状态查询系统 java课程设计》由会员分享,可在线阅读,更多相关《快递状态查询系统 java课程设计(12页珍藏版)》请在金锄头文库上搜索。

1、1课题介绍11.1课程设计目的11.2课程设计要求12总体设计22.1程序的模块划分22.2程序模块图22.3程序测试效果图33详细设计43.1文件下载模块的实现43.2 XML解析模块的实现53.3图形界面模块的实现64问题与解决95课程设计心得106参考文献111课题介绍1.1课程设计目的课程设计题目:快递状态查询系统本课程设计的目的是可以使用户在局域网的情况下,进行查询相应的快递信 息。通过这个课程要学会通过java下载网上提供的XML接口文件,并将获取的 XML数据解析后以文字或图片形式显示到图形界面上。还需要掌握XML的所对应的相应形式。1.2课程设计要求将在网上下载的XML进行数据

2、解析后以文字或图片形式显示到图形界面上 榜。要求正确显示用户所输入订单号查询的信息,且在输入错误时显示错误的信 息,使用户能再次多次重新输入。2总体设计2.1程序的模块划分根据课题要求和程序需求,本快递状态查询系统总体上划分为如下四个模 块:图形界面外模块(Frame类)、图形界面内模块(MyFrame类),文件下载模 块(Downloader类)和XML数据解析模块(XML类)。程序的模块结构如图2-1 所示。(1)图形界面模块先在图形界面上设置标签,文本框,按钮,文本区,调用Downloader类下 载文件,然后写入文件” kuaidi.xml ”中,调用XML类解析文件。(2)文件下载模

3、块创建一个URL对象,创建Http链接,调用openConnection方法,使用IO 流输出数据,每次读取一行数据,将它添加到StringBuffer对象后面,抛去异 常,关闭IO流,将数据转为St ring对象返回出去。(3)文件解析模块创建一个解析器工厂,在其基础上创建一个解析器,开始解析文件。解析文 件中的元素,若标签中的元素和正在解析的标签的名字一样,输出标签内的内容。2.2程序模块图图2-1程序流程图2.3程序测试效果图2-2程序效果图3详细设计3.1文件下载模块的实现首先从程序主界面上的文本输入框中获取用户输入的待查询订单号,并将该 订单号作为参数拼接到课题所规定的服务器查询地址

4、中。比如:若用户在界面输 入“6215530004”,则拼接得到的查询地址为“http:/ 对象,该URL对象打开一个HTTP连接后,通过该HTTP连接的getlnputStream() 方法将获取到服务器对上述查询地址响应的XML接口数据字节流。最后将该字节流转换为字符流(InputStreamReader),再将字符流转换为带 缓冲区的字符流(BufferReader),就可以利用BufferReader类提供的readLine() 方法按行读取服务器返回的XML接口数据了。以上过程的具体实现代码如下:public class Downloaderprivate URL url = nul

5、l ;public String download(String urlStr)St ringBuffer sb = new St ringBuffer();/字符缓冲区String line = null ;BufferedReader buffer = null ;/字符输入流try url = new URL(urlS tr);HttpURLConnection urlConn = (HttpURLConnection)url.openConnec tion ();/使用 ur1 创建 Htt psURLConnec tion。buffer = new BufferedReader(ne

6、wInp utSt reamReader(urlConn.ge tlnputSt ream(),UTF-8);while(line = buffer.readLine()!=null)sb.append(line);ca tch(Excep tion e)e.pri ntSt ackTrace();finallyt rybuffer.close();ca tch(Excep tion e)e.pri ntSt ackTrace();return sb.toSt ring();3.2 XML解析模块的实现先创建一个SAXParserFactory,然后引用characters类得到标签里面的内

7、容。以上过程的具体实现代码如下:public class XML ext ends Defau lt Handler /适配器模式public String str=,stri二“;public XML() super();try SAXParserFactory sf = SAXParserFactory.newInstance();/创建一个 SAXParserFactorySAXParser sp = sf.newSAXParser();sp.parse(new Inp ut Source(kuaidi.xml), t his); catch (Exception e) e.pri nt

8、St ackTrace();Sys tem.o ut .pri ntl n(s tr);/public void characters(char ch, int start, int length) 得到标签里面的内容throws SAXException St ring tag = (St ring) t ags.peek();if (t ag.equals(message) st rl二new St ring(ch, start, leng th);str+=快递存在是否:+str1+n;else if (t ag.equals( ti me) st r1二new St ring(ch,

9、start, leng th);str+=签收时间:+str1+n;else if (t ag.equals(co ntext) st r1二new St ring(ch, start, leng th);str+=签收情况:+str1+n;3.3图形界面模块的实现创建图形界面后,设置对应的位置,宽度和高度,然后设置窗口属性。以上过程的具体实现代码如下:public class MyFrame extends JFrame implements ActionListener BorderLayo ut bl = new BorderLayo ut();/边框布局priva te JBu tto

10、n bu tl , but 2;/按钮priva te JLabel num ;/空字符串private JLabel shuoming1 ,shuoming , shuoming2 ,shuoming3 ;priva te JTex tF ield tn ame , tnum ;/单行文本priva te JTex tArea tin forma tion ;/多行文本XML reader ;MyFrame (St ring s)super(s);se tSize(480,500);/设置为指定的宽度和高度 set Loca tionRela tiveTo(null);/置于屏幕的中央JPa

11、nel contentPanel = new JPanel();JPanel pan = new JPanel();JPanel pan1 = new JPanel();JPanel pan2 = new JPanel();se tCon ten tPane(con tent Panel);/设置窗口属性 content Panel.se tLayo ut( bl);shuoming2 = new JLabel(圆通的快递一般为10个数字,以1、2、6、 8及v等开头);tinformation 二 new JTextArea(20,30);/20 行,20 列 butl 二 new JBut

12、ton(确定);bu t2 = new JBu tt on( 退出);num = new JLabel( 单号:);tnum = new JTextField(15);tinformation.setLineWrap(true);pan2.add(shuoming2);pan2.add( tin forma tion);pan.add(num);pan.add( tn um);content Panel.add(pan,BorderLayo ut.N ORTH);content Panel.add(pan2, BorderLayo ut .CENTER);panl.add(b utl);pan

13、l.add(b ut 2);content Panel.add(pan1,BorderLayo ut .SOUTH);but 1.addActionListener(this);/添加指定的动作侦听器,以接收发自 此按钮的动作事件but 2.addAc tio nLis tener( this);/t his.se tDefaul tCloseOpera ti on(JFrame.EXIT_ON_CLOSE);/使用 System exit方法退出应用程序se tVisible( true);/设置可见性4问题与解决编写程序的过程中遇到了很多问题,但是通过与同学讨论和网上查询都一一 解决了,这

14、些问题主要是以下几种类别:1. XML文件解析错误对应视频上的代码,大致一样的情况下,还出现了并不能正确得出相应的信 息的错误,所以并不知道错误在哪里,之后问了同学之后,才解决了相应的 问题。2. 图形界面未能显示在最后的结果中,结果未能在图形界面上显示,只能在eclipse的结果中显 示,当时并不知道是为什么,但在查询相应的API之后,才能显示到图形界 面中。3在显示的结果中未能自动换行在显示的结果中只能显示一行输出,在询问同学后使用了一个类之后实现了 自动换行的功能。5课程设计心得经过这次课程设计,我对Java又有了一定地深入了解,这次我选的题目 是快递状态查询系统,涉及的编程知识不是太多,主要的就是在文件下载模 块和XML解析的模块,虽然之前并不懂这两个模块,但在仔细看了发的几个 视频后,基本能了解大致的内容,但在很多地方有许多问题,比如并不知道 某几行代码的意思,但只要按照视频所给的样例代码一样写上去就没错,并 且能得出结果,之后也在百度查询了相应的意思,虽然能知道在文字上的大 概意思,但其实并不知道真正的意思,只能按照别人写的方式来进行编程。 这样我并不能具有很强的编程能力,只能跟在别人的后面,别人做什么,我 也做什么,所以此次对自己十分的不满意,并不能真

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号