zoukankan      html  css  js  c++  java
  • 影院售票系统

     //座位集合属性
           public Dictionary<string, Seat> Seats = new Dictionary<string, Seat>();
           private Schedule schedule;
           public Schedule Schedule
           {
               get { return schedule; }
               set { schedule = value; }
           }
           public List<Ticket> SoldTickets = new List<Ticket>();
         
           public void Save()
           {
               FileStream fs = new FileStream("soldTickets.bin", FileMode.Create);
               BinaryFormatter bf = new BinaryFormatter();
               bf.Serialize(fs, SoldTickets);
               fs.Close();
           }
           public void Load()
           {
               try
               {
                   FileStream fs = new FileStream("soldTickets.bin", FileMode.Open);
                   BinaryFormatter bf = new BinaryFormatter();
                   this.SoldTickets = (List<Ticket>)bf.Deserialize(fs);
                   fs.Close();
               }
               catch (Exception ex)
               {
                   ex.ToString();
               }
           }
    
        }
    Cinema
     //赠票
       public class FreeTicket:Ticket
        {
           //获得增票者的名字属性
            public string CustomerName { get; set; }
            //重写父类计算票价方法
            public override void CalcPrice()
            {
    
            }
            //重写打印售票信息的虚方法
            public override void Print()
            {
    
            }
            //重写显示当前售出票信息的虚方法
            public override void Show()
            {
    
            }
    
            public FreeTicket(影院购票系统.ScheduleItem scheduleItem, 影院购票系统.Seat seat, string customerName)
            {
                // TODO: Complete member initialization
                this.ScheduleItem = scheduleItem;
                this.Seat = seat;
                this.CustomerName = customerName;
            }
        }
    FreeTicket
        //电影类
       public class Movie
        {
           //电影名
           public string MovieName = null;
           //海报图片名
            public string Poster { get; set; }
           //导演名
            public string Director { get; set; }
           //主演
            public string Actor { get; set; }
           //电影类型
            public MovieType MovieType { get; set; }
           //定价
            public int Price { get; set; }
        }
    Movie
     public  enum MovieType
        {
            Comedy, Action
        }
    MovieType
    //放映计划类
        public class Schedule
        {
            //放映场次属性
            public Dictionary<string, ScheduleItem> items = new Dictionary<string, ScheduleItem>();
         
            //读取XML文件获取
            public void Loadltem()
            {
                //实例化XmlDataDocument的对象
                XmlDataDocument doc = new XmlDataDocument();
                //调用了XmlDataDocument的load方法 方法括号中写路径
                doc.Load("ShowList.xml");
                //XmlNode 接收根节点
                XmlNode root = doc.DocumentElement;
                foreach (XmlNode item in root.ChildNodes)
                {               
                    Movie Movie = new Movie();
                    Movie.MovieName = item["Name"].InnerText;
                    Movie.Poster = item["Poster"].InnerText;
                    Movie.Director = item["Director"].InnerText;
                    Movie.Price = Convert.ToInt32(item["Price"].InnerText);
                    Movie.Actor = item["Actor"].InnerText;
                    Movie.MovieType = MovieType.Action;
             
                        foreach (XmlNode item1 in item["Schedule"].ChildNodes)
                        {
    
                            ScheduleItem sch = new ScheduleItem();
                            sch.Movie = Movie;
                            sch.Time = item1.InnerText;
                            items.Add(sch.Time, sch);
                        }
    
                }
    
            }
        }
    Schedule
     //影院每天放映计划的场次,保存每场电影的信息
       public class ScheduleItem
        {
           //放映时间属性
            public string Time { get; set; }
           //本场所放映
            public Movie Movie { get; set; }
        }
    ScheduleItem
      //保存影院座位信息
       public class Seat
        {
          
           public Seat(string p, System.Drawing.Color color)
           {
               // TODO: Complete member initialization
               this.SeatNum = p;
               this.Color = color;
           }
           public Seat() { }
           //座位号
            public string SeatNum { get; set; }
           //座位卖出后的颜色
            public System.Drawing.Color Color { get; set; }
    
        }
    Seat
    [Serializable]
        
        //学生票类
        public class StudentTicket:Ticket
        {
            private string customerName;
                
            public StudentTicket(影院购票系统.ScheduleItem scheduleItem, 影院购票系统.Seat seat, string customerName)
            {
                // TODO: Complete member initialization
                this.ScheduleItem = scheduleItem;
                this.Seat = seat;
                this.customerName = customerName;
            }
    
            public StudentTicket(影院购票系统.ScheduleItem scheduleItem, 影院购票系统.Seat seat, int discount)
            {
                // TODO: Complete member initialization
                this.ScheduleItem = scheduleItem;
                this.Seat = seat;
                this.Discount = discount;
            }
            //学生票的折扣
            public int  Discount { get; set; }
            //重写父类计算票价方法
            public override void CalcPrice()
            {
                this.Price = this.ScheduleItem.Movie.Price * Discount / 10;
    
            }
            //重写打印售票信息的虚方法
            public override void Print()
            {
                string fileName = this.ScheduleItem.Time.Replace(":", "-") + " " + this.Seat.SeatNum + ".txt";
                FileStream fs = new FileStream(fileName, FileMode.Create);
                StreamWriter sw = new StreamWriter(fs);
                sw.WriteLine("***************************");
                sw.WriteLine("     阿清影院 (学生)");
                sw.WriteLine("---------------------------");
                sw.WriteLine(" 电影名:	{0}", this.ScheduleItem.Movie.MovieName);
                sw.WriteLine(" 时间:  	{0}", this.ScheduleItem.Time);
                sw.WriteLine(" 座位号:	{0}", this.Seat.SeatNum);
                sw.WriteLine(" 价格:  	{0}", this.Price.ToString());
                sw.WriteLine("***************************");
                sw.Close();
                fs.Close();
                
            }
            //重写显示当前售出票信息的虚方法
            public override void Show()
            {
    
            }
        }
    StudentTicket
      //电影票
       public class Ticket
        {
           public Ticket() { }
           public Ticket(ScheduleItem scheduleItem, Seat seat)
           {
               this.ScheduleItem = scheduleItem;
               this.Seat = seat;
           }
           //放映场次
            public ScheduleItem ScheduleItem { get; set; }
           //所属对象座位对象
            public Seat Seat { get; set; }
           //票价
            public int Price { get; set; }
           //计算票价的虚方法
            public virtual void CalcPrice()
            {
                this.Price = this.ScheduleItem.Movie.Price;
    
            }
           //打印售票信息的虚方法
            public virtual void Print()
            {
                string fileName = this.ScheduleItem.Time.Replace(":", "-") + " " + this.Seat.SeatNum + ".txt";
                FileStream fs = new FileStream(fileName, FileMode.Create);
                StreamWriter sw = new StreamWriter(fs);
                sw.WriteLine("***************************");
                sw.WriteLine("        青鸟影院");
                sw.WriteLine("---------------------------");
                sw.WriteLine(" 电影名:	{0}", this.ScheduleItem.Movie.MovieName);
                sw.WriteLine(" 时间:  	{0}", this.ScheduleItem.Time);
                sw.WriteLine(" 座位号:	{0}", this.Seat.SeatNum);
                sw.WriteLine(" 价格:  	{0}", this.Price.ToString());
                sw.WriteLine("***************************");
                sw.Close();
                fs.Close();
            }
           //显示当前售出票信息的虚方法
            public virtual void Show()
            {
             
            }
        }
    Ticket
     public class TicketFactory
        {
            public static Ticket CreateTicket(ScheduleItem scheduleItem, Seat seat,
               int discount, string customerName, string type)
            {
                Ticket newTicket = null;
                switch (type)
                {
                    case "student":
                        newTicket = new StudentTicket(scheduleItem, seat, discount);
                        break;
                    case "free":
                        newTicket = new FreeTicket(scheduleItem, seat, customerName);
                        break;
                    case "":
                        newTicket = new Ticket(scheduleItem, seat);
                        break;
                }
                return newTicket;
            }
        }
    TicketFactory

    显示放映座位

    绑定TV控件

    给groupBox传值操作

    禁止TXT文本框的选择

    保存和继续销售、

    ---恢复内容开始---

    ---恢复内容结束---

  • 相关阅读:
    实验2实验报告
    实验1实验报告
    汇编实验九
    汇编实验5
    汇编实验四
    汇编实验三
    汇编实验二
    汇编实验一
    汇编第一章
    浅谈webpack4.0 性能优化
  • 原文地址:https://www.cnblogs.com/fkx1/p/8372430.html
Copyright © 2011-2022 走看看