新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> XML网站展示,XML源代码,XML编程示例。 本版仅接受原创、转贴、网站展示,具体的技术交流请前往各相关版块。
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML源码及示例(仅原创和转载) 』 → 基于XML-DOM技术的MIS系统(学生管理系统-精简版) [转帖] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 19285 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
     * 贴子主题: 基于XML-DOM技术的MIS系统(学生管理系统-精简版) [转帖] 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     hsower 帅哥哟,离线,有人找我吗?狮子座1983-8-21
      
      
      威望:7
      等级:大四寒假(收到IBM的Offer啦)
      文章:72
      积分:1606
      门派:XML.ORG.CN
      注册:2004/4/3

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hsower发送一个短消息 把hsower加入好友 查看hsower的个人资料 搜索hsower在『 XML源码及示例(仅原创和转载) 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hsower的博客楼主
    发贴心情 基于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("|__________________________________________________________|");
               }
         }
    }
    //希望大家多提点意见


       收藏   分享  
    顶(2)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/1/21 10:37:00
     
     GoogleAdSense狮子座1983-8-21
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML源码及示例(仅原创和转载) 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/28 17:06:06

    本主题贴数12,分页: [1] [2]

     *树形目录 (最近20个回帖) 顶端 
    主题:  基于XML-DOM技术的MIS系统(学生管理系统-精简版) [转帖](16145字) - hsower,2005年1月21日
        回复:  学习中!!!(9字) - weiguo028,2006年3月28日
        回复:  studying....(12字) - wu7104,2006年3月27日
        回复:  不错,不错(10字) - linanzhiqiang,2006年3月23日
        回复:  谢谢了!调试成功!不过调试中应把MyNode.Attributes["学号流水号"].value..(156字) - jomi,2006年3月19日
        回复:  这是用什么写的啊?c++orjava(29字) - nnmk,2006年3月15日
        回复:  好啊,谢谢~(12字) - affanasieff,2006年3月11日
        回复:  好 不错 可以让我调试一下 看通不通(35字) - jiachunyue,2005年12月18日
        回复:  hao ya ,b cuo ya , feich gan xiue ya..(37字) - txj100200,2005年12月17日
        回复:  我也想给我们学校写个玩,不过准备websevices(42字) - 孤独,2005年12月15日
        回复:  呵呵,C#还不会,不过结构框架看了,重温一编结构化程序设计.发现XML要把一棵大树读到内存中,要..(142字) - AdrianMustuf,2005年12月15日
        回复:  谢谢,学习中(12字) - coco212868,2005年12月12日

    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    218.750ms