第一篇:停車場系統(tǒng)開題報告
武漢科技學(xué)院畢業(yè)設(shè)計(論文)開題報告 課題名稱
智能停車場管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)
院系名稱
計算機(jī)科學(xué)學(xué)院
專業(yè)
網(wǎng)絡(luò)工程
班級
計科077
學(xué)生姓名
黃易欣
一.課題的意義
當(dāng)前,在停車場的信息化過程中,有許多信息需要處理和管理?,F(xiàn)今,有很多門診信息都是初步開始使用,甚至尚未使用計算機(jī)進(jìn)行信息處理。根據(jù)調(diào)查得知,他們以前對信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對于管理過程中的很多信息都是用人工計算、手抄進(jìn)行。數(shù)據(jù)信息處理工作量大,容易出錯;由于數(shù)據(jù)繁多,容易丟失,且不易查找??偟膩碚f,缺乏系統(tǒng),規(guī)范的信息管理手段。
數(shù)據(jù)處理手工操作,工作量大,出錯率高,出錯后不易更改?;谶@此問題,我認(rèn)為有必要建立一個停車場管理系統(tǒng),使停車場管理工作規(guī)范化,系統(tǒng)化,程序化,避免停車場管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時、準(zhǔn)確、有效的查詢和修改停車場情況。因此開發(fā)一個智能停車場管理系統(tǒng)是非常有必要的。二.開發(fā)背景
在停車場的信息化中,涉及停車場車位管理的信息化、車主管理的信息化、停車信息管理的信息化,做好信息化工作利于提高停車場的管理效率,提升停車場的競爭力。
要提高競爭力,既要有好的硬件環(huán)境,同時也要有好的客戶服務(wù),而要實(shí)現(xiàn)這些目標(biāo)的辦法就是信息化。本選題,針對停車場過程中的一些信息,對其進(jìn)行信息化處理。
在停車場管理過程中,主要涉及固定車位信息、自由車位信息、車主信息、停車信息,通過對以上各個環(huán)節(jié)的信息化,提高檔案的規(guī)范化管理,為以后的查詢、統(tǒng)計打下基礎(chǔ)。通過這前段時間的市場調(diào)查和分析,初步了解到現(xiàn)在各種停車場軟件的優(yōu)點(diǎn)及不足。比如說有些傳統(tǒng)停車場軟件是為替代手工錄入,從傳統(tǒng)數(shù)據(jù)記錄中產(chǎn)生的,這些軟件面對Internet及電子商務(wù)迅猛發(fā)展的網(wǎng)絡(luò)經(jīng)濟(jì)時代顯得如此脆弱,具體來說有以下幾點(diǎn)不足:
1、體系封閉,無法實(shí)現(xiàn)網(wǎng)絡(luò)化管理,更無法支持電子商務(wù)。傳統(tǒng)軟件由于產(chǎn)生的技術(shù)背景落后,無法實(shí)現(xiàn)網(wǎng)絡(luò)化管理或只支持局部網(wǎng)絡(luò)應(yīng)用,更無法支持電子商務(wù),不能適應(yīng)網(wǎng)絡(luò)時代企業(yè)的需求。
2、信息單
一、落后且缺乏前瞻性。由于技術(shù)方面的限制,傳統(tǒng)軟件無法做到庫存信息的實(shí)時動態(tài)處理、事前的預(yù)測并提供前瞻性信息。
3、對管理考慮甚少。軟件依舊沒有擺脫傳統(tǒng)束縛,以對外報告為其存在目的。三.研究內(nèi)容
本系統(tǒng)應(yīng)用有如下功能模塊:
(1)系統(tǒng)管理者部分:至少具有相應(yīng)的添加、修改、刪除用戶的功能,具有修改用戶權(quán)限的功能,并且進(jìn)行用戶分類的功能,還有對不同的用戶進(jìn)行停車費(fèi)用的設(shè)置的功能。(2)系統(tǒng)使用者部分:對停車相關(guān)信息進(jìn)行定時和臨時管理,查詢,統(tǒng)計和上報。四.研究方法 4.1 設(shè)計方法
1.查詢相關(guān)資料,了解本系統(tǒng)的研究意義。可以上網(wǎng)搜索或者是去圖書館查閱相關(guān)資料。2.通過查詢資料了解該系統(tǒng)要如何做,及要做哪些東西。3.設(shè)計出大體上的功能模塊,畫出模塊圖。
4.通過進(jìn)一步的了解,對每個功能模塊進(jìn)行細(xì)化,將每一步都想清楚。制定出每一步的做法和注意的地方。
5.對設(shè)計好的程序進(jìn)行調(diào)試,通過調(diào)試發(fā)現(xiàn)存在的問題并解決,從而達(dá)到完善系統(tǒng)的目的。6.最后,整理各階段的設(shè)計記錄文檔,寫成論文稿。4.2 開發(fā)工具 選用設(shè)計語言
目前的可用的設(shè)計技術(shù)在設(shè)計此類系統(tǒng)上的數(shù)據(jù)庫技術(shù)已經(jīng)非常成熟,可提供的開發(fā)工具也很多,例如:Visual C++ ,Visual Basic,PowerBuilder,Dephi, visual foxpro等,它們都是很好的數(shù)據(jù)庫開發(fā)工具,都是可視化開發(fā)工具,功能強(qiáng)大,開發(fā)容易,開發(fā)周期短,對于本任務(wù)都能夠勝任。
VC6.0是Microsoft Visual Studio 6.0家族成員之一,是一個功能極為強(qiáng)大的可視化軟件開發(fā)工具,它提供了一個集源程序編輯、代碼編譯和調(diào)試于一體的可視化開發(fā)環(huán)境,即所謂的集成開發(fā)環(huán)境,包含文本編輯器、資源編輯器、工程編譯工具、源代碼瀏覽器、集成調(diào)試工具,以及一套聯(lián)機(jī)文檔。與其他的可視化編程環(huán)境(如Visual Basic)一樣,VC6.0集程序的代碼編輯、編譯、鏈接、調(diào)試等功能于一體,加上AFX小組為VC6.0精心打造的、功能強(qiáng)大的MFC類庫,給程序員提供了一個完整、全面而又方便的開發(fā)環(huán)境,并提供了許多有效的輔助開發(fā)工具。
VC6.0基于C/C++,所以它擁有兩種以下編程方式。
一種是傳統(tǒng)的基于Windows API的C編程方式,雖然其代碼效率較高,但開發(fā)難度與開發(fā)工作量也隨著增高,目前使用這種編程方式的用戶已經(jīng)很少。一種是基于MFC的C++編程方式,雖然其代碼運(yùn)行效率相對較低,但開發(fā)難度小、開發(fā)工作量小、源代碼效率高,已成為Visual C++開發(fā)Windows應(yīng)用程序的主流。
為了幫助開發(fā)人員開發(fā)Windows應(yīng)用程序,VC6.0提供了豐富的向?qū)Т翱凇S脩粼跇?gòu)建各種工程時,幾乎都可以找到相應(yīng)的工程向?qū)Т翱?,利用向?qū)Т翱诳梢詾橛脩羯晒こ炭蚣堋@?,用戶在設(shè)計一個對話框應(yīng)用程序時,只要選擇MFC應(yīng)用程序向?qū)?,根?jù)向?qū)崾镜牟襟E進(jìn)行操作,不需要編寫一行代碼,就可以創(chuàng)建一個窗口;用戶只要在窗口中添加一些控件,在控件的命令消息中編寫代碼,就可以設(shè)計出一個簡單的應(yīng)用程序。4.3 選用SQL server作為后臺數(shù)據(jù)庫
SQL server 2000 就是關(guān)系數(shù)據(jù)庫管理工具,數(shù)據(jù)庫能匯集各種信息以供查詢、存儲和檢索。SQL 的優(yōu)點(diǎn)在于它能使用數(shù)據(jù)表示圖或自定義窗體收集信息。數(shù)據(jù)表示圖提供了一種類似于 Excel的電子表格,可以使數(shù)據(jù)庫一目了然。另外,SQL允許創(chuàng)建自定義報表用于打印或輸出數(shù)據(jù)庫中的信息。SQL也提供了數(shù)據(jù)存儲庫,可以使用桌面數(shù)據(jù)庫文件把數(shù)據(jù)文件置于網(wǎng)絡(luò)文件服務(wù)器,與其他網(wǎng)絡(luò)用戶共享數(shù)據(jù)庫。SQL 是一種關(guān)系數(shù)據(jù)庫管理工具,關(guān)系數(shù)據(jù)庫是已開發(fā)的最通用的數(shù)據(jù)庫之一。如上所述,SQL 作為關(guān)系數(shù)據(jù)庫開發(fā)具備了許多優(yōu)點(diǎn),可以在一個數(shù)據(jù)包中同時擁有桌面數(shù)據(jù)庫的便利和關(guān)系數(shù)據(jù)庫的強(qiáng)大功能。4.4 設(shè)計要求
智能停車場管理是一個典型的數(shù)據(jù)庫管理信息系統(tǒng),系統(tǒng)的開發(fā)用到許多數(shù)據(jù)庫相關(guān)的理論,因此要求作者具有這方面的基礎(chǔ)知識,能夠正確運(yùn)用數(shù)據(jù)庫理論進(jìn)行系統(tǒng)的分析、邏輯設(shè)計、實(shí)體屬性以及ER圖等的轉(zhuǎn)換,明白范式的相關(guān)內(nèi)容,從而能夠根據(jù)系統(tǒng)實(shí)際要求,設(shè)計出滿足要求的合理的數(shù)據(jù)庫。
面向?qū)ο罄碚摗.?dāng)前流行的編程思想是面向?qū)ο笏枷?,而且許多工具,如Visual C++,體現(xiàn)的也正是這種思想。面向?qū)ο笏枷肱c傳統(tǒng)的面向過程編程思想相比,具有明顯的優(yōu)勢,而且智能停車場管理系統(tǒng)的設(shè)計也要求用面向?qū)ο缶幊坦ぞ邅韺?shí)現(xiàn)。這就要求作者在進(jìn)行畢業(yè)設(shè)計時,應(yīng)該明白面向?qū)ο蟮乃枷?,并能夠運(yùn)用其思想到實(shí)際的工作中。軟件工程思想。大型系統(tǒng)的開發(fā)要用到軟件工程相關(guān)的理論。雖然智能停車場管理系統(tǒng)比較小,但是最好也能按照系統(tǒng)設(shè)計的生命周期模型來進(jìn)行。嚴(yán)格按照軟件工程思想和管理信息系統(tǒng)的開發(fā)步驟,設(shè)計并實(shí)現(xiàn)一個智能停車場管理信息系統(tǒng)。以系統(tǒng)開發(fā)過程為主線,從需求分析,邏輯設(shè)計,總體設(shè)計,詳細(xì)設(shè)計以及系統(tǒng)測試、實(shí)施各階段的主要內(nèi)容和成果,包括系統(tǒng)結(jié)構(gòu)圖、業(yè)務(wù)流程圖、數(shù)據(jù)流程圖、E-R模型、數(shù)據(jù)字典、物理表實(shí)現(xiàn)及其關(guān)系、功能模塊算法流程、界面設(shè)計等等。
一定的實(shí)際動手能力和實(shí)際編程經(jīng)驗(yàn)。系統(tǒng)最后要落實(shí)到windows下的編程,因此要求作者對windows下的數(shù)據(jù)庫編程具有一定的基礎(chǔ),能夠較為熟練的進(jìn)行數(shù)據(jù)庫相關(guān)程序的開發(fā)。以Microsoft公司的Visual Basic 6.0為開發(fā)工具,以SQL為后臺數(shù)據(jù)庫,對上述邏輯設(shè)計的成果進(jìn)行轉(zhuǎn)換,實(shí)現(xiàn)一個完整的可運(yùn)行的智能停車場管理系統(tǒng)。4.5 設(shè)計環(huán)境 硬件環(huán)境:
隨著計算機(jī)硬件的高速發(fā)展,現(xiàn)在普通的機(jī)子已經(jīng)可以做為一個服務(wù)器端使用。CPU: 2.0Ghz或更高 硬盤:40G或更多 內(nèi)存:512M或更高 軟件環(huán)境:
操作系統(tǒng)
Windows 2000 Server /Windows XP 數(shù)據(jù)庫
SQL Server 開發(fā)環(huán)境
Visual C++ 其它輔助軟件:Microsoft Word等 五.實(shí)現(xiàn)步驟:
階段一:11年01月01日-08年01月15日文獻(xiàn)搜集與整理,撰寫開題報告, 外文翻譯;階段二:11年02月16日-08年03月15日對要實(shí)現(xiàn)的處理進(jìn)行需求分析,模塊劃分; 階段三:11年03月16日-08年04月01日系統(tǒng)設(shè)計,包括模塊分解,詳細(xì)設(shè)計以及編寫代碼; 階段四:11年04月02日-08年05月20日對開發(fā)的系統(tǒng)進(jìn)行簡單的測試和維護(hù); 階段五:11年05月21日-08年05月28日根據(jù)所做系統(tǒng),撰寫畢業(yè)論文。六.參考書目 [1] 王珊:《數(shù)據(jù)庫系統(tǒng)概論》,高等教育出版社,2006年。[2] 賽奎春等:《VC數(shù)據(jù)庫開發(fā)關(guān)鍵技術(shù)與實(shí)例應(yīng)用》,人民郵電出版社,2003年。[3] 汪詩林等:《數(shù)據(jù)結(jié)構(gòu)算法與應(yīng)用》,機(jī)械工業(yè)出版社,2005年。[4] 約翰遜鮑爾:《面向?qū)ο蟪绦蛟O(shè)計:C++語言描述(原書第2版)》,機(jī)械工業(yè)出版社,2003年。
[5] 馮博琴等:《面向?qū)ο蠓治雠c設(shè)計》,機(jī)械工業(yè)出版社,2003年。[6] Awad.E.M, Gotterer M.H: Visual C++ 6.0, 1992.[7] Robert.H.Dependahl:《Database Principles and Applications》.Williams Brown,2003.指導(dǎo)教師簽名: 年月日
第二篇:停車場管理系統(tǒng)需求報告
停車場收費(fèi)管理系統(tǒng)
需求報告
目錄 1 2 3 摘要
項(xiàng)目背景介紹
停車場收費(fèi)管理系統(tǒng)的現(xiàn)狀
功能需求
4.1 通用基本功能 4.2 圖像識別比較功能 4.3 先進(jìn)的閘機(jī)安全安裝 4.4 可增設(shè)中遠(yuǎn)距離車輛感應(yīng) 5
性能需求
5.1 系統(tǒng)基本要求
5.2 數(shù)據(jù)管理能力要求
5.3 故障處理要求
外部接口說明
6.1 入口和出口部分 6.2 數(shù)據(jù)流程 7
修正系統(tǒng)開發(fā)計劃 摘要
停車場電腦收費(fèi)管理系統(tǒng)是現(xiàn)代化停車場車輛收費(fèi)及設(shè)備自動化管理的統(tǒng)稱,是將車場完全置于計算機(jī)管理下的高科技機(jī)電一體化產(chǎn)品。
根據(jù)多年設(shè)計、安裝停車場收費(fèi)系統(tǒng)的實(shí)際經(jīng)驗(yàn),我們在軟件和系統(tǒng)設(shè)計上為停車場提供了一套最嚴(yán)格、最先進(jìn)、易用、便于維護(hù)和運(yùn)行可靠的收費(fèi)系統(tǒng);一套能有效的堵塞收費(fèi)漏洞,降低操作成本,提高經(jīng)濟(jì)效益和減輕勞動強(qiáng)度,提高工作效率的現(xiàn)代化收費(fèi)管理系統(tǒng)
隨著時代的發(fā)展,私家車越來越多,而車位卻十分緊張。在市區(qū)內(nèi)有很多空間沒
有被充分利用,大多車輛是停在路邊或者簡易停車場,缺乏管理,這樣導(dǎo)致了資源的浪費(fèi),也造成了街道的擁堵。為了適應(yīng)社會的發(fā)展,大量的現(xiàn)代化大規(guī)模的停車場會被投入使用,但管理方面又容易出現(xiàn)問題。因此,停車場管理系統(tǒng)的開發(fā)和應(yīng)用是十分必要的。
此報告的目的重在分析此程序的總體需求,實(shí)現(xiàn)方案,并分析開發(fā)系統(tǒng)的可行性,為決策者提供是否開發(fā)該系統(tǒng)的依據(jù)和建議。項(xiàng)目背景介紹
2.1 開發(fā)軟件名稱:停車場管理系統(tǒng) 2.2項(xiàng)目開發(fā)者:
某軟件開發(fā)小組
2.3用戶單位:
某公司
2.4大體框架:
智能停車場收費(fèi)管理系統(tǒng) 門禁管理系統(tǒng) 智能通道管理系統(tǒng) 考勤管理系統(tǒng) 智能巡更管理系統(tǒng) 收費(fèi)管理系統(tǒng)等子系統(tǒng) 閉路監(jiān)視系統(tǒng)(CCTV)
消防安全系統(tǒng)(FA)和保安系統(tǒng)(SA)緊急廣播系統(tǒng) 停車場收費(fèi)管理系統(tǒng)的現(xiàn)狀
該系統(tǒng)具有很大的市場潛力,以現(xiàn)在的車輛增長速度推測,在不久的將來肯定會有許多大規(guī)模停車場(包括住宅小區(qū))建成,此系統(tǒng)的開發(fā)很有價值。本系統(tǒng)現(xiàn)有的技術(shù)條件完全有能力順利完成開發(fā)工作,硬件、軟件上的配置也很容易滿足開發(fā)者的要求,開發(fā)系統(tǒng)的計算機(jī)硬件已經(jīng)非常普及,完全沒有問題;現(xiàn)在的計算機(jī)各方面的技術(shù)都非常成熟,相對來說開發(fā)此系統(tǒng)的技術(shù)也要求比較簡單,因此在技術(shù)方面是可行的;各類技術(shù)人員的數(shù)量、水平、來源等也能很容易滿足;而且此系統(tǒng)的專業(yè)性不強(qiáng),因此不需要相關(guān)行業(yè)人士,開發(fā)人員的選擇就有很大余地。停車場計費(fèi)管理系統(tǒng)的主要工作是減少人工計費(fèi)帶來的不便,提高辦事效率,使車輛管理工作更加信息化,電子化。充分發(fā)揮計算機(jī)的信息傳輸速度快、準(zhǔn)確度高的優(yōu)勢。功能需求
4.1通用基本功能:
入口讀卡升閘、出口讀卡驗(yàn)卡收費(fèi)、車滿顯示、出入口與收費(fèi)亭對講、公正收費(fèi)等等。
4.2 圖像識別比較功能:
其他有圖像識別功能的系統(tǒng),其識別都是單向識別,即僅入口攝取,出口須由管理員目測比較。本系統(tǒng)入口、出口均采用攝像機(jī)比較,方便管理員直觀比較。
4.3 先進(jìn)的閘機(jī)安全安裝:
道閘欄桿配的自動平穩(wěn)裝置,以及防抬桿、防砸車功能,檢測功能具有高靈敏度和高可靠性。能很好地識別非機(jī)動車及人員等誤報情況。
4.4 可增設(shè)中遠(yuǎn)距離車輛感應(yīng):
采用50-80cm中距離或5-8m遠(yuǎn)距離感應(yīng)范圍的讀卡器,經(jīng)多次實(shí)際認(rèn)證為最方便的操作距離。系統(tǒng)如果沒有特殊要求一般車輛經(jīng)過讀卡器的距離約為10--15cm。性能需求
5.1 系統(tǒng)基本要求
響應(yīng)時間:系統(tǒng)的響應(yīng)時間不能超過1分鐘
警告時間及次數(shù):每隔三分鐘重復(fù)警告一次,每次警告時間持續(xù)一分鐘。主存容量:內(nèi)存:128MB RAM 磁盤容量:不小于1G
顯示器:256色,800*600以上的兼容顯示器
5.2 車輛管理能力要求
計費(fèi)
分為入口和出口,中間設(shè)立崗樓,一人操作,高峰時期可兩人操作,入口處發(fā)放計費(fèi)卡,出口處憑借計費(fèi)卡繳費(fèi),放行,操作簡單快速方便。長期客戶可辦理月票??蛻粢部少徺I車位,實(shí)現(xiàn)車位預(yù)留 監(jiān)控
全范圍監(jiān)控,無死角,監(jiān)控畫面與保安室相連接,可錄像。一旦出現(xiàn)事故或意外,保安可第一時間趕到現(xiàn)場,必要時可以直接報警。出現(xiàn)緊急情況,如火災(zāi)時,會自動啟動消防設(shè)備,并自動開啟大門,放行車輛。自動引導(dǎo)車位
停車更加快速,有效,方便。
5.3 故障處理要求
列出可能的軟件、硬件故障以及對各項(xiàng)性能而言所產(chǎn)生的后果和對故障處理的要求。輸出發(fā)生錯誤時,在系統(tǒng)的代碼部分進(jìn)行修改 外部接口說明
6.1 入口和出口部分
入口控制部分: 智能停車場收費(fèi)管理系統(tǒng) 門禁管理系統(tǒng) 智能通道管理系統(tǒng) 考勤管理系統(tǒng) 智能巡更管理系統(tǒng)
出口控制部分: 收費(fèi)管理系統(tǒng)等子系統(tǒng) 閉路監(jiān)視系統(tǒng)(CCTV)
消防安全系統(tǒng)(FA)和保安系統(tǒng)(SA)緊急廣播系統(tǒng)
6.2 數(shù)據(jù)流程 修正系統(tǒng)開發(fā)計劃
對于車輛的管理有待提高,如停車位置,出場路線等。在以后的系統(tǒng)中,會提供諸如此類的更加人性化的服務(wù)。
本系統(tǒng)會提供多國語言的電子錄音,使此系統(tǒng)對不懂中文的客戶也適用。
第三篇:《停車場管理系統(tǒng)》實(shí)驗(yàn)設(shè)計報告
重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院
《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)設(shè)計報告
題目:停車場管理系統(tǒng) 姓名:** 學(xué)號: 2010211998 班級:0491002 學(xué)院:計算機(jī)科學(xué)與技術(shù)學(xué)院
重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院
目錄
一、問題描述………………………………………………………03
二、問題分析………………………………………………………03
三、數(shù)據(jù)結(jié)構(gòu)描述…………………………………………………04
四、算法設(shè)計………………………………………………………04
五、程序優(yōu)缺點(diǎn)分析及優(yōu)化………………………………………05
六、程序源代碼……………………………………………………07
七、程序運(yùn)行結(jié)果…………………………………………………13
八、心得體會………………………………………………………15 附
一、優(yōu)化后的程序…………………………………………………16 附
二、優(yōu)化后程序的運(yùn)行結(jié)果………………………………………23
重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院
一、問題描述
設(shè)計一個停車場管理系統(tǒng)。
設(shè)停車場是一個可停放n輛汽車的狹長通道,且只有一個大門可供汽車進(jìn)出。汽車在停車場內(nèi)按車輛到達(dá)時間的先后順序,依次由北向南排列(大門在最南端,最先到達(dá)的第一輛車停放在停車場的最北端),若停車場內(nèi)已停滿n輛汽車,則后來的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;當(dāng)停車場內(nèi)某輛車要離開時,在它之后進(jìn)入的車輛必須先退出車場為它讓路,待該輛車開出大門外,其他車輛再按原次序進(jìn)入車場,每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交納費(fèi)用。試為停車場編制按上述要求進(jìn)行管理的模擬程序?!净疽蟆?/p>
以棧模擬停車場,以隊(duì)列模擬車場外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管理。每一組輸入數(shù)據(jù)包括三個數(shù)據(jù)項(xiàng):汽車?到達(dá)?或?離去?信息、汽車牌照號碼以及到達(dá)或離去的時刻。對每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出信息為:若是車輛到達(dá),則輸出汽車在停車場內(nèi)或便道上的停車位置;若是車輛離去,則輸出汽車在停車場內(nèi)停留的時間和應(yīng)交納的費(fèi)用(在便道上停留的時間不收費(fèi))。棧以順序結(jié)構(gòu)實(shí)現(xiàn),隊(duì)列以鏈表結(jié)構(gòu)實(shí)現(xiàn)?!具x作內(nèi)容】
(1)兩個棧共享空間,思考應(yīng)開辟數(shù)組的空間是多少?
(2)汽車可有不同種類,則他們的占地面積不同,收費(fèi)標(biāo)準(zhǔn)也不同,如1輛客車和1.5輛小汽車的占地面積相同,1輛十輪卡車占地面積相當(dāng)于3輛小汽車的占地面積。
(3)汽車可以直接從便道上開走,此時排在它前面的汽車要先開走讓路,然后再依次排到隊(duì)尾。
二、問題分析
該問題需要以棧和隊(duì)列作為基本的存儲結(jié)構(gòu),以順序棧模擬停車場,以鏈隊(duì)列模擬車場外的便道。汽車進(jìn)入停車場,即是在順序棧上執(zhí)行進(jìn)棧操作,退出停車場即是在順序棧上執(zhí)行出棧操作;汽車進(jìn)入便道,即是在鏈隊(duì)列上執(zhí)行入隊(duì)操作,退出便道即是在鏈隊(duì)列上執(zhí)行出隊(duì)操作。
當(dāng)停車場內(nèi)某輛車要離開時,在它之后進(jìn)入的車輛必須先退出車場為它讓路,待該輛車開出大門外,其他車輛再按原次序進(jìn)入車場。設(shè)要刪除的元素在順序表St中位置為i,則從i到top之間的全部元素進(jìn)入到一個臨時棧St1中, 其次再刪除該元素,然后將臨棧St1的元素按照?先進(jìn)后出?的原則重新回到St中。若鏈隊(duì)不空,則使隊(duì)頭進(jìn)棧St,并以當(dāng)前時刻開始計費(fèi)。
程序需要構(gòu)造兩個順序棧St和St1,其中St用于模擬停車場,St1用作臨時棧,臨時停放為給要離去的汽車讓路而從停車場退出來的汽車。此外還需要構(gòu)
重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院
造一個鏈隊(duì)列Qu用于模擬便道。
三、數(shù)據(jù)結(jié)構(gòu)描述
/*定義順序棧類型*/ typedefstruct { intCarNo[N];
/*車牌號*/ intCarTime[N];
/*進(jìn)場時間*/ int top;
/*棧指針*/ } SqStack;
/*定義順序棧類型*/
/*定義鏈隊(duì)類型*/ typedefstructqnode { intCarNo;
/*車牌號*/ structqnode *next;} QNode;typedefstruct { QNode *front;/*隊(duì)首和隊(duì)尾指針*/ QNode *rear;} LiQueue;
四、算法設(shè)計
1.對于子函數(shù)模塊,則調(diào)用順序棧的基本操作和鏈隊(duì)列的基本操作。如下:
/*順序棧的基本運(yùn)算算法*/ voidInitStack(SqStack *&s)
intStackEmpty(SqStack *s)
intStackFull(SqStack *s)
/*S中的插入新元素*/ int Push(SqStack *&s,int e1,int e2)
重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院
/*刪除S的棧頂元素,并用e1,e2返回其值*/ int Pop(SqStack *&s,int&e1,int &e2)
voidDispStack(SqStack *s)
/*以下為鏈隊(duì)列的基本運(yùn)算算法*/ voidInitQueue(LiQueue *&q)
intQueueLength(LiQueue *q)
intQueueEmpty(LiQueue *q)
voidenQueue(LiQueue *&q, int e)} intdeQueue(LiQueue *&q,int&e)
voidDisplayQueue(LiQueue *q)
2.主程序模塊 void main(){ 初始化; do { 接受命令;
處理命令;
} while(命令!=?退出?); }
五、程序優(yōu)缺點(diǎn)分析及優(yōu)化
1.程序的優(yōu)點(diǎn)
在程序中設(shè)置了kind變量,用于保存車的類別,便于計算不同類別車的停車費(fèi)用,如下程序段:
printf(“n請輸入車的類別【車的類別:1.代表小汽車 2.代表客車 3.代表卡車】:n”);scanf(“%d”,&kind);
其中kind可取值1,2,3;若kind取2,則表示一輛客車單位時間內(nèi)的停車費(fèi)用
重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院
是一輛小汽車的2倍,若kind取3,則表示一輛卡車單位時間內(nèi)的停車費(fèi)用是一輛小汽車的3倍。
當(dāng)然printf(“n請輸入車的類別【車的類別:1.代表小汽車 2.代表客車 3.代表卡車】:n”);中的1.2.3也可以根據(jù)實(shí)際情況改變。比如,若實(shí)際中,一輛小汽車單位時間內(nèi)的停車費(fèi)用
是一輛客車的2倍,一輛卡車單位時間內(nèi)的停車費(fèi)用是一輛客車的4倍,則可以改成:
printf(“n請輸入車的類別【車的類別:1.代表客車2.代表小汽車 4.代表卡車】:n”);
則kind可取值1,2,4; kind取1時對應(yīng)的是客車,表示計算停車費(fèi)用時以一輛客車單位時間內(nèi)的停車費(fèi)用為基數(shù),若kind取2,則表示一輛小汽車單位時間內(nèi)的停車費(fèi)用是一輛客車的2倍,若kind取4,則表示一輛卡車單位時間內(nèi)的停車費(fèi)用是一輛客車的4倍。
2.程序的缺點(diǎn)
(1)輸入時間時,程序沒有檢測錯誤功能 程序的輸入形式如下: 設(shè)n=2,輸入數(shù)據(jù)為:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),(‘A’5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。其中:‘A’表示到達(dá)(arrival);‘D’表示離去(departure);‘E’表示輸出結(jié)束(end)。
設(shè)每個輸入項(xiàng)的形式為(Choose, CarNumber, Time),其中Choose表示每個括號中的第一項(xiàng)數(shù)據(jù),即A/D/E; CarNumber表示每個括號中的第二項(xiàng),即1/2/3;Time表示每個括號中的第三項(xiàng),即5/10/15。設(shè)前后兩次輸入的數(shù)據(jù)中的第三項(xiàng)分別為Time1,Time2;則必須滿足Time2≧Time1。而在實(shí)際輸入過程中用戶可能會忽略這一點(diǎn),所以應(yīng)該在輸入Time是設(shè)置一個判斷語句,若前后兩次輸入的Time不滿足Time2≧Time1,則要求用戶重新輸入,直至滿足要求為止。
(2)程序的界面不夠清晰,一次性輸入的數(shù)據(jù)項(xiàng)比較多,容易出錯。3.改進(jìn)思想(1)
為了保證前后兩次輸入的Time必須滿足Time2≧Time1,使程序具有錯誤檢測功能,在程序輸入部分添加了如下代碼:
printf(“輸入現(xiàn)在的時刻:n”);
scanf(“%d”,&time2);
while(time2 { printf(“時間輸入錯誤,請重新輸入:n”); scanf(“%d”,&time2); 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 } time1=time2;//time1定義為靜態(tài)變量 (2)為了使程序有更清晰的界面,可在主函數(shù)中加入菜單的顯示方式。且數(shù)據(jù)可以采用一次輸入一個數(shù)據(jù)項(xiàng),分步輸入的方式,使輸入過程少出錯。于是可以將主函數(shù)進(jìn)行修改。(見附錄一) 六、程序源代碼 #include /*停車場內(nèi)最多的停車數(shù)*/ #define Price 2 /*每單位停車費(fèi)用*/ typedefstruct { intCarNo[N]; /*車牌號*/ intCarTime[N]; /*進(jìn)場時間*/ int top; /*棧指針*/ } SqStack; /*定義順序棧類型*/ /*定義鏈隊(duì)類型*/ typedefstructqnode { intCarNo; /*車牌號*/ structqnode *next;} QNode;typedefstruct { QNode *front;/*隊(duì)首和隊(duì)尾指針*/ QNode *rear;} LiQueue; /*順序棧的基本運(yùn)算算法*/ voidInitStack(SqStack *&s){ s=(SqStack *)malloc(sizeof(SqStack));s->top=-1; 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 } intStackEmpty(SqStack *s){ return(s->top==-1);} intStackFull(SqStack *s){ return(s->top==N-1);} /*S中的插入新元素*/ int Push(SqStack *&s,int e1,int e2){ if(s->top==N-1) return 0;s->top++;s->CarNo[s->top]=e1;s->CarTime[s->top]=e2;return 1;} /*刪除S的棧頂元素,并用e1,e2返回其值*/ int Pop(SqStack *&s,int&e1,int &e2){ if(s->top==-1) return 0;e1=s->CarNo[s->top];e2=s->CarTime[s->top];s->top--;return 1;} voidDispStack(SqStack *s){ int i;for(i=0;i<=s->top;i++) printf(“%d ”,s->CarNo[i]);printf(“n”);} /*以下為鏈隊(duì)列的基本運(yùn)算算法*/ 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 voidInitQueue(LiQueue *&q){ q=(LiQueue *)malloc(sizeof(LiQueue));q->front=q->rear=NULL;} intQueueLength(LiQueue *q){ int n=0;QNode *p=q->front;while(p!=NULL){ n++; p=p->next;} return(n);} intQueueEmpty(LiQueue *q){ if(q->rear==NULL) return 1;else return 0;} voidenQueue(LiQueue *&q, int e){ QNode *s;s=(QNode *)malloc(sizeof(QNode));s->CarNo=e;s->next=NULL;if(q->rear==NULL)/*若鏈隊(duì)為空,則新結(jié)點(diǎn)是隊(duì)首結(jié)點(diǎn)又是隊(duì)尾結(jié)點(diǎn)*/ q->front=q->rear=s;else { q->rear->next=s;/*將*s結(jié)點(diǎn)鏈到隊(duì)尾,rear指向它*/ q->rear=s;} } intdeQueue(LiQueue *&q,int&e){ QNode *t;if(q->rear==NULL)/*隊(duì)列為空*/ return 0; 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 if(q->front==q->rear)/*隊(duì)列中只有一個結(jié)點(diǎn)時*/ { t=q->front; q->front=q->rear=NULL;} else /*隊(duì)列中有多個結(jié)點(diǎn)時*/ { t=q->front; q->front=q->front->next;} e=t->CarNo;free(t);return 1;} voidDisplayQueue(LiQueue *q){ QNode *p=q->front;while(p!=NULL){ printf(“%d ”,p->CarNo); p=p->next;} } void main(){ char choose;/*用于選擇命令*/ int no,e1,time,e2,kind;/*用于存放車牌號、當(dāng)前停車時刻*/ inti,j;SqStack *St,*St1;/*臨時棧St1,當(dāng)停車場中間的車要推出去時,用于倒車*/ LiQueue *Qu;InitStack(St);InitStack(St1);InitQueue(Qu);printf(“ #”);printf(“n# #”);printf(“n# 歡迎使用停車場管理系統(tǒng) #”); 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 printf(“n# #”);printf(“n# 【輸入提示】:汽車狀態(tài)由A、D、E 表示。其中,A:表示汽車到達(dá) D:表示汽車離去, #”);printf(“n# E:表示輸出結(jié)束。每次輸入的數(shù)據(jù)由三項(xiàng)構(gòu)成,即:(汽車狀態(tài),車牌號,當(dāng)前時刻)#”);printf(“n# 數(shù)據(jù)項(xiàng)之間以逗號分開。例如輸入示范:A,1,5 #”);printf(“n #n”);printf(“n正在讀取汽車信息...n”); do { printf(“n*****************************************************************”);printf(“n請分別輸入汽車狀態(tài)(A/D/E)、車牌號和當(dāng)前時刻(數(shù)據(jù)之間以逗號分開):n”);scanf(“ %c,%d,%d”,&choose,&no,&time); switch(choose){ /*************************** 汽車到達(dá) ******************************/ case 'A': case 'a': if(!StackFull(St)) /*停車場不滿*/ { Push(St,no,time); printf(“該車在停車場中的位置是:%dn”,St->top+1); } else /*停車場滿*/ { enQueue(Qu,no); printf(“n停車場已滿,該車進(jìn)入便道,在便道中的位置是:%dn”,QueueLength(Qu)); } break;/************************* 汽車離開 ********************************/ case 'D': case 'd': 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 printf(“n請輸入車的類別【車的類別:1.代表小汽車 2.代表客車 3.代表卡車】:n”);scanf(“%d”,&kind); for(i=0;i<=St->top && St->CarNo[i]!=no;i++); if(i>St->top)/*要離開的汽車在便道上*/ { /*汽車可以直接從便道上開走,此時排在它前面的汽車要先開走讓路,然后再依次排到隊(duì)尾*/ while(Qu->front->CarNo!=no) { enQueue(Qu,Qu->front->CarNo); // deQueue(Qu,Qu->front->CarNo); Qu->front = Qu->front->next; } deQueue(Qu,no);printf(“n便道上車牌號為%d的汽車已離開!n”,no); printf(“n當(dāng)前便道中的車輛的車牌號分別是:”); DisplayQueue(Qu); printf(“n”); } else /*要離開的汽車在停車場中*/ { for(j=i;j<=St->top;j++) { Pop(St,e1,e2);/*e1,e2用來返回被刪元素的車牌號和停車時刻*/ Push(St1,e1,e2);/*倒車到臨時棧St1中,將e1,e2插入到臨時棧中*/ } Pop(St,e1,e2); /*該汽車離開*/ printf(“n車牌號為%d的汽車停車時間為:%d。停車費(fèi)用為:%dn”,no,time-e2,(time-e2)*Price*kind); /*對小汽車而言:當(dāng)前時刻 減去 該車當(dāng)時停車的時刻,再乘以價格就是費(fèi)用,而對于客車和卡車而言,就要乘以kind倍小汽車的價格*/ while(!StackEmpty(St1))/*將臨時棧St1重新回到St中*/ { Pop(St1,e1,e2); Push(St,e1,e2); } if(!QueueEmpty(Qu))/*隊(duì)不空時,將隊(duì)頭進(jìn)棧St*/ { 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 deQueue(Qu,e1); Push(St,e1,time);/*以當(dāng)前時間開始計費(fèi)*/ } printf(“n當(dāng)前停車場中的車輛的車牌號分別是:”);//輸出停車場中的車輛 DispStack(St); } break;/************************ 結(jié)束 *********************************/ case 'E': case 'e': printf(“n正在退出系統(tǒng)...n”); if(!StackEmpty(St))//顯示停車場情況 { printf(“n當(dāng)前停車場中的車輛的車牌號分別是:”);//輸出停車場中的車輛 DispStack(St); printf(“n”); } else printf(“n當(dāng)前停車場中無車輛nn”); break;/************************ 結(jié)束 *********************************/ default: /*其他情況*/ printf(“輸入的命令錯誤!n”); break;} } while(choose!='E'&&choose!='e');} 七、程序運(yùn)行結(jié)果 取N=2,即停車場內(nèi)最多的停車數(shù)為2 取 Price=2,即每單位停車費(fèi)用為2 輸入數(shù)據(jù)為:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 (‘A’,4,25),(‘A’5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。程序演示結(jié)果如下圖所示: 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 八、心得體會 (1)該實(shí)驗(yàn)涉及到順序棧的建立、插入、刪除等操作,涉及到了鏈隊(duì)列的建立、插入、刪除等操作。做這個實(shí)驗(yàn),加深了我對以上知識點(diǎn)的認(rèn)識和理解。(2)提高了 C 語言編程的能力。在程序設(shè)計過程中,需要經(jīng)過反復(fù)地編寫,調(diào)試,運(yùn)行,發(fā)現(xiàn)問題并解決問題,在這次實(shí)驗(yàn)的設(shè)計中,我加深對程序的了解,提高自己的實(shí)際動手能力和獨(dú)立思考的能力同時我也學(xué)會了綜合以前學(xué)到的基本知識來解決較大問題的方法。 (3)一方面我養(yǎng)成了注重程序細(xì)節(jié)的意識。例如: printf(“n請分別輸入汽車狀態(tài)(A/D/E)、車牌號和當(dāng)前時刻(數(shù)據(jù)之間以逗號分開):n”);scanf(“ %c,%d,%d”,&choose,&no,&time); 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 %c,前面必須留一個空格,否則程序在顯示的時候就會有一些問題。 (4)另一方面我也深刻地認(rèn)識到了《數(shù)據(jù)結(jié)構(gòu)》這門課程的重要性?!皵?shù)據(jù)結(jié)構(gòu)”在計算機(jī)科學(xué)中是一門綜合性的專業(yè)基礎(chǔ)課。數(shù)據(jù)結(jié)構(gòu)的研究不僅涉及到計算機(jī)硬件的研究,而且和計算機(jī)軟件的研究有著更密切的關(guān)系,無論是編譯程序還是操作系統(tǒng),都涉及到數(shù)據(jù)元素在存儲器中的分配問題。在研究信息檢索時也必須 考慮如何組織數(shù)據(jù),以便使查找和存取數(shù)據(jù)元素更為方便。可以認(rèn)為數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學(xué)、計算機(jī)硬件和計算機(jī)軟件三者之間的一個核心內(nèi)容,是從事計算機(jī)科學(xué)研究及其應(yīng) 用的科技工作者必須掌握的重要內(nèi)容 附 一、優(yōu)化后的程序 #include /*停車場內(nèi)最多的停車數(shù)*/ #define Price 2 /*每單位停車費(fèi)用*/ typedefstruct { intCarNo[N]; /*車牌號*/ intCarTime[N]; /*進(jìn)場時間*/ int top; /*棧指針*/ } SqStack; /*定義順序棧類型*/ /*定義鏈隊(duì)類型*/ typedefstructqnode { intCarNo;/*車牌號*/ structqnode *next;} QNode;typedefstruct { QNode *front;/*隊(duì)首和隊(duì)尾指針*/ QNode *rear;} LiQueue; /*順序棧的基本運(yùn)算算法*/ voidInitStack(SqStack *&s){ s=(SqStack *)malloc(sizeof(SqStack));s->top=-1;} 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 intStackEmpty(SqStack *s){ return(s->top==-1);} intStackFull(SqStack *s){ return(s->top==N-1);} /*S中的插入新元素*/ int Push(SqStack *&s,int e1,int e2){ if(s->top==N-1) return 0;s->top++;s->CarNo[s->top]=e1;s->CarTime[s->top]=e2;return 1;} /*刪除S的棧頂元素,并用e1,e2返回其值*/ int Pop(SqStack *&s,int&e1,int &e2){ if(s->top==-1) return 0;e1=s->CarNo[s->top];e2=s->CarTime[s->top];s->top--;return 1;} voidDispStack(SqStack *s){ int i;for(i=0;i<=s->top;i++) printf(“%d ”,s->CarNo[i]);printf(“n”);} /*以下為鏈隊(duì)列的基本運(yùn)算算法*/ voidInitQueue(LiQueue *&q){ q=(LiQueue *)malloc(sizeof(LiQueue)); 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 q->front=q->rear=NULL;} intQueueLength(LiQueue *q){ int n=0;QNode *p=q->front;while(p!=NULL){ n++; p=p->next;} return(n);} intQueueEmpty(LiQueue *q){ if(q->rear==NULL) return 1;else return 0;} voidenQueue(LiQueue *&q, int e){ QNode *s;s=(QNode *)malloc(sizeof(QNode));s->CarNo=e;s->next=NULL;if(q->rear==NULL)/*若鏈隊(duì)為空,則新結(jié)點(diǎn)是隊(duì)首結(jié)點(diǎn)又是隊(duì)尾結(jié)點(diǎn)*/ q->front=q->rear=s;else { q->rear->next=s;/*將*s結(jié)點(diǎn)鏈到隊(duì)尾,rear指向它*/ q->rear=s;} } intdeQueue(LiQueue *&q,int&e){ QNode *t;if(q->rear==NULL)/*隊(duì)列為空*/ return 0;if(q->front==q->rear)/*隊(duì)列中只有一個結(jié)點(diǎn)時*/ { t=q->front; 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 q->front=q->rear=NULL;} else /*隊(duì)列中有多個結(jié)點(diǎn)時*/ { t=q->front; q->front=q->front->next;} e=t->CarNo;free(t);return 1;} voidDisplayQueue(LiQueue *q){ QNode *p=q->front;while(p!=NULL){ printf(“%d ”,p->CarNo); p=p->next;} printf(“n”);} void main(){ int choose;/*用于選擇命令*/ int no,e1,time2,e2,no_away;/*no_away:汽車離開時輸入車牌號;time2:當(dāng)前停車時刻;*/ static int time1;/*靜態(tài)變量time1用于存放上次時刻*/ inti,j;int kind;/*車的類別*/ time1=time2=0;SqStack *St,*St1;/*臨時棧St1,當(dāng)停車場中間的車要推出去時,用于倒車*/ LiQueue *Qu;InitStack(St);InitStack(St1);InitQueue(Qu);printf(“ ”);printf(“n# #”); 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 printf(“n# 歡迎使用停車場管理系統(tǒng) #”);printf(“n# #”);printf(“n n”);do { printf(“n******************** 主菜單 ****************************n”); printf(“** 1:車輛到達(dá) **n”); printf(“** 2:車輛離開 **n”); printf(“** 3:顯示停車場的車輛 **n”); printf(“** 4:顯示便道中的車輛 **n”); printf(“** 0:退出 **n”); printf(“********************************************************n”); printf(“請選擇:”); scanf(“%d”,&choose); switch(choose) { case 1: // #汽車到達(dá) ###### printf(“輸入輸入車牌號、當(dāng)前時刻(數(shù)據(jù)之間以逗號隔開):n”); scanf(“%d,%d”,&no,&time2);/*依次輸入車牌號、當(dāng)前停車時刻*/ while(time2 { printf(“時間輸入錯誤,請重新輸入當(dāng)前時刻:n”); scanf(“%d”,&time2); } time1=time2; if(!StackFull(St)) /*停車場不滿*/ { Push(St,no,time1); printf(“該車在停車場中的位置是:%dn”,St->top+1); 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 } else /*停車場滿*/ { enQueue(Qu,no); printf(“n停車場已滿,該車進(jìn)入便道,在便道中的位置是:%dn”,QueueLength(Qu)); } break; case 2: // ##汽車離開 #### printf(“輸入車牌號:n”); scanf(“%d”,&no_away); printf(“請輸入車的類別【車的類別:1.代表小汽車 2.代表客車 3.代表卡車】:n”);scanf(“%d”,&kind); printf(“輸入現(xiàn)在的時刻:n”);/*現(xiàn)在的時刻time1得大于之前的時刻time1*/ scanf(“%d”,&time2); while(time2 { printf(“時間輸入錯誤,請重新輸入:n”); scanf(“%d”,&time2); } time1=time2; for(i=0;i<=St->top && St->CarNo[i]!=no_away;i++); if(i>St->top)/*汽車可以直接從便道上開走,此時排在它前面的汽車要先開走讓路,然后再依次排到隊(duì)尾*/ { while(Qu->front->CarNo!=no_away) { enQueue(Qu,Qu->front->CarNo); Qu->front = Qu->front->next; } deQueue(Qu,no_away);printf(“n便道上車牌號為%d的汽車已離開!n”,no_away); printf(“n當(dāng)前便道中的車輛的車牌號分別是:”); DisplayQueue(Qu); printf(“n”); } else 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 { for(j=i;j<=St->top;j++) { Pop(St,e1,e2);/*e1,e2用來返回被刪元素的車牌號和停車時刻*/ Push(St1,e1,e2);/*倒車到臨時棧St1中,將e1,e2插入到臨時棧中*/ } Pop(St,e1,e2); /*該汽車離開*/ printf(“n車牌號為%d的汽車停車費(fèi)用為:%dn”,no_away,(time2-e2)*Price*kind);/*對小汽車而言:當(dāng)前時刻 減去 該車當(dāng)時停車的時刻,再乘以價格就是費(fèi)用,而對于客車和卡車而言,就要乘以kind倍小汽車的價格*/ while(!StackEmpty(St1))/*將臨時棧St1重新回到St中*/ { Pop(St1,e1,e2); Push(St,e1,e2); } if(!QueueEmpty(Qu))/*隊(duì)不空時,將隊(duì)頭進(jìn)棧St*/ { deQueue(Qu,e1); Push(St,e1,time1);/*以當(dāng)前時間開始計費(fèi)*/ } } break; case 3: // #####顯示停車場情況 if(!StackEmpty(St)) { printf(“當(dāng)前停車場中的車輛的車牌號分別是:”);/*輸出停車場中的車輛*/ DispStack(St); } else printf(“停車場中無車輛!n”); break; case 4: // ######顯示便道情況 # if(!QueueEmpty(Qu)) { 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 printf(“ 當(dāng)前便道中的車輛的車牌號分別是:”);/*輸出便道中的車輛*/ DisplayQueue(Qu); } else printf(“便道中無車輛!n”); break; case 0: // # 結(jié)束 ### printf(“n正在退出系統(tǒng)...n”); if(!StackEmpty(St)) { printf(“當(dāng)前停車場中的車輛的車牌號分別是:”);/*輸出停車場中的車輛*/ DispStack(St); } if(!QueueEmpty(Qu)) { printf(“ 當(dāng)前便道中的車輛的車牌號分別是:”);/*輸出便道中的車輛*/ DisplayQueue(Qu); } break; /**********************************************************/ default: /*其他情況*/ printf(“輸入的命令錯誤!n”); break; } } while(choose!=0);} 附 二、優(yōu)化后程序的運(yùn)行結(jié)果 取N=2,即停車場內(nèi)最多的停車數(shù)為2 取 Price=2,即每單位停車費(fèi)用為2 輸入數(shù)據(jù)為:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),(‘A’5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。程序演示結(jié)果如下圖所示: 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 重慶郵電大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 模塊化動態(tài)電子商務(wù)網(wǎng)站的開題報告范文互聯(lián)網(wǎng)普及和人們消費(fèi)觀念改變促進(jìn)電子商務(wù)迅速發(fā)展,中國零售業(yè)紛紛開展網(wǎng)上業(yè)務(wù)。電子商務(wù)作為一種生存于虛擬化、數(shù)字化空間的商業(yè)模式,正成為我國零售商提高企業(yè)競爭力的武器。本文針對我國B2C電子商務(wù)發(fā)展特殊情況,重點(diǎn)就我國零售業(yè)在發(fā)展電子商務(wù)過程中遇到問題提出(這里寫你報告里提出的幾種策略)等新策略。開頭不錯哦。 1.本課題所涉及的問題在國內(nèi)(外)的研究現(xiàn)狀綜述 目前國際電子商務(wù)發(fā)展的現(xiàn)狀和趨勢是: (1)全球電子商務(wù),美國獨(dú)占鰲頭。目前美國電子商務(wù)的應(yīng)用領(lǐng)域與規(guī)模遠(yuǎn)遠(yuǎn)超過其他國家,繼續(xù)保持其作為世界電于商務(wù)龍頭的地位。2002年美國網(wǎng)上在線交易零售總額達(dá)434.7億美元(包括旅費(fèi)在內(nèi)則為730億美元),歐洲聯(lián)盟約為282.9億美元,亞太地區(qū)150億美元,拉丁美洲23億美元,而非洲僅為400萬美元。 (2)亞洲電子商務(wù)發(fā)展不容小覷。作為最具高回報及商業(yè)機(jī)會的區(qū)域,亞洲電子商務(wù)發(fā)展一直受到信息技木和商界人士的關(guān)心。據(jù)調(diào)查,2001年亞洲國家應(yīng)用電子商務(wù)的貿(mào)易額達(dá)300億美元。而今后4年的年增長率將高達(dá)109。由此可見,亞洲地區(qū)電子商務(wù)的發(fā)展前景非常美妙。 (3)B2B電于商務(wù)快速增長。根據(jù)美國著名的信息市場研究公司國際數(shù)據(jù)公司的預(yù)測,全球B2B電子商務(wù)將保持高速增長的勢頭。2001年,美國的年B2B在線銷售額達(dá)9950億美元,占美國電子商務(wù)交易總量的93.3%。歐洲聯(lián)盟的B2B交易值私營部門估計數(shù),2002年約為1850億美元至2000億美元。在中歐和東歐,一些預(yù)計顯示,2003年,B2B電子商務(wù)交易額將達(dá)40億美元左右。在亞太地區(qū),此種交易額將迅速增長,由2002年的大約1200億美元增至2003年的大約2000億美元,2003年將增至3000億美元左右。在拉丁美洲,2002年的B2B在線交易額預(yù)測為65億美元,2003年將達(dá)125億美元。還有人提出了要比這樂觀得多的數(shù)字,根據(jù)2001年的預(yù)測,非洲的B2B電子商務(wù)交易額2002年將為5億美元,2003年將為9億美元,南非將在這兩個數(shù)字中占80%至85%。國際數(shù)據(jù)公司認(rèn)為,今后全球B2B電子商務(wù)重點(diǎn)將從注重服務(wù)向注重產(chǎn)品轉(zhuǎn)變,不同地區(qū)的文化將決定不同地區(qū)的電子商務(wù)模式,這將促使全球B2B電子商務(wù)保持快速增長勢頭。 2.我國電子商務(wù)發(fā)展現(xiàn)狀 我國在八十年代開始關(guān)注電子信息化和電子商務(wù)的發(fā)展,并于93年開始實(shí)施“三金”工程,即:金橋、金關(guān)、金卡,這些措施為實(shí)施電子商務(wù)創(chuàng)造了良好的技術(shù)條件和實(shí)施環(huán)境。另據(jù)最新統(tǒng)計,我國網(wǎng)民總數(shù)己近6000萬,這為我國電子商務(wù)發(fā)展提供了巨大的消費(fèi)市場。根據(jù)2003年電子商務(wù)發(fā)展分析報告,2002年我國各行各業(yè)電子商務(wù)總交易額約為10242億元。其中:證券公司網(wǎng)上交易總量達(dá)5230億元,占51%:外貿(mào)電子商務(wù)的總交易額2490億元,占24;電子行業(yè)B2B經(jīng)營額在572億元,還有醫(yī)藥、煤炭、紡織、網(wǎng)絡(luò)教育、農(nóng)業(yè)、旅游等。四大門戶網(wǎng)站(新浪、易趣、搜狐、263)2002年的收益約為12億元,占中國電子商務(wù)交易額的0.12 %2002年電子商務(wù)的市場規(guī)模像產(chǎn)品類經(jīng)營占到48,實(shí)施服務(wù)類的占52。這里面有很大是金融服務(wù),比如說證券??梢哉f電子商務(wù)己經(jīng)滲透到我國各個領(lǐng)域,并參與到我們的日常生活中來。 2.設(shè)計(論文)要解決的問題和擬采用的研究方法 目前電子商務(wù)雖然迅猛發(fā)展,但是作為電子商務(wù)一個重要模式之一的B2C模式卻遠(yuǎn)遠(yuǎn)落后于B2B的發(fā)展,原因很多,但其中一個重要的原因就是電子商務(wù)平臺不能全面的解讀電子商務(wù),使電子商務(wù)只停留于形式,單純起到網(wǎng)上交易的目的,雖然我國互聯(lián)網(wǎng)上已經(jīng)有1000多個電子商務(wù)網(wǎng)站,但真正能實(shí)現(xiàn)電子商務(wù)功能的卻少之又少,更不要說真正開發(fā)電子商務(wù)功能,實(shí)現(xiàn) 電子商務(wù)優(yōu)勢了。甚至于有很多是為了迎合電子商務(wù)發(fā)展而單純建立一個界面,放幾件商品,后臺的工作完全不存在。因此開發(fā)一個功能全面、適合我國商務(wù)特色的、經(jīng)濟(jì)實(shí)用的B2C電子商務(wù)平臺是非常需要和必要的。 (1)通過建設(shè)電子商務(wù)系統(tǒng)可以將電信服務(wù)、技術(shù)服務(wù)、商業(yè)服務(wù)以及各行業(yè)融合在一起,通過平臺接入統(tǒng)一、應(yīng)用統(tǒng)一和管理統(tǒng)一的綜合服務(wù)機(jī)制,實(shí)現(xiàn)各種復(fù)雜的電子商務(wù)應(yīng)用,降低企業(yè)步入真正電子交易的門檻,從而建立一個多贏的電子商務(wù)合作圈,形成整體競爭優(yōu)勢。 (2)通過建設(shè)電子商務(wù)系統(tǒng),使得企業(yè)不必專注于復(fù)雜多變的信息技術(shù),而用最小的資金投入、最簡單的接入方式去聯(lián)系最廣泛的客戶和供應(yīng)商,進(jìn)行最先進(jìn)、最有效的電子商務(wù)應(yīng)用服務(wù),從而使各個傳統(tǒng)行業(yè)迅速形成互聯(lián)網(wǎng)時代的新經(jīng)濟(jì)商業(yè)模式,建立未來發(fā)展的戰(zhàn)略優(yōu)勢。 (3)通過完善電子商務(wù)網(wǎng)絡(luò)體系,建設(shè)公共電子商務(wù)的導(dǎo)購平臺,建立綜合電子商務(wù)體系、安全認(rèn)證和安全支付體系等,將使電子商務(wù)的各種資源得到充分利用,能使電子商務(wù)的相關(guān)對象更加專業(yè)、更加合作、更加協(xié)調(diào)。形成一個應(yīng)用開發(fā)、產(chǎn)業(yè)生產(chǎn)、技術(shù)支持、商業(yè)交易、運(yùn)營服務(wù)的產(chǎn)業(yè)鏈。從而形成整體優(yōu)勢,取得最佳經(jīng)濟(jì)效益。 (4)通過建設(shè)電子商務(wù)系統(tǒng),使企業(yè)融入世界經(jīng)濟(jì)一體化體系中,并通過這些企業(yè)與眾多關(guān)聯(lián)企業(yè)、政府部門、事業(yè)機(jī)構(gòu)的供應(yīng)鏈的形成,可以帶動其它關(guān)聯(lián)企業(yè)在生產(chǎn)、銷售、采購等諸多方面的業(yè)務(wù),形成以市場為主線的全新的電子貿(mào)易體系。并加速促進(jìn)對外貿(mào)易和國家信息化、國際化水平,從而提高經(jīng)濟(jì)整體素質(zhì)、國際競爭力和發(fā)展后勁,實(shí)現(xiàn)經(jīng)濟(jì)結(jié)構(gòu)的全面升級和綜合實(shí)力再上新臺階。 3.本課題需要重點(diǎn)研究的、關(guān)鍵的問題及解決的思路 重點(diǎn)研究的、關(guān)鍵的問題: ①整體構(gòu)思:對于一個系統(tǒng)來說,好的構(gòu)思是很重要的。恰當(dāng)?shù)臉?gòu)思能為以后的設(shè)計帶來很多的方便,可以讓我們按照預(yù)定的規(guī)劃一步步來實(shí)現(xiàn)系統(tǒng)功能,可以使我們對整個系統(tǒng)做到一目了然。這個階段的關(guān)鍵是畫出系統(tǒng)的數(shù)據(jù)流程圖。 ②數(shù)據(jù)庫和數(shù)據(jù)庫表的創(chuàng)建:這是在實(shí)施階段要做的第一件事,特別是數(shù)據(jù)庫表的創(chuàng)建,這是以后數(shù)據(jù)插入、查詢等功能實(shí)施的數(shù)據(jù)存放處,關(guān)系著整個系統(tǒng)的合理性,創(chuàng)建時要考慮清楚以后所要涉及的各個方面,制作出最合理的數(shù)據(jù)庫表。 ③數(shù)據(jù)庫的連接:系統(tǒng)采用Microsoft Access建立數(shù)據(jù)庫。利用Typelib聲明ADO,IIS5.0引入了綁定到組件類型庫的功能,只需要引用類型庫依次,便可將其應(yīng)用在每個ASP頁面上。 ④數(shù)據(jù)的插入和查詢:數(shù)據(jù)的插入和查詢系統(tǒng)的最起碼要求。插入和查詢是整個系統(tǒng)的基本。這里要解決的是如何定義好各個函數(shù)和窗口名,做到一一對應(yīng)。 ⑤窗口對象和數(shù)據(jù)窗口的創(chuàng)建:這是系統(tǒng)的可視界面,是用戶直接看到的。窗口對象的創(chuàng)建要與數(shù)據(jù)庫表對應(yīng),界面設(shè)計要合理,做到能夠帶給用戶友好的界面。 畢 業(yè) 設(shè) 計 開 題 報 告 1.畢業(yè)實(shí)習(xí)課題的基本內(nèi)容 目前社會上信息管理系統(tǒng)發(fā)展飛快,各個學(xué)校都引入了信息管理軟件來管理自己日益增長的各種信息,考勤管理系統(tǒng)也是有了很大的發(fā)展,商業(yè)化的學(xué)校信息管理軟件也不少。而目前學(xué)校的這項(xiàng)工作還處于半手工管理階段,信息資源的數(shù)字化程度低,大部分歷史積累的數(shù)據(jù),尚未數(shù)字化。不利于科學(xué)管理和決策。但是隨著多媒體教學(xué)的推廣,電腦和網(wǎng)絡(luò)的普及,人民對電腦的應(yīng)用已經(jīng)不再陌生。在這么一個信息化的時代,智能化信息處理已是提高效率、規(guī)范管理、客觀審查的最有效途徑。考勤作為一個企業(yè)的基礎(chǔ)管理,是老師對學(xué)生學(xué)習(xí)管理的基本依據(jù)。實(shí)際管理和記錄學(xué)習(xí)非常需要快速獲知各個學(xué)生的每日出勤情況,以便于及時學(xué)校反映學(xué)生的出勤,缺勤情況(包括遲到、早退、病假、事假、等情況)。實(shí)現(xiàn)網(wǎng)上考勤任務(wù),以減輕考勤人員的工作量。我們準(zhǔn)備開發(fā)學(xué)生考勤管理系統(tǒng),完成學(xué)生基本信息維護(hù)、學(xué)生考勤的管理、學(xué)生考勤的查詢。包括學(xué)生遲到、早退、請假、曠課的情況的記錄,在每個學(xué)期期末計算成績,以及對學(xué)生進(jìn)行成績評估的時候,對學(xué)生整個學(xué)期的考勤記錄進(jìn)行查詢和統(tǒng)計。學(xué)生考勤管理系統(tǒng)是為了解決學(xué)生考勤管理的而設(shè)計的,目的是建立一個能夠初步實(shí)現(xiàn)學(xué)??记诠芾硐到y(tǒng)的智能化管理,提高考勤管理效率,老師能夠了解學(xué)生在學(xué)習(xí)的態(tài)度得到及時的反饋,而系統(tǒng)所需的工作人員的數(shù)量少,效率高。降低資源浪費(fèi),同時增強(qiáng)學(xué)生管理的透明度以及約束學(xué)生自覺遵守出勤制度。 1.1后臺信息管理系統(tǒng) 1.1.1基礎(chǔ)信息管理子系統(tǒng) 基礎(chǔ)信息管理子系統(tǒng)主要是由教學(xué)秘書使用,用來對教學(xué)中的基礎(chǔ)信息進(jìn)行管理,包括專業(yè)信息管理(模塊),年級信息管理(模塊),班級信息管理(模塊),學(xué)生信息管理(模塊),教師信息管理(模塊),用戶組信息管理(模塊),課程信息管理(模塊),學(xué)生選課信息管理(模塊),教師代課信息管理(模塊),功能信息管理(模塊),權(quán)限管理(模塊) 1.1.2考勤管理子系統(tǒng) 考勤管理子系統(tǒng)主要是由各系部的教師使用,輔導(dǎo)員進(jìn)行學(xué)生請假處理,代課教師上課點(diǎn)名以及輔導(dǎo)員和代課老師察看考勤。包括的模塊有:請假模塊,點(diǎn)名模塊,察看考勤模塊(包括代課老師察看考勤,輔導(dǎo)員察看考勤,教學(xué)管理員察看考勤),查詢統(tǒng)計模塊(對以前學(xué)期的考勤進(jìn)行察看和統(tǒng)計)。 1.2前臺學(xué)生系統(tǒng) 前臺學(xué)生模塊主要是由學(xué)生使用,學(xué)生可以通過登陸此模塊察看自己當(dāng)日考勤信息和歷史考勤信息,同時,學(xué)生還可以在此模塊中修改自己的個人信息,可以察看學(xué)院最近通知和本學(xué)期課表等信息。 2.課題的研究意義、國內(nèi)外現(xiàn)狀 考勤作為一個單位的基礎(chǔ)管理,越來越受到重視,但是現(xiàn)在很多時候都是人工考勤。人工考勤靠專人書面登記,存在許多主觀、人為因素,往往最終 不 能令管理層取得考勤結(jié)果資料,甚至不能起到基本的約束作用。學(xué)校里課堂的考勤情況進(jìn)行實(shí)時的需求分析,并從一些用戶那反饋的信息的綜合,以及結(jié)合網(wǎng)上查找到的一些現(xiàn)成的考勤系統(tǒng)的適用,我們定制了我們的考勤系統(tǒng),我們希望通過這個考勤系統(tǒng)的使用,能夠簡化學(xué)校考勤的過程。 國內(nèi)現(xiàn)狀技術(shù)長期落后,產(chǎn)品性能差,滿足不了客戶的要求,客戶只能退而求其次;對于大一點(diǎn)的企業(yè)客戶對產(chǎn)品的性能滿意度低,如客戶稍微嚴(yán)格則工程很難驗(yàn)收通過。產(chǎn)品在低層面上競爭??记谙到y(tǒng)在國內(nèi)已出現(xiàn)和使用已有十多年了,其間有很多技術(shù)變革,比如從條型碼到磁卡,到接觸式IC卡,到非接觸式感應(yīng)卡,至到指紋識別,這不能不說是技術(shù)的快速進(jìn)步。不過,這些技術(shù)的進(jìn)步僅限于身份的識別方面,只是識別介質(zhì)發(fā)生了改變,而對考勤數(shù)據(jù)的采集、處理和及時準(zhǔn)確的報表方面,一直是止步不前,甚至為了追求低成本而互相抄襲,誰也不愿去做技術(shù)的創(chuàng)新,不考慮使用者的需求。這種老技術(shù)產(chǎn)品因其研發(fā)周期極短,成本低廉,大多數(shù)是贈送軟件。報表的功能只適合于小型企業(yè)客戶的粗放要求。但這也給整個考勤系統(tǒng)行業(yè)造成了致命的缺陷和傷害,表現(xiàn)在技術(shù)停滯不前,看不到先進(jìn)性,用計算機(jī)處理考勤數(shù)據(jù),居然要以大量手工修改報表結(jié)果為前提,不然報表不正確,人資部門每個月被折磨得疲累不堪,很耽誤人力資源管理工作。 3.本課題擬解決的關(guān)鍵問題及其重點(diǎn)和難點(diǎn) 通過對開發(fā)此考勤系統(tǒng)的前期調(diào)研和對本次項(xiàng)目需求說明書的閱讀,我認(rèn)為本次項(xiàng)目的實(shí)施,其中的關(guān)鍵問題和重、難點(diǎn)如下: 3.1項(xiàng)目實(shí)施的關(guān)鍵問題: 根據(jù)此次系統(tǒng)開發(fā)的具體任務(wù)可以得出:在項(xiàng)目的實(shí)施中,必須實(shí)現(xiàn)系統(tǒng)的MVC,除此之外,我認(rèn)為還有一個關(guān)鍵問題,那就是本系統(tǒng)的實(shí)用價值和安全性,作為一個學(xué)院的學(xué)生考勤系統(tǒng),它不僅僅只完成學(xué)生考勤的任務(wù),我認(rèn)為對于考勤后的數(shù)據(jù)處理和匯總是十分重要的,同時,由于此系統(tǒng)得使用者很多,因此,我認(rèn)為安全性機(jī)制必須考慮周全,這樣不僅可以提高實(shí)用價值,而且給學(xué)院的教學(xué)工作也會帶來很多的方便,綜上所述,我認(rèn)為項(xiàng)目實(shí)施的關(guān)鍵問題就是這兩個大的方面。 3.2項(xiàng)目實(shí)施的重點(diǎn): 作為一個項(xiàng)目的重點(diǎn),我認(rèn)為就是本項(xiàng)目需要實(shí)現(xiàn)的最本質(zhì)的功能,對于此項(xiàng)目,我認(rèn)為其重點(diǎn)就是完成教師對學(xué)生的考勤工作,已經(jīng)對考勤資料的匯總和處理。 3.3項(xiàng)目實(shí)施的難點(diǎn): 對于此次考勤系統(tǒng)的實(shí)施,我認(rèn)為難點(diǎn)問題存在于兩個大的方面:首先是項(xiàng)目實(shí)施時,我將運(yùn)用到的架構(gòu)問題,也就是三層實(shí)現(xiàn),我是否能順利完成,其次便是對考勤前后的數(shù)據(jù)的處理,我認(rèn)為中兩點(diǎn)不僅是項(xiàng)目的精髓所在,而且是本次項(xiàng)目的難點(diǎn)內(nèi)容 4.擬采取的研究方法及及時間安排 4.1研究方案: 本次項(xiàng)目主要采用的技術(shù)是:B2C+Servlet+Jsp.本次項(xiàng)目運(yùn)用的數(shù)據(jù)庫是:SQLServer2005 本次項(xiàng)目運(yùn)用的開發(fā)工具是:MyEclipse6.5 本次項(xiàng)目運(yùn)用的服務(wù)器:Tomcat6.5 4.2時間安排: 需求分析和系統(tǒng)HTML原型(2周) 數(shù)據(jù)庫設(shè)計和數(shù)據(jù)庫可行性分析。(2周) 頁面設(shè)計。(2周) 5.提交畢業(yè)實(shí)習(xí)材料和答辯工作。(2周)5 參考文獻(xiàn) [1]Budi Kurniawan,《深入淺出Struts》; [2]Dave Crane、Eric Pascarello、Darren James,《Ajax實(shí)戰(zhàn)》; [3]孫衛(wèi)琴,《精通Struts:基于MVC的Java Web設(shè)計與開發(fā)》; 指導(dǎo)教師意見:(對本課題的深度、廣度及工作量的意見) 指導(dǎo)教師: 年月日第四篇:電子商務(wù)系統(tǒng)開題報告
第五篇:考勤系統(tǒng)開題報告