77、(实例)学生管理系统

*使用xml当做数据库,来存储学生信息 *

1、创建student.xml文件,写一些学生信息

student.xml:

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

<student> 
  <stu> 
    <id>100</id>  
    <name>zhangsan</name>  
    <age>20</age> 
  </stu>  
  <stu> 
    <id>101</id>  
    <name>lisi</name>  
    <age>22</age> 
  </stu> 
</student>

2、增加操作
  1. 创建解析器
  2. 得到document
  3. 获取根节点
  4. 在根节点上创建stu标签
  5. 在stu标签上依次添加id,name,age(addElement方法)
  6. 在id,name,age上依次添加值(setText方法)
  7. 回写xml
3、删除操作
  1. 创建解析器
  2. 得到document
  3. 获取所有的id
  4. 遍历list集合
  5. 判断list里的id和传递的id是否相同
  6. 如果相同,把id所在的stu删除
4、查询操作
  1. 创建解析器
  2. 得到document
  3. 获取所有的id
  4. 返回list,遍历list
  5. 得到每一个id
  6. 获取id节点的值
  7. 判断list里的id和传递的id是否相同
  8. 如果相同,先获取id的父节点stu
  9. 通过stu获取name,age的值
    10.把这些值封装到一个对象里面,返回对象

代码:

在这里插入图片描述
1、student.java:

package cn.itcast.vo;

public class Student {
	private String name;
	private String id;
	private String age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "student [id="+id+",name="+name+",age="+age+"]";
	}
}

2、StuService.java:

package cn.itcast.service;
import java.io.FileOutputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import cn.itcast.vo.Student;

public class StuService {
	//增加
	public static void addStu(Student student) throws Exception{
		//创建解析器
		SAXReader saxReader = new SAXReader();
		//得到document
		Document document = saxReader.read("src/student.xml");
		//得到根节点
		Element root = document.getRootElement();
		//在根节点上添加stu
		Element stu = root.addElement("stu");
		//在stu标签上依次添加id,name,age标签
		Element id1 = stu.addElement("id");
		Element name1 = stu.addElement("name");
		Element age1 = stu.addElement("age");
		//在id,name,age上依次添加值
		id1.setText(student.getId());
		name1.setText(student.getName());
		age1.setText(student.getAge());
		//回写xml
		OutputFormat format = OutputFormat.createPrettyPrint();
		XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/student.xml"),format);
		xmlWriter.write(document);
		xmlWriter.close();
	}
	//根据id删除学生
	public static void delStu(String id) throws Exception{
		//创建解析器
		SAXReader saxReader = new SAXReader();
		//得到document
		Document document = saxReader.read("src/student.xml");
		//得到根节点
		Element root = document.getRootElement();
		//获取id
		Node node_id = root.selectSingleNode("//id[text()='"+id+"']");
		//获取id的父节点stu
		Element stu = node_id.getParent();
		//得到stu的父节点student
		Element student = stu.getParent();
		//删除stu
		student.remove(stu);
		//回写xml
		OutputFormat format = OutputFormat.createPrettyPrint();
		XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/student.xml"),format);
		xmlWriter.write(document);
		xmlWriter.close();
	}
	
	//根据id查询学生信息
	public static Student getStu(String id) throws Exception{
		//创建解析器
		SAXReader saxReader = new SAXReader();
		//得到document
		Document document = saxReader.read("src/student.xml");
		//获取所有的id
		List<Node> list = document.selectNodes("//id");
		//创建student对象
		Student student = new Student();
		//返回list集合,遍历list
		for(Node node:list){
			//得到id节点的值
			String idv = node.getText();
			//判断id和传过来的id是否相同
			if(idv.equals(id)){
				//得到id的父节点stu
				Element stu = node.getParent();
				//通过stu获取name和age
				String namev = stu.element("name").getText();
				String agev = stu.element("age").getText();
				student.setId(idv);
				student.setAge(agev);
				student.setName(namev);
			}
		}
		return student;
	}
}

3、TestStu.java:

package cn.itcast.test;

import cn.itcast.service.StuService;
import cn.itcast.vo.Student;

public class TestStu {
	public static void main(String[] args) throws Exception {
//		testAdd();
//		testDel();
		testSelect();
	}
	
	//测试添加方法
	public static void testAdd() throws Exception{
		//设置值
		Student stu = new Student();
		stu.setId("103");
		stu.setAge("23");
		stu.setName("wangwu");
		StuService.addStu(stu);
	}
	
	//测试删除方法
	public static void testDel() throws Exception{
		StuService.delStu("103");
	}
	
	//测试查询方法
	public static void testSelect() throws Exception{
		Student stu = StuService.getStu("100");
		System.out.println(stu.toString());
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 学生管理系统是一种常见的应用程序,可以帮助学校或教育机构管理学生信息。使用Android Studio开发学生管理系统的过程,需要使用Java语言编写代码,同时还需要使用Android SDK提供的各种组件和API。开发过程需要考虑到用户界面设计、数据存储、数据处理等方面的问题,同时还需要进行测试和调试,确保应用程序的稳定性和可靠性。总之,开发学生管理系统需要具备一定的编程技能和Android开发经验,同时还需要有耐心和细心,才能开发出高质量的应用程序。 ### 回答2: Android Studio 是一个功能强大的开发工具,它是为了让开发人员更加方便地开发基于 Android 平台的应用程序而生。在本文,我们将探讨如何使用 Android Studio 开发一个基于学生管理系统的应用程序。 首先,我们需要设置应用程序的界面。在 Android Studio ,我们可以使用 XML 文件来布置界面的元素,并使用 Java 代码来控制这些元素的行为。我们可以在 XML 文件添加 TextView、EditText、Button、CheckBox、RadioButton 等元素,以及布局元素,如 LinearLayout 和 RelativeLayou 来控制它们的排版。 其次,我们需要处理数据。在这个学生管理系统,我们需要存储学生的姓名、年龄、性别和成绩等信息。我们可以使用 Android Studio 的 SQLiteDatabase 来创建一个本地数据库,并编写 Java 代码来操作它。通过使用 SQLiteDatabase,我们可以方便地进行数据的增删改查。 最后,我们需要实现应用程序的逻辑。在本例,我们需要实现学生信息的录入、查询、修改和删除等功能。我们可以使用 Android Studio 的 Intent 来实现不同 Activity 之间的跳转,并使用 Java 代码来处理逻辑。同时,我们还可以使用 RecyclerView 来显示学生信息列表,这可以提高应用程序的性能和用户体验。 总之,通过使用 Android Studio,我们可以方便地开发出一个功能强大、界面友好、性能优良的学生管理系统应用程序。当然,开发应用程序是一个复杂而漫长的过程,并需要根据实际需求来不断改进和完善。希望这些内容能够对正在开发或计划开发 Android 应用程序的同学有所帮助。 ### 回答3: 学生管理系统是一个基于Android平台的应用程序,它主要用于管理学生的信息、课程安排和成绩等方面。本文将介绍使用Android Studio开发学生管理系统的步骤和相关技术。 首先,我们需要创建一个Android项目,为了方便操作,我们可以选择使用模板的“导航抽屉活动”作为我们的主要视图。在创建完毕后,我们可以在布局文件添加必要的组件,例如列表视图、文本框和按钮等。在Java文件,我们可以定义一个数据模型类来存储学生的信息,例如学生的姓名、学号、性别和年龄等字段。我们可以使用SQlite数据库来存储这些数据,并使用适配器类来将其与列表视图关联起来。 其次,我们需要为学生管理系统添加一些功能,例如添加、删除和修改学生信息。为了实现这些功能,我们可以在Java文件定义相应的方法,并为按钮添加点击事件监听器。例如,我们可以定义一个保存方法来将学生的信息保存到数据库,并使用Toast来显示成功或失败的消息。 此外,我们还可以为学生管理系统添加搜索和排序功能,以便更方便地浏览和管理学生信息。例如,我们可以定义一个搜索方法,通过学号、姓名或年龄等关键字来过滤学生信息,并将其显示在列表视图。我们还可以定义一个排序方法,通过学号、姓名或年龄等字段来对学生信息进行排序,并将其显示在列表视图。 最后,我们需要为学生管理系统添加一些界面设计和用户体验优化,以便提高应用程序的易用性和用户满意度。例如,我们可以使用各种颜色和图标来美化界面,同时为各种操作添加动画效果。我们还可以使用主题样式和字体等来增强用户体验,使用户能够更好地使用应用程序。 总之,使用Android Studio开发学生管理系统需要熟练掌握Java编程语言、Android开发框架、SQlite数据库和各种UI组件等技术,同时需要有良好的设计能力和用户体验意识,以便开发出一个功能完善、易用性高的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值