实验6-异常与字符串

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

南昌大学实验报告学生姓名:王维学号:6100212202专业班级:网工121班实验类型:■验证□综合□设计□创新实验日期:实验成绩:实验6异常与字符串(String类)的使用一、实验目的1、掌握异常处理机制的运作2.掌握处理异常的几个子句:try„catch..finally、thorws和throw3、掌握String类和StringBuffer类的基本使用方法4、通过上机编写和运行关于字符串的程序来加深对String类和StringBuffer类等的了解二、实验内容(1)课本P36713.19和P36813.113.19异常类:publicclassInvalidRadiusExceptionextendsException{privatestaticfinallongserialVersionUID=1L;privatedoubleradius;publicInvalidRadiusException(doubleradius){super(Invalidradius+radius);this.radius=radius;}publicdoublegetRadius(){returnradius;}}Circle类:publicclassCircle{privatedoubleradius;privatestaticintnumberOfObjects=0;publicCircle()throwsInvalidRadiusException{this(1.0);}publicCircle(doublenewRadius)throwsInvalidRadiusException{setRadius(newRadius);numberOfObjects++;}publicdoublegetRadius(){returnradius;}publicvoidsetRadius(doublenewRadius)throwsInvalidRadiusException{if(newRadius=0)radius=newRadius;elsethrownewInvalidRadiusException(newRadius);}publicstaticintgetNumberOfObjects(){returnnumberOfObjects;}publicdoublefindArea(){returnradius*radius*3.14159;}}13.1使用异常publicclassExercise13_1{publicstaticvoidmain(String[]args){if(args.length!=3){System.out.println(PleaseuseExercise13_1operand1operatoroperand2);return;}Stringop1=args[1];Stringop=args[2];Stringop2=args[3];doublea,b;try{a=Double.parseDouble(op1);}catch(Exceptione){System.out.println(WrongInput:+op1);return;}try{b=Double.parseDouble(op2);}catch(Exceptione){System.out.println(WrongInput:+op2);return;}switch(op.charAt(0)){case'+':System.out.println(a+b);break;case'-':System.out.println(a-b);break;case'*':System.out.println(a*b);break;case'/':System.out.println(a/b);break;}}}13.1不使用异常publicclassExercise13_01{publicstaticvoidmain(String[]args){if(args.length!=3){System.out.println(PleaseuseExercise13_1operand1operatoroperand2);return;}Stringop1=args[0];Stringop=args[1];Stringop2=args[2];doublea,b;if(isNum(op1)==false){System.out.println(WrongInput:+op1);return;}if(isNum(op2)==false){System.out.println(WrongInput:+op2);return;}a=Double.parseDouble(op1);b=Double.parseDouble(op2);System.out.print(a++op++b+=);switch(op.charAt(0)){case'+':System.out.println(a+b);break;case'-':System.out.println(a-b);break;case'*':System.out.println(a*b);break;case'/':System.out.println(a/b);break;}}staticbooleanisNum(Stringa){for(inti=0;ia.length();i++){charc=a.charAt(i);if('0'=c&&c='9')continue;elseif(c=='.'&&(i!=0||i!=a.length()-1))continue;elsereturnfalse;}returntrue;}}(2)课本P2729.19importjava.io.File;importjava.io.IOException;importjava.io.PrintWriter;classWriteFile{privateStringname;publicWriteFile(Stringname){this.name=name;}publicvoidwriteFile(){Filefi=newFile(name);try{PrintWriterpw=newPrintWriter(fi);for(inti=0;i100;i++){intt=(int)(Math.random()*10000);pw.print(t+\n);}pw.close();}catch(IOExceptione){e.printStackTrace();}}}publicclassExercise9_19{publicstaticvoidmain(String[]args){WriteFilewf=newWriteFile(src/shiyan6/Exercise9_19.txt);wf.writeFile();}}(3)编写一个与居民身份证有关的程序,可以是Applet或者Application。要求创建一个类,该类至少具有以下3个方法:1)检验居民身份证的真伪,若为假身份证,需要提供其虚假信息,比如居民出生年月日有错等。2)获取真实居民身份证的信息,该信息包括4个部分:①该身份证是新身份证还是旧身份证。②该居民身份证的地址码,如果同学有《最新县及县以上行政区划代码》可得到居民身份证详细的省、市、县(区)的名称,若没有则只需显示地址码信息即可。③该居民的出生年月日。④该居民的性别。3)将15位的旧身份证转换成18位的新身份证。【参考资料】1)旧身份证共有15位,其格式如下:[假设身份证号码为:440524800101001]地址码出生日期码顺序码440524800101001广东省汕潮出出出头市阳县生年生月生日2)新身份证共有18位,其格式如下:[假设身份证号码为:440524198001010013]地址码出生日期码顺序码校验码440524198001010013广东省汕头市潮阳县出生年出生月出生日3)地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行,有条件的同学可以到“中华人民共和国国家统计局”网站()查看《最新县及县以上行政区划代码(截止2003年6月30日)》,该文章的网址为“”。4)生日期码表示编码对象出生的年、月、日,按GB/T7408的规定执行。年、月、日代码之间不用分隔符。旧身份证号码的出生日期码只有6位,而新身份证的出生日期码有8位,年份采用4位表示。5)顺序码表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性,该顺序码有3位。6)校验码采用ISO7064:1983,MOD11-2校验码系统,该校验码只有1位,在新身份证中被采用,其公式为∑(ai×Wi)(mod11),在公式中:i——表示号码字符从右至左包括校验码在内的位置序号;ai——表示第i位置上的号码字符值;Wi——表示第i位置上的加权因子,其数值依据公式Wi=2(i-1)(mod11)计算得出。在求出∑(ai×Wi)(mod11)值后依据下表得到校验码:∑(ai×Wi)(mod11)值0123454617181910校验码字符值10X98765432三、实验要求1、要求学生在上机实验前一定要非常清楚并灵活运用该章所讲过的内容;2、在上机实验前编写好实验内容要求的程序,以便上机实验时调试、修改等。3、上机实验后,每位学生必须对该次实验内容写一份实验报告,包括程序内容、调试过程、运行情况和结果等。四、实验环境1、PC微机;2、Windows7操作系统;3、Eclipse程序集成环境。五、实验步骤1、根据题目要求,画出程序流程图;2、给出本程序的java数据结构;3、编写出程序;4、调试程序:给出一些测试数据,检查输出结果。六、流程图与数据结构流程图在最后。三个类:QuYu负责初始化的时候,加载id.txt的内容,并实现根据区域码返回对应区域名称的功能。IDCard负责绘制界面Check负责所有功能逻辑,检测身份证号码真伪。oisTrue方法,总方法,调用其它检测方法,用于检测是否为真身份证号otrueQuYu方法,检测区域码,是否为真,并得出身份证地址。otrueBirth方法,检测出生日期是否合法,并获得出生年月日。ocheckCode方法,计算出身份证号的校验码位ocheckSex方法,通过顺序码。求出性别otoNewCode方法,将旧身份证转换为新身份证号。注:id.txt为区域码及其对应区域的文本文件。部分内容如下:七、代码QuYu类:packageshiyan6.idcard;importjava.io.BufferedReader;importjava.io.FileReader;importjava.util.HashMap;importjava.util.Map;publicclassQuYu{privateMapString,Stringhm;//地址码privateStringaddressCode;privateStringfilename=src/shiyan6/idcard/id.txt;publicQuYu(Stringname){this.addressCode=name;hm=newHashMapString,String();readTxt();}@SuppressWarnings(resource)publicbooleanreadTxt(){booleanflag=false;BufferedReaderbr=null;try{FileReaderread=newFileReader(filename);br=newBufferedReader(read);

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功