欢迎光临
我们一直在努力

基于XML-DOM技术的MIS系统(学生管理系统-精简版)-.NET教程,XML应用

建站超值云服务器,限时71元/月

(亿众国际-004)[原创]基于xml-dom技术的mis系统(学生管理系统-精简版)

/////////////////////////////////////////////////////////

//author: stardicky //

//e-mail: stardicky@hotmail.com //

//qqnumber: 9531511 //

//companyname: ezone international //

//class: hbs-0308 //

//title: 基于xml-dom技术的mis系统(学生管理系统-精简版) //

/////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////

//注:可能有人会问我为什么不用数据库技术来实现当前代码,有以下几个原因

//1.有少量的数据需要存储

//2.速度非常快(主要原因),尤其是在网络上非常适用

//3.能进行串行化

//4.便于企业级应用

////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////

//源文件数量:2 //

///////////////////////////////////////////////////////

////////////////////////////////文件1 ezoneinfo.xml/////////////////////////////////

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

<!– 文档声明 –>

<!– 文档根元素 –>

<亿众国际>

<!– 千人软件工程 是 亿众国际 的子元素 –>

<千人软件工程>

<班级 学号流水号="6">

<!– 学号 是 学员 的属性 –>

<学员 学号="1">

<姓名>章程</姓名>

<性别>男</性别>

<出生日期>1984-10-01</出生日期>

<班级>hbs-0308</班级>

</学员>

<学员 学号="2">

<姓名>彭超</姓名>

<性别>男</性别>

<出生日期>1981年3月8日</出生日期>

<班级>hbs-0308</班级>

</学员>

<学员 学号="5">

<姓名>dicky</姓名>

<性别>男</性别>

<出生日期>1984-10-01</出生日期>

<班级>hbs-0308</班级>

</学员>

<学员 学号="6">

<姓名>new</姓名>

<性别>男</性别>

<出生日期>1984-11-11</出生日期>

<班级>hbs-0308</班级>

</学员>

</班级>

</千人软件工程>

</亿众国际>

//////////////////////////////////文件2 ezonemgrsys.cs ////////////////////////////////

using system;

using system.xml;

namespace ezonemgrsys

{

class mgrsysclass

{

//文档对象模型(dom),这是核心对象!

public static xmldocument mydoc;

[stathread]

public static void main(string[] args)

{

//初始化对象模型

mydoc=new xmldocument();

console.writeline("正在加载 ezoneinfo.xml 文件……");

//加载xml文件到文档对象模型(dom)中

mydoc.load("..\\..\\ezoneinfo.xml"); //注意文件位置

console.writeline("dom(data object modal)数据对象模型在内存中创建完毕!");

//保存用户输入的命令字符串

string command=string.empty;

//打印菜单

printmenu();

while(true)

{

command=console.readline();

int i=0;

try

{

//如果用户没有输入数字,则这里的转换*作会抛出一个异常!

i=int.parse(command);

}

catch

{

printmenu();

continue;

}

switch(i)

{

case 1:

//查看所有学员信息

mgrsysclass.displayall();

break;

case 2:

//插入新学员信息

mgrsysclass.insertmodule();

break;

case 3:

//更新学员信息

mgrsysclass.updatemodule();

break;

case 4:

//删除学员信息

mgrsysclass.deletemodule();

break;

case 5:

//退出系统

goto closelabel;

default:

console.writeline("输入错误命令!");

break;

}

printmenu();

}

closelabel:

console.writeline("正在读取内存中dom对象,准备向 ezoneinfo.xml 文件更新数据……");

//保存xml文件

mgrsysclass.mydoc.save("..\\..\\ezoneinfo.xml");

console.writeline("文件保存完毕!");

console.writeline("程序正常退出!");

//系统信息

mgrsysclass.systemabout();

console.write("按任意键退出…..");

}

/// <summary>

/// 打印菜单模块

/// </summary>

public static void printmenu()

{

console.writeline(" __________________________________________________________ ");

console.writeline("|______________ 亿众国际 学生管理系统(精简版) _____________|");

console.writeline("| |");

console.writeline("| 1.查看信息 |");

console.writeline("| 2.插入信息 |");

console.writeline("| 3.修改信息 |");

console.writeline("| 4.删除信息 |");

console.writeline("| 5.退出系统 |");

console.writeline("|———————————————————-|");

console.writeline("| 注:只有正常退出,才能保证将内存中数据保存到 xml 文件! |");

console.writeline(" ———————————————————- ");

console.write("命令:");

}

/// <summary>

/// 插入新学员信息模块

/// </summary>

public static void insertmodule()

{

//保存用户的输入

mylabel1:console.write("请输入你的姓名:");

string name=console.readline();

if(name.trim()==string.empty)

goto mylabel1;

mylabel2:console.write("请输入你的性别:");

string sex=console.readline();

if(sex.trim()==string.empty)

goto mylabel2;

mylabel3:console.write("请输入你的出生日期:");

string birthday=console.readline();

if(birthday.trim()==string.empty)

goto mylabel3;

mylabel4:console.write("请输入你的班级:");

string classid=console.readline();

if(classid.trim()==string.empty)

goto mylabel4;

//创建当前dom对象的代码片段

xmldocumentfragment mydocfrag=mydoc.createdocumentfragment();

//获得具有[学号流水号]属性的[班级]节点

xmlnode mynode=mydoc.selectsinglenode("//班级[@学号流水号]");

//获取当前[学号流水号]的值

int stuid=int.parse(mynode.attributes["学号流水号"].value);

//修改[学号流水号]

stuid++;

mynode.attributes["学号流水号"].value=stuid.tostring();

//创建一个<学员>节点

xmlelement myelementroot=mydoc.createelement("学员");

//创建一个<学号>属性,并把他绑定到<学员>节点

xmlattribute myattribute=mydoc.createattribute("学号");

myattribute.value=stuid.tostring();

myelementroot.setattributenode(myattribute);

//创建一个<姓名>节点

xmlelement myelementname=mydoc.createelement("姓名");

myelementname.innertext=name;

//创建一个<性别>节点

xmlelement myelementsex=mydoc.createelement("性别");

myelementsex.innertext=sex;

//创建一个<出生日期>节点

xmlelement myelementbirthday=mydoc.createelement("出生日期");

myelementbirthday.innertext=birthday;

//创建一个<班级>节点

xmlelement myelementclassid=mydoc.createelement("班级");

myelementclassid.innertext=classid;

//把以上的节点添加到<学员>的子节点中

myelementroot.appendchild(myelementname);

myelementroot.appendchild(myelementsex);

myelementroot.appendchild(myelementbirthday);

myelementroot.appendchild(myelementclassid);

//添加<学员>节点到 mydocfrag 对象中

mydocfrag.appendchild(myelementroot);

//获得具有[学号流水号]属性的[班级]节点

xmlnode tempnode=mydoc.selectsinglenode("//班级[@学号流水号]");

//把代码片段添加到dom对象中

tempnode.appendchild(mydocfrag);

console.writeline("成功添加学员记录!");

console.write("按任意键继续…");

console.readline();

}

/// <summary>

/// 更新学员信息模块

/// </summary>

public static void updatemodule()

{

console.write("请输入你将要修改学员的学生学号:");

int stuid;

try

{

stuid=int.parse(console.readline());

}

catch

{

console.writeline("你输入了非法字符!");

return;

}

//搜索你要修改学员的学生学号

xmlnode mynode=mydoc.selectsinglenode("//学员[@学号="+stuid.tostring()+"]");

//如果没有搜索到,对象值就为 null

if(mynode==null)

console.writeline("对不起,没有找到你想要修改的学员记录!");

else

{

//保存用户的输入

mylabel1:console.write("请输入姓名:");

string name=console.readline();

if(name.trim()==string.empty)

goto mylabel1;

mylabel2:console.write("请输入性别:");

string sex=console.readline();

if(sex.trim()==string.empty)

goto mylabel2;

mylabel3:console.write("请输入出生日期:");

string birthday=console.readline();

if(birthday.trim()==string.empty)

goto mylabel3;

mylabel4:console.write("请输入班级:");

string classid=console.readline();

if(classid.trim()==string.empty)

goto mylabel4;

//克隆原来节点

xmlnode mynewnode=mynode.clonenode(true);

//进行赋值*作

mynewnode.childnodes[0].innertext=name;

mynewnode.childnodes[1].innertext=sex;

mynewnode.childnodes[2].innertext=birthday;

mynewnode.childnodes[3].innertext=classid;

//进行替换节点的*作

mynode.parentnode.replacechild(mynewnode,mynode);

console.writeline("成功修改学员记录!");

}

console.write("按任意键继续…");

console.readline();

}

/// <summary>

/// 删除学员信息模块

/// </summary>

public static void deletemodule()

{

console.write("请输入你将要删除学员的学生学号:");

int stuid;

try

{

stuid=int.parse(console.readline());

}

catch

{

console.writeline("你输入了非法字符!");

return;

}

//搜索你要删除学员的学生学号

xmlnode mynode=mydoc.selectsinglenode("//学员[@学号=" + stuid.tostring() + "]");

//如果没有搜索到,对象值就为 null

if(mynode==null)

console.writeline("对不起,没有找到你想要删除的学员记录!");

else

{

//进行删除节点*作

mynode.parentnode.removechild(mynode);

console.writeline("成功删除学员记录!");

}

console.write("按任意键继续…");

console.readline();

}

/// <summary>

/// 查看所有学员信息模块

/// </summary>

public static void displayall()

{

//搜索所有的<学员>节点,并赋给一个节点列表对象

xmlnodelist mynodelist=mydoc.selectnodes("//学员");

//如果<学员>节点的数量不为0,就遍历节点列表对象进行打印

if(mynodelist.count!=0)

{

console.writeline(" ———————————————————- ");

console.writeline("|学号\t姓名\t性别\t出生日期\t班级 |");

console.writeline(" ———————————————————- ");

foreach(xmlnode mynode in mynodelist)

{

string strtemp=string.empty;

strtemp+=mynode.attributes["学号"].value+"\t"+ //获取学号

mynode.childnodes[0].innertext +"\t"+ //获取姓名

mynode.childnodes[1].innertext+"\t"+ //获取性别

mynode.childnodes[2].innertext+"\t"+ //获取出生日期

mynode.childnodes[3].innertext; //获取班级

console.writeline(strtemp);

}

console.writeline(" ———————————————————- ");

}

else

console.writeline("当前dom中没有学员记录!");

console.write("按任意键继续…");

console.readline();

}

/// <summary>

/// 系统模块

/// </summary>

public static void systemabout()

{

console.writeline(" __________________________________________________________ ");

console.writeline("|______________ 亿众国际 学生管理系统(精简版) _____________|");

console.writeline("| |");

console.writeline("| 作者:章程 电邮:stardicky@hotmail.com |");

console.writeline("| oicq:9531511 版本:1.0 |");

console.writeline("|__________________________________________________________|");

}

}

}

//希望大家多提点意见

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 基于XML-DOM技术的MIS系统(学生管理系统-精简版)-.NET教程,XML应用
分享到: 更多 (0)