你們都愛看電影,現請參考一個熟悉電影票預訂系統,實現C語言版的訂票系統。瞭解訂票如何實現的。系統主要有2類用戶:管理員用戶和顧客用戶。數組
選擇該菜單能展現全部放映廳,用戶輸入某個放映廳編號後,能實現對放映廳增長、刪除、修改功能。主要對movie_house.txt數據修改。 放映廳主要字段信息有: 放映廳編號、放映廳名稱、放映廳行數、放映廳列數、放映廳座位初始狀態。 假如放映廳是一個10行10列座位安排,其初始狀態能夠生成一個二維數組house[10][10]={0,1,2,0,0},存儲座位狀態 。0表示未定、1表示已定、2表示不能定。初始時候應該只有0,2兩種狀態。
實現對movie.txt數據增刪改及查找。答辯務必演示增刪改操做,對於已存在場次能提示不得修改。不存在場次不能刪除等容錯處理。修改和添加記錄時候,一個放映廳一個時段只能排1部電影。若超過要提示不能修改。 movie.txt主要字段有: 電影場次編號、電影名稱、播放日期、播放時間段、所在放映廳、放映廳座位當前狀態。 (1)放映廳位置當前狀態,表示當前位置購票狀況,如house[10][10]={0,1,2,0,0}。其中: 0表示未定座位、1表示已定座位、2表示不能定座位。 (2)當前狀態初始值應該是從movie_house.txt讀取放映廳座位初始狀態。
操做步驟以下: (1)展現當前時間段後可看的電影場次信息。(注意時間,必定是當前時間段後的電影信息) (2)顧客輸入輸入觀看電影名稱和時間段,展現目前廳內位置信息。注意用矩陣方式顯示位置信息,每行10列左右,具體本身設計。位置信息在電影信息文件即movie.txt查看位置狀態信息。0表示可預訂用綠色表示,1表示不能定用紅色標識,2不可訂可用灰色表示。這塊建議圖形化展現。 (3)若該場次無位置,提示選擇其餘電影場次。如有位置,繼續下面操做: * 選擇1人位置,輸入行列位置編號後,若當前位置可選,生成訂單,寫入訂票信息文件movie_order.txt,更新movie.txt中座位狀態。若當前位置已定或不可選,提示錯誤信息。屏幕座位狀態能實時更新。 * 選擇多人位置,輸入人數及行列位置編號後,實現座位選擇,屏幕實時更新。(選作) 位置編號從1---位置中數量編號。 * 訂單生成後能計算總票價。
展現全部歷史訂票信息,而後可刪除未看的電影訂單。(選作) 注意刪除訂單後,相應電影場次中位置信息狀態也要修改。
(1)放映廳信息文件:movie_house.txt。字段: 放映廳編號、放映廳名稱、放映廳行數、放映廳列數、放映廳座位初始狀態。 (2)電影場次信息文件movie.txt。字段有: 電影場次編號、電影名稱、該場次電影單價、播放日期、播放時間段、所在放映廳、放映廳座位當前狀態。 (3)電影訂單信息文件movie_order.txt。字段有: 顧客編號、電影名稱、購買數量、購買座位、總金額、購買時間。 購買座位: [1,1],[25,3]。表示購買2個座位,一個是第一行第一列,一個是第25行第三列。 (4)顧客帳號文件customer.txt,自建。包括:顧客編號、密碼。 (5)影院管理員帳號manager.txt,自建。包括:管理員編號、密碼。
(1)系統演示時候必須保證文件內至少有50行數據。 (2)系統必須具有容錯處理。沒有位置、沒有電影等都要出錯處理及提醒。 (3)系統交互性要好,操做簡單好用。 (4)有能力同窗能夠擴展系統功能,如導入easyx庫,加入圖片。系統交互性更好。電影放映廳等狀態改進。
1.ManagerLogin 函數
該函數用於管理員登陸(默認管理員不能註冊)框架
2.CustomerLogin函數
該函數用於用戶登陸及註冊函數
3.ReadManagerFile 及 ReadCustomerFile函數
這兩個函數主要用於計算manager.txt中的管理員數和customer.txt中的用戶數。
在用戶登錄時,根據計算得出的數量來檢索輸入的用戶名及密碼是否存在
(當時文件那塊兒理解的不是很透徹,如今想一想這兩個函數純屬多餘,直接用feof()函數判斷是否到文件尾就行了)學習
1.Create_House_Doc函數
該函數用於建立放映廳鏈表,將movie_house.txt中的數據建成鏈表,以便實現管理員的放映廳管理功能設計
2.Insert_House_Doc函數
該函數用於建立放映廳鏈表的鏈接,及實現管理員在放映廳管理中增長放映廳的功能3d
3.Print_House_Doc函數
該函數用於遍歷放映廳鏈表,並以表格的形式輸出movie_house.txt中的放映廳信息調試
4.Delete_House_Doc函數
該函數用於刪除放映廳數據code
5.Alter_House_Doc函數
改函數用於修改已有放映廳的信息blog
6.InHouseFile函數
該函數用於將修改後的鏈表從新寫入movie_house.txt文件中,實現文件的更新圖片
1.Print_After_Movie 函數
顯示當前時間以後的電影,供用戶選擇
2.Printf_MovieChoice 函數
該函數用於用戶選擇完想看的電影后,輸出改電影當前時間後的全部場次信息
3.Print_MovieSeat 函數
該函數用於打印用戶所選場次的電影的座位信息
增長放映廳
刪除放映廳
修改放映廳
增長電影
刪除電影
修改電影
剛開始的時候,我想着學習一下EasyX,來實現座位信息的生成,結果,事實告訴咱們,一個星期連課設都快搞不定了,更別說學EasyX了。 一開始的時候,我是想着用數組來作的,當時以爲刪除那塊兒的用數組作特別麻煩,而後就想着說用鏈表作。然而,鏈表又不太會用,就一邊翻書,一邊打代碼。剛開始的時候,是花費了不少的時間,到後面,鏈表的那塊兒內容直接均可以複製黏貼。 當時先作的是管理員的那個部分,因此相對於用戶,管理員的部分作的相對要完善一些。而後,一個星期的時間真的有點點短,我裏頭的功能其實並不完善,就像選作中的刪除功能就沒有實現,系統的容錯性也作的不完善。 此次的課設真的是很是的費腦、費時。可是,當你實現了一個又一個的功能後,你就會有一種成就感跟知足感。課上學的東西應用在這,只是基礎中的基礎,要想實現各個功能必需要本身去查找資料,能夠說課設就是鞏固課堂上學習的知識,學習課堂上所沒有的知識的一個過程。作課設的時候,能夠先把框架代碼先寫好,而後再一步步的完善各個函數功能。在寫函數的時候,寫好一個函數就應該調試一下這個函數功能是否實現,否則,等到全部代碼都完成了再去調試,在查找錯誤方面就會很是的麻煩。