Java课程设计--日常信息查询.docx

上传人:p** 文档编号:682165 上传时间:2024-01-10 格式:DOCX 页数:14 大小:57.98KB
下载 相关 举报
Java课程设计--日常信息查询.docx_第1页
第1页 / 共14页
Java课程设计--日常信息查询.docx_第2页
第2页 / 共14页
Java课程设计--日常信息查询.docx_第3页
第3页 / 共14页
Java课程设计--日常信息查询.docx_第4页
第4页 / 共14页
Java课程设计--日常信息查询.docx_第5页
第5页 / 共14页
Java课程设计--日常信息查询.docx_第6页
第6页 / 共14页
Java课程设计--日常信息查询.docx_第7页
第7页 / 共14页
Java课程设计--日常信息查询.docx_第8页
第8页 / 共14页
Java课程设计--日常信息查询.docx_第9页
第9页 / 共14页
Java课程设计--日常信息查询.docx_第10页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java课程设计--日常信息查询.docx》由会员分享,可在线阅读,更多相关《Java课程设计--日常信息查询.docx(14页珍藏版)》请在第壹文秘上搜索。

1、目录第一章课题概述ILl课题的目的I1.2课题的要求I1.2.1输入输出的要求IL2.2程序实现的功能要求I第2章概要设计Il2.1 整个程序的模块结构及流程Il2.2 从网络上获取信息并输出Il2.3 输入数据合法性的检测即初步处理Il第3章程序功能的实现IV3.1 主窗口的实现IV3.2 查询的实现IV3.3 联网下载数据V3.4 解析数据Vl第4章调试及发现问题的解决10第5章程序测试及分析11第6章总结12参考文献13第一章课题概述本次小学期JAVA课程设计的题目是日常信息查询(手机号码归属地查询,IP地址查询,身份证号码查询)1.1 课题的目的日常信息查询是为了方便日常生活中人们获取

2、需要的相关信息。没有网络数据共享的情况下,人们需要从相关书籍资料中查找;而在网络的环境下,人们可以通过网络数据方便地提取出自己需要的数据信息。因此,需要采取一定的方法将所需网络数据提取,下载并解析后呈现出来,通过编写计算机程序的方式来实现这些功能,无疑具有较大的实际意义。1.2 课题的要求1.3 .1输入输出的要求(1)程序运行后首先输出一个主菜单,并将输入框、三个查询按钮、文本输出框呈现出来,以便用户输入需要查询的信息,进行相应的操作。(2)查询信息应能够从键盘输入。(3)用户每次更新输入数据并选择查询菜单后,应能立即输出运算的结果。(4)运行结果的输出应整齐、清晰,以便用户能够验证程序的正

3、确性。1.2. 2程序实现的功能要求用户输入数据点击查询后,可以立即在文本输出框中得到所需信息;(1)实现用手机号码查询归属地和运营商(2)实现用IP地址查询归属地(3)实现用身份证号查询出生地、出生年月日、性别第2章概要设计2.1 整个程序的模块结构及流程根据课题要求,整个程序可划分为读取信息,信息查询,输出信息。主要流程如图所示结束T图2-1程序流程图2.2 从网络上获取信息并输出(1)获取查询对象后,根据按钮的监听进行网络连接,开始查询并下载;(2)通过数据解析将所需要的信息提取并输出,即在文本输出框输出关键信息;2.3 输入数据合法性的检测即初步处理数据查询前,为防止用户输入非法数据,

4、而导致查询失败,对用户输入的数据进行合法性检验是非常重要的。比如,防止用户输入字母,标点符号等其他不合法数据;第3章程序功能的实现3.1 主窗口的实现设置输入框,输出框,三个查询按钮,IPCHECK,IDCHECK,PHCHEK。该方法实现主要通过调用java.awt和java.SWing包中提供的方法来构建图形界面,输入框即添加TeXtField,输出框即添加TCXtAera,按钮即添加三个Button.这样就可以得到所需界面了。主要代码如下所示:MyFrame(Strings)super(s);phonetn=newJButton(*PHCHECK*);iptn=newJButton(IP

5、CHECK);idtn=newJButtonClDCHECK);SetLayout(newFlowLayout();add(lab);add(tf);add(ta);add(phonetn);add(iptn);add(idtn);add(newJScrolIPane(ta);/SetResizable(false);SetLocation(300,300);setSize(200,200);pack();setVisible(true);3.2 查询的实现用监听器对按钮进行监听,可以通过调用实现ActionListener接口的Monitor类方法,主要代码如下:Monitorm=newMo

6、nitorO;phonetn.addActionListener(m);iptn.addActiOnListener(m);idtn.addActionListener(m);3.3 联网下载数据实现点击按钮进行网上查询,然后下载。首先我们需要从网上找到相应的接口来下载,联网下载数据需要我们用到java,net包和java,i。来处理,将下载来的数据保存在一个字符串中,便于下面来处理。下载类只有一个方法,这是由于前面监听器已经将查询对象辨别出来。首先你要获得一个网址,将用Url类将网址变成一个Url对象,用里面的HttpUrlConnection方法开始连接网络,然后用BufferRead来读

7、取每一行然后连接起来,最后转换成字符串返回。具体代码如下:StringBuffersb=newStringBufferO;Stringline;BufferedReaderbf=null;try(url=newURL(n);HttpURLConnectionurlconn=(HttpURLConnection)url.OpenConnection();bf=newBufferedReader(newInputStreamReader(urlconn.getInputStreamO,“UTF-8);while(line=bf.readLine()!=null)sb.append(line);)c

8、atch(Exceptione)finallytry(if(bf!=null)bf.closeO;elsereturnnul1;catch(IOExceptione)e.PrintStackTraceO;)returnsb.toString().trim();)3.4 解析数据解析数据之前需要对我们下载的数据进行处理,因为数据必须是标准格式的数据,这里强调一下,在上面下载数据的时候通过调用“UTF-8”的方法已经将数据转换成GSOn数据,如果这里处理不当将会出现乱码的问题,导致解析数据失败。解析需要用到我们Google-Gson包给我们提供的方法来解析,首先我们需要将这个数据编程我们事先定义好

9、的实体类,用实体类的get()方法就可以的出想要的结果。代码如下:publicStringparseProvince(StringJson)Gsongson=newGson();JsonReaderjr=newJsonReader(newStringReader(Json);jr.SetLenient(true);Useruser=gson.fromjson(jr,User,class);Strings=user.getProvince();returns;)publicStringparseCity(StringJson)Gsongson=newGson();JsonReaderjr=new

10、JsonReader(newStringReader(Json);jr.SetLenient(true);Useruser=gson.fromjson(jr,User,class);Strings=user.getCity();returns;)publicStringparselpLoc(Stringdata)Gsongs=newGson();JsonReaderjs=newJsonReader(newStringReader(data);js.SetLenient(true);Useruse=gs.fromjson(js,User,class);Strings=use.getLocatio

11、n();returns;publicStringparseArea(Stringdata)Gsongs=newGson();JsonReaderjs=newJsonReader(newStringReader(data);Useruse=gs.fromjson(js,User,class);Strings=use.getArea();returns;publicStringparseldSex(Stringdata)Gsongs=newGson();JsonReaderjs=newJsonReader(newStringReader(data);Useruse=gs.fromjson(js,U

12、ser,class);Strings=use.getSex();returns;publicStringParseIdBirthday(Stringdata)Gsongs=newGson();JsonReaderjs=newJsonReader(newStringReader(data);Useruse=gs.fromjson(js,User,class);Strings=use.getBirthday();returns;)解析数据过程中重要的一点就是将所需数据从下载数据中提取出来,这就需要匹配。实体类代码如下:publicclassUserStringprovince;Stringcity

13、;Stringlocation;Stringarea;Stringsex;Stringbirthday;publicStringgetBirthday()returnbirthday;)publicvoidSetBirthday(Stringbirthday)this,birthday=birthday;)publicStringgetSex()returnsex;)publicvoidsetSex(Stringsex)this,sex=sex;)publicStringgetArea()returnarea;)publicvoidsetArea(Stringaddress)this,area

14、=area;publicStringgetLocation()returnlocation;)publicvoidSetLocation(Stringlocation)this,location=location;)publicStringgetProvince()returnprovince;)publicvoidSetProvince(Stringprovince)this,province=province;publicStringgetCity()returncity;)publicvoidsetCity(Stringcatname)this.city=catname;第4章调试及发现

15、问题的解决虽然在程序的编写过程中遇到了很多问题,但是通过上网查阅相关资料,与其它同学讨论,询问指导老师等方式,最终都一一解决了,程序实现及调试过程中遇到的主要问题及解决方法如下。程序运行以后,在下载数据,进行读取时发现数据格式不匹配,出现乱码解决方法:在用BufferReader读取数据时进行转码,转为UTF-8,这样就可以在JAVA开发环境下正常读取;2、数据解析时,接口不同,实体类中创建的对象方法也不同,如果不匹配则无法正确解析;解决方法:可以先将下载的数据放入字符串中打印输出,这样既可以检测下载方法的正确性,又可以根据数据对实体类中的方法进行修改。第5章程序测试及分析运行程序,首先显示主菜单,列出三个按钮,PHCHECK,IPCHECK,IDCHECk分别输入电话号码,IP号码,身份证号

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

当前位置:首页 > IT计算机 > Java

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!