青鸟影院售票系统

    xiaoxiao2021-03-25  250

    using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace Day_影院售票系统 { static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Day_影院售票系统 { /// <summary> /// 影院类 /// </summary> public class Cinema { public static Dictionary<string, Seat> Seats =new Dictionary<string, Seat>(); public static Schedule Schedule = new Schedule(); public static List<Ticket> SoldTickets = new List<Ticket>(); public void Save() { FileStream fs = new FileStream("soldTickets.txt", FileMode.OpenOrCreate); StreamWriter writer = new StreamWriter(fs, Encoding.Default); for (int index = 0; index < SoldTickets.Count; index++) { Ticket ticket = SoldTickets[index]; string info = "|" + ticket.ScheduleItem.Movie.MovieName + "|" + ticket.ScheduleItem.Movie.Poster + "|" + ticket.ScheduleItem.Movie.Director + "|" + ticket.ScheduleItem.Movie.Actor + "|" + ticket.ScheduleItem.Movie.MovieType.ToString() + "|" + ticket.ScheduleItem.Movie.Price + "|" + ticket.ScheduleItem.Time + "|" + ticket.Seat.SeatNum + "|" + ticket.Seat.Color + "|" + ticket.Price + "|"; if (ticket is FreeTicket) { string customerName = ((FreeTicket) ticket).CustomerName; writer.WriteLine("free" + info + customerName); } else if (ticket is StudentTicket) { writer.WriteLine("student" + info + ""); } else { writer.WriteLine("" + info + ""); } } writer.WriteLine("The End"); writer.Close(); fs.Close(); } public void Load() { try { StreamReader reader = new StreamReader("soldTickets.txt", Encoding.Default); string line = reader.ReadLine(); string[] propertyValues; Ticket ticket = null; while (line.Trim() != "The End") { SoldTickets.Add(ticket); line = reader.ReadLine(); } reader.Close(); } catch (Exception ex) { Console.WriteLine("有错误:" + ex.Message); SoldTickets = new List<Ticket>(); } } } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; namespace Day_影院售票系统 { /// <summary> /// 赠票子类 /// </summary> public class FreeTicket:Ticket { public FreeTicket(ScheduleItem sch, Seat seat, string name) : base(sch, seat) { this.Seat = seat; this.CustomerName = name; this.ScheduleItem = sch; } public string CustomerName { get; set; } public override void CalcPrice() { this.Price = 0; } public override void Print() { string info = string.Format("************************************************\n\t青鸟影院(赠票)\n------------------------------------------------\n电影名:\t{0}\n时间:\t{1}\n座位号:\t{2}\n姓名:\t{3}\n************************************************", this.ScheduleItem.Movie.MovieName, this.ScheduleItem.Time, this.Seat.SeatNum, this.CustomerName); MessageBox.Show(info); //存到文件中 string fileName = this.ScheduleItem.Time.Replace(":", "-") + " " + this.Seat.SeatNum + ".txt"; FileStream fs = new FileStream(fileName, FileMode.Create); StreamWriter sw = new StreamWriter(fs); sw.Write(info); sw.Close(); fs.Close(); } public override void Show() { MessageBox.Show("已售出!\n赠票!"); ; } } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Day_影院售票系统 { /// <summary> /// 电影类 /// </summary> public class Movie { public string MovieName;//电影名 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; }//定价 } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Day_影院售票系统 { public enum MovieType { 爱情片 = 0,//爱情片 战争片 = 1,//战争片 浪漫电影 = 2,//浪漫电影 动作片 = 3,//动作片 卡通片 = 4,//卡通片 惊悚片 = 5,// 惊悚片 冒险片 = 6//冒险片 } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; namespace Day_影院售票系统 { /// <summary> /// 放映计划类 /// </summary> public class Schedule { public Dictionary<string, ScheduleItem> Items =new Dictionary<string, ScheduleItem>(); public void LoadItems() { Items.Clear(); XmlDocument xml = new XmlDocument(); xml.Load("ShowList.xml"); XmlElement root = xml.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.Actor = item["Actor"].InnerText; switch (item["Type"].InnerText) { case "Action": movie.MovieType = MovieType.爱情片; break; case "War": movie.MovieType = MovieType.战争片; break; case "Comedy": movie.MovieType = MovieType.浪漫电影; break; } movie.Price = Convert.ToInt32(item["Price"].InnerText); if (item["Schedule"].HasChildNodes) { foreach (XmlNode item2 in item["Schedule"].ChildNodes) { ScheduleItem schItem = new ScheduleItem(); schItem.Time = item2.InnerText; schItem.Movie = movie; Items.Add(schItem.Time, schItem); } } } } } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Day_影院售票系统 { /// <summary> /// 影院每天放映计划的场次,保存每场电影的信息 /// </summary> public class ScheduleItem { public string Time { get; set; }//放映时间属性 public Movie Movie{ get; set; }//本场所放映电影属性 } } using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Day_影院售票系统 { public class Seat { public Seat(string seatnum,Color s) { this.SeatNum = seatnum; this.Color = s; } public string SeatNum { get; set; }//座位号 public Color Color { get; set; }//座位卖出状态颜色 } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; namespace Day_影院售票系统 { /// <summary> /// 学生票子类 /// </summary> public class StudentTicket:Ticket { public StudentTicket(ScheduleItem sch, Seat seat, int discount) : base(sch, seat) { this.Discount = discount; } private int _discount; /// <summary> /// 学生票的折扣 /// </summary> public int Discount { get { return _discount; } set { _discount = value; } } public override void CalcPrice() { this.Price = this.ScheduleItem.Movie.Price * Discount / 10; } public override void Print() { string info = string.Format("************************************************\n\t青鸟影院(学生)\n------------------------------------------------\n电影名:\t{0}\n时间:\t{1}\n座位号:\t{2}\n价格:\t{3}\n************************************************", this.ScheduleItem.Movie.MovieName, this.ScheduleItem.Time, this.Seat.SeatNum, this.Price); MessageBox.Show(info); //存到文件中 string fileName = this.ScheduleItem.Time.Replace(":", "-") + " " + this.Seat.SeatNum + ".txt"; FileStream fs = new FileStream(fileName, FileMode.Create); StreamWriter sw = new StreamWriter(fs); sw.Write(info); sw.Close(); fs.Close(); } public override void Show() { string info = string.Format("已售出!\n{0}折学生票!", this.Discount); } } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; namespace Day_影院售票系统 { /// <summary> /// /// </summary> public class Ticket { //放映场次 public ScheduleItem ScheduleItem=new ScheduleItem(); //所属座位对象 public Seat Seat { get; set; } //票价 private int _price; public int Price { get { return _price; } set { _price = value; } } //构造函数 public Ticket() { } public Ticket(ScheduleItem sch, Seat seat) { this.ScheduleItem = sch; this.Seat = seat; } //计算票价 public virtual void CalcPrice() { this.Price = ScheduleItem.Movie.Price; } //打印售票信息 public virtual void Print() { string info = string.Format("************************************************\n\t青鸟影院(赠票)\n------------------------------------------------\n电影名:\t{0}\n时间:\t{1}\n座位号:\t{2}\n姓名:\t{3}\n************************************************", this.ScheduleItem.Movie.MovieName, this.ScheduleItem.Time, this.Seat.SeatNum, this.ScheduleItem); MessageBox.Show(info); string fileName = this.ScheduleItem.Time.Replace(":", "-") + " " + this.Seat.SeatNum + ".txt"; Stream fs = new FileStream(fileName, FileMode.Create); StreamWriter sw = new StreamWriter(fs); sw.Write(info); sw.Close(); fs.Close(); } //显示当前售出票信息 public virtual void Show() { MessageBox.Show("已售出!\n赠票!"); } } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Day_影院售票系统 { class TicketUtil { public void CreateTicket() { } public static Ticket CreateTicket(ScheduleItem sch, Seat seat, int discount, string customerName, string type) { Ticket newTicket = null; switch (type) { case "student": newTicket = new StudentTicket(sch, seat, discount); break; case "free": newTicket = new FreeTicket(sch, seat, customerName); break; default: newTicket = new Ticket(sch, seat); break; } return newTicket; } } }

    转载请注明原文地址: https://ju.6miu.com/read-23629.html

    最新回复(0)