河北工業(yè)大學(xué)java程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁
河北工業(yè)大學(xué)java程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第2頁
河北工業(yè)大學(xué)java程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第3頁
河北工業(yè)大學(xué)java程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第4頁
河北工業(yè)大學(xué)java程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Java程序設(shè)計(jì)

實(shí)驗(yàn)報(bào)告

班級(jí):網(wǎng)絡(luò)151

姓名:徐毅民

學(xué)號(hào):153299

實(shí)驗(yàn)一Java語言基礎(chǔ)

一.實(shí)驗(yàn)?zāi)康?/p>

掌握J(rèn)ava語言的基本語法、基本數(shù)據(jù)類型的使用方法,掌握從

鍵盤輸入基本類型的數(shù)據(jù),熟練運(yùn)用分支、循環(huán)等語句控制程序流程。

二實(shí)驗(yàn)內(nèi)容

1、編寫一個(gè)Java應(yīng)用程序,用戶從鍵盤輸入十名學(xué)生的信息,

至少包括姓名、年齡、出生年月日、java課程實(shí)驗(yàn)成績(jī),成績(jī)使用浮

點(diǎn)數(shù),年齡使用整型,程序?qū)⑤敵瞿挲g、java課程實(shí)驗(yàn)成績(jī)的平均值。

提示:Scanner對(duì)象調(diào)用nextDouble()或nextFloat()可以獲取用

戶從鍵盤輸入的浮點(diǎn)數(shù)。

2、使用Arrays類實(shí)現(xiàn)數(shù)組排序:使用java.util包中的Arrays類

的類方法publicstaticvoidsort(doublea口)可以把參數(shù)a指定的double

類型數(shù)組按升序排序;publicstaticvoidsort(doublea[],intstart,int

end)可以把參數(shù)a指定的double類型數(shù)組中從位置start到end位置

的值按升序排序。

給定數(shù)組inta[]={12,34,9,-23,45,6,90,123,19,45,34);從鍵盤讀

入一個(gè)整數(shù),使用折半查找判斷該整數(shù)是否在這個(gè)數(shù)組中,并將結(jié)果

輸出。

3、輸出100~200之間的所有素?cái)?shù)。

4、采用for循環(huán)求1至1000之內(nèi)的所有“完全數(shù)”。所謂“完全數(shù)”

是指一個(gè)數(shù),恰好等于它的因子之和。例如,6是一個(gè)完全數(shù),因?yàn)?

的因子為1、2、3,而6=1+2+3。

5、已知XYZ+YZZ=532,其中X、Y和Z為數(shù)字,編程求出X,Y和Z的

值。

三.實(shí)驗(yàn)步驟

實(shí)驗(yàn)1以最終學(xué)生信息管理系統(tǒng)為準(zhǔn)

實(shí)驗(yàn)2代碼如下:

importjava.util.Arrays;

importjava.util.Scanner;

publicclasstest2{

publicstaticvoidprir)tDoubleArray(doublea[]){

for(inti=0;i<a.length;i++){

System.out.print(a[i]+"");

}

System.out.println();

}

publicstaticvoidprintflntegerArray(inta[]){

for(inti=0;i<a.length;i++){

System.out.print(a[i]+"");

}

System.out.println();

}

publicstaticvoidmain(String[]args){

doublea[]={2.6,4.6,2,8,888,569.5,454.5,100,-84.5,45};

System.out.printin("原double數(shù)組a:");

printDoubleArray(a);

Arrays.sort(a,0,a.length/2);

System.out.printing排序double數(shù)組a前一半門;

printDoubleArray(a);

Arrays.sort(a);

System.out.printin("排序整個(gè)double數(shù)組a:");

printDoubleArray(a);

intb[]={12,34,9,-23,45,6,90,123,19,45,34);

Arrays.sort(b);

System.out.printin("排序整個(gè)double數(shù)組b:11);

printflntegerArray(b);

Scannerin=newScanner(System.in);

System.out.print("輸入要查詢的數(shù)字:");

intkey=in.nextlnt();

inti=Arrays.binarySearch(b,key);

if(i<011i>=b.length){

System.out.println(i+”輸入數(shù)字不在數(shù)組中!");

}else{

System.out.println(b[i]+"在數(shù)組b第"+(i+l)+"位!");

}

}

}

實(shí)驗(yàn)3代碼如下:

publicclasstest3{

publicstaticbooleanisPrime(intx){

if(x==1)returnfalse;

ints=(int)Math.sqrt(x);

for(inti=2;i<=s;i++){

if(x%i==0)returnfalse;

}

returntrue;

}

publicstaticvoidmain(String[]args){

intent=0;

for(inti=100;i<200;i++){

if(isPrime(i)){

cnt++;

System.out.printfC^Ad",i);

}

if(isPrime(i)&&cnt%10==0)System.out.println();

)

}

}

實(shí)驗(yàn)4代碼如下:

publicclasstest4{

publicstaticbooleanisCompleteNumber(intx){

intsum=0;

for(inti=1;i<x;i++){

if(x%i==0)sum+=x;

}

returnx==sum;

}

publicstaticvoidmain(String[]args){

intent=0;

for(inti=1;i<=1000;i++){

if(isCompleteNumber(i)){

cnt++;

System.out.printf("%4d",i);

}

if(isCompleteNumber(i)&&cnt%10==0)

System.out.println();

)

}

}

實(shí)驗(yàn)5代碼如下:

publicclasstest5{

publicstaticvoidmain(String[]args){

for(intx=0;x<10;x++){

for(inty=0;y<10;y++){

for(intz=0;z<10;z++){

if(100*x+110*y+12*z==532){

System.out.println("X="+x+"Y="+y+"

Z="+z);

return;

}

}

}

}

}

}

四.詳細(xì)的調(diào)試和運(yùn)行結(jié)果

實(shí)驗(yàn)2運(yùn)行結(jié)果:

原double數(shù)組a:

8,0888.0569.5454.5100.0-84.545.0

排序double數(shù)組a前一半:

2.02.64.68,0888.0569.5454.5100.0-84.545.0

排序整個(gè)double數(shù)組a:

-84.52.045.0100.0454.5569.5888.0

排序整個(gè)double數(shù)組b:

-236912193434454590123

輸入要查詢的數(shù)字:-23

-23在數(shù)組b第一位!

實(shí)驗(yàn)3運(yùn)行結(jié)果:

101103107109113127131137139149

151157163167173179181191193197

199

實(shí)驗(yàn)4運(yùn)行結(jié)果:

37111317192329

31374143475359616771

7379838997101103107109113

127131137139149151157163167173

179181191193197199211223227229

233239241251257263269271277281

283293307311313317331337347349

353359367373379383389397401409

419421431433439443449457461463

467479487491499503509521523541

547557563569571577587593599601

607613617619631641643647653659

661673677683691701709719727733

739743751757761769773787797809

811821823827829839853857859863

877881883887907911919929937941

947953967971977983991997

實(shí)驗(yàn)5運(yùn)行結(jié)果:

X=3Y=2Z=1

五.實(shí)驗(yàn)感想

通過本次從實(shí)驗(yàn)對(duì)java語言的基本語法有了基本了解,學(xué)會(huì)了

使用控制臺(tái)命令行的方式運(yùn)行java程序。

實(shí)驗(yàn)二面向?qū)ο蟪绦蛟O(shè)計(jì)

一.實(shí)驗(yàn)?zāi)康?/p>

通過編程和上機(jī)實(shí)驗(yàn),掌握類和構(gòu)造方法的定義及創(chuàng)建對(duì)象的方

法,掌握類的封裝及繼承原則,正確使用重載和覆蓋等多態(tài)概念設(shè)計(jì)

可復(fù)用方法,熟悉包、接口的使用方法,掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)方

法。

二.實(shí)驗(yàn)內(nèi)容

1、編寫MyDate類,完善上次實(shí)驗(yàn)中的人員信息錄入,實(shí)現(xiàn)日期

合法性判斷,包括大小月和閏年。

2、聲明一個(gè)Person類和派生類Student,成員變量包括學(xué)號(hào)、

姓名、入學(xué)時(shí)間、身份證號(hào)、學(xué)分績(jī)點(diǎn)等信息,成員方法包括開戶、

存款、取款、查詢(余額、明細(xì))、銷戶等操作。

3、定義接口Shape及其抽象方法getArea()和getPerimeter()用于

計(jì)算圖形和面積和周長(zhǎng)。定義類Rectangle(矩形)、類Circle(圓形)、類

Triangle(三角形),要求這些類繼承點(diǎn)類Coordinates。并實(shí)現(xiàn)接口的抽

象方法。

提示:

classCoordinates

longx;

longy;

Coordinate(longx,longy)

this.x=x;

this.y=y;

}

}

4、包的定義和使用

?創(chuàng)建自定義包Mypackage

在存放源程序的文件夾中建立一個(gè)子文件夾Mypackageo例如,

在“E:\java\程序”文件夾之中創(chuàng)建一個(gè)與包同名的子文件夾

Mypackage(E:\java\程序、Mypackage),并將編譯過的class文件放

入該文件夾中。注意:包名與文件夾名大小寫要一致。再添加環(huán)境變

量classpath的路徑,例如:E:\j2sdkl42_01\lib;E:\java\程序

?在包中創(chuàng)建類

YMD.java程序功能:在源程序中,首先聲明使用的包名

Mypackage,然后創(chuàng)建YMD類,該類具有計(jì)算今年的年份并輸出一

個(gè)帶有年月日的字符串的功能。編譯Test_YMD.java文件,然后將

Test_YMD.class文件存放到Mypackage文件夾中。

?編寫使用包Mypackage中Test_YMD類的程序

YMD_2.java程序功能:給定某人姓名與出生日期,計(jì)算該人年齡,

并輸出該人姓名,年齡,出生日期。程序使用了Test_YMD的方法來

計(jì)算年齡。

三.實(shí)驗(yàn)步驟

實(shí)驗(yàn)1代碼如下:

MyDate類:

publicclassMyDate{

privateintyear;〃年

privateintmonth;〃月

privateintday;〃日

publicMyDate(){

this(1903,1,1);

}

publicMyDate(MyDateother){

this(other.yearzother.month,other.day);

}

publicMyDate(intyear,intmonth,intday){

this.year=year;

this.month=month;

this.day=day;

}

publicstaticintgetDaysOfMonth(intyear,intmonth){

switch(month){

casel:case3:case5:case7:case8:case10:case

12:return31;

case4:case6:case9:case11:return30;

case2:returnMyDate.isLeapYear(year)?29:28;

default:returnInteger.MlN_VALUE;〃錯(cuò)誤

}

}

publicbooleanisValidDate(){

returnMyDate.isValidDate(this.year,this.month,this.day);

}

publicvoidsetMyDate(intyear,intmonth,intday){

this.year=year;

this.month=month;

this.day=day;

}

publicintgetYear(){

returnyear;

}

publicintgetMonth(){

returnmonth;

}

publicintgetDay(){

returnday;

}

publicstaticbooleanisValidDate(intyear,intmonth,intday){

if(day>MyDate.getDaysOfMonth(year,month)){

returnfalse;

}

returntrue;

}

publicstaticbooleanisLeapYear(intyear){

returnyear%400==011year%100!=0&&year%4==0;

}

publicstaticvoidmain(Stringargs[]){

intsei,y,m,d;

Scannerin=newScanner(System.in);

while(true){

System.out.printin("請(qǐng)輸入年月日

y=in.nextlnt();

m=in.nextlnt();

d=in.nextlnt();

if(MyDate.isValidDate(yzm,d)){

System.out.println(y+"年"+m+"月"+d+"日信息

正確!)

}else{

日信息

System.out.println(y+"^"+m+">R"+d+"

不正確!");

}

System.out.printin("是否繼續(xù)輸入?(1:是,0:否)");

sei=in.nextlnt();if(sel==0)break;

}

)

}

實(shí)驗(yàn)2以最終學(xué)生信息管理系統(tǒng)為準(zhǔn)

實(shí)驗(yàn)3代碼如下:

Shape接口:

publicinterfaceShape{

publicabstractdoublegetArea();

publicabstractdoublegetPerimeter();

}

Rectangle類:

publicclassRectangleimplementsShape{

privatedoublewidth;

privatedoubleheight;

privateCoordinatec;〃矩形左下角的點(diǎn)

publicRectangle(){

this.width=0;

this.height=0;

this.c=newCoordinate。0);

}

publicRectangle(doublewidth,doubleheight,intx,inty){

this.width=width;

this.height=height;

this.c=newCoordinate(x,y);

}

(?Override

publicdoublegetArea(){

returnthis.width*this.height;

}

(?Override

publicdoublegetPerimeter(){

return2*(this.width+this.height);

}

}

Circle類

publicclassCircleimplementsShape{

privatedoubleradius;

privateCoordinatecenter;

publicCircle(){

this.radius=0;

this.center=newCoordinate(0,0);

}

publicCircle(doubleradius,longx,longy){

this.radius=radius;

this.center=newCoordinate(x,y);

}

(?Override

publicdoublegetArea(){

returnMath.Pl*this.radius*this.radius;

}

(?Override

publicdoublegetPerimeter(){

return2*Math.PI*this.radius;

}

}

Triangle類

publicclassTriangleimplementsShape{

privatedoublea,b,c;

privateCoordinatecl,c2,c3;

publicTriangle(){

this.a=0;

this.b=0;

this.c=0;

this.cl=newCoordinate。0);

this.c2=newCoordinate。0);

this.c3=newCoordinate。0);

}

@Override

publicdoublegetArea(){

doubles=this.getPerimeter()/2;

returnMath.sqrt(s*(s-a)*(s-b)*(s-c));

}

(?Override

publicdoublegetPerimeter(){

returnthis.a+this.b+this.c;

}

publicstaticbooleanisVaild(doublea,doubleb,doublec){

if(a+b<=c11a+c<=b11b+c<=a){

returnfalse;

}

if(Math.abs(a-b)>=c||Math.abs(a-c)>=b||

Math.abs(b-c)>=a){

returnfalse;

}

returntrue;

}

)

測(cè)試類

publicclasstest3{

publicstaticvoidmain(String[]args){

Shapeshape;

Scannerin=newScanner(System.in);

System.out.printin("請(qǐng)輸入矩形的寬、高,左下角點(diǎn)的

橫坐標(biāo)、縱坐標(biāo):");

shape=newRectangle(in.nextDouble(),in.nextDoubleO,

in.nextlnt(),in.nextlnt());

System.out.printin("矩形的面積:"+shape.getArea()+"周

長(zhǎng)"+shape.getPerimeter());

System.out.printin("請(qǐng)輸入圓的半徑,圓心的橫坐標(biāo)、

縱坐標(biāo)

shape=newCircle(in.nextDouble(),in.nextlnt(),

in.nextlnt());

System.out.printing'圓形的面積:"+shape.getArea()+"周

長(zhǎng)"+shape.getPerimeter());

doublea,b,c;

System.out.printin("請(qǐng)輸入三角形的三條邊長(zhǎng):");

a=in.nextDouble();b=in.nextDouble();c=

in.nextDouble();

while(!Triangle.isVaild(a/b,c)){

System.out.printin("這不是一個(gè)三角形,請(qǐng)重新輸入

三條邊長(zhǎng):");

a=in.nextDouble();b=in.nextDouble();c=

in.nextDouble();

}

System.out.printing請(qǐng)分別輸入三個(gè)頂點(diǎn)的橫坐標(biāo)、縱

坐標(biāo):");

shape=newTriangle(a,b,c,in.nextlnt(),in.nextlntO,

in.nextlnt(),in.nextlnt(),in.nextlnt(),in.nextlnt());

System.out.printin("三角形的面積:"+shape.getArea()+"

周長(zhǎng)"+shape.getPerimeter());

}

}

實(shí)驗(yàn)4代碼如下:

五.詳細(xì)的調(diào)試和運(yùn)行結(jié)果

實(shí)驗(yàn)1運(yùn)行結(jié)果:

請(qǐng)輸入年月日:

20011256

2001年12月56日信息不正確!

是否繼續(xù)輸入?(1:是,0:否)

1

請(qǐng)輸入年月日:

1900229

1900年2月29日信息不正確!

是否繼續(xù)輸入?(1:是,0:否)

0

實(shí)驗(yàn)2以最終學(xué)生信息管理系統(tǒng)為準(zhǔn)

實(shí)驗(yàn)3運(yùn)行結(jié)果:

請(qǐng)輸入矩形的寬、高,左下角點(diǎn)的橫坐標(biāo)、縱坐標(biāo):

78910

矩形的面積:56.0周長(zhǎng)30.0

請(qǐng)輸入圓的半徑,圓心的橫坐標(biāo)、縱坐標(biāo):

234

圓形的面積:12.566370614359172周長(zhǎng)12.566370614359172

請(qǐng)輸入三角形的三條邊長(zhǎng):

345

請(qǐng)分別輸入三個(gè)頂點(diǎn)的橫坐標(biāo)、縱坐標(biāo):

458548

三角形的面積:6.0周長(zhǎng)12.0

實(shí)驗(yàn)4運(yùn)行結(jié)果:

五.實(shí)驗(yàn)感想

通過本次從實(shí)驗(yàn)對(duì)java語言的基本語法有了更深刻的了解,對(duì)

java中類的定義和面向?qū)ο蟮脑O(shè)計(jì)有了基本的了解。

實(shí)驗(yàn)三異常處理程序設(shè)計(jì)

一.實(shí)驗(yàn)?zāi)康?/p>

了解Java中異常處理(exception)的作用及常用的異常類,掌

握異常處理的設(shè)計(jì)方法。

二.實(shí)驗(yàn)內(nèi)容

1、用try-catch-finally結(jié)構(gòu)實(shí)現(xiàn)異常處理。編譯并運(yùn)行程序,

寫出程序運(yùn)行結(jié)果。

2、設(shè)計(jì)一個(gè)Java程序,自定義異常類,從命令行(鍵盤)輸入

一個(gè)字符串,如果該字符串值為“XYZ”,則拋出一個(gè)異常信息“This

isaXYZ",如果從命令行輸入ABC,則沒有拋出異常。(只有XYZ和

ABC兩種輸入)。

3、聲明一個(gè)Average接口,其中約定求平均值的方法;聲明多

個(gè)類實(shí)現(xiàn)Average接口,分別給出求平均值的方法實(shí)現(xiàn)。例如,在一

組數(shù)值中,一種算法是,全部數(shù)值相加后求平均值,另一種算法是,

去掉一個(gè)最高分和一個(gè)最低分后,再將總分求平均等;使用鍵盤輸入

數(shù)據(jù)時(shí)一,對(duì)于不能轉(zhuǎn)換成數(shù)值的字符串進(jìn)行異常處理。

三.實(shí)驗(yàn)步驟

實(shí)驗(yàn)1代碼如下:

publicclassExceptionTest{

publicstaticvoidmain(String[]args){

inti=0;

Stringgreeting[]={"Hello","Only","Test"};

while(i<4){

try{

System,out.printIn(greeting[i]);

}catch(ArraylndexOutOfBoundsExceptione){

System,out.printin(〃數(shù)組越界");

}finally{

System.out.printin("總會(huì)運(yùn)行“);

}

i++;

實(shí)驗(yàn)2代碼如下:

importjava.util.Scanner;

publicclassMyExceptionextendsException{

privatestaticfinallongserialVersionUID=IL;

Stringinformation;

publicMyException(){

this,information=this.toStringO;

publicMyException(Strings){

this,information=s;

publicStringgetStringO{

returnthis,information;

}

publicstaticvoidmain(String[]args){

intsei;

Stringinput;

Scannerin=newScanner(System,in);

while(true){

try{

input=in.next();

if(input,equals(,,XYZ,/)){

thrownewMyException("ThisisaXYZ");

)

}catch(MyExceptione){

System,out.printin(e.getStringO);

}finally{

System,out.print("是否繼續(xù)輸入?(1:是,0:

否)〃);

sei=in.nextlnt();

if(sei==0)break;

實(shí)驗(yàn)3以最終學(xué)生信息管理系統(tǒng)為準(zhǔn)

四.詳細(xì)的調(diào)試和運(yùn)行結(jié)果

實(shí)驗(yàn)1運(yùn)行結(jié)果:

Hello

總會(huì)運(yùn)行

Only

總會(huì)運(yùn)行

Test

總會(huì)運(yùn)行

數(shù)組越界

總會(huì)運(yùn)行

實(shí)驗(yàn)2運(yùn)行結(jié)果:

請(qǐng)輸入XYZ或ABC:

ABC

是否繼續(xù)輸入?(1:是,0:否):

1

請(qǐng)輸入XYZ或ABC:

XYZ

ThisisaXYZ

是否繼續(xù)輸入?(1:是,0:否):

0

五.實(shí)驗(yàn)感想

通過本次實(shí)驗(yàn)對(duì)java的異常處理機(jī)制有了很深的了解。

實(shí)驗(yàn)四圖形用戶界面程序設(shè)計(jì)

1.實(shí)驗(yàn)?zāi)康模赫莆战M件的使用方法,理解委托事件處理模型。熟悉圖形用戶界面

基本組件的使用方法,熟悉如何使用布局管理器對(duì)組件進(jìn)行管理及如何使用Java

的事件處理機(jī)制。

實(shí)驗(yàn)內(nèi)容:

1、輸入一個(gè)整數(shù),分別顯示其百位、十位和個(gè)位數(shù)字,圖形用戶界面如圖4.1

所示。要求:整數(shù)文本行可編輯且能實(shí)現(xiàn)事件處理,當(dāng)輸入數(shù)據(jù)錯(cuò)誤時(shí),處

理異常,彈出對(duì)話框,提示重新輸入信息;其他文本行僅用于顯示不可編輯。

源代碼:

packagesy4;

importjava.awt.FlowLayout;

importjava.awt.Label;

importjava.awt.TextField;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjavax.swing.3Button;

importjavax.swing.3Frame;

importjavax.swing.OOptionPane;

publicclassMineframeextendsDFrameimplementsActionListener

{

staticTextFieldT=newTextField(20);

staticTextFieldTl=newTextField(20);

staticTextFieldT2=newTextField(20);

staticTextFieldT3=newTextField(20);

publicMineframe()

{

super("Displaythenumberofintegers");

this.setSize(300,140);

this.setLocation(300,240);

this.setLayout(newFlowLayout());

this.add(newLabel,整數(shù)”));

this.add(T);

this.add(newLabel("百位"));

T1.setEditable(false);

this.add(n);

this.add(newLabel("十位"));

T2.setEditable(false);

this.add(72);

this.add(newLabel("個(gè)位"));

73.setEditable(false);

this.add(73);

[Buttonbutton=newJButton("確定");

this.add(button);

button.addActionListener(this);

this.setResizable(true);

this.setDefaultClose0peration(EXI7^0/V_CL0SE);

this.setVisible(true);

T.addActionListener(this);

}

publicvoidactionPerformed(ActionEvente)throwsNumberFormatException

{

try

{

Stringstr=T.getText();

intnum=Integer.parselnt(str);

int

tl=num/100;

t2=(num/10)%10;

t3=(num%100)%10;

T1.setText(String.vaLueOf(tl));

72.setText(String.va^ue0/(t2));

73.setText(String.value0/(t3));

)

catch(NumberFormatExceptionnfe)

{

JOptionPane.shoMMessageDiaLog(this,”不能轉(zhuǎn)換為整數(shù)");

)

finally

{Stringstr=T.getText();

intnum=Integer.parselnt(str);

int

tl=num/100;

t2=(num/10)%10;

t3=(num%100)%10;

T1.setText(String.vaLueO/(tl));

72.setText(String.value0f(t2));

T3.setText(String.vaLueO/(t3));

}

)

publicstaticvoidmain(Stringargs[])

{

newMineframe();

}

實(shí)驗(yàn)結(jié)果:

圖Displaythen..,—□XI

整和112AJ.

消息X『);

①不能轉(zhuǎn)換為整數(shù)

確定

2、模擬實(shí)現(xiàn)一個(gè)可視化的簡(jiǎn)單計(jì)算器,至少提供進(jìn)行加法、減法、乘法、除法

等基本運(yùn)算的功能,希望能支持加正負(fù)號(hào)、求平方根、清零等其他功能。

源代碼:

packagesy4;

importjava.awt

importjavax.swing.*;

importjavax.swing.event.*;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

publicclassCounterextendsDFrameimplements

ActionListener/Z^WindowListener

privateDTextFieldtext;

private3Button[]button;

privateMessageJDialogjdialog;

staticStringope="”;〃標(biāo)記操作數(shù)

staticStringfLag=";〃標(biāo)記運(yùn)算符號(hào)

privatestaticStringnumber=''“number用來表示當(dāng)前數(shù)字

保留前一值,

staticdoublesave=0Jresutt=0>nuw=0;〃saveresult

為結(jié)果,岫用來記錄小數(shù)點(diǎn)個(gè)數(shù)

Stringoperation[]={"sqrt","backspace","C","7","8","9",

”/'"4","5","6","1","2","3","0","+"};

publicCounter()

(

super(“計(jì)算器”);

button=newJButton[operation.length];

this.setBounds(280J100,300,240);

this.setDefaultCloseOperation(FXI7^O/V_CLOSE);

JPanelpanel=newJPanel(newFlowLayout());

this.getContentPane().add(panel);

JPanelpanelR=new3Panel(newGridLayout(l,l));//

設(shè)置text文本框

panel.add(panelR);

text=new3TextField("0",6);

panelR.add(text);

JPanelpanelID[]=new3Panel[5];〃設(shè)置按鈕

for(inti=0;i<operation.length;i++){

if(i%4==0)〃四個(gè)鍵為一行

{

panelID[i/4]=newJPanel(newGridLayout(1,4));

panel.add(panelID[i/4]);

)

button[i]=newJButton(operation[i]);//這里是按鈕的布局

button[i].addActionListener(this);

panelID[i/4].add(button[i]);

}

this,setVisible(true);

jdialog=newMessageJDialog(this);

)

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==button[16])//"0"

(

if(ope=="")

{

if(!text.getText().equals("0"))

number=text.getText()+"0";

text,setText(nu/nber);

)

else

(

text.setText("0");

}

)

else

{

ope="";

text.setText("0");

}

if(ftag=="")

save=Double.parseDoubte(text.getText());

)

if(e.getSource()==button[12])//nl"

(

if(ope=="")

{

if(!text.getText().equals("0"))

{

number=text.getText()+"l";

text,setText(nu/nber);

)

else

(

text.setText("l");

}

)

else

{

ope="";

text.setText("l");

)

if(fLag=="")

save=Double.parseDoubte(text.getText());

}

if(e.getSource()==button[13])//"2'\

(

if(ope=="")

{

if(!text.getText().equals("0"))

number=text.getText()+"2";

text,setJext(number);

}

else

(

text.setText("2");

}

)

else

{

ope="";

text.setText("2");

}

if(ftag=="")

save=Double.parseDoubte(text.getText());

)

if(e.getSource()==button[14])//n3"

(

if(ope=="")

{

if(!text.getText().equals("0"))

{

number=text.getText()+"3";

text,setText(nu/nber);

)

else

(

text.setText("3");

}

)

else

{

ope="";

text.setText("3");

)

if(fLag=="")

save=Double.parseDoubte(text.getText());

}

if(e.getSource()==button[8])//"4"

(

if(ope=="")

{

if(!text.getText().equals("0"))

number=text.getText()+"4";

text,setJext(number);

}

else

(

text.setText("4");

}

)

else

{

ope="";

text.setText("4");

}

if(ftag=="")

save=Double.parseDoubte(text.getText());

)

if(e.getSource()==button[9])//”5“

(

if(ope=="")

{

if(!text.getText().equals("0"))

{

number=text.getText()+"5";

text,setText(nu/nber);

)

else

(

text.setText("5");

}

)

else

{

ope="";

text.setText("5");

)

if(fLag=="")

save=Double.parseDoubte(text.getText());

}

if(e.getSource()==button[10])//"6"

(

if(ope=="")

{

if(!text.getText().equals("0"))

number=text.getText()+"6";

text,setJext(number);

}

else

(

text.setText("6");

}

)

else

{

ope="";

text.setText("6");

}

if(ftag=="")

save=Double.parseDoubte(text.getText());

)

if(e.getSource()==button[4])//"7

(

if(ope=="")

{

if(!text.getText().equals("0"))

{

number=text.getText()+"7";

text,setText(nu/nber);

)

else

(

text.setText("7");

}

)

else

{

ope="";

text.setText("7");

)

if(fLag=="")

save=Double.parseDoubte(text.getText());

}

if(e.getSource()==button[5])//"8

(

if(ope=="")

{

if(!text.getText().equals("0"))

number=text.getText()+"8";

text,setJext(number);

}

else

(

text.setText("8");

}

)

else

{

ope="";

text.setText("8");

}

if(ftag=="")

save=Double.parseDoubte(text.getText());

)

if(e.getSource()==button[6])//"9"

(

if(ope=="")

{

if(!text.getText().equals("0"))

{

number=text.getText()+,,9";

text,setText(nu/nber);

)

else

(

text.setText("9");

}

)

else

{

ope="";

text.setText("9");

)

if(fLag=="")

save=Double.parseDoubte(text.getText());

}

if(e.getSource()==button[0])//"sqrt

(

doubled=Double.parseDoubLe(text.getText());

d=Math.sqrt(d);

text.setText(""+d);

if(^ag==?")

save=d;

)

if(e.getSource()==button[l])

doubled=Double.parseDoubLe(text.getText());

d=0-d;

text.setText("H+d);

save=d;

}

if(e.getSource()==button[2])

{

save=0;

ope="";

text.setText("");

}

if(e.getSource()==button[3])//"C"

(

num=Q;

text.setText("");

)

if(e.getSource()==button[19])//"+"

{

ftag=H+";

ope="+*';

text.setText("+");

num=Q;

}

if(e.getSource()==button[15])//

{

九*

ope="-";

text.setText

num=0;

}

if(e.getSource()==button[ll])//"*"

{

ope="*";

text.setText("*");

num=d;

}

if(e.getSource()==button[7])//"/"

ftag='7";

ope="/";

text.setText("/");

num=0;

)

if(e.getSource()==button[17])//".

(

Stringstr=text.getText

text.setText(str);

}

if(e.getSource()==button[18])//"="

{

if(fLag.equals("+"))

(

re

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論