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

您已退出系統!

相關文章
相關標籤/搜索