Java实现欢迎登陆学员管理系统



使用前文的XML文档内容。java

一、app

package xml;

public class student {
    private int stuno;
	private String name;
	private String gender;
	private int scores;
	
	public student() {
		super();
	}
	public student(int stuno, String name, String gender, int scores) {
		super();
		this.stuno = stuno;
		this.name = name;
		this.gender = gender;
		this.scores = scores;
	}
	public int getStuno() {
		return stuno;
	}
	public void setStuno(int stuno) {
		this.stuno = stuno;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public int getScores() {
		return scores;
	}
	public void setScores(int scores) {
		this.scores = scores;
	}
	
}

二、dom

package xml;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.xml.sax.SAXException;
//读取保存XML类
public class loadSaveXml {
//	根据传入的URL路径读取整个XML文档的方法,返回DOC
	public static Document loadXml(String url){
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
		DocumentBuilder db = null;
		Document doc = null;
		try {
			db = dbf.newDocumentBuilder();
			doc = db.parse(url);
		} catch (ParserConfigurationException e) {			
			e.printStackTrace();
		} catch (SAXException e) {			
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		}
		return doc;
	}
	public static boolean saveXml(String url,Document doc){
		boolean flag = false;
//		建立保存XML工厂
		TransformerFactory tff = TransformerFactory.newInstance();
		try {
//			经过保存工厂建立Transformer对象
			Transformer tf = tff.newTransformer();
//			实例化DOMSource,将doc保存到DOMSource中
			DOMSource ds = new DOMSource(doc);
			tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
//			经过文件输出流将
			StreamResult sr = new StreamResult(new FileOutputStream(url));
			tf.transform(ds, sr);
//			flag=true;
		} catch (TransformerConfigurationException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {		
			e.printStackTrace();
		} catch (TransformerException e) {
			e.printStackTrace();
		}
		return flag;
	}
	
}

三、eclipse

package xml;

import java.util.ArrayList;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

//对XML内容操做的类
public class xmlWork {

	public ArrayList<student> SelectAll(String url){
		ArrayList<student> al = new ArrayList<student>();
		Document doc = loadSaveXml.loadXml(url);
		NodeList students=doc.getElementsByTagName("student");
		for(int i = 0 ;i <students.getLength();i ++){
			Element student = (Element)students.item(i);
			int stuno=Integer.parseInt(student.getAttribute("stuno"));
			String name = student.getElementsByTagName("name").item(0).getTextContent();
			String gender = student.getElementsByTagName("gender").item(0).getTextContent();
			int scores=Integer.parseInt(student.getElementsByTagName("scores").item(0).getTextContent());
			student stu = new student(stuno,name,gender,scores);
			al.add(stu);
		}
		return al;
		
	}
	
//	根据编号查找学生是否存在:true表示存在,false表示不存在
	public boolean isStu(String url,int stunoid){
		boolean flag = false;
		Document doc = loadSaveXml.loadXml(url);
		NodeList students=doc.getElementsByTagName("student");
		for(int i = 0 ;i <students.getLength();i ++){
			Element student = (Element)students.item(i);
			int stunoid1=Integer.parseInt(student.getAttribute("stuno"));
			if(stunoid1 == stunoid){
					flag=true;
					break;
				}
			}
		return flag;
	}
	
	public void AddStu(String url,student stu){
		
		Document doc=loadSaveXml.loadXml(url);
//		经过getDocumentElement获取所有doc的节点的元素
		Element students=doc.getDocumentElement();
//		建立student节点元素
		Element student=doc.createElement("student");
//		设置student节点元素的属性
		student.setAttribute("stuno", ((Integer)stu.getStuno()).toString());
//		将新建立的student放入到student节点中
		students.appendChild(student);
//		建立name节点元素
		Element name = doc.createElement("name");
//		为name文本域赋值
		name.setTextContent(stu.getName());
//		将name节点添加到student节点元素中
		student.appendChild(name);
//		建立gender节点元素
		Element gender = doc.createElement("gender");
//		为gender文本域赋值
		gender.setTextContent(stu.getGender());
//		将gender节点添加到student节点元素中
		student.appendChild(gender);
//		建立scores节点元素
		Element scores = doc.createElement("scores");
//		为scores文本域赋值
		scores.setTextContent(((Integer)(stu.getScores())).toString());
//		将scores节点添加到student节点元素中
		student.appendChild(scores);
//		将doc保存到XML文件中
		loadSaveXml.saveXml(url,doc);
	}
	
//	XML的修改操做
	public void UpdateStu(String url,student stu){
		Document doc = loadSaveXml.loadXml(url);
		NodeList students=doc.getElementsByTagName("student");
		for(int i = 0 ;i <students.getLength();i ++){
			Element student = (Element)students.item(i);
			int stuno=Integer.parseInt(student.getAttribute("stuno"));
			if(stu.getStuno()==stuno){
				student.getElementsByTagName("name").item(0).setTextContent(stu.getName());
				student.getElementsByTagName("gender").item(0).setTextContent(stu.getGender());
				student.getElementsByTagName("scores").item(0).setTextContent(((Integer)stu.getScores()).toString());
				break;
			}
		}
		loadSaveXml.saveXml(url, doc);
	}
//	XML的删除操做
	public void DelStu(String url,int stuno){
		Document doc = loadSaveXml.loadXml(url);
		Element studente1=doc.getDocumentElement();//获取全部节点
		NodeList students=doc.getElementsByTagName("student");
		for(int i = 0 ;i <students.getLength();i ++){
			Element student = (Element)students.item(i);
			int stunoid=Integer.parseInt(student.getAttribute("stuno"));
			if(stunoid==stuno){
				studente1.removeChild(student);
				break;
			}
		}
		loadSaveXml.saveXml(url, doc);
		
	}
	
}

四、ide

package xml;

import java.util.ArrayList;
import java.util.Scanner;
//提示用户输入及显示信息类
public class studentMenu {
	xmlWork xmlwork = new xmlWork();
	Scanner input = new Scanner(System.in);
	String url = "D:\\eclipse\\eclipse-jee-neon-R-win32\\workspace\\study\\src\\xml\\NewFile.xml";
	public void showMenu(){
		System.out.println("=======欢迎登陆学员管理系统======");
		System.out.println("请选择相应的操做:1.查询学生2.添加学生3.修改学生4.删除学生5.退出");
		int num = input.nextInt();
		switch (num) {
		case 1:
			selStu();
			showMenu();
			break;
		case 2:
			addStu();
			showMenu();
			break;
		case 3:
			updateStu();
			showMenu();
			break;
		case 4:
			delStu();
			showMenu();
			break;
		case 5:
			System.out.println("您已退出系统!");
			System.exit(0);			
			break;

		default:
			System.out.println("请选择正确的操做:");
			break;
		}
	
	}	
//	查询的方法
	private void selStu(){
		ArrayList<student> al = xmlwork.SelectAll(url);
		System.out.println("学生的信息为:\n学生编号\t学生姓名\t学生性别\t学生分数");
		for(student s:al){
			System.out.println(s.getStuno()+"	"+s.getName()+"	"+s.getGender()+"	"+s.getScores());
		}
	}
//	添加学生的方法
	private void addStu(){
		System.out.println("请输入学生编号:");
		int stuno = input.nextInt();
//		调用方法判断该编号的学生是否存在
		if(xmlwork.isStu(url, stuno)){
//			找到的状况提示错误
			System.out.println("该学生编号已经存在请从新输入!");
			addStu();
		}else{
//			没有找到的状况,继续输入
			System.out.println("请输入学生的姓名:");
			String name = input.next();
			System.out.println("请输入学生的性别:");
			String gender = input.next();
			System.out.println("请输入学生的分数:");
			int scores = input.nextInt();
			student stu= new student(stuno,name,gender,scores);
			xmlwork.AddStu(url, stu);
			System.out.println("已成功添加编号为"+stuno+"的学生!");
		}

	}
//	学生修改方法
	private void updateStu(){
		System.out.println("请输入学生编号:");
		int stuno = input.nextInt();
//		调用方法判断该编号的学生是否存在
		if(xmlwork.isStu(url, stuno)){
//			找到的状况提示--修改
			System.out.println("请输入学生的姓名:");
			String name = input.next();
			System.out.println("请输入学生的性别:");
			String gender = input.next();
			System.out.println("请输入学生的分数:");
			int scores = input.nextInt();
			student stu= new student(stuno,name,gender,scores);
			xmlwork.UpdateStu(url, stu);
			System.out.println("已成功修改编号为"+stuno+"的学生!");
		}else{
//			没有找到的状况,提示错误。
			System.out.println("该学生编号不存在!");
			updateStu();
			
		}
	}
//	学生的删除方法
	private void delStu(){
		System.out.println("请输入学生编号:");
		int stuno = input.nextInt();
		System.out.println("已成功删除编号为"+stuno+"的学生!");
//		调用方法判断学生是否存在
		if(xmlwork.isStu(url, stuno)){
				xmlwork.DelStu(url, stuno);
		}else{
//		未找到编号,提示错误
			System.out.println("该学生编号不存在!");
			delStu();
		}
	}
	
	
}

五、ui

package xml;

public class studentDemo {

	public static void main(String[] args) {

		studentMenu stm = new studentMenu();
		stm.showMenu();
	}

}

六、验证
this

6.1 查询url

=======欢迎登陆学员管理系统======spa

请选择相应的操做:1.查询学生2.添加学生3.修改学生4.删除学生5.退出orm

1

学生的信息为:

学生编号 学生姓名 学生性别 学生分数

1001 张三 100

1002 李四 99

1003 王五 98

=======欢迎登陆学员管理系统======

请选择相应的操做:1.查询学生2.添加学生3.修改学生4.删除学生5.退出

6.2 添加

2

请输入学生编号:

1004

请输入学生的姓名:

Tom

请输入学生的性别:

请输入学生的分数:

60

已成功添加编号为1004的学生!

=======欢迎登陆学员管理系统======

请选择相应的操做:1.查询学生2.添加学生3.修改学生4.删除学生5.退出


6.3 修改

=======欢迎登陆学员管理系统======

请选择相应的操做:1.查询学生2.添加学生3.修改学生4.删除学生5.退出

1

学生的信息为:

学生编号 学生姓名 学生性别 学生分数

1001 张三 100

1002 李四 99

1003 王五 98

1004 Tom 60

=======欢迎登陆学员管理系统======

请选择相应的操做:1.查询学生2.添加学生3.修改学生4.删除学生5.退出

3

请输入学生编号:

1005

该学生编号不存在!

请输入学生编号:

1004

请输入学生的姓名:

Jack

请输入学生的性别:

请输入学生的分数:

61

已成功修改编号为1004的学生!

=======欢迎登陆学员管理系统======

请选择相应的操做:1.查询学生2.添加学生3.修改学生4.删除学生5.退出

1

学生的信息为:

学生编号 学生姓名 学生性别 学生分数

1001 张三 100

1002 李四 99

1003 王五 98

1004 Jack 61

=======欢迎登陆学员管理系统======

请选择相应的操做:1.查询学生2.添加学生3.修改学生4.删除学生5.退出

6.4 删除

=======欢迎登陆学员管理系统======

请选择相应的操做:1.查询学生2.添加学生3.修改学生4.删除学生5.退出

4

请输入学生编号:

1004

已成功删除编号为1004的学生!

=======欢迎登陆学员管理系统======

请选择相应的操做:1.查询学生2.添加学生3.修改学生4.删除学生5.退出

1

学生的信息为:

学生编号 学生姓名 学生性别 学生分数

1001 张三 100

1002 李四 99

1003 王五 98

=======欢迎登陆学员管理系统======

请选择相应的操做:1.查询学生2.添加学生3.修改学生4.删除学生5.退出

6.4 退出

=======欢迎登陆学员管理系统======

请选择相应的操做:1.查询学生2.添加学生3.修改学生4.删除学生5.退出

5

您已退出系统!

相关文章
相关标签/搜索