快递状态查询系统 JAVA课程设计-_第1页
快递状态查询系统 JAVA课程设计-_第2页
快递状态查询系统 JAVA课程设计-_第3页
快递状态查询系统 JAVA课程设计-_第4页
快递状态查询系统 JAVA课程设计-_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

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

5、loaderprivate URL url=null;public String download(String urlStrStringBuffer sb=new StringBuffer(;/字符缓冲区String line=null;BufferedReader buffer=null;/字符输入流tryurl=new URL(urlStr;HttpURLConnection urlConn=(HttpURLConnectionurl.openConnection(;/使用ur1创建HttpsURLConnection。buffer=new BufferedReader(newInput

6、StreamReader(urlConn.getInputStream(,"UTF-8"while(line=buffer.readLine(!=nullsb.append(line;5快递状态查询系统catch(Exception ee.printStackTrace(;finallytrybuffer.close(;catch(Exception ee.printStackTrace(;return sb.toString(;3.2XML解析模块的实现先创建一个SAXParserFactory,然后引用characters类得到标签里面的内容。以上过程的具体实现代码如下

7、:public class XML extends DefaultHandler/适配器模式public String str="",str1=""public XML(super(;trySAXParserFactory sf=SAXParserFactory.newInstance(;/创建一个SAXParserFactorySAXParser sp=sf.newSAXParser(;sp.parse(new InputSource("kuaidi.xml",this;catch(Exception ee.printStackTr

8、ace(;public void characters(char ch,int start,int length/得到标签里面的内容throws SAXExceptionString tag=(Stringtags.peek(;if(tag.equals("message"str1=new String(ch,start,length;str+="快递存在是否:"+str1+"n"else if(tag.equals("time"str1=new String(ch,start,length;str+="

9、签收时间:"+str1+"n"else if(tag.equals("context"str1=new String(ch,start,length;str+="签收情况:"+str1+"n"3.3图形界面模块的实现创建图形界面后,设置对应的位置,宽度和高度,然后设置窗口属性。以上过程的具体实现代码如下:public class MyFrame extends JFrame implements ActionListener BorderLayout bl=new BorderLayout(;/边框布局p

10、rivate JButton but1,but2;/按钮private JLabel num;/空字符串private JLabel shuoming1,shuoming,shuoming2,shuoming3;private JTextField tname,tnum;/单行文本private JTextArea tinformation;/多行文本XML reader;MyFrame(String ssuper(s;setSize(480,500;/设置为指定的宽度和高度setLocationRelativeTo(null;/置于屏幕的中央JPanel contentPanel=new J

11、Panel(;JPanel pan=new JPanel(;JPanel pan1=new JPanel(;JPanel pan2=new JPanel(;setContentPane(contentPanel;/设置窗口属性contentPanel.setLayout(bl;shuoming2=new JLabel("圆通的快递一般为10个数字,以1、2、6、8及v等开头"tinformation=new JTextArea(20,30;/20行,20列but1=new JButton("确定"but2=new JButton("退出&quo

12、t;num=new JLabel("单号:"tnum=new JTextField(15;tinformation.setLineWrap(true;pan2.add(shuoming2;pan2.add(tinformation;pan.add(num;pan.add(tnum;contentPanel.add(pan,BorderLayout.NORTH;contentPanel.add(pan2,BorderLayout.CENTER;pan1.add(but1;pan1.add(but2;contentPanel.add(pan1,BorderLayout.SOUT

13、H;but1.addActionListener(this;/添加指定的动作侦听器,以接收发自此按钮的动作事件but2.addActionListener(this;/this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE;/使用System exit方法退出应用程序setVisible(true;/设置可见性4问题与解决编写程序的过程中遇到了很多问题,但是通过与同学讨论和网上查询都一一解决了,这些问题主要是以下几种类别:1.XML文件解析错误对应视频上的代码,大致一样的情况下,还出现了并不能正确得出相应的信息的错误,所以并不知道错误在哪里,之后问

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论