麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

C#總結(jié)項(xiàng)目《影院售票系統(tǒng)》編寫總結(jié)一

2019-11-14 15:44:33
字體:
供稿:網(wǎng)友

  C#學(xué)習(xí)經(jīng)歷從基本語法結(jié)構(gòu)到窗體再到面向?qū)ο蠼K于走完了.NET初級程序員的道路,做為品德優(yōu)良好學(xué)生更不能落下課程的總結(jié)項(xiàng)目-某某鳥《影院售票系統(tǒng)》。用了大概一天半的時間做完這個練手項(xiàng)目,先上效果截圖一張

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

用到的知識點(diǎn)有:面向?qū)ο笏枷搿reeView、xml讀取、File文件流、泛型集合,這里面對我來說難度最大的是面向?qū)ο笈c泛型集合的結(jié)合,看來學(xué)習(xí)一門編程語言的難點(diǎn)還是在設(shè)計(jì)思想上。

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

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

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

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

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

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

系統(tǒng)可以保存銷售情況,并允許對其進(jìn)行恢復(fù)

二.問題分析

  1.系統(tǒng)開發(fā)步驟

  (1)明確需求

(2)設(shè)計(jì)類

(3)創(chuàng)建項(xiàng)目

(4)確定編碼順序

  1.主窗體

  2.查看新放映列表

  3.查看電影介紹

  4.查看影票票價

  5.查看放映廳座位

  6.購票和打印電影票

  7.繼續(xù)購票

(5)測試

三、類的設(shè)計(jì)

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

座位號(SeatNum):string類型

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

         2.Movie:電影類

           電影名(MovieName):string類型

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

           導(dǎo)演名(Director):string類型

           主演(Actor):string類型

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

           定價(PRice):int類型

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

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

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

           票價(Price):int類型

           計(jì)算票價的虛方法CalcPrice()

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

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

         4.StudentTicket:學(xué)生票子類,繼承父類Ticket

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

           重寫父類計(jì)算票價CalcPrice

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

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

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

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

           重寫父類計(jì)算票價CalcPrice()

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

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

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

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

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

         7.Schedule:放映計(jì)劃類

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

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

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

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

           放映計(jì)劃Schedule:Schedule自定義類型

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

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

獻(xiàn)上這9個類的代碼,根據(jù)依賴編寫類的順序,不能完全按照上面順序

 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 影院售票系統(tǒng) 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         /// 座位賣出狀態(tài)顏色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 影院售票系統(tǒng) 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         /// 導(dǎo)演名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戰(zhàn)爭3愛情67     /// </summary>68     public enum MovieType69     {70         /// <summary>71         /// 動作片72         /// </summary>73         Action = 0,74         /// <summary>75         /// 戰(zhàn)爭片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 影院售票系統(tǒng)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         /// 計(jì)算票價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         /// 顯示當(dāng)前售票信息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 影院售票系統(tǒng) 9 {10     /// <summary>11     /// 學(xué)生票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         /// 學(xué)生票的折扣24         /// </summary>25         public int Discount26         {27             get { return _discount; }28             set { _discount = value; }29         }30         /// <summary>31         /// 計(jì)算學(xué)生票價32         /// </summary>33         public override void CalcPrice()34         {35             this.Price =this.ScheduItem.Movie.Price* Discount / 10;36         }37         /// <summary>38         /// 打印學(xué)生票的售票信息39         /// </summary>40         public override void Print()41         {42             string info = string.Format("************************************************/n/t青鳥影院(學(xué)生)/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         /// 顯示當(dāng)前售出票信息54         /// </summary>55         public override void Show()56         {57             string info = string.Format("已售出!/n{0}折學(xué)生票!",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 影院售票系統(tǒng)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         /// 計(jì)算票價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         /// 顯示當(dāng)前售出票信息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 影院售票系統(tǒng) 8 { 9     /// <summary>10     /// 影院每天計(jì)劃放映的場次,保存每場電影的信息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         /// 本場次的座位狀態(tài)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 影院售票系統(tǒng) 9 {10     /// <summary>11     /// 放映計(jì)劃類,保存影院當(dāng)天的放映計(jì)劃集合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文件獲取放映計(jì)劃集合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 影院售票系統(tǒng) 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         /// 放映計(jì)劃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         /// 已經(jīng)售出的票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的代碼在窗體的代碼實(shí)現(xiàn)了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 影院售票系統(tǒng) 8 { 9     /// <summary>10     /// 工具類11     /// </summary>12     public class TicketUtil13     {14         /// <summary>15         /// 創(chuàng)建電影票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

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


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 男男啪羞羞视频网站 | 中文字幕免费一区 | 草免费视频 | 日本成人午夜视频 | 69性欧美高清影院 | 黄色av网站免费 | 成人午夜免费看 | 天天干干| 亚洲aⅴ免费在线观看 | 国产色视频免费 | 成人免费精品视频 | 久久久久久久久久91 | 92自拍视频| 日本欧美一区二区三区视频麻豆 | 天天干干 | 91色琪琪电影亚洲精品久久 | 日韩99| 91成人午夜性a一级毛片 | 秋霞a级毛片在线看 | 欧美黄色一区 | 欧美国产成人在线 | 日本教室三级在线看 | 国产精品久久久久久久亚洲按摩 | 国产喷白浆10p | 成人免费在线视频 | 天堂二区 | 久久精品一区二区三区四区五区 | 成人免费福利视频 | 一级看片免费视频 | 欧美一级免费高清 | 亚洲免费永久 | 色就色 综合偷拍区91网 | 免费视频www在线观看 | 毛片视频网站 | 99久久精品免费 | 国产一区网址 | 欧美一级黄视频 | 国产三级精品最新在线 | 国产精品一区二区三区在线播放 | chengrenyingshi| 国产精品久久久久久久av |