首页 > 代码库 > 网络电视精灵(新手练习,如果有不好的地方,请各位多多指导指导小弟。)

网络电视精灵(新手练习,如果有不好的地方,请各位多多指导指导小弟。)

电视精灵效果展示:

1.电视台和节目信息从xml文件中解析并绑定;

2.实现点击频道节点时显示有关该频道的节目信息;

好了,废话不多说。大家请看效果演示,如有不好之处,请多多指教一下,毕竟我还是个新手。

01.第一张效果图。

技术分享

02.第二张效果图。

技术分享

03.第三张效果图。

技术分享

04.第四张效果图北京电视台,然而截屏软件不行效果不太好。

技术分享

05.第五张效果图,然而截屏软件不行效果不太好。

技术分享

好了,效果图放完了,下面我们来看看代码吧。你们是不是很期待? 

1.频道类:

namespace Day08网络电视精灵{    /// <summary>    /// 频道父类    /// </summary>   public abstract class ChannelBase   {       //频道类型       public string ChannelType { get; set; }       //channelName        public string ChannelName { get; set; }       //path        public string Path { get; set; }       //节目列表        private List<TvProgram> ProgramList = new List<TvProgram>();        public List<TvProgram> ProgramList1        {            get { return ProgramList; }            set { ProgramList = value; }        }        public abstract void Jx();    }}

2.节目类:

namespace Day08网络电视精灵{    /// <summary>    /// 电视节目类    /// </summary>    public class TvProgram    {        //节目名称        public string ProgramName { get; set; }        //时段        public string Meridien { get; set; }        //节目路径        public string Path { get; set; }        //时间        public DateTime PlayTime { get; set; }    }}

3.工厂类:

namespace Day08网络电视精灵{   public  class Factory    {       //创建一个工厂类       public static ChannelBase CB(string type)       {           ChannelBase types = null;           switch(type)           {               case"TypeA":                   types = new TypeA();                   break;               case"TypeB":                   types = new TypeB();                   break;           }           return types;       }    }}

4.管理类:

namespace Day08网络电视精灵{    /// <summary>    /// 频道管理类    /// </summary>   public class ChannelManager    {        private List<ChannelBase> list = new List<ChannelBase>();        public List<ChannelBase> List        {            get { return list; }            set { list = value; }        }       public void ResolveChannels()        {             //1.1 我将解析好的Data中转存放到泛型集合           //List<自定义类>           XmlDocument doc = new XmlDocument();           doc.Load("files/FullChannels.xml");           //找根节点  ()           XmlNode root=doc.DocumentElement;           foreach (XmlNode item in root.ChildNodes)           {               //一个item代表什么  Channel                ChannelBase channel = Factory.CB(item["channelType"].InnerText);                channel.ChannelType = item["channelType"].InnerText;               channel.ChannelName = item["tvChannel"].InnerText;               channel.Path = item["path"].InnerText;               //归属到一个集合中               list.Add(channel);           }       }           }}

5.北京电视台类:

namespace Day08网络电视精灵{   public class TypeA:ChannelBase    {       public override void Jx()       {           XmlDocument doc = new XmlDocument();           doc.Load("files/北京电视台.xml");           XmlNode root = doc.DocumentElement;           foreach (XmlNode item in root.ChildNodes)           {               if (item.Name.Equals("tvProgramTable"))               {                   foreach (XmlNode item2 in item.ChildNodes)                   {                       TvProgram Tp = new TvProgram();                       Tp.PlayTime = Convert.ToDateTime(item2["playTime"].InnerText);                       Tp.Meridien = item2["meridien"].InnerText;                       Tp.Path = item2["path"].InnerText;                       Tp.ProgramName = item2["programName"].InnerText;                       ProgramList1.Add(Tp);                   }               }           }       }    }}

6.凤凰卫视:

namespace Day08网络电视精灵{    public class TypeB : ChannelBase    {        public override void Jx()        {            XmlDocument doc = new XmlDocument();            doc.Load("files/凤凰卫视.xml");            XmlNode root = doc.DocumentElement;            foreach (XmlNode item in root.ChildNodes)            {                if (item.Name.Equals("ProgramList"))                {                    foreach (XmlNode item2 in item.ChildNodes)                    {                        TvProgram Tp = new TvProgram();                        Tp.PlayTime = Convert.ToDateTime(item2["playTime"].InnerText);                        Tp.Path = item2["path"].InnerText;                        Tp.ProgramName = item2["name"].InnerText;                        ProgramList1.Add(Tp);                    }                }            }        }    }

7.程序入口:

namespace Day08网络电视精灵{    static class Program    {        /// <summary>        /// 应用程序的主入口点。        /// </summary>        [STAThread]        static void Main()        {            Application.EnableVisualStyles();            Application.SetCompatibleTextRenderingDefault(false);            Application.Run(new FrmMain());        }    }}

好了!没有了。如果各位在看的当中发现小弟有不知之处,请提出来,这样小弟可以及时更改学习。
还有注释写的也不是太完美,反正多多包涵吧!

勿喷!!!!!!!

 

网络电视精灵(新手练习,如果有不好的地方,请各位多多指导指导小弟。)