當前位置:編程學習大全網 - 編程語言 - 根據要求編寫java代碼,急求,答案正確加100分!求高手!

根據要求編寫java代碼,急求,答案正確加100分!求高手!

服務器端:

package com.lqq.service;

import java.io.File;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.net.Socket;

import java.util.List;

import com.lqq.vo.QueryType;

import com.lqq.vo.Student;

public class DealClientRequest implements Runnable?

{

private Socket s = null;

private ParserXML p = new ParserXML(new File("students.xml"));

public DealClientRequest(Socket s)

{

this.s = s;

}

@Override

public void run()?

{

if(s != null)

{

try?

{

ObjectInputStream ois = new ObjectInputStream(s.getInputStream());

ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());

QueryType qt = (QueryType) ois.readObject();

if(qt.getQueryType() == 1)//單查

{

System.out.println("執行單查,查詢的名字= " + qt.getQueryName());

Student stu = p.getStudent(qt.getQueryName());

oos.writeObject(stu);

}else if(qt.getQueryType() == 2)//全查

{

System.out.println("執行全查");

List<Student> list = p.getAllStudent();

for(int i = 0; i < list.size(); i++)

{

Student stu = list.get(i);

oos.writeObject(stu);

}

}

} catch (IOException e)

{

e.printStackTrace();

} catch (ClassNotFoundException e)

{

e.printStackTrace();

}

}

}

}

*************************

package com.lqq.service;

import java.io.IOException;

import java.net.ServerSocket;

import java.net.Socket;

public class MainService

{

private ServerSocket ss;

public void startService() throws IOException

{

ss = new ServerSocket(10086);

while(true)

{

System.out.println("服務器在10086等待...");

Socket s = ss.accept();

new Thread(new DealClientRequest(s)).start();

System.out.println("啟動處理線程成功");

}

}

}

******************

package com.lqq.service;

import java.io.File;

import java.util.ArrayList;

import java.util.List;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.NodeList;

import org.w3c.dom.Text;

import com.lqq.vo.Student;

public class ParserXML?

{

private DocumentBuilderFactory bdf;

private DocumentBuilder db;

private Document dom;

public ParserXML(File file)

{

bdf = DocumentBuilderFactory.newInstance();

try?

{

db = bdf.newDocumentBuilder();

dom = db.parse(file);

} catch (Exception e)?

{

e.printStackTrace();

}

}

public List<Student> getAllStudent()

{

List<Student> stu = new ArrayList<Student>();

Element root = dom.getDocumentElement();

NodeList list = root.getElementsByTagName("stu");

for(int i = 0; i < list.getLength(); i++)

{

Element e = (Element) list.item(i);

Student st = new Student();

NodeList names = e.getElementsByTagName("name");

if(names.getLength() == 1)

{

Element name = (Element)names.item(0);

Text text = (Text) name.getFirstChild();

st.setStuName(text.getNodeValue());

}

NodeList sexs = e.getElementsByTagName("sex");

if(sexs.getLength() == 1)

{

Element name = (Element)sexs.item(0);

Text text = (Text) name.getFirstChild();

st.setStuGender(text.getNodeValue());

}

NodeList ages = e.getElementsByTagName("age");

if(ages.getLength() == 1)

{

Element name = (Element)ages.item(0);

Text text = (Text) name.getFirstChild();

st.setStuAge(Integer.parseInt(text.getNodeValue()));

}

NodeList classs = e.getElementsByTagName("class");

if(classs.getLength() == 1)

{

Element name = (Element)classs.item(0);

Text text = (Text) name.getFirstChild();

st.setStuClassName(text.getNodeValue());

}

stu.add(st);

}

return stu;

}

public Student getStudent(String stuName)

{

List<Student> list = this.getAllStudent();

for(int i = 0; i < list.size(); i++)

{

Student st = list.get(i);

if(st.getStuName().equals(stuName))

return st;

}

return null;

}

}

*************

package com.lqq.service;

import java.io.IOException;

public class Service?

{

public static void main(String[] args)?

{

MainService ms = new MainService();

try?

{

ms.startService();

} catch (IOException e)?

{

e.printStackTrace();

}

}

}

*******

package com.lqq.vo;

import java.io.Serializable;

public class QueryType implements Serializable

{

private static final long serialVersionUID = 8713870836629046060L;

/**

* 1 單查

* 2 全查

*/

private byte queryType;

private String queryName;

public byte getQueryType()

{

return queryType;

}

public void setQueryType(byte queryType)?

{

this.queryType = queryType;

}

public String getQueryName()?

{

return queryName;

}

public void setQueryName(String string)?

{

this.queryName = string;

}

}

************

package com.lqq.vo;

import java.io.Serializable;

public class Student implements Serializable

{

private static final long serialVersionUID = -6087251613589160139L;

private String stuName;

private int stuAge;

private String stuGender;

private String stuClassName;

@Override

public String toString()?

{

return "姓名: " + stuName + "\t性別: " + stuGender?

+ "\t年齡: " + stuAge + "\t班級: " + stuClassName;

}

public String getStuName()?

{

return stuName;

}

public void setStuName(String stuName)?

{

this.stuName = stuName;

}

public int getStuAge()?

{

return stuAge;

}

public void setStuAge(int stuAge)?

{

this.stuAge = stuAge;

}

public String getStuGender()?

{

return stuGender;

}

public void setStuGender(String stuGender)?

{

this.stuGender = stuGender;

}

public String getStuClassName()?

{

return stuClassName;

}

public void setStuClassName(String stuClassName)?

{

this.stuClassName = stuClassName;

}

}

*************

<?xml version="1.0" encoding="UTF-8"?>

<stus>

<stu>

<name>令狐沖</name>

<age>12</age>

<class>華山派</class>

<sex>男</sex>

</stu>

<stu>

<name>東方不敗</name>

<age>22</age>

<class>日月神教</class>

<sex>女</sex>

</stu>

<stu>

<name>嶽不群</name>

<age>23</age>

<class>華山派</class>

<sex>妖</sex>

</stu>

<stu>

<name>風清揚</name>

<age>88</age>

<class>華山派</class>

<sex>男</sex>

</stu>

</stus>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

客戶端:

package com.lqq.c;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.net.Socket;

import java.net.UnknownHostException;

import com.lqq.vo.QueryType;

import com.lqq.vo.Student;

public class AllQuery implements Runnable

{

private Socket s;

public AllQuery(QueryType qt)

{

try?

{

s = new Socket("localhost", 10086);

ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());

oos.writeObject(qt);

} catch (UnknownHostException e)?

{

e.printStackTrace();

} catch (IOException e)?

{

e.printStackTrace();

}

}

@Override

public void run()?

{

if(s != null)

{

try?

{

ObjectInputStream ois = new ObjectInputStream(s.getInputStream());

Student stu = (Student) ois.readObject();

Client c = new Client();

while(stu != null)

{

c.showStudentInfo(stu);

stu = (Student) ois.readObject();

}

} catch (IOException e)?

{

e.printStackTrace();

} catch (ClassNotFoundException e)?

{

e.printStackTrace();

}

}

}

}

**************

package com.lqq.c;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.net.Socket;

import java.util.Scanner;

import com.lqq.vo.QueryType;

import com.lqq.vo.Student;

public class Client?

{

public void showStudentInfo(Student stu)

{

if(stu != null)

{

System.out.println(stu);

}

}

public void showMenu()

{

System.out.println("\t\t菜 ?單");

System.out.println("\t1.單 查");

System.out.println("\t2.全 查");

System.out.println("\t0.退 出");

}

public String getUserInput()

{

Scanner scan = new Scanner(System.in);

System.out.println("請輸入:");

return scan.next();

}

public void requestQuery(String userSelect)

{

if(userSelect != null)

{

if("1".equals(userSelect.trim()))

{

QueryType qt = new QueryType();

qt.setQueryType((byte)1);

Scanner san = new Scanner(System.in);

System.out.println("請輸入查詢的學生名字:");

String queryStuName = san.next();

qt.setQueryName(queryStuName);

this.executeQeury(qt);

}else if("2".equals(userSelect.trim()))

{

QueryType qt = new QueryType();

qt.setQueryType((byte)2);

this.executeQeury(qt);

}else if("0".equals(userSelect.trim()))

{

System.exit(0);

}

else

{

System.out.println("輸入有誤");

}

}

}

public void executeQeury(QueryType qt)

{

try?

{

Socket s = new Socket("localhost", 10086);

ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());

oos.writeObject(qt);

System.out.println("請求發送完畢");

ObjectInputStream ois = new ObjectInputStream(s.getInputStream());

if(qt.getQueryType() == 1)

{

Student stu = (Student) ois.readObject();

showStudentInfo(stu);

}else if(qt.getQueryType() == 2)

{

new Thread(new AllQuery(qt)).start();

}

} catch (IOException e)?

{

e.printStackTrace();

} catch (ClassNotFoundException e)?

{

e.printStackTrace();

}

}

public static void main(String[] args)?

{

Client client = new Client();

while(true)

{

client.showMenu();

client.requestQuery(client.getUserInput());

}

}

}

**********

package com.lqq.vo;

import java.io.Serializable;

public class QueryType implements Serializable

{

private static final long serialVersionUID = 8713870836629046060L;

/**

* 1 單查

* 2 全查

*/

private byte queryType;

private String queryName;

public byte getQueryType()

{

return queryType;

}

public void setQueryType(byte queryType)?

{

this.queryType = queryType;

}

public String getQueryName()?

{

return queryName;

}

public void setQueryName(String string)?

{

this.queryName = string;

}

}

**********

package com.lqq.vo;

import java.io.Serializable;

public class Student implements Serializable

{

private static final long serialVersionUID = -6087251613589160139L;

private String stuName;

private int stuAge;

private String stuGender;

private String stuClassName;

@Override

public String toString()?

{

return "姓名: " + stuName + "\t性別: " + stuGender?

+ "\t年齡: " + stuAge + "\t班級: " + stuClassName;

}

public String getStuName()?

{

return stuName;

}

public void setStuName(String stuName)?

{

this.stuName = stuName;

}

public int getStuAge()?

{

return stuAge;

}

public void setStuAge(int stuAge)?

{

this.stuAge = stuAge;

}

public String getStuGender()?

{

return stuGender;

}

public void setStuGender(String stuGender)?

{

this.stuGender = stuGender;

}

public String getStuClassName()?

{

return stuClassName;

}

public void setStuClassName(String stuClassName)?

{

this.stuClassName = stuClassName;

}

}

時間太緊,沒有完善代碼,基本功能實現了,代碼沒有優化,妳自己再改改,希望可以幫到妳

  • 上一篇:做系統圖片素材去哪裏找
  • 下一篇:初中沒畢業,學習計算機可以學習什麽專業?
  • copyright 2024編程學習大全網