停車場管理系統(tǒng) C 課程設計
《停車場管理系統(tǒng) C 課程設計》由會員分享,可在線閱讀,更多相關《停車場管理系統(tǒng) C 課程設計(15頁珍藏版)》請在裝配圖網上搜索。
1、《數據結構》課程設計 薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂
2、蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆
3、袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃
4、螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇
5、薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂
6、袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆
7、蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀
8、袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇
9、螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻
10、薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆
11、螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻薄羈莃蒄袃肀肅蝕蝿肀膅蒃蚅聿羋蚈蟻肈蒀薁罿肇膀莄裊肆節(jié)蕿螁肅莄莂蚇肄肄薇薃膄膆莀袂膃羋薆螈膂蒁荿螄膁膀蚄蝕膀芃蕆罿腿蒞螞裊膈蕆蒅螁膈膇蟻蚇襖艿蒃薃袃莂蠆袁袂肁蒂袇袁芄螇螃袁莆薀蠆袀蒈莃羈衿膈薈襖袈芀莁螀羇莂薇蚆羆肂荿薂羆膄薅羀羅莇蒈袆羄葿蚃螂羃腿蒆蚈羂芁蟻 停車場管理系統(tǒng) 一、 需求分析 設計一個停車場管理系統(tǒng),停車場管理系統(tǒng)功能包括:車輛到達,車輛離開,查詢車輛信息等。具體要求如下: (1) 、車輛到達:
12、根據車輛到達查詢停車場內是否有空位:若尚有空位,則讓車輛進停車場,輸入車牌號和車輛進停車場的時間;若停車場已滿則可進入通道等候。 (2) 、車輛離開:根據客戶提供的情況,為客戶辦理離開車場手續(xù),并計算和打印該車輛停車需要的費用。然后查詢通道是否有車輛排隊,首先查詢排在第一車輛,若滿足則車進場。 (3) 、查詢車輛信息:根據客戶的要求可以打印停車場內和便道的車輛信息,包括:車牌號,車輛到達時間。 根據題目要求可知本題目的是按照從讀文件讀取的數據序列進行模擬管理。每一組輸入數據包括三個數據項:汽車“到達”或“離去”信息、汽車牌照號碼以及到達或離去的時刻。對每一組
13、輸入數據進行操作后的輸出信息為:若是車輛到達,則輸出汽車在停車場內或便道上的停車位置;若是車輛離去,則輸出汽車在停車場內停留的時間和應交納的費用(在便道上停留的時間不收費)。 二、 概要設計 (二)、本程序主要分四個模塊實現(xiàn)功能 (1)、 以棧模擬停車場,以隊列模擬車場外的通道,按照從終端讀入的輸入 數據序列進行模擬管理。棧以順序結構實現(xiàn),隊列以鏈表實現(xiàn)。 InitStack(SqStackCar *s) 操作結果:初始化棧,構造空的模擬車站SqStackCa
14、r 。 Push(SqStackCar *s,CarNode *e) 操作結果:進站函數,車輛進站。 Pop(SqStackCar *s,CarNode *e) 操作結果:出站函數,車輛出站。 StackEmpty(SqStackCar s) 操作結果:判斷車站是否為空。 InitQueue(LinkQueueCar *Q) 操作結果:初始化通道,構造空的隊列。 Queue
15、Empty(LinkQueueCar Q) 操作結果:判斷通道是否為空。 EnQueue(LinkQueueCar *Q,CarNode *e) 操作結果:車輛進隊列,即進通道。 DeQueue(LinkQueueCar *Q,CarNode *e) 操作結果:車輛出對列,即出通道。 SqStackCar part,temp 操作結果:聲明停車場和臨時停車場。 InitStack(&temp) 操作結果:建臨時車場。 (2)、車輛達到和離開。以讀文件
16、的法式輸入數據,數據包括:車輛到達或 離開,車牌號碼,車輛到達時間。 Arrive(SqStackCar *In,LinkQueueCar *Wait,char j[10],int hour,int min) 操作結果:顯示車輛到達信息。 Arrive(&part,&road,&j,hour,min) 初始條件:有車進站 操作結果;車場未滿車進站,并顯示車輛信息;已滿則進通道等候。 Departure(SqStackCar *In,SqStackCar *temp,LinkQueueCar
17、 *Wait,char j[10],int hour,int min) 操作結果:顯示車輛離開信息。 Departure(&part,&temp,&road,&j,hour,min) 初始條件:有車離開。 操作結果:顯示車輛信息,包括:車牌號,車輛到達和離開時間。 StackEmpty(*In) 操作結果:判斷停車場是否為空。 StackEmpty(*temp) 操作結果:判斷臨時車場是否為空。 FILE *fp1
18、 操作結果:創(chuàng)建一個“車輛信息.txt”讀文件。 fp1=fopen("c:\\車輛信息.txt","r"); 操作結果:讀取“車輛信息.txt”里面的信息。 (3)、查詢功能。 Print(SqStackCar *In,SqStackCar *Temp,LinkQueueCar *Wait) 操作結果:查詢停車場內和通道內車輛的信息。 StackEmpty(*In) 操作結果:判斷停車場是否為空,若不為空,輸出車輛信息;否則輸 出“停車場里沒有車!”語句
19、。 StackEmpty(*Temp) 操作結果:判斷臨時車場是否為空。 三、 詳細設計 (1)、 棧類型 t ypedef struct time{ int hour; int min; }Time; /*時間結點*/ typedef struct { char num[10]; Time reach;
20、 Time leave; }CarNode; /*車輛信息結點*/ typedef struct { CarNode *base; CarNode *top; int stacksize; }SqStackCar; /*模擬車站*/ void InitStack(SqStackCar *s) /*初始化棧*/
21、 { s->base=(CarNode *)malloc(MAXSTACKSIZE*sizeof(CarNode)); if(!s->base) exit(0);/*分配失敗*/ s->top=s->base; s->stacksize=MAXSTACKSIZE; } int Push(SqStackCar *s,CarNode *e) /*進站函數*/ { if(s->top-s->
22、base>=s->stacksize) return 0; else *s->top++=*e; return 1; } int Pop(SqStackCar *s,CarNode *e) /*出站函數*/ { if(s->top==s->base) return 0; *e=*--s->top; return 1;
23、 } int StackEmpty(SqStackCar s) /*判空函數*/ { if(s.base==s.top) return 1; else return 0; } (2) 、隊列類型 typedef struct car{ CarNode *data; struct car *next; }Q
24、ueueNode; typedef struct { QueueNode *front; QueueNode *rear; }LinkQueueCar; /*模擬通道*/ int QueueEmpty(LinkQueueCar Q) /*便道判空函數*/ { if(Q.front==Q.rear) return 1; else return 0;
25、 } int StackEmpty(SqStackCar s) /*判空函數*/ { if(s.base==s.top) return 1; else return 0; } int InitQueue(LinkQueueCar *Q) /*初始化便道*/ { Q->front=Q->rear=(QueueNode *)m
26、alloc(sizeof(QueueNode)); if(!Q->front) exit(0); Q->front->next=NULL; return 1; } int EnQueue(LinkQueueCar *Q,CarNode *e) /*便道插入函數*/ { QueueNode *p;
27、 p=(QueueNode *)malloc(sizeof(QueueNode)); if(!p) exit(0); p->data=e; p->next=NULL; Q->rear->next=p; Q->rear=p; return 1; } i
28、nt DeQueue(LinkQueueCar *Q,CarNode *e) /*便道刪除函數*/ { QueueNode *p; if(Q->front==Q->rear) return 0; p=Q->front->next; e=p->data; Q->front->next=p->next; if(Q->rear==p) Q->rear=Q-
29、>front; free(p); return 1; } (3) 、車輛到達函數 int Arrive(SqStackCar *In,LinkQueueCar *Wait,char j[10],int hour,int min) { CarNode *i; QueueNode *w; i=(CarNo
30、de *)malloc(sizeof(CarNode));
flushall();
strcpy(i->num,j);
if(In->top-In->base
31、 Push(In,i); printf("\n車牌號碼是%s 的車進場成功!!",i->num); return 1; } else /*停車場已滿,車進便道*/ { w=(QueueNode *)malloc(sizeof(QueueNode));
32、 w->data=i; w->next=NULL; Wait->rear->next=w; Wait->rear=w; printf("停車場已滿,必須在通道里等!"); return 1; } return 0; } (4) 、車輛離開函
33、數 int Departure(SqStackCar *In,SqStackCar *temp,LinkQueueCar *Wait, char j[10],int hour,int min) /*車輛離開函數*/ { int flag=0,a1,a2,b1,b2; float money; CarNode *p,*t; QueueNode *q;
34、p=(CarNode *)malloc(sizeof(CarNode)); flushall(); strcpy(p->num,j); while(!StackEmpty(*In)) { t=(CarNode *)malloc(sizeof(CarNode)); Pop(In,t); if(strcmp(p->num,t->num)==0) /*比較車場中有
35、無這輛車,有即出站*/ { p->leave.hour=hour; p->leave.min=min; printf("車牌號是 "); printf("%s",p->num); printf(" 的車已出停車場!"); a1= p->leave.hour; a2= t-
36、>reach.hour; b1= p->leave.min; b2= t->reach.min; money = ((float)((a1-a2+24)%24*60+(b1-b2+60)%60))*price; /*計算 車輛需要的費用*/ printf("\n車輛到達時間: %d:%d",t->reach.hour,t->reach.
37、min); printf("\n車輛離開時間: %d:%d",p->leave.hour,p->leave.min); printf("\n所需費用: %5.2f yuan",money); flag=1; free(t); break; } else
38、 Push(temp,t); } /*while*/ if(!flag) { printf("停車場已滿,必須在通道等!!"); getch(); } while(!StackEmpty(*temp))
39、 { Pop(temp,p); Push(In,p); } free(p); if(flag&&Wait->front!=Wait->rear) /*車站中有空位,便道有車,車入站*/ { q=(QueueNode *)malloc(sizeof(QueueNode));
40、 q=Wait->front->next; t=q->data; if(q!=NULL) { t->reach.hour=hour; t->reach.min=min; Push(In,t); printf("\n車牌號是 ");
41、 printf("%s",t->num); printf(" 的車進入停車場!"); } Wait->front->next=q->next; if(q==Wait->rear) Wait->rear=Wait->front; free(q); }
42、 return 1; } (5) 車輛查詢函數 void Print(SqStackCar *In,SqStackCar *Temp,LinkQueueCar *Wait) /*打印函數*/ { int c=0; int count=1; CarNode *p,*t; QueueNode *q;
43、 q=(QueueNode *)malloc(sizeof(QueueNode)); p=(CarNode *)malloc(sizeof(CarNode)); t=(CarNode *)malloc(sizeof(CarNode)); while(1&&c!=3) { clrscr();
44、 gotoxy(1,10); printf("1. 通道里的車輛信息!"); gotoxy(1,11); printf("2. 停車場里得車輛信息!"); gotoxy(1,12); printf("3. 返回"); do{
45、 printf("\n請輸入你的選擇:"); c = getche(); printf("\n"); }while(c!=1&&c!=2&&c!=3); if(c==2) /*打印停車場*/ { count=1; if(StackEmpt
46、y(*In)) { printf("\n 停車場里沒有車!\n"); printf("\n請按任意鍵繼續(xù)..."); getch(); } else { printf("\n 停車場里車輛信息!\n"); while(!S
47、tackEmpty(*In)) { Pop(In,t); Push(Temp,t); } while(!StackEmpty(*Temp)) { Pop(Temp,t); printf(" \n 車牌號碼 ");
48、 count++; puts(t->num); printf(" 車輛到達時間: %d:%d \n",t->reach.hour,t->reach.min); Push(In,t); } printf("\n請按任意鍵繼續(xù)..."); getch();
49、 } } if(c==1) /*打印便道*/ { count=1; q=Wait->front->next; if(Wait->front!=Wait->rear) /**/ { printf("\n 通道里車輛信息!\n"); while(q
50、!=NULL) { p=q->data; printf(" \n 通道里車牌號碼是: "); puts(p->num); q=q->next; count++; } } else p
51、rintf("\n通道里沒有車.\n"); printf("\n請按任意鍵繼續(xù)..."); getch(); } } } (6)、程序設計原理圖: 車輛到達 以堆棧來模擬停車場和以堆棧里的數據元素我設計成汽車的車牌號 初始化車站, 初始化讓路的臨時棧, 初始化通道 車場未滿,車進車場 車場已滿,車進
52、便道 判斷車場是否已滿 車 輸入車子到達時間,車牌號 未滿 車進入車場 判斷車場內是否有車 不做任何計算 無點x 有 輸入離開車輛的離開時間,進行停車費用的計算 此車后面的車輛退出并進入臨時棧 車子離開 四、 調試分析 本次課程設計主要應用棧和隊列,以棧模擬停車場,以隊列模擬車場外的通道,按照從終端讀入的輸入數據序列進行模擬管理。棧 以順序結構實現(xiàn),隊列以鏈表實 現(xiàn)。編程是應注意各變量之間的 關系、各變量的類型、各種函
53、數的應用條件等。尤其注意應繳納費用的計算問題,我在編程的時候就是忽略了計費所用的時間應是從車輛進停車場是的時刻而不是到達通道的,以至于出現(xiàn)計算錯誤,但經過老是的提醒和幫助我很高興已經解決了。 五、 用戶手冊 (1) 、本程序的運行環(huán)境為漢化的TC 。 (2) 、運行后出現(xiàn)初始界面為 按任意鍵就進入初始界面為: 輸入相應的數字進行相應的操作,如輸入“1”,則進入“更新車場信息”選項, 自動一步步讀取讀文件里的車輛信息。然后根據提示就可完成相應的操作。 六、 測試結果 若初始選“
54、1”且按提示操作則出現(xiàn)界面: 若按ESC鍵退到初始界面,再選“2”,則出現(xiàn)界面: 若選“1”,則出現(xiàn)界面: 若選“2”,則出現(xiàn)界面: 選“3”返回初始界面,再選“1”繼續(xù)從文件中讀取信息,出現(xiàn)界面。 若按ESC鍵退到初始界面,再選“2”,再按“1”,則出現(xiàn)界面: 繼續(xù)操作,選“2”,則出現(xiàn)界面: 選“3”返
55、回初始界面,在按“3”,則退出系統(tǒng),測試完成??! 七、 附錄 源程序文件名清單: 車輛信息.txt 肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀
56、艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇
57、肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁
58、莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆
59、膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀
60、荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄
61、芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿
62、肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃
63、蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀
64、膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁肅蒀袃羃莂蒀薂腿羋葿蚅羂膄薈螇膇肀薇衿羀荿薆蕿螃蒞薅螁羈芁薄袃袁膇薄薃肇肅薃蚅衿莁薂螈肅芇蟻袀袈膃蝕薀肅聿蠆螞袆蒈蚈襖肁莄蚈羇羄芀蚇蚆膀膆芃蝿羃肂節(jié)袁膈莀莂薀羈芆莁蚃膆膂莀螅罿肈荿羇螂蕆莈蚇肇莃莇蝿袀艿莆袂肆膅莆薁衿肁蒅蚄肄莀蒄螆袇芆蒃袈肂膂蒂蚈裊膈蒁螀膁 15
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。