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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

java核心技術(shù)習(xí)題答案HUAsystemofficeroom【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】Java核心技術(shù)

習(xí)題答案馬志強張然李雷孝編清華大學(xué)出版社目錄TOC\o"1-5"\h\z第一章Java語言概述 3第二章Java語法基礎(chǔ) 4第三章面向?qū)ο缶幊?15第四章數(shù)組 38第五章高級類特性 45第六章GUI編程 51第七章集合框架 62第九章集合框架 77第十章IO流 81第十^一章JDBC訪問數(shù)據(jù)庫 84第十二章線程 8590第十三章網(wǎng)絡(luò)編程90第一章Java語言概述一、選擇題1-5ABBBB6-8AAB二、填空題MyClassMyClass.classString數(shù)組(String口)一javacA.javajavaA三、程序設(shè)計題1、搭建Java運行環(huán)境,并寫一個Java程序打印輸出“開始學(xué)習(xí)Java程序設(shè)計!”。1)首先安裝JDK;2)配置環(huán)境變量path,classpath可配可不配;3)FirstJava.javapublicclassHelloWorld{publicstaticvoidmain(String[]args){開始學(xué)習(xí)Java程序設(shè)計!〃);))2、修改下面四個Java源文件中的錯誤,使其能夠編譯和運行。Testl.java:TestAnotherl類不能再使用public修飾,一個源文件中只能有一個類或者接口用public修飾;Test2.java:源文件中public修飾的類的名字為Testing2,和源文件名字不一致;Test3.java:Test3類的main方法的形參類型為String口;Test4.java:Test4類的main方法必須使用static關(guān)鍵字修飾。第二章Java語法基礎(chǔ)一、選擇題1-5BCADB6-9DCCC二、填空題.abc,a1,_abc,_1a,ab123#a,const,$abc,1abc,if,$#1sa,$_a,_$q1.題目出現(xiàn)問題:代碼修改為ch=(char)(ch+1);結(jié)果為’B’;如果直接結(jié)果為98。.true(真)false(假).4.22false2.m*20/100(double)m*20/100三、編程題1、由命令行輸入一個成績,使用switch結(jié)構(gòu)求出成績的等級。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.f100r(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ù)可以拆分成兩個質(zhì)數(shù)的和,打印出所有的可能。如輸入10,結(jié)果為: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;四、實訓(xùn)題萬年歷的設(shè)計與實現(xiàn)。本程序包含兩個類CalenderModelA和TestCalenderModelA。

程序文件CalenderModelA實現(xiàn)了賽事日期設(shè)置等主要功能,程序文件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;intdl=(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<dl+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);))第三章面向?qū)ο缶幊桃?、選擇題1-5CABDD2-10DCCBC11-12CC二、填空題1.Packagemypackage?;2.final3.Object.packageimportclass.c三、程序設(shè)計題2、按下列要求編寫程序:創(chuàng)建Teacher類double要求:Teacher類要描述姓名、年齡、薪水,類型分別為String、int、double創(chuàng)建TeacherTest類要求:在TeacherTest類中創(chuàng)建Teacher的對象;為該對象的屬性(姓名、性別、年齡)賦值;將該對象的屬性(姓名、性別、年齡)輸出;為Teacher類添加一個方法,用于在教師原有薪水的基礎(chǔ)上增加5000;修改TeacherTest類,增加對教師增加薪水方法的調(diào)用,并將增加后的薪水值輸出。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)方法,代表當(dāng)前對象和p結(jié)婚,如若可以結(jié)婚,則輸出恭賀信息,否則輸出不能結(jié)婚原因。下列情況不能結(jié)婚:結(jié)婚年齡,男<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){同性不能結(jié)婚!〃);return;)&&&&if((this.gender==true&&this.age<24)||(this.gender==falsethis.age<22)&&&&||(p.gender==true&&p.age<24) ||(p.gender==falsep.age<22)){沒有達到結(jié)婚年齡!〃);return;)if(this.partner!=null||p.partner!=null){有一方已經(jīng)結(jié)婚!〃);return;)祝你們新婚愉快!〃);this.partner=p;p.partner=this;)publicstaticvoidmain(String[]args){Personp1=newPerson(〃關(guān)之琳〃,23,false,null);Personp2=newPerson(〃劉德華〃,26,true,null);Personp3=newPerson(〃孫楠〃,70,true,null);p1.marry(p2);p1.marry(p3);))4、定義一個Animal類,該類有兩個私有屬性,name(代表動物的名字)和legs(代表動物的腿的條數(shù))。兩個構(gòu)造方法,一個無參,默認給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類。① 提供一個構(gòu)造方法,該構(gòu)造方法需要一個參數(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。并調(diào)用他們的屬性和方法。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、某公司的雇員分為以下若干類:Employee:這是所有員工總的父類,屬性:員工的姓名,員工的生日月份。方法:getSalary(intmonth)根據(jù)參數(shù)月份來確定工資,如果該月員工過生日,則公司會額外獎勵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;publicSalariedEmployee(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,2000000.0,0.0001,3200.0);for(inti=0;i<e.length;i++){月份的工資總額為:〃+e[i].getSalary(9));)))四、實訓(xùn)題班級成績管理系統(tǒng)實體類設(shè)計。publicclassTest{publicstaticvoidmain(String[]args){stu.setXueyuan(〃信息工程學(xué)院”);stu.setZhuanye(〃軟件工程”);stu.setBanji(〃軟件10-1");Gradestugrade=newGrade();stugrade.setKcm("Web程序設(shè)計”);stugrade.setXq(“2011-2012(下)“);stugrade.setCj(90.5f);stu.getGrades().addGrade(stugrade);stugrade=newGrade();〃加這一句的區(qū)別stugrade.setKcm("計算機網(wǎng)絡(luò)”);stugrade.setXq(“2011-2012(上)”);stugrade.setCj(86.5f);stu.getGrades().addGrade(stugrade);stugrade=newGrade();〃加這一句的區(qū)別stugrade.setKcm("計算機組成原理”);stugrade.setXq(“2011-2012(上)”);stugrade.setCj(66.5f);stu.getGrades().addGrade(stugrade);stugrade=newGrade();〃加這一句的區(qū)別stugrade.setKcm(〃數(shù)據(jù)結(jié)構(gòu)”);stugrade.setXq(“2010-2011(上)”);stugrade.setCj(76.5f);stu.getGrades().addGrade(stugrade);stugrade=newGrade();〃加這一句的區(qū)別stugrade.setKcm(〃數(shù)據(jù)庫原理”);stugrade.setXq(“2010-2011(下)“);stugrade.setCj(76.5f);stu.getGrades().addGrade(stugrade);stugrade=newGrade();〃加這一句的區(qū)別stugrade.setKcm(〃高等數(shù)學(xué)(1)");stugrade.setXq(“2009-2010(上)”);stugrade.setCj(88.5f);stu.getGrades().addGrade(stugrade);stugrade=newGrade();〃加這一句的區(qū)別stugrade.setKcm(“高等數(shù)學(xué)(2)");stugrade.setXq(“2009-2010(下)“);stugrade.setCj(68.5f);stu.getGrades().addGrade(stugrade);stugrade=newGrade();〃加這一句的區(qū)別stugrade.setKcm(〃軟件工程專業(yè)外語“);stugrade.setXq(“2011-2012(下)“);stugrade.setCj(88.0f);stu.getGrades().addGrade(stugrade);puteZc(“2011-2012(下)“);stu.getGrades().sortByxq();))publicclassStudent{privateStringsid;privateStringsname;privateStringxueyuan;〃先使用具體的字符串,然后轉(zhuǎn)化成編碼xyidprivateStringzhuanye;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);)?Overridepublicbooleanequals(Objectobj){//TODOAuto-generatedmethodstubbooleanresult=false;if(obj!=null){if(objinstanceofStudent){Studenttemp=(Student)obj;if(sid.equals(temp.sid)){result=true;)))returnresult;)?OverridepublicStringtoString(){//TODOAuto-generatedmethodstubStringresult="{"+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()T);〃去掉最后一個逗號result+=zcGrade;result+="}";returnresult;))publicclassGrade{privateStringkcm;privateStringxq;privatefloatcj;publicGrade(){publicsuper();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;)?OverridepublicStringtoString(){//TODOAuto-generatedmethodstubreturnkcm+":"+xq+":"+cj;)?Overridepublicbooleanequals(Objectobj){//TODOAuto-generatedmethodstubbooleanresult=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){〃存在問題:課程重復(fù)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;)〃增加成績的刪除、修改〃按照學(xué)期排序課程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;)?OverridepublicStringtoString(){//TODOAuto-generatedmethodstubStringresult="{";while(!gradelist.isEmpty()){Gradegrade=gradelist.pop();result+="[";result+=grade.toString();result+="],";)result=result.substring(0,result.length()-1);result+="}";returnresult;)publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubGradeListStackgradestack=newGradeListStack();Gradegrade=newGrade();grade.setKcm("Web程序設(shè)計”);grade.setXq("6");grade.setCj(88.0f);gradestack.push(grade);grade=newGrade();grade.setKcm("SQLServer數(shù)據(jù)庫應(yīng)用“);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;)?OverridepublicStringtoString(){//TODOAuto-generatedmethodstubreturnxq+":"+zcresult;第四章數(shù)組一、選擇題1-5ACCAA二、填空題1.sum=14.s=180.arr[i]<arr[j]arr[j]=arr[i]arr[i]=temp三、程序設(shè)計題(1)寫一個類在其中定義一些方法實現(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};〃調(diào)用處理數(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;)))returna;returna;〃找出數(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;))(2)將一個數(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++){)))(3)寫一個類用來模擬棧這種數(shù)據(jù)結(jié)構(gòu),要求底層使用數(shù)組存儲數(shù)據(jù),并給出相應(yīng)的進棧和出棧的方法。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();))(4)實現(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四、不能三、程序設(shè)計題①建立一個動物的層次結(jié)構(gòu),以抽象類Animal為根,Cat、Spider和Fish動物類實現(xiàn)接口Pet。使用接口和抽象類技術(shù)完成。類結(jié)構(gòu)如圖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類結(jié)構(gòu)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二、選擇題l.GraphicalUserInterface.事件監(jiān)聽器.BorderLayout布局管理器.setFont四、實訓(xùn)題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];/**計算結(jié)果文本框*/privateJTextFieldresultText=newJTextField(〃0〃);//標(biāo)志用戶按的是否是整個表達式的第一個數(shù)字,或者是運算符后的第一個數(shù)字privatebooleanfirstDigit=true;//計算的中間結(jié)果。privatedoubleresultNum=0.0;//當(dāng)前運算的運算符privateStringoperator=〃=〃;//操作是否合法privatebooleanoperateValidFlag=true;/***構(gòu)造函數(shù)*/publicCalculator(){super();//初始化計算器init();//設(shè)置計算器的背景顏色this.setBackground(Color.LlGHT_GRAY);this.setTitle(〃計算器〃);〃在屏幕(500,300)坐標(biāo)處顯示計算器this.setLocation(500,300);//不許修改計算器的大小this.setResizable(false);〃使計算器中各組件大小合適this.pack();)/***初始化計算器*/privatevoidinit(){//文本框中的內(nèi)容采用右對齊方式resultText.setHorizontalAlignment(JTextField.RIGHT);//不允許修改結(jié)果文本框resultText.setEditable(false);//設(shè)置文本框背景顏色為白色resultText.setBackground(Color.white);//初始化計算器上鍵的按鈕,將鍵放在一個畫板內(nèi)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);)//運算符鍵用紅色標(biāo)示,其他鍵用藍色表示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);//初始化功能鍵,都用紅色標(biāo)示。將功能鍵放在一個畫板內(nèi)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鍵,用紅色標(biāo)示,將M鍵放在一個畫板內(nèi)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);)//下面進行計算器的整體布局,將回生在和command畫板放在計算器的中部,//將文本框放在北部,將calms畫板放在計算器的西部。//新建一個大的畫板,將上面建立的command和包坐在畫板放在該畫板內(nèi)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].addActionListener(this);for(inti=0;i<M.length;i++){m[i].addActionListener(this);))/***處理事件*/publicvoidactionPerformed(ActionEvente){//獲取事件源的標(biāo)簽Stringlabel=e.getActionCommand();if(label.equals(COMMAND[0])){//用戶按了〃Backspace〃鍵handleBackspace();}elseif(label.equals(COMMAND[1])){//用戶按了'(£〃鍵resultText.setText(〃0〃);}elseif(label.equals(COMMAND[2])){//用戶按了久〃鍵handleC();}elseif(.indexOf(label)>=0){//用戶按了數(shù)字鍵或者小數(shù)點鍵handleNumber(label);//handlezero(zero);}else(//用戶按了運算符鍵handleOperator(label);))/**處理Backspace鍵被按下的事件/privatevoidhandleBackspace(){Stringtext=resultText.getText();inti=text.length();if(i>0){//退格,將文本最后一個字符去掉text=text.substring(0,i-1);if(text.length()==0){//如果文本沒有了內(nèi)容,則初始化計算器的各種值resultText.setText(〃0〃);firstDigit=true;operator==;}else(//顯示新的文本resultText.setText(text);)))/**處理數(shù)字鍵被按下的事件**@paramkey*/privatevoidhandleNumber(Stringkey){if(firstDigit){//輸入的第一個數(shù)字resultText.setText(key);}elseif((key.equals(〃.〃))&&(resultText.getText().indexOf(〃.〃)<0))(//輸入的是小數(shù)點,并且之前沒有小數(shù)點,則將小數(shù)點附在結(jié)果文本框的后面resultText.setText(resultText.getText()+〃.〃);}elseif(!key.equals(〃.〃))(//如果輸入的不是小數(shù)點,則將數(shù)字附在結(jié)果文本框的后面resultText.setText(resultText.getText()+key);)//以后輸入的肯定不是第一個數(shù)字了firstDigit=false;)/**處理C鍵被按下的事件/privatevoidhandleC(){//初始化計算器的各種值resultText.setText(〃0〃);firstDigit=true;operator==;)/**處理運算符鍵被按下的事件*@paramkey/privatevoidhandleOperator(Stringkey){if(operator.equals(〃/〃))(//除法運算//如果當(dāng)前結(jié)果文本框中的值等于0if(getNumberFromText()==0.0){//操作不合法operateValidFlag=false;resultText.setText(〃除數(shù)不能為零〃);}else(resultNum/=getNumberFromText();)}elseif(operator.equals(〃1/x〃))(//倒數(shù)運算if(resultNum==0.0){//操作不合法operateValidFlag=false;resultText.setText(〃零沒有倒數(shù)〃);}else(resultNum=1/resultNum;)}elseif(operator.equals(〃+〃))(//加法運算resultNum+=getNumberFromText();}elseif(operator.equals(〃-〃))(//減法運算resultNum-=getNumberFromText();}elseif(operator.equals(〃*〃))(//乘法運算resultNum*=getNumberFromText();}elseif(operator.equals(〃sqrt〃))(//平方根運算resultNum=Math.sqrt(resultNum);}elseif(operator.equals(〃%〃))(//百分號運算,除以100resultNum=resultNum/100;}elseif(operator.equals(〃+/-〃))(//正數(shù)負數(shù)運算resultNum=resultNum*(-1);}elseif(operator.equals(〃=〃))(//賦值運算resultNum=getNumberFromText();)if(operateValidFlag){//雙精度浮點數(shù)的運算longt1;doublet2;t1=(long)resultNum;t2=resultNum-t1;if(t2==0){resultText.setText(String.valueOf(t1));}else(resultText.setText(String.valueOf(resultNum));))//運算符等于用戶按的按鈕operator=key;firstDigit=true;operateValidFlag=true;)/**從結(jié)果文本框中獲取數(shù)字*@return/privatedoublegetNumberFromText(){doubleresult=0;try(result=Double.valueOf(resultText.getText()).doubleValue();}catch(NumberFormatException

溫馨提示

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

評論

0/150

提交評論