根据要求编写java代码,急求,答案正确加100分!求高手!

2025-01-01 06:55:44
推荐回答(1个)
回答1:

服务器端:


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 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 getAllStudent()

{

List stu = new ArrayList();

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 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;

}

}

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

 

 

  令狐冲

12

华山派

 

  东方不败

22

日月神教

 

  岳不群

23

华山派

 

  风清扬

88

华山派

 

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


客户端:

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;

}

}


时间太紧,没有完善代码,基本功能实现了,代码没有优化,你自己再改改,希望可以帮到你