请帮我写一段C#代码使用SystemXmlLinq实现课程表的添加删除修改和查询课程表以XML的形式储存在ClassToolboxDataSchoolTimetablexml文件中XML格式如下:TimeTable DayOfWeek Name=Monday Course Name=英语 StartTime=0700 EndTime=0900 Course Name=语文 Star
以下是使用System.Xml.Linq实现课程表的添加、删除、修改和查询的C#代码:
using System;
using System.Xml.Linq;
public class Program
{
private static string filePath = @".\ClassToolboxData\SchoolTimetable.xml";
public static void Main()
{
// 添加课程
AddCourse("Monday", "数学", "10:00", "11:00");
AddCourse("Tuesday", "物理", "13:00", "15:00");
// 删除课程
DeleteCourse("Monday", "英语");
// 修改课程
UpdateCourse("Tuesday", "物理", "14:00", "16:00");
// 查询课程
QueryCourse("Tuesday");
}
public static void AddCourse(string dayOfWeek, string courseName, string startTime, string endTime)
{
XDocument doc = XDocument.Load(filePath);
XElement dayOfWeekElement = doc.Descendants("DayOfWeek").FirstOrDefault(x => x.Attribute("Name").Value.Equals(dayOfWeek));
if (dayOfWeekElement != null)
{
XElement course = new XElement("Course");
course.SetAttributeValue("Name", courseName);
course.SetAttributeValue("StartTime", startTime);
course.SetAttributeValue("EndTime", endTime);
dayOfWeekElement.Add(course);
}
else
{
XElement newDayOfWeekElement = new XElement("DayOfWeek");
newDayOfWeekElement.SetAttributeValue("Name", dayOfWeek);
XElement course = new XElement("Course");
course.SetAttributeValue("Name", courseName);
course.SetAttributeValue("StartTime", startTime);
course.SetAttributeValue("EndTime", endTime);
newDayOfWeekElement.Add(course);
doc.Root.Add(newDayOfWeekElement);
}
doc.Save(filePath);
}
public static void DeleteCourse(string dayOfWeek, string courseName)
{
XDocument doc = XDocument.Load(filePath);
XElement dayOfWeekElement = doc.Descendants("DayOfWeek").FirstOrDefault(x => x.Attribute("Name").Value.Equals(dayOfWeek));
if (dayOfWeekElement != null)
{
XElement courseElement = dayOfWeekElement.Descendants("Course").FirstOrDefault(x => x.Attribute("Name").Value.Equals(courseName));
if (courseElement != null)
{
courseElement.Remove();
}
}
doc.Save(filePath);
}
public static void UpdateCourse(string dayOfWeek, string courseName, string newStartTime, string newEndTime)
{
XDocument doc = XDocument.Load(filePath);
XElement dayOfWeekElement = doc.Descendants("DayOfWeek").FirstOrDefault(x => x.Attribute("Name").Value.Equals(dayOfWeek));
if (dayOfWeekElement != null)
{
XElement courseElement = dayOfWeekElement.Descendants("Course").FirstOrDefault(x => x.Attribute("Name").Value.Equals(courseName));
if (courseElement != null)
{
courseElement.SetAttributeValue("StartTime", newStartTime);
courseElement.SetAttributeValue("EndTime", newEndTime);
}
}
doc.Save(filePath);
}
public static void QueryCourse(string dayOfWeek)
{
XDocument doc = XDocument.Load(filePath);
XElement dayOfWeekElement = doc.Descendants("DayOfWeek").FirstOrDefault(x => x.Attribute("Name").Value.Equals(dayOfWeek));
if (dayOfWeekElement != null)
{
Console.WriteLine("课程表 - {0}", dayOfWeekElement.Attribute("Name").Value);
foreach (XElement courseElement in dayOfWeekElement.Descendants("Course"))
{
string courseName = courseElement.Attribute("Name").Value;
string startTime = courseElement.Attribute("StartTime").Value;
string endTime = courseElement.Attribute("EndTime").Value;
Console.WriteLine("课程:{0},时间:{1} - {2}", courseName, startTime, endTime);
}
}
else
{
Console.WriteLine("找不到该天的课程表。");
}
}
}
这段代码实现了添加课程、删除课程、修改课程和查询课程的功能。需要注意的是,代码中的filePath变量指定了存储课程表的XML文件路径,请根据实际情况修改该变量的值
原文地址: https://www.cveoy.top/t/topic/ikO0 著作权归作者所有。请勿转载和采集!