Java核心技術習題答案_第1頁
Java核心技術習題答案_第2頁
Java核心技術習題答案_第3頁
Java核心技術習題答案_第4頁
Java核心技術習題答案_第5頁
已閱讀5頁,還剩98頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Java關鍵技術習題答案馬志強張然李雷孝編清華大學出版社目錄第一章Java語言概述 3第二章Java語法基礎 4第三章面向對象編程 15第四章數(shù)組 38第五章高級類特征 45第六章GUI編程 51第七章集合框架 62第九章集合框架 77第十章IO流 81第十一章JDBC訪問數(shù)據(jù)庫 84第十二章線程 85第十三章網(wǎng)絡編程 90

第一章Java語言概述一、選擇題1-5ABBBB6-8AAB二、填空題1.MyClassMyClass.class2.String數(shù)組(String[])一3.javacA.javajavaA三、程序設計題1、搭建Java運行環(huán)境,并寫一個Java程序打印輸出“開始學習Java程序設計!”。1)首先安裝JDK;2)配置環(huán)境變量path,classpath可配可不配;3)FirstJava.javapublicclassHelloWorld{ publicstaticvoidmain(String[]args){ 開始學習Java程序設計!"); }}2、修改下面四個Java源文件中錯誤,使其能夠編譯和運行。Test1.java:TestAnother1類不能再使用public修飾,一個源文件中只能有一個類或者接口用public修飾;Test2.java:源文件中public修飾類名字為Testing2,和源文件名字不一致;Test3.java:Test3類main方法形參類型為String[];Test4.java:Test4類main方法必須使用static關鍵字修飾。

第二章Java語法基礎一、選擇題1-5BCADB6-9DCCC二、填空題1.abc,a1,_abc,_1a,ab123#a,const,$abc,1abc,if,$#1sa,$_a,_$q1題目出現(xiàn)問題:代碼修改為ch=(char)(ch+1);結果為’B’;假如直接結果為98。3.true(真)false(假)4.45.22false26.m*20/100(double)m*20/100三、編程題1、由命令行輸入一個成績,使用switch結構求出成績等級。A:90-100;B:80-89;C:70-79;D:60-69;E:0-59。publicclassIfElseTest{ publicstaticvoidmain(String[]args){ Scannersc=newScanner(System.in); intgrade=sc.nextInt(); if(grade<0||grade>100){ System.exit(0); } inttemp=(int)Math.floor(grade/10); switch(temp){ case10:{ break; } case9:{ break; } case8:{ break; } case7:{ break; } case6:{ break; } default:{ break; } } }}2、計算圓周率:PI=4-4/3+4/5-4/7......;打印出第一個大于3.1415小于3.1416值。publicclassPITest{ publicstaticvoidmain(String[]args){ doubleresult=0.0; for(inti=1;;i++){ doublem=4.0/(2*i-1); if((i%2)==0){ result-=m; }else{ result+=m; } if(result>3.1415&&result<3.1416){ break; } } }}3、輸入一個數(shù)據(jù)n,計算斐波那契數(shù)列(Fibonacci)第n個值。斐波那契數(shù)列:1、1、2、3、5、8、13、21、34、……。publicclassFibonacciTest{ publicstaticvoidmain(String[]args){ Scannersn=newScanner(System.in); intnum=sn.nextInt(); inti=1; intn1=1,n2=1; while(i<=num){ if(i==1||i==2){ n2=1; }else{ inttemp=n2; n2=n1+n2; n1=temp; } i++; } 第"+num+"個值為:"+n2); }}4、計算多項式1-1/3+1/5-1/7+1/9......值。 1)要求出前50項和值。 2)要求出最終一項絕對值小于1e-5和值。publicclassSumTest{ publicstaticvoidmain(String[]args){ doublesum=0.0; for(inti=1;i<=50;i++){ if(i%2==0){ sum=sum-1.0/(2*i-1); }else{ sum=sum+1.0/(2*i-1); } } 前50項和值:"+sum); doubleitem=0.0; intj=1; sum=0.0; while(item<0.00001){ item=1.0/(2*j-1); if(j%2==0){ sum-=item; }else{ sum+=item; } j++; } 最終一項絕對值小于1e-5和值:"+sum); }}5、產(chǎn)生100個0-999之間隨機整數(shù),然后判斷這100個隨機整數(shù)哪些是素數(shù),哪些不是?publicclassPrimeTest{ publicstaticvoidmain(String[]args){ PrimeTestt=newPrimeTest(); for(inti=0;i<100;i++){ intnum=(int)(Math.random()*1000); if(t.isPrime(num)){ 是素數(shù)!"); }else{ 不是素數(shù)!"); } } } publicbooleanisPrime(intnum){ for(inti=2;i<=num/2;i++){ if(num%i==0){ 第一個被"+i+"整除!"); returnfalse; } } returntrue; }}6、在屏幕上打印出n行金字塔圖案,如,若n=3,則圖案以下:*********publicclassPrintStar{ publicstaticvoidmain(String[]args){ Scannersn=newScanner(System.in); introws=sn.nextInt(); for(inti=1;i<=rows;i++){ for(intj=1;j<=rows-i;j++){ } for(intk=1;k<=2*i-1;k++){ } } }}7、歌德巴赫猜測,任何一個大于六偶數(shù)能夠拆分成兩個質數(shù)和,打印出全部可能。如輸入10,結果為:10=5+5;10=3+7。publicclassGede{ publicstaticvoidmain(String[]args){ intn=Integer.parseInt(args[0]); if(n<=6||n%2!=0){ 錯誤參數(shù)!"); return; } Gedeg=newGede(); //因為1不是素數(shù),n-2是偶數(shù),所以從3開始循環(huán) for(inti=3;i<=n/2;i++){ if(i%2==0){ continue; } if(g.isPrime(i)&&g.isPrime(n-i)){ } } } /** *判斷num是否是素數(shù) */ publicbooleanisPrime(intnum){ for(inti=2;i<=num/2;i++){ if(num%i==0){ returnfalse; } } returntrue; }}四、實訓題萬年歷設計與實現(xiàn)。本程序包含兩個類CalenderModelA和TestCalenderModelA。CalenderModelA實現(xiàn)了賽事日期設置等主要功效,程序文件CalenderModelA.java。publicclassCalenderModelA{ //計算從公元始天數(shù) publicintgetNumberOfDay(intyear,intmonth,intday) { inttotal=0; intlimit=getTotalDaysOfMonth(year,month); if(day<=limit) { for(inty=1;y<year;y++) { total+=(this.isLeapYear(year)?366:365); } for(intm=1;m<month;m++) { total+=(this.getTotalDaysOfMonth(year,month)); } total+=day; returntotal; } else { 您輸入日期非法"); return-1; } } //打印萬年歷 publicvoidshow(intyear,intmonth) { inttotal=0; //計算從公元始到今年之前總天數(shù) for(inty=1;y<year;y++) { total+=(this.isLeapYear(y)?366:365); } //計算今年到本月前總天數(shù) for(intm=1;m<month;m++) { total+=(this.getTotalDaysOfMonth(year,m)); } //計算本月1日是星期幾 total=total%7; intd1=(total+1)%7; intd2=this.getTotalDaysOfMonth(year,month); 年"+month+"月"); String[]s={"日","一","二","三","四","五","六"}; for(inti=0;i<7;i++){ } for(inti=0;i<d1;i++){ } //打印本月日歷 for(inti=d1,j=1;i<d1+d2;i++,j++){ if((i+1)%7==0){ } } } //判斷是否為閏年 publicbooleanisLeapYear(intyear) { return((year%4==0)&&(year%100!=0))||(year%400==0); } //計算某年某月天數(shù) publicintgetTotalDaysOfMonth(intyear,intmonth) { inttotal=0; switch(month){ case1: case3: case5: case7: case8: case10: case12: total=31; break; case2: total=this.isLeapYear(year)?29:28; break; case4: case6: case9: case11: total=30; break; } returntotal; }}TestCalenderModelA實現(xiàn)main方法,具備輸入大賽起始和終止日期,輸出日歷,并計算大賽周期功效。程序文件TestCalenderModelA.java。publicclassTestCalenderModelA{ publicstaticvoidmain(String[]args) { Scannerscan=newScanner(System.in); 請輸入年份:"); intyear=scan.nextInt(); 請輸入月份:"); intmonth=scan.nextInt(); 月歷以下"); CalenderModelAtestBegin=newCalenderModelA(); testBegin.show(year,month); }}

第三章面向對象編程一、選擇題1-5CABDD2-10DCCBC11-12CC二、填空題Packagemypackage

;finalObjectpackageimportclassc三、程序設計題2、按以下要求編寫程序:創(chuàng)建Teacher類 要求:Teacher類要描述姓名、年紀、薪水,類型分別為String、int、double創(chuàng)建TeacherTest類 要求:在TeacherTest類中創(chuàng)建Teacher對象;為該對象屬性(姓名、性別、年紀)賦值;將該對象屬性(姓名、性別、年紀)輸出;為Teacher類添加一個方法,用于在教師原有薪水基礎上增加5000;修改TeacherTest類,增加對教師增加薪水方法調用,并將增加后薪水值輸出。Teacher.java:publicclassTeacher{ publicStringname; publicintage; publicdoublesalary; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ =name; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } publicdoublegetSalary(){ returnsalary; } publicvoidsetSalary(doublesalary){ this.salary=salary; } publicTeacher(){ } publicTeacher(Stringname,intage,doublesalary){ =name; this.age=age; this.salary=salary; } publicvoidaddSalary(){ this.salary=this.salary+5000; }}TeacherTest.java:publicclassTeacherTest{ publicstaticvoidmain(String[]args){ Teacherteacher=newTeacher(); teacher.age=35; ="zhangsan"; teacher.salary=1234.5; teacher.addSalary(); }}3、定義一個Person類。包含以下屬性:Stringname;intage;booleangender;Personpartner。定義marry(Personp)方法,代表當前對象和p結婚,如若能夠結婚,則輸出恭賀信息,不然輸出不能結婚原因。以下情況不能結婚:結婚年紀,男<24,女<22;3,某一方已婚。定義測試類,來測試以上程序。publicclassPerson{ privateStringname; privateintage; privatebooleangender; Personpartner; publicPerson(Stringname,intage,booleangender,Personpartner){ =name; this.age=age; this.gender=gender; this.partner=partner; } publicvoidmarry(Personp){ if(this.gender==p.gender){ 同性不能結婚!"); return; } if((this.gender==true&&this.age<24)||(this.gender==false&&this.age<22) ||(p.gender==true&&p.age<24)||(p.gender==false&&p.age<22)){ 沒有達成結婚年紀!"); return; } if(this.partner!=null||p.partner!=null){ 有一方已經(jīng)結婚!"); return; } 祝你們新婚愉快!"); this.partner=p; p.partner=this; } publicstaticvoidmain(String[]args){ Personp1=newPerson("關之琳",23,false,null); Personp2=newPerson("劉德華",26,true,null); Personp3=newPerson("孫楠",70,true,null); p1.marry(p2); p1.marry(p3); }}4、定義一個Animal類,該類有兩個私有屬性,name(代表動物名字)和legs(代表動物腿條數(shù))。兩個結構方法,一個無參,默認給name賦值為AAA,給legs賦值為4;另一個需要兩個參數(shù),分別用這兩個參數(shù)給私有屬性賦值。兩個重載move()方法,其中一個無參,在屏幕上輸出一行文字:XXXMoving!!(XXX為該動物名字);另一個需要一個int參數(shù)n,在屏幕上輸出n次XXXMoving!!publicclassAnimal1{ privateStringname; privateintlegs; publicAnimal1(){ ="AAA"; this.legs=4; } publicAnimal1(Stringname,intlegs){ super(); =name; this.legs=legs; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ =name; } publicintgetLegs(){ returnlegs; } publicvoidsetLegs(intlegs){ this.legs=legs; } publicvoidmove(){ } publicvoidmove(intn){ inti=1; while(i<=n){ i++; } }}5、定義一個Fish類,繼承自Animal類。 提供一個結構方法,該結構方法需要一個參數(shù)name,并給legs賦默認值0; 覆蓋Animal類中無參move()方法,要求輸出:XXXSwimming!!publicclassFishextendsAnimal{ privateStringname; privateintlegs; publicFish(Stringname){ =name; this.legs=0; } publicvoidmove(){ }}publicclassBirdextendsAnimal{ privateStringname; privateintlegs; publicBird(Stringname){ =name; this.legs=2; } publicvoidmove(){ }}6、寫一個類Zoo,要求分別生成若干個Animal、Fish和Bird。并調用他們屬性和方法。publicclassZoo{ publicstaticvoidmain(String[]args){ Animala=newAnimal("dog",4); a.move(); a.move(3); Fishf=newFish("smallfish"); f.move(); Birdb=newBird("xique"); b.move(); Animalaf=newFish("smallfish"); af.move(); }}7、某企業(yè)雇員分為以下若干類:Employee:這是全部員工總父類,屬性:員工姓名,員工生日月份。方法:getSalary(intmonth)依照參數(shù)月份來確定工資,假如該月員工過生日,則企業(yè)會額外獎勵100元。SalariedEmployee:Employee子類,拿固定工資員工。屬性:月薪;HourlyEmployee:Employee子類,按小時拿工資員工,每個月工作超出160小時部分按照1.5倍工資發(fā)放。屬性:每小時工資、每個月工作小時數(shù);SalesEmployee:Employee子類,銷售人員,工資由月銷售額和分成率決定。屬性:月銷售額、分成率。BasedPlusSalesEmployee:SalesEmployee子類,有固定底薪銷售人員,工資由底薪加上銷售分成部分。屬性:底薪。寫一個程序,把若干各種類型員工放在一個Employee數(shù)組里,寫一個函數(shù),打印出某月每個員工工資數(shù)額。注意:要求把每個類都做成完全封裝,不允許非私有化屬性。classEmployee{ privateStringname; privateintmonth; publicEmployee(Stringname,intmonth){ =name; this.month=month; } publicStringgetName(){ returnname; } publicdoublegetSalary(intmonth){ if(this.month==month){ return100.0; } return0.0; }}classSalariedEmployeeextendsEmployee{ privatedoublemonthSalary; public SalariedEmployee(Stringname,intmonth,doublemonthSalary){ super(name,month); this.monthSalary=monthSalary; } publicdoublegetSalary(intmonth){ returnmonthSalary+super.getSalary(month); }}classHourlyEmployeeextendsEmployee{ privateinthours; privatedoublehourSalary; publicHourlyEmployee(Stringname,intmonth,inthours,doublehourSalary){ super(name,month); this.hours=hours; this.hourSalary=hourSalary; } publicdoublegetSalary(intmonth){ doubleresult; if(hours<=160){ result=hours*hourSalary; }else{ result=160*hourSalary+(hours-160)*1.5*hourSalary; } returnresult+super.getSalary(month); }}classSalesEmployeeextendsEmployee{ privatedoublesalesCount; privatedoublerate; publicSalesEmployee(Stringname,intmonth,doublesalesCount,doublerate){ super(name,month); this.salesCount=salesCount; this.rate=rate; } publicdoublegetSalary(intmonth){ returnsalesCount*rate+super.getSalary(month); }}classBasedPlusSalesEmployeeextendsSalesEmployee{ privatedoublebasedPlus; publicBasedPlusSalesEmployee(Stringname,intmonth,doublesalesCount,doublerate,doublebasedPlus){ super(name,month,salesCount,rate); this.basedPlus=basedPlus; } publicdoublegetSalary(intmonth){ returnbasedPlus+super.getSalary(month); }}publicclassEmployeeTest{ publicstaticvoidmain(String[]args){ Employee[]e=newEmployee[4]; e[0]=newSalariedEmployee("zhangsan",9,3222.90); e[1]=newHourlyEmployee("lisi",5,230,23.90); e[2]=newSalesEmployee("wangwu",11,2330000.0,0.005); e[3]=newBasedPlusSalesEmployee("zhaoliu",2,000.0,0.0001,3200.0); for(inti=0;i<e.length;i++){ 月份工資總額為:"+e[i].getSalary(9)); } }}四、實訓題班級成績管理系統(tǒng)實體類設計。publicclassTest{ publicstaticvoidmain(String[]args){ stu.setXueyuan("信息工程學院"); stu.setZhuanye("軟件工程"); stu.setBanji("軟件10-1"); Gradestugrade=newGrade(); stugrade.setKcm("Web程序設計"); stugrade.setXq("-(下)"); stugrade.setCj(90.5f); stu.getGrades().addGrade(stugrade); stugrade=newGrade();//加這一句區(qū)分 stugrade.setKcm("計算機網(wǎng)絡"); stugrade.setXq("-(上)"); stugrade.setCj(86.5f); stu.getGrades().addGrade(stugrade); stugrade=newGrade();//加這一句區(qū)分 stugrade.setKcm("計算機組成原理"); stugrade.setXq("-(上)"); stugrade.setCj(66.5f); stu.getGrades().addGrade(stugrade); stugrade=newGrade();//加這一句區(qū)分 stugrade.setKcm("數(shù)據(jù)結構"); stugrade.setXq("-(上)"); stugrade.setCj(76.5f); stu.getGrades().addGrade(stugrade); stugrade=newGrade();//加這一句區(qū)分 stugrade.setKcm("數(shù)據(jù)庫原理"); stugrade.setXq("-(下)"); stugrade.setCj(76.5f); stu.getGrades().addGrade(stugrade); stugrade=newGrade();//加這一句區(qū)分 stugrade.setKcm("高等數(shù)學(1)"); stugrade.setXq("-(上)"); stugrade.setCj(88.5f); stu.getGrades().addGrade(stugrade); stugrade=newGrade();//加這一句區(qū)分 stugrade.setKcm("高等數(shù)學(2)"); stugrade.setXq("-(下)"); stugrade.setCj(68.5f); stu.getGrades().addGrade(stugrade); stugrade=newGrade();//加這一句區(qū)分 stugrade.setKcm("軟件工程專業(yè)外語"); stugrade.setXq("-(下)"); stugrade.setCj(88.0f); stu.getGrades().addGrade(stugrade); puteZc("-(下)"); stu.getGrades().sortByxq(); }}publicclassStudent{ privateStringsid; privateStringsname; privateStringxueyuan;//先使用詳細字符串,然后轉化成編碼xyid privateStringzhuanye; privateStringbanji; // privateGradeArraygrades; privateZcGradezcGrade; privatevoidautoId(){ id++; } publicStudent(){ sid=newLong(id).toString(); autoId(); grades=newGradeArray(); } publicStudent(Stringsid){ this(sid,null); } publicStudent(Stringsid,Stringsname){ this(sid,sname,null); } publicStudent(Stringsid,Stringsname,Stringxueyuan){ this.sid=sid; this.sname=sname; this.xueyuan=xueyuan; grades=newGradeArray(); } publicStringgetSid(){ returnsid; } publicvoidsetSid(Stringsid){ this.sid=sid; } publicStringgetSname(){ returnsname; } publicvoidsetSname(Stringsname){ this.sname=sname; } publicStringgetXueyuan(){ returnxueyuan; } publicvoidsetXueyuan(Stringxueyuan){ this.xueyuan=xueyuan; } publicStringgetZhuanye(){ returnzhuanye; } publicvoidsetZhuanye(Stringzhuanye){ this.zhuanye=zhuanye; } publicStringgetBanji(){ returnbanji; } publicvoidsetBanji(Stringbanji){ this.banji=banji; } publicGradeArraygetGrades(){ returngrades; } publicvoidsetGrades(GradeArraygrades){ this.grades=grades; } publicZcGradegetZcGrade(){ returnzcGrade; } publicvoidsetZcGrade(ZcGradezcGrade){ this.zcGrade=zcGrade; } publicvoidcomputeZc(Stringxqid){ zcGrade=newZcGrade(xqid); floatsum=0; for(inti=0;i<grades.getCurrent();i++){ if(xqid.equals(grades.getGrade()[i].getXq())){ sum+=grades.getGrade()[i].getCj(); } } zcGrade.setZcresult(sum); } @Override publicbooleanequals(Objectobj){ //TODOAuto-generatedmethodstub booleanresult=false; if(obj!=null){ if(objinstanceofStudent){ Studenttemp=(Student)obj; if(sid.equals(temp.sid)){ result=true; } } } returnresult; } @Override publicStringtoString(){ //TODOAuto-generatedmethodstub Stringresult="{"+sid+"\r"; /*for(KsGradetemp:grades.getGrade()){ result+="["; result+=temp; result+="],"; }*/ for(inti=0;i<grades.getCurrent();i++){ result+="["; result+=grades.getGrade()[i]; result+="]"; result+="\r"; } //result=result.substring(0,result.length()-1);//去掉最終一個逗號 result+=zcGrade; result+="}"; returnresult; } }publicclassGrade{ privateStringkcm; privateStringxq; privatefloatcj; public Grade(){ super(); } publicGrade(Stringkcm){ this(kcm,null); } publicGrade(Stringkcm,Stringxq){ this(kcm,xq,0.0f); } publicGrade(Stringkcm,Stringxq,floatcj){ this.kcm=kcm; this.xq=xq; this.cj=cj; } publicfloatgetCj(){ returncj; } publicvoidsetCj(floatcj){ this.cj=cj; } publicStringgetKcm(){ returnkcm; } publicvoidsetKcm(Stringkcm){ this.kcm=kcm; } publicStringgetXq(){ returnxq; } publicvoidsetXq(Stringxq){ this.xq=xq; } @Override publicStringtoString(){ //TODOAuto-generatedmethodstub returnkcm+":"+xq+":"+cj; } @Override publicbooleanequals(Objectobj){ //TODOAuto-generatedmethodstub booleanresult=false; if(obj!=null){ if(objinstanceofGrade){ Gradetemp=(Grade)obj; if(kcm.equals(temp.kcm)){ result=true; } } } returnresult; }}publicclassGradeArray{ publicfinalstaticintKECHMENSHU=50; privateGrade[]grades=newGrade[KECHMENSHU]; privateintcurrent=0; publicGradeArray(){ super(); } publicintgetCurrent(){ returncurrent; } publicvoidsetCurrent(intcurrent){ this.current=current; } publicvoidaddGrade(Gradeg){ //存在問題:課程重復 if(current<KECHMENSHU){if(!contain(g)){ grades[current++]=g;} } } publicGrade[]getGrade(){ returngrades; } publicvoidsetGrade(Grade[]grade){ this.grades=grade; } privatebooleancontain(Gradeg){ booleanresult=false; for(inti=0;i<current;i++){ if(grades[i].equals(g)){ result=true; break; } } returnresult; } //增加成績刪除、修改 //按照學期排序課程 publicvoidsortByxq(){ //冒泡排序 for(inti=current-1;i>0;i--){ for(intj=0;j<i;j++){ if(grades[j].getXq().compareToIgnoreCase(grades[j+1].getXq())>0){ Gradetemp=grades[j+1]; grades[j+1]=grades[j]; grades[j]=temp; } } } } }publicclassGradeListStack{ /** *@paramargs */ privateStack<Grade>gradelist; GradeListStack(){ gradelist=newStack<Grade>(); } publicvoidpush(Gradegrade){ gradelist.push(grade); } publicGradepop(){ returngradelist.pop(); } publicbooleanisEmpty(){ returngradelist.empty(); } publicStack<Grade>getGradelist(){ returngradelist; } publicvoidsetGradelist(Stack<Grade>gradelist){ this.gradelist=gradelist; } @Override publicStringtoString(){ //TODOAuto-generatedmethodstub Stringresult="{"; while(!gradelist.isEmpty()){ Gradegrade=gradelist.pop(); result+="["; result+=grade.toString(); result+="],"; } result=result.substring(0,result.length()-1); result+="}"; returnresult; } publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub GradeListStackgradestack=newGradeListStack(); Gradegrade=newGrade(); grade.setKcm("Web程序設計"); grade.setXq("6"); grade.setCj(88.0f); gradestack.push(grade); grade=newGrade(); grade.setKcm("SQLServer數(shù)據(jù)庫應用"); grade.setXq("6"); grade.setCj(92.0f); gradestack.push(grade); }}publicclassZcGrade{ privateStringxq; privatefloatzcresult; publicZcGrade(){ super(); } publicZcGrade(Stringxq){ this.xq=xq; } publicStringgetXqid(){ returnxq; } publicvoidsetXqid(Stringxq){ this.xq=xq; } publicfloatgetZcresult(){ returnzcresult; } publicvoidsetZcresult(floatzcresult){ this.zcresult=zcresult; } @Override publicStringtoString(){ //TODOAuto-generatedmethodstub returnxq+":"+zcresult; } }

第四章數(shù)組一、選擇題1-5ACCAA二、填空題sum=142.s=1803.arr[i]<arr[j]arr[j]=arr[i]arr[i]=temp三、程序設計題寫一個類在其中定義一些方法實現(xiàn)數(shù)組元素遍歷、排序、插入、刪除、查找。publicclassArrayTest{ publicstaticvoidmain(String[]args){ int[]a={11,2,-3,54,115,36}; int[]b={110,-9,78,27,6,225,94,32,-12,1111,0}; //調用處理數(shù)組方法 print(a); } //遍歷數(shù)組元素方法 publicvoidprint(int[]a){ for(inti=0;i<a.length;i++){ } } //對數(shù)組元素進行排序方法 publicint[]sort(int[]a){ for(inti=0;i<a.length-1;i++){ for(intj=i+1;j<a.length;j++){ if(a[i]<a[j]){ inttemp=a[i]; a[i]=a[j]; a[j]=temp; } } } return a; } //找出數(shù)組中值最大元素 publicintmaxValue(int[]a){ inttemp=a[0]; for(inti=1;i<a.length;i++){ if(temp<a[i]) temp=a[i]; } returntemp; } //求數(shù)組元素和 publicintsum(int[]a){ intsum=0; for(inti=0;i<a.length;i++){ sum+=a[i]; } returnsum; } //將數(shù)組中元素逆序排列 publicint[]reverse(int[]a){ for(inti=0;i<a.length/2;i++){ inttemp=a[i]; a[i]=a[a.length-i-1]; a[a.length-i-1]=temp; } returna; }}將一個數(shù)組中元素倒排過來,不能新開一個數(shù)組暫時存放空間,只能在原數(shù)組上改。publicclassArrayReverse{ publicint[]reverse(int[]a){ intlen=a.length; for(inti=0;i<len/2;i++){ inttemp=a[i]; a[i]=a[len-i-1]; a[len-i-1]=temp; } returna; } publicstaticvoidmain(String[]args){ ArrayReversear=newArrayReverse(); int[]a={1,2,3,4,5,6,7,8,9,10}; ar.reverse(a); for(inti=0;i<a.length;i++){ } }}寫一個類用來模擬棧這種數(shù)據(jù)結構,要求底層使用數(shù)組存放數(shù)據(jù),并給出對應進棧和出棧方法。publicclassMyStack{ int[]arr;//用于存放棧數(shù)據(jù) intcount;//元素個數(shù) publicMyStack(intsize){ arr=newint[size]; } publicvoidpush(intnum){ if(count==arr.length){ 棧元素已滿,"+num+"不能再添加!"); return; } arr[count++]=num; } publicintpop(){ if(count==0){ 棧為空,沒有元素!"); return-1; } intnum=arr[--count]; returnnum; } publicvoidprint(){ for(inti=count-1;i>=0;i--){ } } publicstaticvoidmain(String[]args){ MyStackms=newMyStack(6); ms.pop(); ms.push(10); ms.push(50); ms.push(80); ms.push(20); ms.push(340); ms.push(120); ms.push(69); ms.print(); ms.pop(); ms.pop(); ms.print(); }}實現(xiàn)在一個數(shù)組指定位置添加元素和刪除元素功效。提醒:解答該題需要考慮以下問題添加元素后超出數(shù)組容量時數(shù)組擴展容量問題。添加元素前后數(shù)組中元素改變。刪除元素前后數(shù)組中元素改變。publicclassArrayInsertDel{ int[]arr={20,18,12,39,23,100}; intcount=6; publicvoidinsert(intpos,intnum){ if(arr.length==count){ expand(); } for(inti=count;i>pos;i--){ arr[i]=arr[i-1]; } arr[pos]=num; count++; } publicvoiddelete(intpos){ count--; for(inti=pos;i<=count;i++){ arr[i]=arr[i+1]; } } publicvoidprint(){ for(inti=0;i<count;i++){ } } publicvoidexpand(){ int[]arr2=newint[arr.length*2]; System.arraycopy(arr,0,arr2,0,arr.length); arr=arr2; } publicstaticvoidmain(String[]args){ ArrayInsertDelaid=newArrayInsertDel(); aid.print(); aid.insert(3,110); aid.insert(5,119); aid.print(); aid.delete(4); aid.print(); }}

第五章高級類特征一、選擇題1-5ADACC6-7BD二、填空題一、一多二、抽象final三、abstractextendsnew四、不能程序設計題①建立一個動物層次結構,以抽象類Animal為根,Cat、Spider和Fish動物類實現(xiàn)接口Pet。使用接口和抽象類技術完成。類結構如圖5-6所表示。完成:創(chuàng)建Animal類,它是全部動物類抽象父類創(chuàng)建Spider類,繼承Animal類創(chuàng)建Pet接口創(chuàng)建Cat類,繼承Animal類并實現(xiàn)Pet接口創(chuàng)建Fish類,繼承Animal類并實現(xiàn)Pet接口使用AnimalsTest類測試代碼。圖5-6類結構publicclassAnimalTest{ publicstaticvoidmain(String[]args){ Animala; a=newSpider(); a.walk(); a.eat(); a=newCat(); a.walk(); a.eat(); Petp; p=newFish(); p.setName("redfish"); p.play(); }}abstractclassAnimal{ protectedintlegs; protectedAnimal(intlegs){ this.legs=legs; } publicvoidwalk(){ } publicabstractvoideat(); }interfacePet{ voidsetName(Stringname); StringgetName(); voidplay();}classSpiderextendsAnimal{ publicSpider(){ super(6); } publicvoideat(){ }}classCatextendsAnimalimplementsPet{ privateStringname; publicCat(Stringname){ super(4); =name; } publicCat(){ super(4); } publicvoidsetName(Stringname){ =name; } publicStringgetName(){ returnname; } publicvoidplay(){ } publicvoideat(){ }}classFishextendsAnimalimplementsPet{ privateStringname; publicFish(){ super(0); } publicvoidsetName(Stringname){ =name; } publicStringgetName(){ returnname; } publicvoidplay(){ } publicvoideat(){ } publicvoidwalk(){ //super.walk(); }}

第六章GUI編程一、填空題ACCDBBB二、選擇題GraphicalUserInterface事件監(jiān)聽器BorderLayout布局管理器setFont四、實訓題importimportimportimportimportimportimportimportimportpublicclassCalculatorextendsJFrameimplementsActionListener{/**計算器上鍵顯示名字*/privatefinalString[]KEYS={"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0","+/-",".","+","="};/**計算器上功效鍵顯示名字*/privatefinalString[]COMMAND={"Backspace","CE","C"};/**計算器左邊M顯示名字*/privatefinalString[]M={"","MC","MR","MS","M+"};/**計算器上鍵按鈕*/privateJButtonkeys[]=newJButton[KEYS.length];/**計算器上功效鍵按鈕*/privateJButtoncommands[]=newJButton[COMMAND.length];/**計算器左邊M按鈕*/privateJButtonm[]=newJButton[M.length];/**計算結果文本框*/privateJTextFieldresultText=newJTextField("0");//標志用戶按是否是整個表示式第一個數(shù)字,或者是運算符后第一個數(shù)字privatebooleanfirstDigit=true;//計算中間結果。privatedoubleresultNum=0.0;//當前運算運算符privateStringoperator="=";//操作是否正當privatebooleanoperateValidFlag=true;/***結構函數(shù)*/publicCalculator(){super();//初始化計算器init();//設置計算器背景顏色this.setBackground(Color.LIGHT_GRAY);this.setTitle("計算器");//在屏幕(500,300)坐標處顯示計算器this.setLocation(500,300);//不許修改計算器大小this.setResizable(false);//使計算器中各組件大小適宜this.pack();}/***初始化計算器*/privatevoidinit(){//文本框中內容采取右對齊方式resultText.setHorizontalAlignment(JTextField.RIGHT);//不允許修改結果文本框resultText.setEditable(false);//設置文本框背景顏色為白色resultText.setBackground(Color.white);//初始化計算器上鍵按鈕,將鍵放在一個畫板內JPanelcalckeysPanel=newJPanel();//用網(wǎng)格布局器,4行,5列網(wǎng)格,網(wǎng)格之間水平方向間隔為3個象素,垂直方向間隔為3個象素calckeysPanel.setLayout(newGridLayout(4,5,3,3));for(inti=0;i<KEYS.length;i++){keys[i]=newJButton(KEYS[i]);calckeysPanel.add(keys[i]);keys[i].setForeground(Color.blue);}//運算符鍵用紅色標示,其余鍵用藍色表示keys[3].setForeground(Color.red);keys[8].setForeground(Color.red);keys[13].setForeground(Color.red);keys[18].setForeground(Color.red);keys[19].setForeground(Color.red);//初始化功效鍵,都用紅色標示。將功效鍵放在一個畫板內JPanelcommandsPanel=newJPanel();//用網(wǎng)格布局器,1行,3列網(wǎng)格,網(wǎng)格之間水平方向間隔為3個象素,垂直方向間隔為3個象素commandsPanel.setLayout(newGridLayout(1,3,3,3));for(inti=0;i<COMMAND.length;i++){commands[i]=newJButton(COMMAND[i]);commandsPanel.add(commands[i]);commands[i].setForeground(Color.red);}//初始化M鍵,用紅色標示,將M鍵放在一個畫板內JPanelcalmsPanel=newJPanel();//用網(wǎng)格布局管理器,5行,1列網(wǎng)格,網(wǎng)格之間水平方向間隔為3個象素,垂直方向間隔為3個象素calmsPanel.setLayout(newGridLayout(5,1,3,3));for(inti=0;i<M.length;i++){m[i]=newJButton(M[i]);calmsPanel.add(m[i]);m[i].setForeground(Color.red);}//下面進行計算器整體布局,將calckeys和command畫板放在計算器中部,//將文本框放在北部,將calms畫板放在計算器西部。//新建一個大畫板,將上面建立command和calckeys畫板放在該畫板內JPanelpanel1=newJPanel();//畫板采取邊界布局管理器,畫板里組件之間水平和垂直方向上間隔都為3象素panel1.setLayout(newBorderLayout(3,3));panel1.add("North",commandsPanel);panel1.add("West",calckeysPanel);//建立一個畫板放文本框JPaneltop=newJPanel();top.setLayout(newBorderLayout());top.add("Center",resultText);//整體布局getContentPane().setLayout(newBorderLayout(3,5));getContentPane().add("North",top);getContentPane().add("Center",panel1);getContentPane().add("West",calmsPanel);//為各按鈕添加事件偵聽器//都使用同一個事件偵聽器,即本對象。本類申明中有implementsActionListenerfor(inti=0;i<KEYS.length;i++){keys[i].addActionListener(this);}for(inti=0;i<COMMAND.length;i++){commands[i].addActionListe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論