• 1.10 MB
  • 2022-04-22 11:22:38 发布

Java程序设计 第二版 (朱喜福 徐剑魁 著) 课后习题答案 清华大学出版社

  • 114页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'欢迎光临阳光大学生网,提供最全面的大学生课后习题答案和复习试题免费下载,http://www.sundxs.com/阳光大学生网我们希望呵护您的眼睛,关注您的成长,给您一片绿色的环境,欢迎加入我们,一起分享大学里的学习和生活感悟,免费提供:大学生课后答案,大学考试题及答案,大学生励志书籍。 第第111章章章JavaJavaJavJava概述a概述【1】为什么说Java的运行与计算机硬件平台无关?[解答]:Java编译器能够产生一种与计算机体系结构无关的字节指令(ByteCode),只要安装了Java虚拟机,Java就可以在相应的处理机上执行。利用Java虚拟机就可以把Java字节码程序跟具体的操作系统以及硬件平台分隔开来。【2】Java有什么特点?[解答]:Java的特点有:(1)简单性;(2)面向对象;(3)跨平台性;(4)健壮性;(5)安全性;(6)可移植性;(7)多线程性;(8)动态性。【3】试述Java开发环境的建立过程。[解答]:Java开发环境的建立过程如下:1.JDK的下载与安装:从http://java.sun.com下载最新版的JDK,单击下载后的文件即出现安装界面;在此界面中打击“next”按钮即可;2.JDK的配置:安装好JDK后,设安装路径为c:jdk1.5;还需要在环境变量中进行对应的配置。下面以Windows操作系统为例来进行配置。1)设置JAVA_HOME环境变量:在桌面上用鼠标右键单击“我的电脑”,依次选择“属性”、“高级”、“环境变量”选项,新建一个系统变量,名称为JAVA_HOME,值为c:jdk1.5;2)设置CLASSPATH环境变量,设置方法和JAVA_HOME一样,其值为c:jdk1.5libtools.jar;.;3)更新PATH环境变量的值,编辑PATH系统变量,在最后添加c:jdk1.5bin;.。【4】什么是JavaAPI?它提供的核心包的主要功能是什么?[解答]:JavaAPI就是Java所提供的标准类库,它把程序设计所需要的常用的方法和接口分类封装成包。在JavaAPI中主要包括核心java包、javax扩展包和org扩展包等。核心java包中封装了程序设计所需要的主要应用类。【5】如何编写和运行Java应用程序?[解答]:Java应用程序的编写和运行过程:1.建立Java源文件:首先创建Java的源代码,即建立一个文本文档,包括有符合Java规范的语句。2.编译源文件:“编译”就是将一个源代码文件翻译成计算机可以理解和处理的格式的过程。Java源程序编译后会生成一个字节码文件,即带扩展名class的文件。Java字节码文件中包含的使Java解释程序将要执行的指令码。khdaw.com1℡ 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!3.执行字节码文件:通过Java虚拟机运行字节码文件。【6】为什么要为程序添加注释,在Java程序中如何为程序添加注释?[解答]:注释是程序中的说明性文字,是程序的非执行部分。它的作用是为程序添加说明,增加程序的可读性。Java使用以下二种方式对程序进行注释:1.“//”符号,它表示从“//”符号开始到此行的末尾位置都作为注释。2.“/*...*/”符号,它表示从“/*”开始到“*/”结束的部分都作为注释部分,可以使多行注释。【7】Java工具集中的javac、java、appletviewer各有什么作用?[解答]:javac的作用:它是Java编译器,用于将Java源程序编译成字节码文件;javakhaw.com的作用:它是Java解释器,用于解释执行Java字节码文件;appletviewer的作用:Applet程序浏览器,用于测试和运行Applet程序。【8】如何建立和运行JavaApplet程序?[解答]:JavaApplet程序的建立和运行过程:1.建立Java源文件:首先创建Java的源代码,即建立一个文本文档,包括有符合Java规范的语句。2.编译源文件:将课后答案网Java源文件编译成.Class的字节码文件,然后再将字节码文件嵌入到一个HTML文件中。3.利用浏览器解释执行www.hackshp.cnhtml文件。khdaw.com2若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第第222章章章JavaJavaJavJava基础a基础【1】什么是数据类型?为什么要将数据划分为不同的数据类型?[解答]:Java是一门强类型语言。数据类型是用来区分不同的数据;由于数据在存储时所需要的容量各不相同,不同的数据就必须要分配不同大小的内存空间来存储,所有就要将数据划分成不同的数据类型。【2】Java中有哪些数据类型?[解答]:Java中有8种基本数据类型:字节型(byte),短整型(short),整型(int),长整型(long),字符型khaw.com(char),单精度型(float),双精度型(double),布尔型(boolean)。【3】声明变量的作用是什么?[解答]:变量时一个数据存储空间的表示,将数据指定给变量,就是将数据存储至对应的内存空间,调用变量,就是将对应的内存空间的数据取出来使用。声明变量就是申请一个内存空间。【4】若x=4,y=2,课后答案网计算z值:(1)z=x&y(2)z=x|y(3)z=x|ywww.hackshp.cn(4)z=x>>y(5)z=~x(6)z=x<>>y[解答]:publicclassTest_4{publicstaticvoidmain(String[]args){intx=4,y=2,z;//初始化x,y,zz=x&y;//求z=x&y;即x与y的值System.out.println("4_1:"+z);z=x|y;//求z=x|y;即x或y的值System.out.println("4_2:"+z);z=x^y;//求z=x^y;即x异或y的值System.out.println("4_3:"+z);z=x>>y;//求z=x>>y;即x右移y位的值System.out.println("4_4:"+z);z=~x;//求z=~x;即x位反的值System.out.println("4_5:"+z);z=x<>>y;//求z=x>>>y;即x无符号右移y位的值System.out.println("4_7:"+z);khdaw.com1若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!}}【5】假设x=10,y=20,z=30,求下列布尔表达式的值:(1)x<10||x<10(2)x>y&&y>x(3)(xx(6)x>y||y>x(7)!(xy&&yy&&y10布尔值flag=x<10&&x>10;System.out.println("5_5:"+flag);//求x>y||y>x布尔值flag=x>y||y>x;System.out.println("5_6:"+flag);//求!(x=1&&x<10){y=3*x-2;}else{y=4*x;}}khdaw.com3若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!System.out.println("y="+y);}}【10】说明while和do......while语句的差异。[解答]:Do-while与while语句的主要区别在于,先执行循环体中的语句再计算条件表达式,所以do-while语句的循环体至少执行一次。【11】写出下列语句执行后的结果:for(k=1;k<=5;k++){if(k>4)break;khaw.comSystem.out.println(“k=”+k);}[解答]:publicclassTest_11{publicstaticvoidmain(String[]args){intk;for(k=1;k<=5;k++){课后答案网if(k>4)break;System.out.println("k="+k);}www.hackshp.cn}}102【12】编写程序,求∑k的值。k=1[解答]:publicclassTest_12{publicstaticvoidmain(String[]args){intk,sum=0;for(k=1;k<=10;k++){sum=sum+k*k;}System.out.println("sum="+sum);}}【13】编写一程序,输入3个数,能按大小顺序输出。[解答]:importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;khdaw.com4若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!publicclassTest_13{publicstaticvoidmain(String[]args)throwsNumberFormatException,IOException{InputStreamReaderisr=newInputStreamReader(System.in);BufferedReaderbr=newBufferedReader(isr);inta[]=newint[3];intk,temp;System.out.println("请输入3个数字(每输入一个数字后请换行)");for(inti=0;i<3;i++){a[i]=Integer.parseInt(br.readLine());}for(inti=0;i300||x2>300){System.exit(0);a.stop();b.stop();}repaint();课后答案网try{a.sleep(100);}catch(InterruptedExceptione){www.hackshp.cn}}}publicvoidpaint(Graphicsg){g.setColor(Color.gray);g.fillRect(0,0,400,200);g.setColor(Color.red);g.drawLine(310,0,310,150);g.setColor(Color.red);g.fillOval(x1,y1,10,10);g.setColor(Color.green);g.fillOval(x2,y2,10,10);g.drawString("红球是兔子,绿球是乌龟!",50,180);}}Html代码khdaw.com5若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!【8】编写一个程序,让一个小球在窗体中跳动,当撞到边缘时,则选择一个角度反弹回去[解答]:importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.event.*;publicclassBallJumpextendsJFrame{khaw.comstaticintx=30,y=30;//小球的反弹角度staticintj=30;doublek=Math.tan(3.14*j/180.0);staticintmaxx=0,maxy=0;Containerc;课后答案网publicBallJump(){c=this.getContentPane();c.add(newpanel());www.hackshp.cnthis.setSize(200,200);this.setVisible(true);maxx=(int)this.getSize().getWidth();maxy=(int)this.getSize().getHeight();}publicstaticvoidmain(Strings[]){newBallJump();}classpanelextendsJPanel//在面板上画个小球{panel(){MoveThreadt=newMoveThread();t.start();}publicvoidpaint(Graphicsg){g.clearRect(0,0,this.getWidth(),this.getHeight());g.setColor(Color.red);khdaw.com6若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!g.fillOval(x*2,y,20,20);}}classMoveThreadextendsThread//写一个线程控制X坐标增加{booleanjup=false;//向右移doubleyu=0;doublexr=0;publicvoidrun(){while(true){khaw.comtry{Thread.sleep(10);repaint();//到边开始反弹if(jup==false){y=y+1;课后答案网}www.hackshp.cnif(y==(BallJump.maxy-20*2)||jup==true){x++;y--;yu=(BallJump.maxy-20*2)-y;xr=x;if(yu/xr>k){y++;}elseif(yu/xrmaxx)Thread.currentThread().stop();jup=true;}}catch(Exceptione){e.printStackTrace();}}}}}khdaw.com7若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第第888章章章输入输入输入///输出流输出流【1】简述java流的概念、特点、及表示[解答]:Java的流是一个比文件所包含范围更广的概念。流是一个可被顺序访问的数据序列,是对计算机输入数据和输出数据的抽象。Java中的流是用类来表示。Java流的特点:数据可以是未经加工的原始二进制数据,也可以是经一定编码处理后符合某种格式规定的特定数据,java中的数据流有字节流和字符流之分。【khaw.com2】描述java.io包中输入/输出流的类层次结构。[解答]:以字节为导向的stream基类是InputStream和OutputSteamstream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。在Java的IO中,所有的stream(包括Input和Outputstream)都包括两种类型:a)inputstream:1)ByteArrayInputStream课后答案网:把内存中的一个缓冲区作为InputStream使用2)StringBufferInputStream:把一个String对象作为InputStream3)FileInputStream:把一个文件作为InputStream,实现对文件的读取操作4)PipedInputStreamwww.hackshp.cn:实现了pipe的概念,主要在线程中使用b)Outstream1)ByteArrayOutputStream:把信息存入内存中的一个缓冲区中2)FileOutputStream:把信息存入文件中3)PipedOutputStream:实现了pipe的概念,主要在线程中使用以Unicode字符为导向的stream包括下面几种类型:a)InputStream1)CharArrayReader:与ByteArrayInputStream对应2)StringReader:与StringBufferInputStream对应3)FileReader:与FileInputStream对应4)PipedReader:与PipedInputStream对应b)OutStream1)CharArrayWrite:与ByteArrayOutputStream对应2)StringWrite:无与之对应的以字节为导向的stream3)FileWrite:与FileOutputStream对应4)PipedWrite:与PipedOutputStream对应以字符为导向的stream基本上对有与之相对应的以字节为导向的stream。两个对应类实现的功能相同,只是在操作时的导向不同。【3】说明输入流,输出流的概念及作用。如何实现输入和输出流类的读写方法的传递。[解答]:就流的运行方向来说,流分为输入流和输出流,输入流将外部数据引入计算机。输出流是交数据引导到外部设备。khdaw.com1若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!输入输出流读写方法的传递一般可以以一个字节缓冲数组做为中间的桥梁。【4】解释字节流,字符流,字节文件输入流和字符文件输出流的含义。[解答]:字节流:以二进制数据这最基本的数据表示方式的流。字符流:按每16位的Unicode码来处理字符数据的流。字节文件输入流:字节文件输入流是从字节输入流中继承而来的,它用于处理二进制的文件输入操作。字符文件输出流:字符文件输出流是从字符输出流中继承而来的,它用于处理字符为操作单位的文件数据的输出。【5】简述File类在文件管理中的作用与使用方法。[解答]:作用:提供了描述文件和目录的操作与管理的方法,它不负责数据的输入,输出。专门用来管理磁盘文件与目录。khaw.com使用方法:(1)创建File类的对象。(2)以getName()等方法来判断或获取文件或目录信息。(3)对文件及目录进行操作【6】计算Fibonacii数列,a1=1,a2=1...an=an-1+an-2即前两个数是1,从3个数开始,每个数是前两个数的和,计算数列的前课后答案网20项,并用字节文件流的方式输出到一个文件,要求每5项1行。[解答]:importjava.io.File;www.hackshp.cnimportjava.io.FileOutputStream;/***计算Fibonacii数列的前20项*/publicclassFibonacii{//数列的长度inti=0;int[]f=null;publicFibonacii(inti){this.i=i;}/***得到数列的函数*@returnint[]*/publicint[]getFibonacii(){if(i<2){khdaw.com2若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!returnnewint[]{1,1};}else{f=newint[i];//给数列赋初值f[0]=1;f[1]=1;for(intk=2;kele.getE()){e[0]=ele.getE();}if(e[1]ele.getM()){m[0]=ele.getM();}if(m[1]ele.getP()){p[0]=ele.getP();}if(p[1]10){out.writeUTF("end");c_socket.close();课后答案网System.exit(0);}//发出end信息else{www.hackshp.cnout.writeUTF("IamClient");i++;}}catch(IOExceptione){System.out.println("ddd");}}}/***多客户端一个服务器的例子*/importjava.net.*;importjava.io.*;importjava.awt.*;importjava.awt.event.*;classS_serverextendsFrameimplementsActionListener,Runnable{ServerSockets_socket;//服务器端套接字Socketc_socket;//套接字khdaw.com8若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!DataInputStreamin=null;//数据输入流DataOutputStreamout=null;//数据输出流InputStreamin_data;//接收到的输入流OutputStreamout_data;//发送的输出流inti=0;//计数(连接的客户数)Stringstr;TextAreatxt1;Buttonbtn;Panelp;S_server(){super("server");khaw.comsetSize(300,200);setVisible(true);txt1=newTextArea(5,4);add(txt1,BorderLayout.CENTER);p=newPanel();add(p,BorderLayout.NORTH);btn=newButton("开始监听端口");p.add(btn);课后答案网validate();btn.addActionListener(this);}www.hackshp.cnpublicvoidactionPerformed(ActionEventeee){try{s_socket=newServerSocket(4321);while(true){c_socket=s_socket.accept();Threadt=newThread(this);t.start();i++;}}catch(IOExceptione){}}//线程publicvoidrun(){try{while(true){in_data=c_socket.getInputStream();out_data=c_socket.getOutputStream();khdaw.com9若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!in=newDataInputStream(in_data);out=newDataOutputStream(out_data);out.writeUTF("Hello,我是服务器");str=in.readUTF();if(str.equals("end")){//接收到end信息,则断开连接in.close();out.close();c_socket.close();}txt1.append("第"+i+"个客户发来:"+str+"n");Thread.sleep(200);khaw.com}//while_end}catch(IOExceptione){e.printStackTrace();}catch(Exceptionee){ee.printStackTrace();}//Thread_catch课后答案网}publicstaticvoidmain(String[]args){www.hackshp.cnnewS_server();}}【11】写出一个客户同时有多个服务器为他提供服务的基本框架。[解答]:/***一个客户端多个服务器的例子*/importjava.net.*;importjava.io.*;importjava.awt.*;importjava.awt.event.*;classC_client1extendsFrameimplementsActionListener,Runnable{TextAreatxt1;Buttonbtn;Panelp;intport;DataInputStreamin=null;//数据输入流khdaw.com10若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!DataOutputStreamout=null;//数据输出流//套接字InputStreamin_data;//接收到的输入流OutputStreamout_data;//发送的输出流Stringstr;//存放接收的数据String[]IP=newString[]{"127.0.0.1","127.0.0.2","127.0.0.3"};//服务器的IPintIPi=0;//IP的下标C_client1(){super("客户端");khaw.comsetSize(300,200);setVisible(true);txt1=newTextArea(5,4);add(txt1,BorderLayout.CENTER);p=newPanel();add(p,BorderLayout.NORTH);btn=newButton("连接");p.add(btn);课后答案网btn.addActionListener(this);validate();}www.hackshp.cnpublicstaticvoidmain(String[]args){newC_client1();}publicvoidactionPerformed(ActionEventeee){Threadt1=newThread(this);t1.start();Threadt2=newThread(this);t1.start();Threadt3=newThread(this);t1.start();}publicvoidrun(){Socketc_socket=null;try{c_socket=newSocket(IP[IPi++],4321);}catch(IOExceptione){e.printStackTrace();khdaw.com11若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!}try{in_data=c_socket.getInputStream();out_data=c_socket.getOutputStream();in=newDataInputStream(in_data);out=newDataOutputStream(out_data);Stringp1=c_socket.getInetAddress().getHostAddress();intp2=c_socket.getLocalPort();khaw.comtxt1.append("获取到对方的IP:"+p1+"n");txt1.append("本机的端口号:"+p2+"n");str=in.readUTF();txt1.append("客户收到:"+str+"n");out.writeUTF("IamClient");}catch(IOExceptione){课后答案网e.printStackTrace();}}www.hackshp.cn}/***一个客户端多个服务器的例子*/importjava.net.*;importjava.io.*;importjava.awt.*;importjava.awt.event.*;classS_server1extendsFrameimplementsActionListener{ServerSockets_socket;//服务器端套接字Socketc_socket;//套接字DataInputStreamin=null;//数据输入流DataOutputStreamout=null;//数据输出流InputStreamin_data;//接收到的输入流OutputStreamout_data;//发送的输出流inti=0;//计数(连接的客户数)Stringstr;khdaw.com12若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!TextAreatxt1;Buttonbtn;Panelp;S_server1(){super("server");setSize(300,200);setVisible(true);txt1=newTextArea(5,4);add(txt1,BorderLayout.CENTER);p=newPanel();add(p,BorderLayout.NORTH);khaw.combtn=newButton("开始监听端口");p.add(btn);validate();btn.addActionListener(this);}publicvoidactionPerformed(ActionEventeee){try{课后答案网s_socket=newServerSocket(4321);c_socket=s_socket.accept();www.hackshp.cnin_data=c_socket.getInputStream();out_data=c_socket.getOutputStream();in=newDataInputStream(in_data);out=newDataOutputStream(out_data);out.writeUTF("Hello,我是服务器");str=in.readUTF();in.close();out.close();c_socket.close();}catch(IOExceptione){}//Thread_catch}publicstaticvoidmain(String[]args){newS_server();}}khdaw.com13若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第第101010章章章JavaJaJavJava数据库连接vaa数据库连接【1】试述JDBC提供了哪几种连接数据库的方法。[解答]:JDBC连接数据库的方法取决于JDBC驱动程序类型,Java定义了4种JDBC驱动程序类型:(1)JDBC-ODBC桥驱动程序JDBC-ODBC桥接器负责将JDBC转换为ODBC,用JdbcOdbc.Class和一个用于访问ODBC驱动程序的本地库实现的。这类驱动程序必须在服务器端安装好ODBC驱动程序,然后通过JDBC-ODBC的调用方法,进而通过ODBC来存取数据库。khaw.com(2)Java到本地API这种类型的驱动程序是部分使用Java语言编写和部分使用本机代码编写的驱动程序,这类驱动程序也必须在服务器端安装好特定的驱动程序,如ODBC驱动程序,然后通过桥接器的转换,把JavaAPI调用转换成特定驱动程序的调用方法,进而操作数据库。(3)网络协议搭配的Java驱动程序这种驱动程序将JDBC转换为与DBMS无关的网络协议,这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。所用的具体协议取决于提供者。课后答案网(4)本地协议纯Java驱动程序这种类型的驱动程序将JDBC访问请求直接转换为特定数据库系统协议。不但无须在使用者计算机上安装任何额外的驱动程序,也不需要在服务器端安装任何中间程序,所有www.hackshp.cn对数据库的操作,都直接由驱动程序来完成。【2】SQL语言包括哪几种基本语句来完成数据库的基本操作。[解答]:SQL语言包括以下6种基本语句来完成数据库的基本操作:(1)select语句:用来对数据库进行查询并返回符合用户查询标准的结果数据。(2)createtable语句:用来建立新的数据表。(3)insert语句:向数据表中插入或添加新的数据行。(4)update语句:更新或修改符合规定条件的记录。(5)delete语句:删除数据表中的行或记录。(6)droptable语句:删除某个数据表以及该表中的所有记录。【3】Statement接口的作用是什么?[解答]:Statement接口用于执行静态SQL语句并返回它所生成结果的对象。在默认情况下,同一时间每个Statement对象在只能打开一个ResultSet对象。因此,如果读取一个ResultSet对象与读取另一个交叉,则这两个对象必须是由不同的Statement对象生成的。如果存在某个语句的打开的当前ResultSet对象,则Statement接口中的所有执行方法都会隐式关闭它。【4】ExecuteQuery()的作用是什么?[解答]:ExecuteQuery()方法执行给定的SQL语句,返回单个ResultSet对象。发送给数据库的SQL语句,通常为静态SQLSELECT语句,返回包含给定查询所生成数据的ResultSet对象。khdaw.com1若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!【5】试述DriverManager对象建立数据库连接所用的几种不同的方法。[解答]:DriverManager对象建立数据库连接的方法有以下几种:(1)staticConnectiongetConnection(Stringurl):使用指定的数据库URL创建一个连接。(2)staticConnectiongetConnection(Stringurl,Propertiesinfo):使用指定的数据库URL和相关信息(用户名、用户密码等属性列表)来创建一个连接,使DriverManager从注册的JDBC驱动程序中选择一个适当的驱动程序。(1)staticConnectiongetConnection(Stringurl,Stringuser,Stringpassword):使用指定的数据库URL、用户名和用户密码创建一个连接,使DriverManager从注册的JDBC驱动程序中选择一个适当的驱动程序。(2)staticDrivergetDriver(Stringurl):定位在给定URL下的驱动程序,让DriverManager从注册的khaw.comJDBC驱动程序中选择一个适当的驱动程序。【6】编写一个应用程序,实现可以从一个数据库的某个表中查询一个列的所有信息。[解答]://英汉词典的应用示例,程序代码如下:importjava.sql.*;publicclassGetColumnAllData{publicstaticvoidmain(Stringargs[]){Stringcname,ename;ConnectionCon=null;课后答案网StatementStmt=null;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptione){}www.hackshp.cntry{Con=DriverManager.getConnection("jdbc:odbc:test","gxy","ookk");Stmt=Con.createStatement();ResultSetrs=Stmt.executeQuery("SELECT*FROMcidian");System.out.println("表中单词列的所有信息为:");while(rs.next()){ename=rs.getString("单词");cname=rs.getString("解释");System.out.println(ename);}Con.close();}catch(SQLExceptionee){}}}【7】编写一英汉字典程序,具有查询、添加、修改、删除等功能。[解答]:程序代码如下:importjava.awt.*;importjava.sql.*;importjava.awt.event.*;importjavax.swing.*;khdaw.com2若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!classDataWindowextendsFrameimplementsActionListener{TextField待查英文单词_文本条,汉语解释_文本条,更新英文单词_文本条,更新汉语解释_文本条,填加英文单词_文本条,填加汉语解释_文本条,删除英文单词_文本条,删除汉语解释_文本条;Button查询按钮,更新按钮,填加按钮,删除按钮,清空按钮;int查询记录=0;ConnectionCon=null;StatementStmt=null;DataWindow(){super("英汉小词典");setBounds(150,150,300,150);setVisible(true);setLayout(newGridLayout(4,1));khaw.comtry{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptione){}try{Con=DriverManager.getConnection("jdbc:odbc:test","gxy","ookk");Stmt=Con.createStatement();}catch(SQLExceptionee){}待查英文单词课后答案网_文本条=newTextField(16);汉语解释_文本条=newTextField(16);更新英文单词_文本条=newTextField(16);更新汉语解释www.hackshp.cn_文本条=newTextField(16);填加英文单词_文本条=newTextField(16);填加汉语解释_文本条=newTextField(16);删除英文单词_文本条=newTextField(16);删除汉语解释_文本条=newTextField(16);查询按钮=newButton("查询");更新按钮=newButton("更新");填加按钮=newButton("填加");删除按钮=newButton("删除");清空按钮=newButton("清空文本框");Panelp1=newPanel(),p2=newPanel(),p3=newPanel(),p4=newPanel();p1.add(newLabel("输入要查询的英语单词:"));p1.add(待查英文单词_文本条);p1.add(newLabel("显示该单词的汉语解释:"));p1.add(汉语解释_文本条);p1.add(查询按钮);p3.add(newLabel("输入要添加的英语单词:"));p3.add(填加英文单词_文本条);p3.add(newLabel("输入该单词的汉语解释:"));p3.add(填加汉语解释_文本条);p3.add(填加按钮);p2.add(newLabel("输入要更新的英语单词:"));p2.add(更新英文单词_文本条);p2.add(newLabel("输入该单词更新的汉语解释:"));p2.add(更新汉语解释_文本条);khdaw.com3若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!p2.add(更新按钮);p4.add(newLabel("输入要删除的英语单词:"));p4.add(删除英文单词_文本条);p4.add(删除按钮);p4.add(newLabel(""));p4.add(清空按钮);add(p1);add(p3);add(p2);add(p4);查询按钮.addActionListener(this);更新按钮.addActionListener(this);填加按钮.addActionListener(this);删除按钮.addActionListener(this);清空按钮.addActionListener(this);khaw.comaddWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){setVisible(false);System.exit(0);}});}publicvoidactionPerformed(ActionEvente){if(e.getSource()==查询按钮){查询记录=0;try{查询课后答案网();}catch(SQLExceptionee){}}elseif(e.getSource()==www.hackshp.cn更新按钮){try{更新();}catch(SQLExceptionee){}}elseif(e.getSource()==填加按钮){try{填加();}catch(SQLExceptionee){}}elseif(e.getSource()==删除按钮){try{删除();}catch(SQLExceptionee){}}elseif(e.getSource()==清空按钮){待查英文单词_文本条.setText("");汉语解释_文本条.setText("");填加英文单词_文本条.setText("");填加汉语解释_文本条.setText("");更新英文单词_文本条.setText("");更新汉语解释_文本条.setText("");删除英文单词_文本条.setText("");}}khdaw.com4若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!publicvoid查询()throwsSQLException{Stringcname,ename;Con=DriverManager.getConnection("jdbc:odbc:test","gxy","ookk");ResultSetrs=Stmt.executeQuery("SELECT*FROMcidian");while(rs.next()){ename=rs.getString("单词");cname=rs.getString("解释");if(ename.equals(待查英文单词_文本条.getText().trim())){汉语解释_文本条.setText(cname);查询记录=1;break;}}Con.close();if(查询记录==0){汉语解释_文本条.setText("没有该单词");}khaw.com}publicvoid更新()throwsSQLException{Strings1="""+更新英文单词_文本条.getText().trim()+""",s2="""+更新汉语解释_文本条.getText().trim()+""";Stringtemp="UPDATEcidianSET解释="+s2+"WHERE单词="+s1;Con=DriverManager.getConnection("jdbc:odbc:test","gxy","ookk");Stmt.executeUpdate(temp);Con.close();JOptionPane.showMessageDialog(this,"课后答案网更新成功!");}publicvoid填加()throwsSQLException{Strings1="""+www.hackshp.cn填加英文单词_文本条.getText().trim()+""",s2="""+填加汉语解释_文本条.getText().trim()+""";Stringtemp="INSERTINTOcidianVALUES("+s1+","+s2+")";Con=DriverManager.getConnection("jdbc:odbc:test","gxy","ookk");Stmt.executeUpdate(temp);Con.close();JOptionPane.showMessageDialog(this,"填加成功!");}publicvoid删除()throwsSQLException{Strings1="""+删除英文单词_文本条.getText().trim()+""";Stringtemp="DELETEFROMcidianWHERE单词="+s1;Con=DriverManager.getConnection("jdbc:odbc:test","gxy","ookk");Stmt.executeUpdate(temp);Con.close();JOptionPane.showMessageDialog(this,"删除成功!");}}publicclassDatabase{publicstaticvoidmain(Stringargs[]){DataWindowwindow=newDataWindow();window.pack();}}khdaw.com5若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第第111111章章章常见数据结构及算法分析常见数据常见数据结构及算法分析结构及算法分析【1】设有一数列:a1=3,a2=8,……,an=2an-1+2an-2,使用堆栈结构输出an的若干项。[解答]:代码如下,运行程序时需要输入一个参数,指出想要输出数列的前多少项importjava.util.Stack;publicclassStackShow{publicstaticvoidmain(String[]args){Stackst=newStack();intcount=Integer.valueOf(args[0]).intValue();khaw.cominttemp;Integerfirst=newInteger(3);Integersecond=newInteger(8);st.add(first);st.add(second);for(inti=0;i=0;i--){System.out.print(st.pop()+"");wanghang++;if(wanghang%5==0){System.out.println("n");}}}}输入13时的运行结果如下:khdaw.com1若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!【2】编写一程序,用哈希表实现学生成绩单的存储与查询。[解答khaw.com]:学生类Student,代码如下:classStudent{privateStringno;privateStringname;privateIntegerscore;publicStringgetNo(){returnno;}课后答案网publicvoidsetNo(Stringno){this.no=no;}www.hackshp.cnpublicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicIntegergetScore(){returnscore;}publicvoidsetScore(Integerscore){this.score=score;}publicStringtoString(){return"学号:"+no+"姓名:"+name+"成绩:"+score;}}主类HashTest,代码如下:importjavax.swing.*;importjava.util.Vector;importjava.util.Hashtable;importjava.awt.*;khdaw.com2若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!importjava.awt.event.ActionListener;importjava.awt.event.ActionEvent;publicclassHashTestextendsJFrame{JLabellblsearchbyidorname;JTextFieldtxfidorname;JButtonbtnsearchbyidorname;JTablereader;JButtonbtnadd;JButtonbtndelete;Hashtableht;Vectorcolnames;JLabellblno;khaw.comJLabellblname;JLabellblscore;JTextFieldaddno;JTextFieldaddname;JTextFieldaddscore;Vectordata;publicHashTest()throwsHeadlessException{super("课后答案网学生成绩管理");ht=newHashtable();lblsearchbyidorname=newJLabel("学号:");txfidorname=newJTextField(20);www.hackshp.cnlblno=newJLabel("学号");lblname=newJLabel("姓名");lblscore=newJLabel("分数");addno=newJTextField(10);addname=newJTextField(12);addscore=newJTextField(10);btnsearchbyidorname=newJButton("查找-->");btnadd=newJButton("新增");btndelete=newJButton("删除");colnames=newVector();colnames.add("学号");colnames.add("姓名");colnames.add("成绩");data=newVector();reader=newJTable(newReaderTableModel(data,colnames));reader.setPreferredSize(newDimension(700,260));JPanelpnlsearch=newJPanel();pnlsearch.add(lblsearchbyidorname);pnlsearch.add(txfidorname);pnlsearch.add(btnsearchbyidorname);pnlsearch.add(btndelete);khdaw.com3若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!JScrollPanescptable=newJScrollPane(reader,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);JPanelpnladd=newJPanel();pnladd.add(lblno);pnladd.add(addno);pnladd.add(lblname);pnladd.add(addname);pnladd.add(lblscore);pnladd.add(addscore);pnladd.add(btnadd);reader.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);khaw.comScoreHandlersh=newScoreHandler();btnadd.addActionListener(sh);btndelete.addActionListener(sh);btnsearchbyidorname.addActionListener(sh);Containerc=getContentPane();c.add(pnlsearch,BorderLayout.NORTH);c.add(scptable,BorderLayout.CENTER);c.add(pnladd,BorderLayout.SOUTH);课后答案网setSize(600,400);setVisible(true);}www.hackshp.cnpublicstaticvoidmain(String[]args){newHashTest();}classScoreHandlerimplementsActionListener{publicvoidactionPerformed(ActionEvente){JButtonbtn=(JButton)e.getSource();if(btn==btnsearchbyidorname){Objectobj=ht.get(txfidorname.getText().trim());if(obj==null){JOptionPane.showMessageDialog(null,"没有找到!");}else{JOptionPane.showMessageDialog(null,"查询结果如下:n"+obj.toString());}}elseif(btn==btnadd){Studentstu=newStudent();stu.setName(addname.getText().trim());stu.setNo(addno.getText().trim());stu.setScore(Integer.valueOf(addscore.getText().trim()));ht.put(stu.getNo(),stu);addDataToTable(stu);addname.setText("");khdaw.com4若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!addno.setText("");addscore.setText("");}elseif(btn==btndelete){intindex=reader.getSelectedRow();if(index==-1){JOptionPane.showMessageDialog(null,"你没有选择学生!");}else{Stringno=(String)reader.getValueAt(index,0);Studentstu=(Student)ht.remove(no);JOptionPane.showMessageDialog(null,"学生成绩删除!n"+stu.toString());data.remove(index);reader.repaint();khaw.com}}}}publicvoidaddDataToTable(Studentstu){Vectortemp=newVector();temp.add(stu.getNo());temp.add(stu.getName());课后答案网temp.add(stu.getScore());data.add(temp);reader.repaint();www.hackshp.cn}}运行效果如下:查找:khdaw.com5若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!khaw.com【3】(走迷宫)下列由符号#和点组成的图形代表一个迷宫,用一个双下标数组存放。其中,#代表迷宫的墙,点代表路径,只有数组中含有点的地方才能走。[解答]:对于用如下二维数组表示的迷宫{{1,1,0,1,1,1,1,1},{1,0,0,1,0,0,0,1},课后答案网{1,1,0,0,0,1,1,1},{1,0,0,1,0,0,0,1},{1,1,1,1,0,1,1,1},www.hackshp.cn{1,0,0,0,0,0,0,1},{1,0,1,0,1,0,0,1},{1,1,1,0,1,1,1,1}}为了简化算法,假设入口是(0,2),出口是(7,3),程序如下:类Position用来描述点在数组中的位置和该点旁边四个点是否可以通过的状态,程序如下:classPosition{privateintpx;privateintpy;privatebooleanforwardFlag;privatebooleanbackFlag;privatebooleanleftFlag;privatebooleanrightFlag;publicPosition(intpx,intpy,int[][]allData){this.px=px;this.py=py;introw=allData.length;intcol=allData[0].length;intforward=px+1;intback=px-1;intleft=py+1;intright=py-1;khdaw.com6若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!if(forward==row||allData[forward][py]==1){forwardFlag=false;}else{forwardFlag=true;}if(back==-1||allData[back][py]==1){backFlag=false;}else{backFlag=true;}if(left==col||allData[px][left]==1){leftFlag=false;khaw.com}else{leftFlag=true;}if(right==-1||allData[px][right]==1){rightFlag=false;}else{rightFlag=true;}课后答案网}publicbooleanisForwardFlag(){www.hackshp.cnreturnforwardFlag;}publicvoidsetForwardFlag(booleanforwardFlag){this.forwardFlag=forwardFlag;}publicbooleanisBackFlag(){returnbackFlag;}publicvoidsetBackFlag(booleanbackFlag){this.backFlag=backFlag;}publicbooleanisLeftFlag(){returnleftFlag;}publicvoidsetLeftFlag(booleanleftFlag){this.leftFlag=leftFlag;khdaw.com7若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!}publicbooleanisRightFlag(){returnrightFlag;}publicvoidsetRightFlag(booleanrightFlag){this.rightFlag=rightFlag;}publicintgetPx(){returnpx;khaw.com}publicvoidsetPx(intpx){this.px=px;}publicintgetPy(){returnpy;}publicvoidsetPy(intpy){课后答案网this.py=py;}publicStringtoString(){www.hackshp.cnreturn"("+px+","+py+")";}}主类:importjava.util.Stack;importjava.util.Enumeration;importjava.util.Iterator;publicclassPassMaze{int[][]maze={{1,1,0,1,1,1,1,1},{1,0,0,1,0,0,0,1},{1,1,0,0,0,1,1,1},{1,0,0,1,0,0,0,1},{1,1,1,1,0,1,1,1},{1,0,0,0,0,0,0,1},{1,0,1,0,1,0,0,1},{1,1,1,0,1,1,1,1}};privateStackst,direct;publicPassMaze(){direct=newStack();st=newStack();Positioncurrent=newPosition(0,2,maze);khdaw.com8若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!st.push(current);while(!isSuccessful(current)){booleanstatus=calPassWay(current);if(!status){st.pop();if(st.empty()){break;}setFlag((Position)st.peek(),(String)direct.pop());}current=(Position)st.peek();}khaw.comif(st.empty()){System.out.println("迷宫没有出路!");}else{System.out.println("迷宫的出路如下:");Iteratorit=st.iterator();while(it.hasNext()){System.out.println(it.next().toString());课后答案网}}}privatebooleancalPassWay(Positionpos){www.hackshp.cnbooleanresult=false;if(pos.isBackFlag()){Positiontemp=newPosition(pos.getPx()-1,pos.getPy(),maze);temp.setForwardFlag(false);if(contains(temp)){pos.setBackFlag(false);}else{st.push(temp);direct.push("Back");result=true;}}elseif(pos.isForwardFlag()){Positiontemp=newPosition(pos.getPx()+1,pos.getPy(),maze);temp.setBackFlag(false);if(contains(temp)){pos.setForwardFlag(false);}else{st.push(temp);direct.push("Forward");result=true;}khdaw.com9若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!}elseif(pos.isLeftFlag()){Positiontemp=newPosition(pos.getPx(),pos.getPy()+1,maze);temp.setRightFlag(false);if(contains(temp)){pos.setLeftFlag(false);}else{st.push(temp);direct.push("Left");result=true;}}elseif(pos.isRightFlag()){Positiontemp=newPosition(pos.getPx(),pos.getPy()-1,maze);khaw.comtemp.setLeftFlag(false);if(contains(temp)){pos.setRightFlag(false);}else{st.push(temp);direct.push("Right");result=true;课后答案网}}returnresult;}www.hackshp.cnprivatebooleancontains(Positionp){booleanresult=false;Iteratorit=st.iterator();while(it.hasNext()){Positiontemp=(Position)it.next();if(p.getPx()==temp.getPx()&&p.getPy()==temp.getPy()){result=true;break;}}returnresult;}privatevoidsetFlag(Positioncurrent,Stringdirction){if("Back".equals(dirction)){current.setBackFlag(false);}elseif("Forward".equals(dirction)){current.setForwardFlag(false);}elseif("Left".equals(dirction)){current.setLeftFlag(false);}elseif("Right".equals(dirction)){current.setRightFlag(false);khdaw.com10若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!}}privatebooleanisSuccessful(Positionpt){returnpt.getPx()==7&&pt.getPy()==3;}publicstaticvoidmain(String[]args){newPassMaze();}}khaw.com课后答案网www.hackshp.cnkhdaw.com11若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!第第121212章章章J2MEJ2J2MJ2ME程序设计基础MEE程序设计基础【1】安装并配置J2ME的运行环境。[解答]:安装步骤如下:1、安装JDK1.4;2、安装J2MEWirelessToolkit2.2(WTK22);测试运行环境:使用WTK创建第一个MIDlet程序,步骤如下:打开开发环境:开始>程序>J2MEWirelessToolkit2.2>KToolbar,如下:khaw.com(2)新建项目。项目名称:合法的变量名称就行;课后答案网MIDlet类名称:该类为程序运行入口类,如下所示:www.hackshp.cn(3)编写程序。使用任意的IDE,编写类InfoTest.java(MIDlet类名称,与新建项目时的名称相同),同时必须保存在Java源文件目录下。如果有图片等资源文件,必须保存在应用程序源文件目录下。如下所示:khdaw.com1若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!源程序如下:khaw.comimportjavax.microedition.lcdui.*;importjavax.microedition.midlet.*;publicclassInfoTestextendsMIDlet{privateDisplaydisplay;publicInfoTest(){display=Display.getDisplay(this);}protectedvoidstartApp(){课后答案网Alertalert=newAlert("手机信息测试");alert.setTimeout(Alert.FOREVER);www.hackshp.cnStringicon="/zsm.jpg";//从资源目录开始寻找try{Imageimage=Image.createImage(icon);alert.setImage(image);}catch(java.io.IOExceptionx){System.out.println("出错了");}display.setCurrent(alert);}protectedvoidpauseApp(){}protectedvoiddestroyApp(booleanunconditional){}}(4)编译与运行khdaw.com2若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!khaw.com【2】设计一个公告显示程序。[解答]:代码如下:importjavax.microedition.midlet.MIDlet;importjavax.microedition.midlet.MIDletStateChangeException;importjavax.microedition.lcdui.Display;importjavax.microedition.lcdui.TextBox;课后答案网importjavax.microedition.lcdui.TextField;importjavax.microedition.lcdui.Ticker;publicclassShowInfoextendsMIDlet{www.hackshp.cnprivateDisplaydp;privateTextBoxtb;publicShowInfo(){super();tb=newTextBox("信息公告","",200,TextField.ANY);}protectedvoidstartApp()throwsMIDletStateChangeException{dp=Display.getDisplay(this);tb.setTicker(newTicker("今天全校停课,哈哈!"));tb.setString("由于天气原因,全校停课一个月,回家种地去!");dp.setCurrent(tb);}protectedvoidpauseApp(){}protectedvoiddestroyApp(booleanb)throwsMIDletStateChangeException{}}运行结果如下:khdaw.com3若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!khaw.com【3】应用记录管理系统RMS建立一个同学通讯录。[解答]:同学通讯录的要求如下:1、每个联系人包括两项信息:姓名,电话号码;课后答案网2、能对联系人进行增加、删除、修改和查询操作;3、通过一个MIDlet程序实现与用户的交互(实现界面)。程序如下:www.hackshp.cnTelBean.java:描述联系人实体,既是用于传值的JavaBean,又提供该类对象与字节数组相互转换的方法,代码如下:importjava.io.*;publicclassTelBook{privateStringname;privateStringtel;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetTel(){returntel;}publicvoidsetTel(Stringtel){this.tel=tel;}publicbyte[]toByteArray(){byte[]data=null;ByteArrayOutputStreambout=newByteArrayOutputStream();khdaw.com4若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!DataOutputStreamdout=newDataOutputStream(bout);try{dout.writeUTF(this.name);dout.writeUTF(this.tel);data=bout.toByteArray();dout.close();bout.close();}catch(IOExceptione){e.printStackTrace();}returndata;}khaw.compublicvoidinitTelBean(byte[]rec){ByteArrayInputStreambin=newByteArrayInputStream(rec);DataInputStreamdin=newDataInputStream(bin);try{this.name=din.readUTF();this.tel=din.readUTF();din.close();课后答案网bin.close();}catch(IOExceptione){e.printStackTrace();www.hackshp.cn}}}TelModel.java:操作RecordStore,实现对电话本的增、删、查、改功能,代码如下:importjavax.microedition.rms.RecordStore;importjavax.microedition.rms.RecordStoreException;importjavax.microedition.rms.RecordStoreNotOpenException;importjava.io.*;publicclassTelModel{privateRecordStorers=null;publicTelModel(){try{rs=RecordStore.openRecordStore("Pref",true);}catch(RecordStoreExceptione){e.printStackTrace();}}publicintaddRecord(TelBookmn){intre=-1;try{re=rs.addRecord(mn.toByteArray(),0,mn.toByteArray().length);}catch(RecordStoreExceptione){khdaw.com5若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!e.printStackTrace();return-1;}returnre;}publicTelBookgetRecord(intrecordID){TelBooknote=newTelBook();try{byte[]MyNoteBytes=rs.getRecord(recordID);note.initTelBean(MyNoteBytes);}catch(RecordStoreExceptione){e.printStackTrace();khaw.com}returnnote;}publicbooleansetRecord(intrecordID,TelBookmn){try{byte[]temp=mn.toByteArray();rs.setRecord(recordID,temp,0,temp.length);课后答案网}catch(RecordStoreExceptione){e.printStackTrace();returnfalse;www.hackshp.cn}returntrue;}publicbooleandeleteRecord(intrecordID){try{rs.deleteRecord(recordID);}catch(RecordStoreExceptione){e.printStackTrace();returnfalse;}returntrue;}publicintgetRecordCounts(){try{returnrs.getNumRecords();}catch(RecordStoreNotOpenExceptione){e.printStackTrace();}return-1;}publicvoidClose(){try{khdaw.com6若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!rs.closeRecordStore();}catch(RecordStoreExceptione){e.printStackTrace();}}}TelView.java:用户界面,得到用户的输入并显示系统输出,代码如下:importjavax.microedition.midlet.MIDlet;importjavax.microedition.midlet.MIDletStateChangeException;importjavax.microedition.lcdui.*;khaw.compublicclassRecordMidletextendsMIDletimplementsCommandListener{privateFormmForm;privateFormnote;privateDisplaydp;privateTelModelrs;privateTextFieldmSubject,mContent,mID;privateintcurrentID;privateintstatus=-1;课后答案网privateCommandCMD_ADD;privateCommandCMD_DEL;privateCommandCMD_EDIT;www.hackshp.cnprivateCommandCMD_EXIT;privateCommandCMD_INFO;privateCommandCMD_OK;privateCommandCMD_CANCEL;publicRecordMidlet(){rs=newTelModel();note=newForm("StoreBook");mSubject=newTextField("姓名","",20,0);mContent=newTextField("号码","",20,0);mID=newTextField("记录号","",10,TextField.NUMERIC);CMD_ADD=newCommand("AddRecord",Command.ITEM,1);CMD_DEL=newCommand("DeleteRecord",Command.ITEM,1);CMD_EDIT=newCommand("EditRecord",Command.ITEM,1);CMD_EXIT=newCommand("Exit",Command.EXIT,1);CMD_INFO=newCommand("RecodeStoreInformation",Command.EXIT,1);CMD_OK=newCommand("Ok",Command.OK,1);CMD_CANCEL=newCommand("Cancel",Command.CANCEL,1);note.addCommand(CMD_CANCEL);note.addCommand(CMD_OK);note.setCommandListener(this);}khdaw.com7若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!protectedvoidstartApp()throwsMIDletStateChangeException{dp=Display.getDisplay(this);if(mForm==null){mForm=newForm("电话本");mForm.addCommand(CMD_ADD);mForm.addCommand(CMD_DEL);mForm.addCommand(CMD_EDIT);mForm.addCommand(CMD_EXIT);mForm.addCommand(CMD_INFO);mForm.setCommandListener(this);}dp.setCurrent(mForm);khaw.com}protectedvoidpauseApp(){}protectedvoiddestroyApp(booleanb)throwsMIDletStateChangeException{rs.Close();}publicvoidcommandAction(Commandcommand,Displayabledisplayable){课后答案网if(command==CMD_EXIT){notifyDestroyed();}elseif(command==CMD_CANCEL){www.hackshp.cndp.setCurrent(mForm);}elseif(command==CMD_ADD){note.deleteAll();note.append(mSubject);mSubject.setString("");note.append(mContent);mContent.setString("");status=0;dp.setCurrent(note);}elseif(command==CMD_EDIT){note.deleteAll();note.append(mID);status=1;dp.setCurrent(note);}elseif(command==CMD_DEL){note.deleteAll();note.append(mID);status=3;dp.setCurrent(note);}if(command==CMD_OK){Alerta=newAlert("");khdaw.com8若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!if(status==0){TelBookmy=newTelBook();my.setTel(mContent.getString());my.setName(mSubject.getString());intid=rs.addRecord(my);a.setString("Addrecordsuccessfully!"+id);a.setTimeout(3000);dp.setCurrent(a,mForm);}elseif(status==1){currentID=Integer.parseInt(mID.getString());TelBooktemp=rs.getRecord(currentID);mSubject.setString(temp.getName());khaw.commContent.setString(temp.getTel());note.deleteAll();note.append(mSubject);note.append(mContent);dp.setCurrent(note);status=2;return;课后答案网}elseif(status==2){TelBooktemp=newTelBook();temp.setName(mSubject.getString());www.hackshp.cntemp.setTel(mContent.getString());booleanre=rs.setRecord(currentID,temp);if(re){a.setString("Editrecordsuccessfully");}else{a.setString("Eidtrecordfailure");}dp.setCurrent(a,mForm);status=-1;}elseif(status==3){currentID=Integer.parseInt(mID.getString());booleanre=rs.deleteRecord(currentID);if(re){a.setString("Deleterecordsuccessfully");}else{a.setString("Deleterecodefailure");}dp.setCurrent(a,mForm);}}if(command==CMD_INFO){Stringtemp="";khdaw.com9若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com 课后答案网:www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!temp+="ThecurrentRecordStorehave"+rs.getRecordCounts()+"records";StringItemss=newStringItem("RecordStoreinformationn",temp);note.deleteAll();note.append(ss);dp.setCurrent(note);status=4;}}}运行结果如下:主界面:新增界面:khaw.com课后答案网编辑界面:www.hackshp.cnkhdaw.com10若侵犯了您的版权利益,敬请来信通知我们!℡www.khdaw.com'

您可能关注的文档