java.docx
- 文档编号:30767551
- 上传时间:2023-08-23
- 格式:DOCX
- 页数:44
- 大小:28.46KB
java.docx
《java.docx》由会员分享,可在线阅读,更多相关《java.docx(44页珍藏版)》请在冰豆网上搜索。
java
1)利用随机函数定义10对(x,y)值,由此创建的Point类实例存入一个数组中,按与原点(0,0)的距离由小到大的顺序输出所有的点及到原点的距离。
【参考程序】
publicclasspoint{
privateintx;
privateinty;
privatedoubledic;
publicpoint(){}
publicpoint(intx1,inty1){
this.x=x1;
this.y=y1;
}
publicvoiddistance(){
doubletemp=Math.pow(this.x,2)+Math.pow(this.y,2);
this.dic=Math.sqrt(temp);
}
publicstaticvoidmain(String[]args){
points[]=newpoint[10];
for(inti=0;i<10;i++){
intx,y;
s[i]=newpoint(x=(int)(Math.random()*10),y=(int)(Math.random()*10));
s[i].distance();
}
output(s);
for(inti=0;i<9;i++)
for(intj=i+1;j<10;j++)
if(s[i].dic>s[j].dic){
pointtemp=s[i];
s[i]=s[j];
s[j]=temp;
}
System.out.println();
output(s);
}
staticvoidoutput(points[]){
for(inti=0;i<10;i++){
System.out.println("("+s[i].x+","+s[i].y+")"+s[i].dic);
}
}
}
2)编写一个三角形类,能根据3个实数构造三角形对象,如果三个实数不满足三角形的条件,则自动构造以最小值为边的等边三角形。
输入任意三个数,求构造的三角形面积。
【参考程序】
importjava.io.*;
publicclasstriangle{
privatedoublea,b,c;
doublearea;
publictriangle(){}
publictriangle(doublex,doubley,doublez){
a=x;
b=y;
c=z;
}
publicvoidtrianglearea(){
if(a+b>c&&a-b doublep=(a+b+c)/2; doubleans=p*(p-a)*(p-b)*(p-c); area=Math.sqrt(ans); } else{ doubletemp=Math.min(a,b); temp=Math.min(temp,c); area=(temp*temp*(Math.sqrt(3)))/4; } } publicstaticvoidmain(String[]args){ try{ System.out.println("输入三个实数: "); BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in)); Strings=br.readLine(); doublex=Double.parseDouble(s); Stringq=br.readLine(); doubley=Double.parseDouble(q); Stringw=br.readLine(); doublez=Double.parseDouble(w); triangleans=newtriangle(x,y,z); System.out.println("a="+x+",b="+y+",c="+z); ans.trianglearea(); System.out.println(ans.area); }catch(IOExceptione){} } } 1)编程根据一个已存在的链表创建一个倒序链表。 利用如下方法实现一个链表的倒序。 staticLinkreverse(Linklist){ Linkrev=null; Linkrunner=list; while(runner! =null){ LinknewNode=newLink; newNode.data=runner.data; newNode.next=rev; rev=newNode; runner=runner.next; } returnrev; } 【参考程序】 classNode{ intdata;//存放数据; Nodenext;//存放下一个节点; } publicclassLink{ Nodeheader; publicLink(){}//构造无参数的构造方法; //构造带参数的构造方法,构造新的链表; publicLink(intn){ Nodep,q; //定义头节点; header=newNode(); header.data=(int)(Math.random()*100); //使p指向头节点; p=header; for(intk=1;k<=n-1;k++) {//创建新的节点q; q=newNode(); q.data=(int)(Math.random()*100); //p的下一个节点指向q; p.next=q; //将p指向当前节点q; p=q; } p.next=null;//最后的一个节点的next值为空; } //链表的倒叙; publicLinkreverse(Linklist){ Linkrunner=list; //创建一个空链表; LinknewNode=newLink(); Nodeq,p; //创建空链表的头节点; newNode.header=newNode(); //使q指向已知链表的头节点; q=runner.header; newNode.header.data=q.data; //空链表的最后一个节点的next值为空; newNode.header.next=null; //将p当前节点指向头节点(即是空连标点的header); p=newNode.header; //q指向已知链表的当前节点的下一个节点; q=q.next; //将已知链表的节点从前到后一个一个的插入到空链表的头部; while(q! =null) { newNode.header=newNode(); newNode.header.data=q.data; newNode.header.next=p; p=newNode.header; q=q.next; } returnnewNode; } //输出链表; voidoutputLink(){ Nodep=header; while(p! =null){ System.out.print(p.data); p=p.next; //当输出到最后一个节点时就不要输出-->; if(p! =null)System.out.print("-->"); } System.out.println(); } publicstaticvoidmain(String[]args){ Linkx=newLink(10); //输出原链表; x.outputLink(); Linky=null;//System.out.println("***"); y=x.reverse(x); //输出原链表的倒叙的链表; y.outputLink(); } /* *1设有一个由10个英文单词构成的字符串数组,要求: (1)统计以字母w开头的单词数; (2)统计单词中含“or”字符串的单词数; (3)统计长度为3的单词数。 */ importjava.io.*; publicclassCount{ publicstaticString[]input()throwsIOException{ BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in)); String[]s=newString[10]; for(inti=0;i System.out.println("请输入第"+(i+1)+"个单词: "); s[i]=br.readLine(); } returns; } publicstaticintcountW(String[]s){ intcount=0; for(inti=0;i if(s[i].charAt(0)=='w') count++; } returncount; } publicstaticintcountOr(String[]s){ intcount=0; for(inti=0;i if(s[i].contains("or")) count++; } returncount; } publicstaticintcount3(String[]s){ intcount=0; for(inti=0;i if(s[i].length()==3) count++; } returncount; } publicstaticvoidmain(String[]args)throwsIOException{ String[]s=input(); System.out.println("以字母w开头的单词数: "+countW(s)); System.out.println("单词中含“or”字符串的单词数: "+countOr(s)); System.out.println("长度为3的单词数: "+count3(s)); } } (2)输入一个算术表达式,例如: 45*2+23*(234-24),求出其中有多少整数常数。 。 。 。 。 。 。 。 importjava.io.*; publicclassbiaodashi{ publicstaticStringinput()throwsIOException{ BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in)); Strings=""; System.out.println("请输入一个算术表达式: "); s=br.readLine(); returns; } publicstaticintcountInt(Strings){ intcount=0; charch;//获取串中的单个字符 ch=s.charAt(0); //if(Character.isDigit(ch)) //count=1; booleanflag=false;//标记当前字符是否为数字 for(inti=0;i ch=s.charAt(i); if(Character.isDigit(ch))//如果当前字符是数字 flag=true; elseif(flag)//当前不为数字,但前一个为数字 { count++; flag=false; } } returncount; } publicstaticvoidmain(String[]args)throwsIOException{ Strings=input(); System.out.println("算术表达式: "+s+"中有"+countInt(s)+"个整常数"); } } 1)根据Applet大小绘制若干同心圆,相邻圆之间的间距为10个象素。 importjava.applet.*; importjava.awt.*; @SuppressWarnings("serial") publicclassConcentricCirclesextendsApplet{ intx,y;//最外层同心圆所在外切矩形的左上角坐标 intwidth,height;//最外层同心圆所在外切矩形的宽、高 publicvoidpaint(Graphicsg){ x=y=10; width=getWidth()-20; height=width; g.setColor(Color.magenta); for(;;width-=20,height-=20){ g.drawOval(x,y,width,height); x+=10; y+=10; if(width<10) break; } } } (3)棋盘。 。 。 。 。 。 。 importjava.awt.*; importjava.applet.*; publicclasscheckboardextendsApplet{ publicvoidpaint(Graphicsg){ introw,col; intx,y,white,black; for(row=0;row<19;row++){ for(col=0;col<19;col++){ white=(int)Math.floor(Math.random()*256); black=(int)Math.floor(Math.random()*256); //orange=(int)Math.floor(Math.random()*256); //pink=(int)Math.floor(Math.random()*256); x=col*20; y=row*20; g.setColor(newColor(white,black,white,black)); g.fillRect(x,y,20,20); } } } } * *4)利用鼠标事件实现一个拉橡皮筋方式绘制直线的程序。 鼠标按下开始算始点,拖动鼠标至 *终点,在始点和终点之间绘制直线,在拖动鼠标的过程中,总在始点和鼠标位置绘制直线, *但只有最后释放鼠标时直线为最终需要的直线。 */ importjava.awt.*; importjava.awt.event.*; @SuppressWarnings("serial") publicclassDrawLineextendsFrame{ intx,y;//记住鼠标开始pressed时的坐标位置! intposx,posy; publicDrawLine(){ //TODOAuto-generatedconstructorstub this.addMouseListener(newMouseAdapter(){ @Override publicvoidmousePressed(MouseEvente){ //TODOAuto-generatedmethodstub x=e.getX(); y=e.getY(); } @Override publicvoidmouseReleased(MouseEvente){ //TODOAuto-generatedmethodstub posx=e.getX(); posy=e.getY(); repaint(); } }); this.addMouseMotionListener(newMouseMotionAdapter(){ publicvoidmouseDragged(MouseEvente){ posx=e.getX(); posy=e.getY(); repaint(); } }); this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ dispose(); } }); setSize(500,400); setVisible(true); } publicvoidpaint(Graphicsg){ g.setColor(Color.red); //g.drawLine(lastx,lasty,posx,posy); g.drawLine(x,y,posx,posy); } /** *@paramargs */ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub newDrawLine(); } } /* *1)输入若干行文本,以end作为结束行,统计该文本由多少行组成,字符总数,有多少 *“the”,将整个文本中所有单词首字母为小写的改为大写输出。 */ importjava.io.*; importjava.util.*; publicclassEnd{ privateintline,charCount,countThe; privateStringBuffersb; privateVector privateVector publicEnd(){sb=newStringBuffer();v=newVector publicvoidinput()throwsIOException{ Strings=""; System.out.println("请输入若干行文本,以end作为结束行: "); BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in)); s=br.readLine(); while(! s.equals("end")){ v.add(s); StringBufferssb=newStringBuffer(s); vsb.add(ssb); s+="\n"; line++; sb.append(s); s=br.readLine(); } } publicvoidcount(){ for(inti=0;i String[]s=v.get(i).split(""); Stringss=""; for(intj=0;j if(s[j].contains("the")) countThe++; ss+=s[j]; } charCount+=ss.length(); } } publicvoidtranslate(){ for(inti=0;i for(intj=0;j if(j==0||vsb.get(i).charAt(j-1)=='') vsb.get(i).setCharAt(j,Character.toUpperCase(vsb.get(i).charAt(j))); } } publicvoidoutput(){ System.out.println("该文本由"+line+"行组成,字符总数为: "+charCount+",有"+countThe+ "个“the”"); System.out.println("将整个文本中所有单词首字母为小写的改为大写输出: "); System.out.println(vsb.toString()); } publicstaticvoidmain(String[]args)throwsIOException{ Ende=newEnd(); e.input(); e.count(); e.translate(); e.output(); } } /* *4)编写一个鼠标位置跟踪程序,在鼠标所在位置为中心绘制一个红色十字架。 */ importjava.awt.*; importjava.awt.event.*; @SuppressWarnings("serial") publicclassMouseFollowingextendsFrameimplementsMouseMotionListener{ intx,y; publicMouseFollowing(){ //TODOAuto-generatedconstructorstub this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ dispose(); } });
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java