《Java课程设计--日常信息查询系统.docx》由会员分享,可在线阅读,更多相关《Java课程设计--日常信息查询系统.docx(17页珍藏版)》请在优知文库上搜索。
1、第1章课题概述11.1 课题的目的11.2 课题的要求11.2. 1图形界面的要求11.2.2 输出信息的要求11.2.3 异常的要求1第2章概要设计21.1 整个程序的模块结构及流程22. 2信息查询系统的主要步骤描述32.1.1 手机号码归属地查询错误!未定义书签。2.1.2 2.2IP地址查询错误!未定义书签。2.1.3 身份证号码查询错误!未定义书签。第3章程序功能的实现43. 1主文件的实现43.2主要功能模块的实现43.2.1下载数据并解析的实现63.2.2手机号码归属地查询的实现83.2.3IP地址查询的实现93.2.4身份证号码查询的实现错误!未定义书签。第4章调试及发现问题的
2、解决7第5章程序测试及分析12第6章总结15参考文献16第1章课题概述本次数据结构课程设计的题目是设计并实现一个口常信息查询系统1.1 课题的目的这个信息查询系统可以查询一些我们的日常信息,比如手机号码归属地、IP地址、身份证号码。通过这个实验不仅仅可以让获得我们在设计好程序后的成就感,还可以强化我们对io流,图形界面的理解,并且了解并掌握一些基本的联网获取网上信息一一信息的下载,解析和输出。1.2 课题的要求1.2.1 图形界面的要求(1)应该要设计出一个或者多个窗口,要求美观,简介,需要包含一些必要的文字提示及说明,查询功能实现的按钮,输入框以及显示得到的信息的相关文本组件。(2)最好能有
3、多个窗口界面,有序地排列,分类所要查询的项目。1.2.2 输出信息的要求(1)不能出现乱码。(2)输出的信息要求有条理,按次序。1.2.3 异常的要求(1)要求能识别空输入,不存在的号码等一些基本的异常。(2)要求能进行多次输入。第2草概要设计2.1整个程序的模块结构及流程根据课题要求,整个程序按功能可划分为手机号码归属地查询、IP地址查询、身份证号码查询三个主要模块。这个系统还要求能实现用户与机器的互动,按用户的要求来查询相关信息。程序各功能模块的划分,及主要流程如图2-1所示。1开始)显示菜单出入菜单项机码属杳手号归地份号查身证码图2-1整个程序各功能模块间的流程2.2信息查询系统的主要步
4、骤描述2.2.1手机号码归属地查询设计出图形界面,当然这个图形界面并不是独立的,不然太麻烦了,也没必要,图形界面里肯定至少要有输入框、查询按钮以及显示信息的文本框。首先,我先得到一个用户输入的手机号码,之后将这个号码以字符串的形式添加到事先设置好的网址后面,然后就可以将这个总的字符串通过URL联网并得到用户所需的信息,当然,我们必须得通过Utf-8转码,不然会是乱码,之后再解析这个字符串并返回给用户。其他的查询功能其实都是一样的。2.2.2IP地址查询设计图形界面。首先,我先得到一个用户输入的IP地址,之后将这个IP地址以字符串的形式添加到事先设置好的网址后面,然后就可以将这个总的字符串通过U
5、RL联网并得到用户所需的信息,当然,我们必须得通过Utf-8转码,不然会是乱码,之后再解析这个字符串并返回给用户。2.2.3身份证号码查询设计图形界面。首先,我先得到一个用户输入的身份证号码,之后将这个身份证号码以字符串的形式添加到事先设置好的网址后面,然后就可以将这个总的字符串通过URL联网并得到用户所需的信息,当然,我们必须得通过Utf-8转码,不然会是乱码,之后再解析这个字符串并返回给用户。第3章程序功能的实现3.1主文件的实现我的主文件是一个图形界面的设计,其他相关的功能都写在了其他的文件里,在主文件里调用他们就可以了,避免了文件的繁缗冗长,而且调理清晰,便于以后的修改维护。下面是我的
6、主文件。classMyListenerSearchPhoneimplementsActionListenerIpublicvoidactionPerformed(ActionEvente)StringphoneNum=jiphone.getTextO;DataAnalysisldd=newDataAnalysislO;JDialogjdIphone=newJDialog(jiphone,“查询结果”);ContainerCtephone=jdlphone.getContentPaneO;jdlphone.SetLayout(newGridLayout(1,1);dd.datanalysis(p
7、honeNum);JTextAreajtaphone=newJTextAreaO;jdlphone.setVisible(true);jdlphone.SetBounds(550,300,300,200);jtaphone.setFont(newjava.awt.Font(新宋体,Font.PLAIN,16);jtaphone,append(dd.PrOVince+“nr);jtaphone,append(dd.City+“nr);jtaphone,append(dd.areacOde+“nr);jtaphone,append(dd.zip+“nr);jtaphone,append(pany+
8、zznrz,);jtaphone,append(dd.card+“nr);Ctephone.add(jtaphone);)classMyListenerlPimplementsActionListenerJTextFieldjiIP;JDialogjllP;publicvoidactionPerformed(ActionEvente)jlIP=newJDialog(jf,查询IP地址”);JLabeljlbIP=newJLabeI(IP地址为“);JiIP=newJTextField(20);ContainerctIP=jlIP.getContentPane();jlIP.SetLayout(
9、null);jlIP.SetVisible(true);jlbIP.setFont(newjava.awt.Font(新宋体,Font.PLAIN,16);jlIP.setBounds(550,300,300,200);jlbIP.setBounds(100,20,210,50);jiIP.setBounds(80,70,100,25);ctIP.add(jiIP);ctIP.add(jbSearchIP);ctIP.add(jlbIP);JbSearchIP.addActIonListener(newMyListenerSearchIP();)classMyListenerSearchIPi
10、mplementsActionListenerfpublicvoidactionPerformed(ActionEvente)StringphoncNum=jiIP.getText();DataAnalysis2dd=newDataAnalysis2();JDialogJdlIP=newJDialog(jlIP,查询结果”);ContainerCteIP=jdlIP.getContentPane();jdlIP.SetLayout(newGridLayout(1,1);dd.dataAnalysis(phoneNum);JTextAreajtaIP=newJTextAreaO;JcllIP.S
11、etVisible(true);jdlIP.setBounds(550,300,300,200);JtaIP.setFont(newjava.awt.Font(新宋体,Font.PLAIN,16);jtaIP.append(dd.area+“nr);jtaIP.append(dd.IOCation+“nr);cteIP.add(jtaIP);)classMyListenerIDimplementsActionListenerfJTextFieldjiID;JDialogjlID;publicvoidactionPerformed(ActionEvente)(jHD=newJDialog(jf,
12、”查询身份证号码“);JLabeljlbID=newJLabei.(身份证号码为“);jiID=newJTextField(20);ContainerctID=jHD.getContentPane();jHD.SetLayout(null);jHD.setVisible(true);jlbID.setFont(newjava.awt.Font(新宋体,Font.PLAIN,16);jlID.setBounds(550,300,300,200);jlbID.setBounds(100,20,210,50);jiID.setBounds(80,70,100,25);ctID.add(jiID);c
13、tID.add(jbSearchIP);ctID.add(jlbID);JbSearchIP.addActIonListener(newMyListencrSearchIP();)classMyListenerSearchIPimplementsActionListenerfpublicvoidactionPerformed(ActionEvente)StringphoncNum=jiID.getText();DataAnalysisSdd=newDataAnalysis3();JDialogjdlID=newJDialog(jlID,查询结果”);ContainerCteID=jdlID.g
14、etContentPane();jdlID.SetLayout(newGridLayout(1,1);dd.dataAnalysis(phoneNum);JTextAreajtaID=newJTextAreaO;JcllID.SetVisible(true);jdlID.setBounds(550,300,300,200);JtaID.setFont(newjava.awt.Font(新宋体,Font.PLAIN,16);jtaID.append(dd.area+“nr);jtaID.append(dd.sex+“nr);jtaID.append(dd.birthday+“nr);cteID.
15、add(jtaID);)3.2主要功能模块的实现3.2.1下载数据并解析的实现想要实现这个系统必须先要下载数据,我下载的是json类型,并按照相关的要求进行解析。实现下载数据并解析的代码如下:publicclassHttpDownloaderpublicStringdownload(Stringaddress)StringBuffersb=newStringBufferO;Stringline=null;BufferedReaderbuffer=null;try(URLurl=newURL(address);HtIpURLConnectionurlConn=(HttpURLConnection)url.OpenConnection();buffer=newBufferedRcader(newInputStreamRcader(urIConn.getInputStrcam(),“UTF-8);while(line=