Jaa语言程序设计编程练习题答案_第1页
Jaa语言程序设计编程练习题答案_第2页
Jaa语言程序设计编程练习题答案_第3页
Jaa语言程序设计编程练习题答案_第4页
Jaa语言程序设计编程练习题答案_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

911»e■»»m

Java语言程序设并Java语言程序设讦

基础篇进阶篇

JAVA

<in”・

/

/厂网

[编程练习题答案]Java语言程序设计(基础篇K选阶篇)第13、14、

15、24、25、26、28、29、30、31章部分习题答案,奇教题和部分

双教题是我自己做的,在此和大彖分享「_人〜

上Chapter13Exercise13.2/13.8/13.11

importjavax.swing.*;

importjava.awt.*;

publicclassExercis㊀132extendsJFrame{

//Createtwobuttons

privateOvalButtonjbtOk=newOvalButton(n0Kn);

privateOvalButtonjbtCancel=newOvalButton("Cancel**);

/**Defaultconstructor*/

publicExercisel3_2(){

//Setthewindowtitle

setTitle(nExercisel3_2");

//SetFlowLayoutmanagertoarrangethecomponents

//insidetheframe

getContentPane().setLayout(newFlowLayout());

//Addbuttonstotheframe

getContentPane().add(jbtOk);

getContentPane().add(jbtCancel);

)

/**Mainmethod*/

publicstaticvoidmain(String[]args){

Exercisel3_2frame=newExercisel3_2();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.pack();

frame.setVisible(true);

}

)

classOvalButtonextendsJButton{

publicOvalButton(){

)

publicOvalButton(Stringtext){

super(text);

)

protectedvoidpaintComponent(Graphicsg){

//Drawanoval

super.paintcomponent(g);

g.drawOval(5,5,getWidth()-10,getHeight()-10);

)

/**Overridegetmethodforpreferredsize★/

publicDimensiongetPreferredSize(){

returnnewDimension(100f50);

)

/**Overridegetmethodforminimumsize*/

publicDimensiongetMinimumSize(){

returnnewDimension(100,50);

importjava.awt.*;

importjavax.swing.*;

publicclassExercisei38extendsJFrame{

publicstaticvoidmain(String[]args){

JFrameframe=newExercisel3_8();

frame.setSize(300z300);

frame.setTitle(nExercisel3_8");

frame.setDefaultCloseoperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

)

publicExercisel3_8(){

getContentPane().add(newOctagonPanel());

)

}

classOctagonPanelextendsJPanel{

protectedvoidpaintComponent(Graphicsg){

super.paintComponent(g);

intxCenter=getWidth()/2;

intyCenter=getHeight()/2;

intradius=

(int)(Math.min(getWidth(),getHeight())*0.4);

//CreateaPolygonobject

Polygonpolygon=newPolygon();

//Addpointstothepolygon

polygon.addPoint(xCenter+radius,yCenter);

polygon.addPoint((int)(xCenter+radius*Math.cos(2*Math.PI/8)),

(int)(yCenter-radius*Math.sin(2*Math.PI/8)));

polygon.addPoint((int)(xCenter+radius*Math.cos(22*Math.PH/

8)),

(int)(yCenter-radius*Math.sin(2*2*Math.PI/8)));

polygon.addPoint((int)(xCenter+radius*Math.cos(3*2*Math.PI

/8)),

(int)(yCenter-radius*Math.sin(3*2*Math.PI/8)));

polygon.addPoint((int)(xCenter+radius*Math.cos(4*2*Math.PI

/8)),

(int)(yCenter-radius*Math.sin(4*2*Math.PI/8)));

polygon.addPoint((int)(xCenter+radius*Math.cos(5*2*Math.PI

/8)),

(int)(yCenter-radius*Math.sin(5*2*Math.PI/8)));

polygon.addPoint((int)(xCenter+radius*Math.cos(6*2*Math.PT

/8)),

(int)(yCenter-radius*Math.sin(6*2*Math.PI/8)));

polygon.addPoint((int)(xCenter+radius*Math.cos(7*2*Math.PT

/8)),

(int)(yCenter-radius*Math.sin(7*2*Math.PI/8)));

//Drawthepolygon

g.drawPolygon(polygon);

)

importjavax.swing.*;

importjava.awt.*;

publicclassExercisei3」1extendsJFrame{

publicExercisel3_ll(){

add(newSquareFunction());

)

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODO自动生成方法存根

Exercisel3_l1frame=newExercisel3_ll();

frame.setTitle(MExercisel3.11n);

frame.setSize(300,200);

frame.setLocationRelativeTo(null);

frame.setDefauItCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

classSquareFunctionextendsJPanel{

publicSquareFunction(){

protectedvoidpaintComponent(Graphicsg){

super.paintComponent(g);

g.drawLine(10,this.getHeight()-20,this.getWidth()-10,

this.getHeight()-20);

g.drawLine(this.getWidth()-30,this.getHeight()-15,

this.getWidth()-10zthis.getHeight()-20);

g,drawLine(this.getWidth()-30,this.getHeight()-25,

this.getWidth()TO,this.getHeight()-20);

nn

g.drawstring(Xzthis.getWidth()-10,this.getHeight()-30);

g.drawLine(this.getWidth()/2,20,this.getWidth{)/2,

this.getHeight()-5);

g.drawLine(this.getWidth()/2Z20,this.getWidth()/2-5z35);

g.drawLine(this.getWidth()/2r20,this.getWidth()/2+5,35);

nn

g.drawstring(Yzthis.getWidth()/2+10,30);

Polygonp=newPolygon();

doublescaleFactor=0.01;

for(intx=-100;x<=100;x++){

p.addPoint(x+this.getWidth()/2,

this.getHeight()-20-(int)(scaleFactor*x*x));

)

g.drawPolyline(p.xpoints,p.ypoints,p.npoints);

)

}

packagechapterl4;

importjavax.swing.*;

importjava.awt.event.*;

importjava.awt.*;

publicclassExercisel44extendsJFrame{

publicExercisel4_4(){

MousePositionp=newMousePosition();

add(p);

}

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODO自动生成方法存根

Exercisel4_4frame=newExercisel4_4();

frame.setTitle("Exercise14.4n);

frame.setSize(300,200);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLocationRelativeTo(null);

frame.setVisible(true);

)

staticclassMousePositionextendsJPanel{

privateStringposition=

privateintx;

privateinty;

publicMousePosition(){

addMouseListener(newMouseAdapter(){

publicvoidmousePressed(MouseEvente){

x=e.getX();

y=e.getY();

position=+x++y+

repaint();

)

publicvoidmouseReleased(MouseEvente){

x=e.getX();

y=e.getY();

position=n*';

repaint();

}

publicvoidmouseClicked(MouseEvente){

x=e.getX();

y=e.getY();

position=+x++y+

repaint();

)

});

)

protectedvoidpaintComponent(Graphicsg){

super.paintComponent(g);

g.drawstring(position,x,y);

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

pub」icclassExercisel48extendsJFrame{

privateCharacterPanelcharacterPansel=newCharacterPanel();

publicExercisel4_8(){

add(characterPansel);

characterPansel.setFocusable(true);

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODO自动生成方法存根

JFrameframe=newExercisel4_8();

frame.setTitle(”Exercise14.8n);

frame.setsize(300z200);

frame.setLocationRelativeTo(null);

frame.setDefaultCloseOperation(JFrame.EXIT_<J_CLOSE);

frame.setVisible(true);

staticclassCharacterPanelextendsJPanel{

privateintx=5;

privateinty=10;

privatecharcharacter;

publicCharacterPanel(){

addKeyListener(newKeyAdapter(){

publicvoidkeyTyped(KeyEvente){

character=e.getKeyChar();

repaint();

}

));

addMouseListener(newMouseAdapter(){

publicvoidmouseClicked(MouseEvente)

x=e.getX();

y=e.getY();

repaint();

)

});

}

protectedvoidpaintComponent(Graphicsg){

super.paintComponent(g);

//g.setFont(newFont("TimesRoman**zFont.PLAIN,24));

g.drawstring(nn+character,x,y);

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

publicclassExercisel49extendsJFrame{

privateDrawLinesPaneldrawLinesPanel=newDrawLinesPanel();

publicExercisel4_9(){

add(drawLinesPanel);

drawLinesPanel.setFocusable(true);

)

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODO自动生成方法存根

Exercisel4_9frame=newExercisel4_9();

frame.setTitle(**Exercisel4.9**);

frame.setSize(300,200);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLocationRelativeTo(null);

frame.setVisible(true);

)

staticclassDrawLinesPanelextendsJPanel{

privateintx,y;

privatePolygonpolygon=newPolygon();

publicDrawLinesPanel(){

polygon.addPoint(x,y);

addKeyListener(newKeyAdapter(){

publicvoidkeyPressed(KeyEvente){

switch(e.getKeyCode()){

caseKeyEvent.VK_UP:

y_=10;

polygon.addPoint(x,y);

break;

caseKeyEvent.VK_DOWN:

y+=10;

polygon.addPoint(xzy);

break;

caseKeyEvent.VK_LEFT:

x-=10;

polygon.addPoint(xzy);

break;

caseKeyEvent.VK_RIGHT:

x+=10;

polygon.addPoint(xzy);

break;

)

repaint();

)

});

}

protectedvoidpaintComponent(Graphicsg){

super.paintComponent(g);

Polygonp=newPolygon();

intxCenter=getWidth()/2;

intyCenter=getHeight()/2;

for(inti=0;i<polygon.npoints;i++){

p.addPoint(polygon.xpoints[i]+

xCenter,polygon.ypoints[i]+yCenter);

g.drawPolyline(p.xpoints,p.ypoints,p.npoints);

)

}

}

+Chapter15Exercise15.4/15.6/15.7

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassExercise!54extendsJFrame{

protectedJButtonjbtAdd,jbtSubtract,jbtMultiply,jbtDivide;

protectedJTextFieldjtfNuml,jtfNum2,jtfResult;

protecteddoublexzy,result;

publicExercisel5_4(){

setLayout(newBorderLayout());

JPaneljpIO=newJPanel();

jpIO.setLayout(newFlowLayout());

add(jpIOfBorderLayout.CENTER);

jpIO.add(newJLabel("Number1n));

jpIO.add(jtfNuml=newJTextField(4));

jpIO.add(newJLabel("Number2n));

jpIO.add(jtfNum2=newJTextField(4));

jpIO.add(newJLabel(nResultn));

jpIO.add(jtfResult=newJTextField(8));

jtfNuml.setHorizontalAlignment(JTextField.RIGHT);

jtfNum2.setHorizontalAlignment(JTextField.RIGHT);

,setHorizontalAlignment(JTextField.RIGHT)

jtfResult.setEditable(false);

JPaneljpButtons=newJPanel();

jpButtons.setLayout(newFlowLayout());

add(jpButtons,BorderLayout.SOUTH);

jpButtons.add(jbtAdd=newJButton("Add”));

jpButtons.add(jbtSubtract=newJButton(''Subtractn;

jpButtons.add(jbtMultiply=newJButton(*'Multiply**));

jpButtons.add(jbtDivide=newJButton("Divide”));

ButtonGroupgroup=newButtonGroup();

group.add(jbtAdd);

group.add(jbtSubtract);

group.add(jbtMultiply);

group.add(jbtDivide);

jbtAdd.setMnemonic(1Af);

jbtSubtract.setMnemonic('S1);

jbtMultiply.setMnemonic('M*);

jbtDivide.setMnemonic(*D*);

jbtAdd.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

x=Double.parseDouble(jtfNuml.getText());

y=Double.parseDouble(jtfNum2.getText());

result=add(xzy);

jtfResult.setText(n*'+(float)result);

}

});

jbtSubtract.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

x=Double.parseDouble(jtfNuml.getText());

y=Double.parseDouble(jtfNum2.getText());

result=subtract(x,y);

jtfResult.setText(n*'+(float)result);

)

});

jbtMultiply.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

x=Double,parseDouble(jtfNuml.getText());

y=Double.parseDouble(jtfNum2.getText());

result=multiply(xzy);

jtfResuIt.setText(*'n+(float)result);

}

});

jbtDivide.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

x=Double.parseDouble(jtfNuml.getText());

V=Double.parseDouble(jtfNum2.getText());

result=divide(x,y);

jtfResult.setText(*'*'+(float)result);

}

});

}

publicdoubleadd(doublex,doubley){

returnx+y;

)

publicdoublesubtract(doublex,doubley){

returnx-y;

)

publicdoublemultiply(doublex,doubley){

returnx*y;

)

publicdoubledivide(doublex,doubley){

returnx/y;

}

*@paramargs

publicstaticvoidmain(String[]args){

//TODO自动生成方法存根

Exercisel5_4frame=newExercisel5_4();

frame.pack();

frame.setLocationRelativeTo(null);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setTitle(nExercisel5.4n);

frame.setVisible(true);

}

}

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassExercisel56extendsJFrame{

privatedoublefutureValuezinvestmentAmountzannualInterestRater

years;

protectedJLabeljIbFutureValue,jIblnvestmentAmountr

jlbAnnualInterestRate,jlbYears;

protectedJTextFieldjtfFutureValue,jtfInvestmentAmount,

jtfAnnuaIInterestRate,jtfYears;

protectedJButtonjbtCalculate;

publicExercisel5_6(){

setLayout(newBorderLayout(10z5));

JPaneljpLabels=newJPanel();

JPaneljpTextFields=newJPanel();

JPaneljpButton=newJPanel();

add(jpLabels,BorderLayout.WEST);

add(jpTextFields,BorderLayout.CENTER);

add(jpButton,BorderLayout.SOUTH);

jpLabels.setLayout(newGridLayout(4,1));

jpTextFields.setLayout(newGridLayout(4,1));

jpButton•setLayout(newFlowLayout(FlowLayout.RIGHT));

jpLabels.add(jIblnvestmentAmount=newJLabel('investment

Amount"));

jpLabels.add(jlbYears=newJLabel(nYearsn));

jpLabels.add(jlbAnnualInterestRate=newJLabel("AnnualInterest

Rate**));

jpLabels.add(jlbFutureValue=newJLabel(nFutureValue"));

jpTextFields.add(jtfInvestmentAmount=newJTextField(10));

jpTextFields.add(jtfYears=newJTextField(10));

jpTextFields.add(jtfAnnuallnterestRate=newJTextField(10));

jpTextFields.add(jtfFutureValue=newJTextField(10));

jtfInvestmentAmount.setHorizontalAlignment(JTextField.RIGHT);

jtfYears.setHorizontalAlignment(JTextField.RIGHT);

jtfAnnualInterestRate.setHorizontalAlignment(JTextField.RIGHT);

jtfFutureValue.setHorizontalAlignment(JTextField.RIGHT);

jtfFutureValue.setEditable(false);

jpButton.add(jbtCalculate=newJButton("Calculate*1));

jbtCalculate.setMnemonic(*C*);

jbtCalculate.addActionListener(newActionListener()(

publicvoidactionPerformed(ActionEvente){

investmentAmount=

Double.parseDouble(jtfInvestmentAmount.getText());

annualInterestRate=

Double.parseDouble(jtfAnnuallnterestRate.getText());

years=Double.parseDouble(jtfYears.getText());

futurevalue=investmentAmount*(Math.pouz((1+

annualInterestRate/12/100),(years*12)));

jtfFutureValue.setText(nn+(double)(int)(futurevalue*

100)/100);

)

});

}

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODO自动生成方法存根

Exercisel5_6frame=newExercisel5_6();

frame.setTitle("Exercise15.6n);

frame.pack();

frame.setLocationRelativeTo(null);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

}

}

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

pub」icclassExercisel57extendsJFrame{

protectedStillClockstillClock=newStillClock();

privateJLabeljlbHour,jlbMinutezjlbSecond;

protectedJTextFieldjtfHour,jtfMinute,jtfSecond;

privateinthourzminute,second;

publicExercisel5_7(){

setLayout(newBorderLayout());

add(stillClock,BorderLayout.CENTER);

JPaneljp=newJPanel();

add(jp,BorderLayout.SOUTH);

jp.setLayout(newFlowLayout());

jp.add(jlbHour=newJLabel("Hour"));

jp.add(jtfHour=newJTextField(2));

jp.add(jlbMinute=newJLabel("Minute*'))

jp.add(jtfMinute=newJTextField(2));

jp.add(jlbSecond=newJLabel(nSecondn))

jp.add(jtfSecond=newJTextField(2));

jtfHour.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

hour=Integer.parselnt(jtfHour.getText());

stillClock.setHour(hour);

}

});

jtfMinute.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

minute=Integer.parselnt(jtfMinute.getText());

stillClock.setMinute(minute);

}

});

jtfSecond.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

second=Integer.parselnt(jtfSecond.getText());

stillClock.setSecond(second);

)

});

)

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODO自动生成方法存根

Exercisel5_7frame=newExercisel5_7();

frame.setTitle(nExercisel5.7n);

frame.setSize(300,220);

frame.setLocationRelativeTo(null);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

+Chapter24Exercise24.12

importjava.awt.*;

importjava.awt.event.*

importjavax.swing.*;

pub」icclassExercise2412extendsJAppletimplementsRunnable{

boolean!sStandalone=false;

JProgressBarjProgressBarl=newJProgressBar();

FlowLayoutflowLayout1=newFlowLayout();

Threadthread;

/**Constructtheapplet*/

publicExercise24_12(){

)

/**Initializetheapplet*/

publicvoidinit(){

try(

jblnit();

}

catch(Exceptione){

e.printStackTrace();

)

)

//Componentinitialization

privatevoidjblnit()throwsException{

this.setsize(newDimension(400,300));

this.getContentPane().setLayout(flowLayout1);

this.getContentPane().add(jProgressBar1,null);

thread=newThread(this);

thread.start();

)

publicvoidrun(){

while(true){

try(

Thread.sleep(500);

}

catch(InterruptedExceptionex){}

jProgressBarl.setvalue((int)(jProgressBarl.getMaximum()*

Math.random()));

}

)

/★★Mainmethod*/

publicstaticvoidmain(String[]args){

Exercise24_12applet=newExercise24_12();

applet.isStandalone=true;

JFrameframe=newJFrame();

frame.setTitle(nExercise24_12n);

frame.getContentPane().add(applet,BorderLayout.CENTER);

applet.init();

applet.start();

frame.pack();

Dimensiond=Toolkit.getDefaultToolkit().getScreenSize();

frame.setLocation((d.width-frame.getSize().width)/2,(d.height

-frame.getSize().height)/2);

frame•setVisible(true);

)

//staticinitializerforsettinglook.&feel

static{

try(

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

//UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClass

Name());

)

catch(Exceptione){}

}

)

+Chapter25Exercise25.1/25.10

Exercise25.13S^§S

Exerdse25_1ServerstatedatSatDec1810:34:23CST2010

i_Exe「cise25_l客户流IOI回r5n

Startingthreadfordient1atSatDec1810:34:51CST2010

ClientTshostnameis127.0.01AnnuallnterestRate2.3

ClientTsIPadressisNumberOfYears2提交

AnnualInterestRate2.3NumberOfYears3.0LoanAmount10000.0

MonthlyPayment287.7373239917401LoanAmount10000

TotalPayment10358.543663702643AnnualInterestRate3.3NumberOfYears2.0

-LoanAmount10000.0

Startingthreadfordient2atSatDec1810:35:00CST2010IMonthlyPayment431.14035258423127

Client2'shostnameis

ClientZsIPadressisTotalPayment10347.36846202155

AnnualInterestRate2.3NumberOfYears2.0LoanAmount10000.0

MonthlyPayment426.72257743934637

importjava.io.*;

import.*;

importjava.util.*;

importjava.awt.*;

importjavax.swing.*;

pub」icclassExercise25lServerextendsJFrame{

privateJTextAreajta=newJTextArea();

/*

privateObjectOutputStreamtoClient;

privateObjectInputStreamfromClient;

*/

publicExercise25_lServer(){

setLayout(newBorderLayout());

add(newJScrollPane(jta)rBorderLayout.CENTER);

jta.setEditable(false);

jta.setLineWrap(true);

jta.setWrapStyleWord(true);

setTitle(nExercise25.1月艮务器”);

setSize(420,300);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);

try{

ServerSocketserversocket=newServerSocket(8000);

jta.append(nExercise25_lServerstatedat*'+newDate()+

〃\n”);

intclient=0;

while(true){

//监听连接,等待新的连接请求

Socketsocket=serversocket.accept();

client++;

jta.append(**\nStartingthreadforclient"+client+”at

"+newDate()+*'\nn);

//获取客户域名及工P地址

InetAddressinetAddress=socket.getInetAddress();

jta.append(nClient*'+client+**'shostnameis**+

inetAddress.getHostName()+n\nn);

jta.append(**Client*'+client+*'*sIPadressis*'+

inetAddress.getHostAddress()+*'\nn);

HandleAClienttask.=newHandleAClient(socket);

newThread(task).start();

}catch(lOExceptionex){

System.err.printIn(ex);

)

)

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

newExercise25_lServer();

}

/**内部类

*定义线程类来处理新的连接*/

classHandleAClientimplementsRunnable{

privateSocketsocket;

publicHandleAClient(Socketsocket){

this.socket=socket;

)

©Override

publicvoidrun(){

try(

ObjectInputStreaminputFromClient=new

ObjectInputStream

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论