最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#影院售票系統(tǒng)畢業(yè)設(shè)計(3)

 更新時間:2015年11月07日 09:16:33   作者:樂智  
這篇文章介紹了C#影院售票系統(tǒng)畢業(yè)設(shè)計,文章主要內(nèi)容是關(guān)于購票、座位顏色狀態(tài)的改變及場次座位狀態(tài)的顯示,需要的朋友可以參考下

前一篇文章《C#影院售票系統(tǒng)畢業(yè)設(shè)計(2)》中總結(jié)了動態(tài)繪制控件、票類型的切換以及數(shù)據(jù)在窗體中的展現(xiàn)。今天繼續(xù)總結(jié)!

本文總結(jié)項目中最核心的部分--購票、座位顏色狀態(tài)的改變及場次座位狀態(tài)的顯示。

分析:

1.在選中時間(場次)后更新出座位狀態(tài)(label實現(xiàn)),售出的為紅色,未售出的顯示為黃色。

2.已售出提示已經(jīng)售出并不進行任何操作,未售出的詢問是否購買。

3.根據(jù)選擇的是普通票、贈票、還是學(xué)生票分別創(chuàng)建不同的票對象

  如果選擇贈票則需要檢測贈送者否填寫

  如果選擇的是學(xué)生票需要檢測折扣是否選擇

4.獲取選中座位的座位號,調(diào)用工具類的CreateTicket()方法創(chuàng)建對應(yīng)選中類型的票,普通票則直接使用Ticket類創(chuàng)建

5.用戶選擇購買后將座位集合的顏色改成紅色;重新使用票類的計算價格方法;將售出的票加入到Cinema類中的SoldTickets集合中;更新座位顏色狀態(tài),上代碼詳解

try
 {
  //獲取當前被點擊座位標簽的座位號(Text屬性)
  string seatNum = ((Label)sender).Text.ToString();
  //贈送者名字
  string customerName = this.txtGiver.Text.ToString();
  //折扣
  int discount = 0;
  //票的類型
  string type = "";
  //如果學(xué)生票是選中的
  if (this.rdoStuTicket.Checked)
  {
  type = "StudentTicket";
  if (this.cboDiscount.Text == null)
  {
  MessageBox.Show("請輸入折扣數(shù)!", "提示");
  return;
  }
  else
  {
  discount = int.Parse(this.cboDiscount.Text);
  }
  }
  //如果贈票是選中的
  else if (this.rdoGiveTicket.Checked)
  {
  if (string.IsNullOrEmpty(this.txtGiver.Text))
  {
  MessageBox.Show("請輸入贈票者姓名!", "提示");
  return;
  }
  type = "FreeTicket";
  }
  //創(chuàng)建票 使用工具類的靜態(tài)方法
  Ticket newTicket = TicketUtil.CreateTicket(cinema.Schedule.Items[key], cinema.Seats[seatNum], discount, customerName, type);
  //如果當前座位的顏色是黃色-待售出
  if (cinema.Seats[seatNum].Color == Color.Yellow)
  {
  //詢問
  DialogResult result = MessageBox.Show("是否購買?", "提示", MessageBoxButtons.YesNo);
  if (result == DialogResult.Yes)
  {
  //重新計算票價
  newTicket.CalcPrice();
  //將票加入到已經(jīng)售出票的集合
  cinema.SoldTickets.Add(newTicket);
  //更新座位顏色狀態(tài)
  UpdateSeat();
  lblPreferentialPrice.Text = newTicket.Price.ToString();
  newTicket.Print();
  //使座位集合的顏色狀態(tài)改變
  cinema.Seats[seatNum].Color = Color.Red;
  }
  }
  //如果是已經(jīng)售出的票
  else
  {
  //顯示當前售票信息
  foreach (Ticket ticket0 in cinema.SoldTickets)
  {
  //已售出票集合的座位號等于當前點擊座位號 并且 選中的時間等于售出票的場次的時間 并且 售出票的場次計劃中電影名字等于TreeView選中時間的父節(jié)點也就是電影名稱
  if (ticket0.Seat.SeatNum == seatNum && ticket0.ScheduItem.Time == treeView1.SelectedNode.Text && ticket0.ScheduItem.Movie.MovieName == treeView1.SelectedNode.Parent.Text)
  {
  ticket0.Show();
  }
  }
  }
 
 }
 catch (Exception ex)
 {
  MessageBox.Show("請先選擇場次!" + ex.Message);
 }

這里面需要調(diào)用座位顏色更新的一個方法UpdateSeat(),先將Seats集合和labels集合的顏色初始化,也就是重置顏色為黃色,再根據(jù)售出票集合的信息將售出座位的顏色置為紅色

 //重置labels集合label的顏色
 foreach (string lkey in labels.Keys)
 {
  labels[lkey].BackColor = Color.Yellow;
 }
 //重置座位集合顏色
 foreach (string key in cinema.Seats.Keys)
 {
  cinema.Seats[key].Color = Color.Yellow;
 }
 //遍歷售出票集合
 foreach (Ticket ticket in cinema.SoldTickets)
 {
  //如果場次一致,并且電影名字一致
  if (ticket.ScheduItem.Time == this.treeView1.SelectedNode.Text && ticket.ScheduItem.Movie.MovieName == this.lblName.Text)
  {
  //重新更改顏色
  labels[ticket.Seat.SeatNum].BackColor = Color.Red;
  cinema.Seats[ticket.Seat.SeatNum].Color = Color.Red;
  }
 }

這樣就實現(xiàn)了購買票后座位顏色狀態(tài)的改變。

然后再根據(jù)選中的TreeView的時間(場次)節(jié)點刷新每場的中已經(jīng)售出的票。

就是之前第二篇的treeView1_AfterSelect這個事件,調(diào)用我們的UpdateSeat方法就行了,這樣每選擇一個場次就會更新一次座位售出情況。

以上就是本文的全部內(nèi)容,最后一篇文章《C#影院售票系統(tǒng)畢業(yè)設(shè)計(4)》繼續(xù)實現(xiàn)對銷售信息的本地保存、以及每次打開時載入上次的保存的銷售信息,并對整個項目做整體總結(jié)。

希望小編整理的這一系列文章對大家的學(xué)習(xí)有所幫助,希望大家可以喜歡。

相關(guān)文章

  • 使用VS2019生成C#應(yīng)用安裝包的方法步驟

    使用VS2019生成C#應(yīng)用安裝包的方法步驟

    本文主要介紹了使用VS2019生成C#應(yīng)用安裝包的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • winform調(diào)用javascript的小例子

    winform調(diào)用javascript的小例子

    winform調(diào)用javascript的小例子,需要的朋友可以參考一下
    2013-05-05
  • C#實現(xiàn)自動填充文字內(nèi)容到指定圖片

    C#實現(xiàn)自動填充文字內(nèi)容到指定圖片

    這篇文章主要為大家詳細介紹了如何使用C#實現(xiàn)自動填充文字內(nèi)容到指定圖片,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • 詳解C#中的Async和Await用法

    詳解C#中的Async和Await用法

    這篇文章主要介紹了C#中的Async和Await用法,包括在C#5.0下一些新特性的影響,需要的朋友可以參考下
    2015-07-07
  • C#中FileStream的對比及使用方法

    C#中FileStream的對比及使用方法

    這篇文章主要介紹了C#中FileStream的對比以及使用方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • c#實現(xiàn)輸出的字符靠右對齊的示例

    c#實現(xiàn)輸出的字符靠右對齊的示例

    下面小編就為大家分享一篇c#實現(xiàn)輸出的字符靠右對齊的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • C#使用Dictionary<string, string>拆分字符串與記錄log方法

    C#使用Dictionary<string, string>拆分字符串與記錄log方法

    這篇文章介紹了Dictionary<string, string>拆分字符串與記錄log的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#不改變圖像長寬比例調(diào)整圖像大小方式

    C#不改變圖像長寬比例調(diào)整圖像大小方式

    文章介紹了在UI顯示圖片時,當容器大小固定而圖片尺寸大于容器時,可以通過編碼計算長寬來重繪圖像,以確保圖像的長寬比例不變,C#代碼示例展示了如何在Winform前端實現(xiàn)這一功能
    2025-01-01
  • 深入談?wù)凜#9新特性的實際運用

    深入談?wù)凜#9新特性的實際運用

    這篇文章主要給大家介紹了C#9新特性的實際運用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • macOS系統(tǒng)下Vscode的python配置教程

    macOS系統(tǒng)下Vscode的python配置教程

    這篇文章主要介紹了macOS系統(tǒng)下Vscode的python配置教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04

最新評論

广水市| 沈阳市| 樟树市| 银川市| 望城县| 旬邑县| 静宁县| 邳州市| 方城县| 宁津县| 皋兰县| 阿克苏市| 四平市| 苏尼特左旗| 吉木萨尔县| 新余市| 金乡县| 浮梁县| 江都市| 大埔区| 宁远县| 萝北县| 盐池县| 渑池县| 积石山| 宜兴市| 新巴尔虎右旗| 长寿区| 大悟县| 新闻| 康平县| 田林县| 昌乐县| 和平县| 沧源| 东阳市| 建始县| 日照市| 牙克石市| 遂昌县| 青田县|