亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#總結項目《影院售票系統》編寫總結一

2019-11-14 15:44:33
字體:
來源:轉載
供稿:網友

  C#學習經歷從基本語法結構到窗體再到面向對象終于走完了.NET初級程序員的道路,做為品德優良好學生更不能落下課程的總結項目-某某鳥《影院售票系統》。用了大概一天半的時間做完這個練手項目,先上效果截圖一張

抽出時間做些這個對目前的我來說算不小的項目。

用到的知識點有:面向對象思想、TreeView、xml讀取、File文件流、泛型集合,這里面對我來說難度最大的是面向對象與泛型集合的結合,看來學習一門編程語言的難點還是在設計思想上。

  再來介紹一下項目需求:在影片列表中選擇某個時段的一場電影,單擊座位選擇一個種類的電影票,并創建電影,計算價格并打印影票信息,然后該座位被置為紅色表示已經售出。

影院每天更新放映列表,系統支持實時查看,包括電影放映場次時間、電影概況。

影院提供三類影票:普通票、贈票和學生票(贈票免費;學生票有折扣)

允許用戶查看某場次座位的售出情況

支持購票,并允許用戶選座

用戶可以選擇場次、影票類型及空閑座位進行購票,并打印電影票

系統可以保存銷售情況,并允許對其進行恢復

二.問題分析

  1.系統開發步驟

  (1)明確需求

(2)設計類

(3)創建項目

(4)確定編碼順序

  1.主窗體

  2.查看新放映列表

  3.查看電影介紹

  4.查看影票票價

  5.查看放映廳座位

  6.購票和打印電影票

  7.繼續購票

(5)測試

三、類的設計

1.Seat:保存影院的座位信息,主要屬性如下

座位號(SeatNum):string類型

座位賣出狀態顏色(Color):System.Drawing.Color類型

         2.Movie:電影類

           電影名(MovieName):string類型

           海報圖片路徑(Poster):string類型

           導演名(Director):string類型

           主演(Actor):string類型

           電影類型(MovieType):MovieType自定義枚舉類型

           定價(PRice):int類型

         3.Ticket:電影票父類,保存電影票信息

           放映場次(ScheduleItem):ScheduleItem自定義類

           所屬座位對象(Seat):Seat自定義類型

           票價(Price):int類型

           計算票價的虛方法CalcPrice()

           打印售票信息的虛方法Print()

           顯示當前售出票信息的虛方法Show()

         4.StudentTicket:學生票子類,繼承父類Ticket

           學生票的折扣(Discount):int類型

           重寫父類計算票價CalcPrice

           重寫父類打印售票信息的Print()

           重寫父類顯示當前出票信息的Show()方法

         5.FreeTicket:贈票子類,繼承父類Ticket

           獲得贈票者的名字屬性(CustomerName):string類型

           重寫父類計算票價CalcPrice()

           重寫父類打印售票信息Print()

           重寫父類顯示當前出票信息Show()

         6.ScheduleItem:影院每天計劃放映計劃的場次,保存每場電影的信息

           放映時間屬性(Time):string類型

           本場所放映電影屬性(Movie):Movie自定義類型

         7.Schedule:放映計劃類

           放映場次屬性(Items):自定義泛型集合Dictionary<string,ScheduleItem>

           讀取XML文件獲取放映計劃集合的LoadItems()方法

         8.Cinema:影院類,保存放映計劃和座位類

           座位集合屬性(Seat):自定義泛型集合Dictionary<string,Seat>

           放映計劃Schedule:Schedule自定義類型

           已售出電影票的集合(SoldTicket):自定義泛型集合List<Ticket>

           保存和讀取售票情況的Save()和Load()方法

獻上這9個類的代碼,根據依賴編寫類的順序,不能完全按照上面順序

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Drawing; 7  8 namespace 影院售票系統 9 {10     /// <summary>11     /// 保存影院的座位信息12     /// </summary>13     public class Seat14     {15         public Seat() { }16         public Seat(string seatNum,Color color) 17         {18             this.SeatNum = seatNum;19             this.Color = color;20         }21         private string _seatNum;22         /// <summary>23         /// 座位號24         /// </summary>25         public string SeatNum26         {27             get { return _seatNum; }28             set { _seatNum = value; }29         }30         private Color _color;31         /// <summary>32         /// 座位賣出狀態顏色33         /// </summary>34         public Color Color35         {36             get { return _color; }37             set { _color = value; }38         }39     }40 }
Seat
 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6  7 namespace 影院售票系統 8 { 9     /// <summary>10     /// 電影類11     /// </summary>12     public class Movie13     {14         private string _movieName;15         /// <summary>16         /// 電影名17         /// </summary>18         public string MovieName19         {20             get { return _movieName; }21             set { _movieName = value; }22         }23         private string _poster;24         /// <summary>25         /// 海報圖片名26         /// </summary>27         public string Poster28         {29             get { return _poster; }30             set { _poster = value; }31         }32         private string _director;33         /// <summary>34         /// 導演名35         /// </summary>36         public string Director37         {38             get { return _director; }39             set { _director = value; }40         }41         private string _actor;42         /// <summary>43         /// 主演44         /// </summary>45         public string Actor46         {47             get { return _actor; }48             set { _actor = value; }49         }50         51         private int _price;52         /// <summary>53         /// 定價54         /// </summary>55         public int Price56         {57             get { return _price; }58             set { _price = value; }59         }60         /// <summary>61         /// 電影類型62         /// </summary>63         public MovieType MovieType { get; set; }64     }65     /// <summary>66     /// 電影類型,1喜劇2戰爭3愛情67     /// </summary>68     public enum MovieType69     {70         /// <summary>71         /// 動作片72         /// </summary>73         Action = 0,74         /// <summary>75         /// 戰爭片76         /// </summary>77         War = 1,78         /// <summary>79         /// 愛情片80         /// </summary>81         Comedy = 282     }83 }
Movie
 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Windows.Forms; 7 using System.IO; 8  9 namespace 影院售票系統10 {11     /// <summary>12     /// 電影票父類13     /// </summary>14     public class Ticket15     {16         public Ticket() { }17         public Ticket(ScheduleItem sch,Seat seat) 18         {19             this.ScheduItem = sch;20             this.Seat = seat;21         }22         private Seat _seat = new Seat();23         /// <summary>24         /// 所屬座位25         /// </summary>26         public Seat Seat27         {28             get { return _seat; }29             set { _seat = value; }30         }31         32         private int _price;33         /// <summary>34         /// 票價35         /// </summary>36         public int Price37         {38             get { return _price; }39             set { _price = value; }40         }41         /// <summary>42         /// 放映場次43         /// </summary>44         public ScheduleItem ScheduItem { get; set; }45         /// <summary>46         /// 計算票價47         /// </summary>48         public virtual void CalcPrice()49         {50             this.Price = ScheduItem.Movie.Price;51         }52         /// <summary>53         /// 打印售票信息54         /// </summary>55         public virtual void Print()56         {57             string info = string.Format("************************************************/n/t青鳥影院/n------------------------------------------------/n電影名:/t{0}/n時間:/t{1}/n座位號:/t{2}/n價格:/t{3}/n************************************************", this.ScheduItem.Movie.MovieName, this.ScheduItem.Time, this.Seat.SeatNum, this.Price);58             MessageBox.Show(info);59             //存到文件中60             string fileName = this.ScheduItem.Time.Replace(":", "-")+" "+this.Seat.SeatNum+".txt";61             FileStream fs = new FileStream(fileName,FileMode.Create);62             StreamWriter sw = new StreamWriter(fs);63             sw.Write(info);64             sw.Close();65             fs.Close();66         }67         /// <summary>68         /// 顯示當前售票信息69         /// </summary>70         public virtual void Show()71         {72             string info = string.Format("已售出!/n普通票!");73             MessageBox.Show(info);74         }75     }76 }
Ticket
 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Windows.Forms; 7 using System.IO; 8 namespace 影院售票系統 9 {10     /// <summary>11     /// 學生票12     /// </summary>13     public class StudentTicket : Ticket14     {15         public StudentTicket() { }16         public StudentTicket(ScheduleItem sch, Seat seat, int discount)17             : base(sch, seat)18         {19             this.Discount = discount;20         }21         private int _discount;22         /// <summary>23         /// 學生票的折扣24         /// </summary>25         public int Discount26         {27             get { return _discount; }28             set { _discount = value; }29         }30         /// <summary>31         /// 計算學生票價32         /// </summary>33         public override void CalcPrice()34         {35             this.Price =this.ScheduItem.Movie.Price* Discount / 10;36         }37         /// <summary>38         /// 打印學生票的售票信息39         /// </summary>40         public override void Print()41         {42             string info = string.Format("************************************************/n/t青鳥影院(學生)/n------------------------------------------------/n電影名:/t{0}/n時間:/t{1}/n座位號:/t{2}/n價格:/t{3}/n************************************************", this.ScheduItem.Movie.MovieName, this.ScheduItem.Time, this.Seat.SeatNum, this.Price);43             MessageBox.Show(info);44             //存到文件中45             string fileName = this.ScheduItem.Time.Replace(":", "-") + " " + this.Seat.SeatNum + ".txt";46             FileStream fs = new FileStream(fileName, FileMode.Create);47             StreamWriter sw = new StreamWriter(fs);48             sw.Write(info);49             sw.Close();50             fs.Close();51         }52         /// <summary>53         /// 顯示當前售出票信息54         /// </summary>55         public override void Show()56         {57             string info = string.Format("已售出!/n{0}折學生票!",this.Discount);58             MessageBox.Show(info);59         }60     }61 }
StudentTicket
 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Windows.Forms; 7 using System.IO; 8  9 namespace 影院售票系統10 {11     /// <summary>12     /// 贈票13     /// </summary>14     public class FreeTicket:Ticket15     {16         public FreeTicket() { }17         public FreeTicket(ScheduleItem sch,Seat seat,string name) 18         {19             this.Seat = seat;20             this.CustomerName = name;21             this.ScheduItem = sch;22         }23         private string _customerName;24         /// <summary>25         /// 獲得贈票者的名字26         /// </summary>27         public string CustomerName28         {29             get { return _customerName; }30             set { _customerName = value; }31         }32         /// <summary>33         /// 計算票價34         /// </summary>35         public override void CalcPrice()36         {37             this.Price = 0;38         }39         /// <summary>40         /// 打印售票信息41         /// </summary>42         public override void Print()43         {44             string info = string.Format("************************************************/n/t青鳥影院(贈票)/n------------------------------------------------/n電影名:/t{0}/n時間:/t{1}/n座位號:/t{2}/n姓名:/t{3}/n************************************************", this.ScheduItem.Movie.MovieName, this.ScheduItem.Time, this.Seat.SeatNum, this.CustomerName);45             MessageBox.Show(info);46             //存到文件中47             string fileName = this.ScheduItem.Time.Replace(":", "-") + " " + this.Seat.SeatNum + ".txt";48             FileStream fs = new FileStream(fileName, FileMode.Create);49             StreamWriter sw = new StreamWriter(fs);50             sw.Write(info);51             sw.Close();52             fs.Close();53         }54         /// <summary>55         /// 顯示當前售出票信息56         /// </summary>57         public override void Show()58         {59             MessageBox.Show("已售出!/n贈票!");60         }61     }62 }
FreeTicket
 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6  7 namespace 影院售票系統 8 { 9     /// <summary>10     /// 影院每天計劃放映的場次,保存每場電影的信息11     /// </summary>12     public class ScheduleItem13     {14         private string _time;15         /// <summary>16         /// 放映時間17         /// </summary>18         public string Time19         {20             get { return _time; }21             set { _time = value; }22         }23         private Movie _movie = new Movie();24 25         /// <summary>26         /// 本場放映的電影27         /// </summary>28         public Movie Movie29         {30             get { return _movie; }31             set { _movie = value; }32         }33         private List<Ticket> _soldTickets=new List<Ticket>();34 35         private Dictionary<string, Seat> _seats=new Dictionary<string,Seat>();36         /// <summary>37         /// 本場次的座位狀態38         /// </summary>39         public Dictionary<string, Seat> Seats40         {41             get { return _seats; }42             set { _seats = value; }43         }44     }45 }
ScheduleItem
 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Xml; 7  8 namespace 影院售票系統 9 {10     /// <summary>11     /// 放映計劃類,保存影院當天的放映計劃集合12     /// </summary>13     public class Schedule14     {15         /// <summary>16         /// 放映場次17         /// </summary>18         public Dictionary<string, ScheduleItem> Items = new Dictionary<string, ScheduleItem>();19         /// <summary>20         /// 讀取XML文件獲取放映計劃集合21         /// </summary>22         public void LoadItems()23         {24             Items.Clear();25             XmlDocument xml = new XmlDocument();26             xml.Load("ShowList.xml");27             XmlElement root = xml.DocumentElement;28             foreach (XmlNode item in root.ChildNodes)29             {30                 Movie movie = new Movie();31                 movie.MovieName = item["Name"].InnerText;32                 movie.Poster = item["Poster"].InnerText;33                 movie.Director = item["Director"].InnerText;34                 movie.Actor = item["Actor"].InnerText;35                 switch (item["Type"].InnerText)36                 {37                     case "Action":38                         movie.MovieType = MovieType.Action;39                         break;40                     case "War":41                         movie.MovieType = MovieType.War;42                         break;43                     case "Comedy":44                         movie.MovieType = MovieType.Comedy;45                         break;46                 }47                 movie.Price = Convert.ToInt32(item["Price"].InnerText);48                 if (item["Schedule"].HasChildNodes)49                 {50                     foreach (XmlNode item2 in item["Schedule"].ChildNodes)51                     {52                         ScheduleItem schItem = new ScheduleItem();53                         schItem.Time = item2.InnerText;54                         schItem.Movie = movie;55                         Items.Add(schItem.Time, schItem);56                     }57                 }58 59             }60 61 62         }63     }64 }
Schedule
 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6  7 namespace 影院售票系統 8 { 9     /// <summary>10     /// 影院類11     /// </summary>12     public class Cinema13     {14         private Dictionary<string, Seat> _seats = new Dictionary<string, Seat>();15         /// <summary>16         /// 座位集合17         /// </summary>18         public Dictionary<string, Seat> Seats19         {20             get { return _seats; }21             set { _seats = value; }22         }23         private Schedule _schedule = new Schedule();24         /// <summary>25         /// 放映計劃26         /// </summary>27         public Schedule Schedule28         {29             get { return _schedule; }30             set { _schedule = value; }31         }32         private List<Ticket> _soldTickets=new List<Ticket>();33         /// <summary>34         /// 已經售出的票35         /// </summary>36         public List<Ticket> SoldTickets37         {38             get { return _soldTickets; }39             set { _soldTickets = value; }40         }41         /// <summary>42         /// 保存售票信息到文件中43         /// </summary>44         public void Save() 45         {46             //Save和Load的代碼在窗體的代碼實現了47         }48         /// <summary>49         /// 從文件中讀取售票信息50         /// </summary>51         public void Load() { }52     }53 }
Cinema
 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6  7 namespace 影院售票系統 8 { 9     /// <summary>10     /// 工具類11     /// </summary>12     public class TicketUtil13     {14         /// <summary>15         /// 創建電影票16         /// </summary>17         /// <returns></returns>18         public static Ticket CreateTicket(ScheduleItem sch,Seat seat,int discount,string customerName,string type)19         {20             Ticket ticket=null;21             switch (type)22             {23                 case "StudentTicket":24                     ticket = new StudentTicket(sch,seat,discount);25                     break;26                 case "FreeTicket":27                     ticket = new FreeTicket(sch,seat,customerName);28                     break;29                 default:30                     ticket = new Ticket(sch,seat);31                     break;32             }33             return ticket;34         }35     }36 }
TicketUtil

明天將繼續更新-電影院座位的動態繪制、電影信息綁定到窗體中展現出來,也望各路大神出手斧正不合理的代碼(不要涉及分層開發,我們在學,以后會用分層開發實現其他的項目)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美最猛性xxxxx亚洲精品| 麻豆国产va免费精品高清在线| 91国内产香蕉| 激情久久av一区av二区av三区| 欧美色图在线视频| 在线观看国产成人av片| 亚洲色图综合久久| 萌白酱国产一区二区| 91在线免费观看网站| 日韩激情视频在线播放| 精品人伦一区二区三区蜜桃免费| 成人网欧美在线视频| 69影院欧美专区视频| 中文字幕在线视频日韩| 亚洲老司机av| 欧美日韩亚洲视频| 国产精品欧美激情在线播放| 日韩亚洲欧美成人| 色yeye香蕉凹凸一区二区av| 国产精品一二三在线| 国产高清在线不卡| 亚洲老司机av| 国模精品系列视频| 日韩美女毛茸茸| 日韩av免费在线观看| 日韩黄色高清视频| 欧美巨乳在线观看| 青草青草久热精品视频在线网站| 成人h视频在线| 国产精品一区二区久久久| 国产精品视频精品| 亚洲在线视频福利| 国产午夜精品一区理论片飘花| 最好看的2019年中文视频| 深夜成人在线观看| 久久亚洲一区二区三区四区五区高| 亚洲精品一区av在线播放| 国产在线精品成人一区二区三区| 亚洲第一区在线观看| 国产丝袜一区二区| 欧美国产在线视频| 久久精彩免费视频| 久久香蕉国产线看观看av| 国产欧美日韩精品专区| 91产国在线观看动作片喷水| 性色av香蕉一区二区| 久久久久成人网| 久久精品99久久久香蕉| 国产精品第一视频| 欧美精品aaa| 成人免费淫片视频软件| 国产精品一区专区欧美日韩| 国产精品大陆在线观看| 国产精品成人av在线| 亚洲无av在线中文字幕| 亚洲男人天堂网| 日韩激情av在线免费观看| 午夜精品久久久久久久99热浪潮| 欧美日韩在线影院| 日韩欧美亚洲成人| 久久人人看视频| 欧美自拍视频在线观看| 国产精品青青在线观看爽香蕉| 在线观看日韩av| 亚洲一区二区三区xxx视频| 精品视频中文字幕| 欧洲亚洲女同hd| 国产欧美欧洲在线观看| 日韩av影视在线| 欧美乱妇高清无乱码| 国产精品免费在线免费| 亚洲男人天天操| 久热在线中文字幕色999舞| 久久久免费精品视频| 欧洲美女免费图片一区| 97精品国产aⅴ7777| 精品久久久久久久久久久| 欧美成人精品在线视频| 国产欧美精品va在线观看| 高清欧美性猛交xxxx黑人猛交| 91精品国产综合久久久久久蜜臀| 国产美女久久精品| 欧美视频一二三| 日韩精品在线视频美女| 久久久精品欧美| 91国产在线精品| 精品成人在线视频| 色系列之999| 欧美精品999| 92福利视频午夜1000合集在线观看| 欧美wwwxxxx| 久久久久久久久久久91| 亚洲影院在线看| 久久影视电视剧免费网站| 亚洲激情 国产| 国产日韩欧美视频在线| 国产午夜精品免费一区二区三区| 亚洲最大的免费| 国模吧一区二区| 日韩国产欧美精品一区二区三区| 国产午夜精品全部视频在线播放| 韩剧1988在线观看免费完整版| 欧美裸体xxxxx| 国产精品高潮呻吟久久av黑人| 欧美日韩视频在线| 国产精品第一区| 国产成人免费av电影| 69久久夜色精品国产69| 亚洲 日韩 国产第一| 精品久久久一区二区| 欧美精品videosex性欧美| 国产精品欧美日韩| 国模精品视频一区二区三区| 久久久久久久久久国产| 国产精品久久久久久久久久| 精品视频在线播放免| 日韩精品视频在线播放| 国产亚洲视频中文字幕视频| 国产精品高清网站| 国产一区二区久久精品| 亚洲精品v天堂中文字幕| 久久久国产精彩视频美女艺术照福利| 最近2019中文字幕一页二页| 日韩成人高清在线| 亚洲一区二区黄| 日日骚av一区| 国产亚洲欧美日韩一区二区| 国产精品久久久久免费a∨大胸| 懂色av中文一区二区三区天美| 一区二区欧美在线| 日本精品视频网站| 国产乱人伦真实精品视频| 96精品久久久久中文字幕| 欧美激情第三页| 久久精品一本久久99精品| 欧美性生交大片免网| 久久婷婷国产麻豆91天堂| 亚洲第一区第二区| 91免费在线视频网站| 81精品国产乱码久久久久久| 精品久久久av| 日韩精品在线观看一区二区| 亚洲香蕉伊综合在人在线视看| 国产精品∨欧美精品v日韩精品| 亚洲国产一区二区三区四区| 一级做a爰片久久毛片美女图片| 成人女保姆的销魂服务| 国产精品91免费在线| 精品国产电影一区| 热久久免费视频精品| 91视频国产一区| 色七七影院综合| 国产成人一区二区三区| 中文字幕一区日韩电影| 国产精品1区2区在线观看| 亚洲图片欧洲图片av| 国产精欧美一区二区三区| 国产精品 欧美在线| 91欧美精品午夜性色福利在线| 国产精品嫩草影院久久久| 亚洲成人黄色网址| 亚洲色图偷窥自拍| 亚洲人成电影网站色| 2019日本中文字幕|