系統(tǒng)分析報(bào)告_第1頁(yè)
系統(tǒng)分析報(bào)告_第2頁(yè)
系統(tǒng)分析報(bào)告_第3頁(yè)
系統(tǒng)分析報(bào)告_第4頁(yè)
系統(tǒng)分析報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 HYPERLINK / 報(bào)告題目:報(bào)告題目: 汽車維修管理系統(tǒng)分析報(bào)告 學(xué)生姓名: 陳彩紅 學(xué)號(hào): 1602102073 年級(jí)專業(yè)班級(jí): 2016級(jí)金融工程 2 班 課程名稱: 信息系統(tǒng)分析與設(shè)計(jì) 教 師: 時(shí)青 成績(jī): 評(píng)語(yǔ):任課教師簽名:2018年 月 日 目錄甘特圖2現(xiàn)行系統(tǒng)分析2可行性分析2引言2可行性研究的前提3對(duì)現(xiàn)有系統(tǒng)的分析4所建議的系統(tǒng)6可選擇的其他系統(tǒng)方案7投資及效益分析8社會(huì)因素方面的可能性9結(jié)論9總體設(shè)計(jì)9系統(tǒng)的數(shù)據(jù)需求分析9流程圖11數(shù)據(jù)流圖13數(shù)據(jù)字典13概念設(shè)計(jì):用E-R圖描述概念模型15邏輯設(shè)計(jì):將E-R模型轉(zhuǎn)換為關(guān)系模型,且規(guī)范化17五、總結(jié)18汽車修理管理系

2、統(tǒng)一、甘特圖二、現(xiàn)行系統(tǒng)分析某汽車修理廠根據(jù)業(yè)務(wù)發(fā)展的需要,需要建立一個(gè)以數(shù)據(jù)庫(kù)為基礎(chǔ)的管理信息系統(tǒng),以代替單一的人工管理。目標(biāo)系統(tǒng)取名為“汽車修理管理信息系統(tǒng)”。三、可行性分析1、引言(1)編寫(xiě)目的 隨著經(jīng)濟(jì)的發(fā)展,汽車已經(jīng)步入了千家萬(wàn)代。隨之而來(lái)的汽車修理業(yè)也忙活起來(lái)。為了讓汽車修理更順暢,某汽車修理廠擬開(kāi)發(fā)一套小型汽車維修管理系統(tǒng)。 (2) 背景開(kāi)發(fā)的系統(tǒng)名稱:汽車修理管理信息系統(tǒng) 用戶:汽車修理廠實(shí)現(xiàn)該軟件的計(jì)算中心:個(gè)人計(jì)算機(jī) (3)定義汽車維修管理:主要是指車輛維修流程的計(jì)算機(jī)管理,通過(guò)修理企業(yè)的信息管理系統(tǒng),對(duì)車輛的報(bào)修進(jìn)行派工、結(jié)算出廠等方面以流程化的方式,把各個(gè)環(huán)節(jié)串連起來(lái),

3、為顧客提供計(jì)算機(jī)信息管理一體化的服務(wù),達(dá)到提高企業(yè)管理水平的目的。對(duì)出現(xiàn)故障的汽車進(jìn)行修理然后把要修理的和修理好的情況都整理成冊(cè)。 (4)參考資料人事管理系統(tǒng)的可行性研究報(bào)告 百度文庫(kù) 車輛維修管理系統(tǒng) 2、 可行性研究的前提 (1) 要求 功能:對(duì)于新客戶及車輛,汽車維修管理系統(tǒng)首先登記客戶信息,包括:客戶編號(hào)、客戶名稱、客戶性質(zhì)(個(gè)人、單位)、折扣率、聯(lián)系人、聯(lián)系電話等信息;還要記錄客戶的車輛信息,包括:車牌號(hào)、車型、顏色等信息。一個(gè)客戶至少有一臺(tái)車。記錄維修車輛的故障信息。包括:維修類型(普通、加急)、作業(yè)分類(大、中、小修)、結(jié)算方式(自付、三包、索賠)等信息。 維修廠的員工分為:維修

4、派工員和修理工。車輛維修首先委托給維修派工員。維修派工員對(duì)車輛進(jìn)行檢查和故障分析后,與客戶磋商,確定故障現(xiàn)象生成修車登記單。維修車間根據(jù)修車登記單和車輛的故障現(xiàn)象,在已的維修項(xiàng)目中選擇并確定一個(gè)或多個(gè)具體維修項(xiàng)目,安排相關(guān)的維修工及工時(shí),生成汽車修理單??蛻糗囕v在車間修理完畢后,根據(jù)維修價(jià)和維修派工單中的工時(shí)計(jì)算車輛此次維修的總費(fèi)用,記錄在委托書(shū)中。 目標(biāo)要求能快速反應(yīng)用戶汽車修理的需求,目標(biāo)就是在于開(kāi)發(fā)一個(gè)功能實(shí)用、操作方便,簡(jiǎn)單明了的維修管理系統(tǒng)。在設(shè)計(jì)出功能強(qiáng)大的軟件的同時(shí),盡可能地減少對(duì)系統(tǒng)資源的占用,并且還要力求做到通過(guò)使用本系統(tǒng),盡量使廠里的汽車維修管理工作系統(tǒng)化,自動(dòng)化和規(guī)范化,

5、從而達(dá)到提廠里管理效率的目的。條件、假定和限制員工有限,如果多輛車在同一時(shí)間里有問(wèn)題要修理的話,可能忙不來(lái)。 開(kāi)發(fā)軟件需要的耗費(fèi)是個(gè)考慮的重點(diǎn)。 該軟件的可用年限。 (4) 進(jìn)行可行性研究的方法是根據(jù)步驟一步一步進(jìn)行的。從技術(shù)可行性、經(jīng)濟(jì)可行性、操作可行性三個(gè)方面來(lái)研究該系統(tǒng)的可行性。根據(jù)技術(shù)可行性的考慮初步排除一些不現(xiàn)實(shí)的系統(tǒng)和不合理的要求 (5) 評(píng)價(jià)尺度用了該軟件是否公司的員工得到最大限度的利用,公司的營(yíng)業(yè)狀況有沒(méi)有好轉(zhuǎn),分工有沒(méi)有更合理化。 3、對(duì)現(xiàn)有系統(tǒng)的分析汽車修理是一個(gè)服務(wù)性的行業(yè)。如何更好地為顧客提供滿意的服務(wù),是汽車修理企業(yè)追求的目標(biāo)。服務(wù)的好壞由服務(wù)的質(zhì)量直接體現(xiàn)出來(lái)。將相

6、關(guān)的工作過(guò)程規(guī)范化,改變現(xiàn)今眾多修理企業(yè)散、亂、差的局面,為客戶提供高質(zhì)量的服務(wù),顯然是汽車修理企業(yè)發(fā)展的一個(gè)方向。 通過(guò)對(duì)汽車修理維修業(yè)務(wù)的調(diào)查與分析,根據(jù)各業(yè)務(wù)流程方面的需求,車輛維修管理系統(tǒng)從報(bào)修、派工、結(jié)算這一全過(guò)程進(jìn)行跟蹤服務(wù),既滿足了客戶對(duì)修理企業(yè)規(guī)范化服務(wù)的需求,也對(duì)汽車修理企業(yè)自身的標(biāo)準(zhǔn)化建設(shè)提供了必要的幫助,基本上能夠滿足大多數(shù)汽車維修企業(yè)的信息化管理需求。(1)處理流程和數(shù)據(jù)流程 (2)工作負(fù)荷電腦要保持一天24開(kāi)機(jī)狀態(tài)的工作運(yùn)營(yíng)時(shí)間,工作量偶爾會(huì)大,看該公司的營(yíng)業(yè)狀況。 系統(tǒng)操作人員一天3班次運(yùn)作系統(tǒng),保持系統(tǒng)的運(yùn)行不影響生意的進(jìn)程。 (3)費(fèi)用開(kāi)支開(kāi)發(fā)系統(tǒng):20000元

7、 系統(tǒng)操作員:5000元/每月 電費(fèi):800/每月 (4)人員 系統(tǒng)運(yùn)行人員3名 系統(tǒng)的維護(hù)員1名(5)設(shè)備 Tomcat服務(wù)器 Myeclipse開(kāi)發(fā)平臺(tái) Mysql數(shù)據(jù)庫(kù)(6)局限性 初次應(yīng)用開(kāi)發(fā)人事管理系統(tǒng)對(duì)于許多的細(xì)節(jié)沒(méi)有具體的認(rèn)識(shí),缺乏經(jīng)驗(yàn),所以開(kāi)發(fā)后的系統(tǒng)應(yīng)經(jīng)過(guò)嚴(yán)格的試用,反復(fù)改進(jìn)方可正式投入使用。 4. 所建議的系統(tǒng) (1) 對(duì)所建議系統(tǒng)的說(shuō)明 要更方便統(tǒng)計(jì)需要維修車輛的人員和正在維修的工作人員。使接班的工作人員能更快的接手工作,使接班順利進(jìn)行。 (2)處理流程和數(shù)據(jù)流程(3) 改進(jìn)之處 以更快的速度定位要車和人。(4) 影響 有利于適應(yīng)公司的發(fā)展,適應(yīng)經(jīng)濟(jì)與技術(shù)的進(jìn)步。 對(duì)設(shè)備

8、的影響 因?yàn)槠嚲S修管理系統(tǒng)是一個(gè)相對(duì)較小的應(yīng)用系統(tǒng),所以對(duì)原有設(shè)備的影響不太明顯,一般而言,我們?nèi)粘K褂玫牟僮髟O(shè)備足以運(yùn)行這個(gè)軟件。 對(duì)用戶的影響 使用這個(gè)管理系統(tǒng)會(huì)使用戶和原來(lái)相比節(jié)省很多時(shí)間,使工作更高效。 對(duì)工作的影響 由于用戶通過(guò)使用此系統(tǒng)會(huì)更快的完成工作,所以整個(gè)開(kāi)發(fā)環(huán)境會(huì)因系統(tǒng)的使用節(jié)省很多人力物力,從而進(jìn)入更有效的工作運(yùn)行狀態(tài)。 對(duì)系統(tǒng)運(yùn)行過(guò)程的影響 系統(tǒng)運(yùn)行過(guò)程變得高效,方便。 對(duì)開(kāi)發(fā)的影響 開(kāi)發(fā)者沒(méi)有太多經(jīng)驗(yàn),需要更到的時(shí)間去開(kāi)發(fā)。 對(duì)地點(diǎn)和設(shè)施的影響 要求有網(wǎng)絡(luò)的地方,網(wǎng)絡(luò)信號(hào)比較好的地方。建筑物需要比較干凈整潔的環(huán)境狀況。對(duì)經(jīng)費(fèi)開(kāi)支的影響 經(jīng)分析可知開(kāi)發(fā)這個(gè)項(xiàng)目的經(jīng)費(fèi)

9、預(yù)算并不高昂;再者,通過(guò)使用此軟件會(huì)節(jié)省人力物力方面的開(kāi)支,換句話說(shuō),就等于挽回了相當(dāng)一部分的經(jīng)費(fèi)支出;所以說(shuō)對(duì)經(jīng)費(fèi)支出的影響是樂(lè)觀。 (5)技術(shù)條件方面的可能性 在當(dāng)前的技術(shù)條件下,該系統(tǒng)的功能目標(biāo)能否達(dá)到;利用現(xiàn)有的技術(shù),該系統(tǒng)的功能能否實(shí)現(xiàn);開(kāi)發(fā)人員的數(shù)量和質(zhì)量問(wèn)題;在規(guī)定的時(shí)間內(nèi),汽車維修管理系統(tǒng)能不能完工。 5. 可選擇的其他系統(tǒng)方案(1)可選擇的系統(tǒng)方案1本系統(tǒng)的數(shù)據(jù)庫(kù)可使用SQL Server2005。(2)可選擇的系統(tǒng)方案2本系統(tǒng)可使用php+Mysql,也可形成對(duì)自行車的租賃的管理。 6. 投資及效益分析 (1)支出開(kāi)發(fā)汽車維修管理系統(tǒng)所需要的費(fèi)用20000元。 基本建設(shè)投資

10、開(kāi)發(fā)、運(yùn)行和維護(hù)費(fèi)用主要包括:購(gòu)買和安裝設(shè)備的費(fèi)用、計(jì)算機(jī)硬件、系統(tǒng)軟件、電源;軟件開(kāi)發(fā)費(fèi)用包括:人員費(fèi)用(系統(tǒng)開(kāi)發(fā)人員、操作人員和管理人員);消耗品費(fèi)用:系統(tǒng)開(kāi)發(fā)所用材料、系統(tǒng)正常運(yùn)行所用消耗品. 其他一次性支出 估算系統(tǒng)的開(kāi)發(fā)費(fèi)用 非一次性支出 系統(tǒng)軟件的今后的運(yùn)行和維護(hù)費(fèi)用,例如電費(fèi),u盤(pán)購(gòu)買等開(kāi)支。 (2)收益對(duì)于所選擇的方案,說(shuō)明能夠帶來(lái)的收益,這里所說(shuō)的收益,表現(xiàn)為開(kāi)支費(fèi)用的減少或避免、差錯(cuò)的減少、靈活性的增加、動(dòng)作速度的提高和管理計(jì)劃方面的改進(jìn)等. 鑒于是為學(xué)院所使用的管理軟件,所以并無(wú)直觀的經(jīng)濟(jì)收益。它的效益主要體現(xiàn)在對(duì)工作人員勞動(dòng)強(qiáng)度的大幅降低以及對(duì)整個(gè)環(huán)境人力物力的節(jié)省方面

11、。最重要的是,整體工作效率的提高,這是此項(xiàng)目所隱含的最大效益。通過(guò)以上兩個(gè)方面的分析,我們可看出從客觀角度講,這個(gè)系統(tǒng)的收益/投資比將會(huì)是大于一的,所以說(shuō)此系統(tǒng)在經(jīng)濟(jì)上同樣是可行的。 一次性收益開(kāi)支的縮減包括改進(jìn)了的系統(tǒng)的運(yùn)行所引起的開(kāi)支縮減,運(yùn)行的效率改進(jìn)了,數(shù)據(jù)信息的進(jìn)入、存儲(chǔ)和恢復(fù)改進(jìn),系統(tǒng)性能監(jiān)控,軟件得到了優(yōu)化。 非一次性收益 軟件運(yùn)行長(zhǎng)久帶來(lái)的效益,效率更高。每月有不定的收入,每年有不定量的收入。 不可定量的收益 軟件后期的維護(hù)所需要的費(fèi)用。服務(wù)改進(jìn),操作失誤引起的風(fēng)險(xiǎn)減少,信息掌握更完整。 (3)收益/投資比軟件開(kāi)發(fā)的支持與軟件運(yùn)用所帶來(lái)的效益2:3。(4)投資回收周期 5個(gè)月左

12、右。 (5)敏感性分析付給開(kāi)發(fā)人員的錢與后期維護(hù)軟件系統(tǒng)的錢。開(kāi)支與收益的影響。處理速度的影響,設(shè)備和軟件的配置的變化。7、 社會(huì)因素方面的可能性 (1)法律方面的可行性 該汽車維修管理系統(tǒng)為公司內(nèi)部使用,經(jīng)公司相關(guān)部門(mén)批準(zhǔn)開(kāi)發(fā),而且具備相關(guān)方面的合法性,又是我開(kāi)發(fā)小組獨(dú)立研發(fā),因此相信此項(xiàng)目無(wú)法律問(wèn)題。 (2)使用方面的可行性 發(fā)工作建立在詳細(xì)的需求分析之上,并且對(duì)開(kāi)發(fā)環(huán)境進(jìn)行了深入調(diào)查,因此公司的行政管理以及工作制度、人員素質(zhì)完全可以滿足要求。 8、結(jié)論 經(jīng)過(guò)以上各個(gè)方面的研究,可見(jiàn)這個(gè)開(kāi)發(fā)項(xiàng)目在技術(shù)、操作、經(jīng)濟(jì)以及法律和社會(huì)各個(gè)方面均滿足可行性條件,因此決定著手組織開(kāi)發(fā). 四、總體設(shè)計(jì)1

13、、系統(tǒng)的數(shù)據(jù)需求分析編號(hào)名稱填寫(xiě)人D1 D2D3D4D5修車登記單汽車修理單零件領(lǐng)用單零件入庫(kù)單修車發(fā)票送修人修理派工員和修理工修理工倉(cāng)庫(kù)管理員財(cái)務(wù)人員業(yè)務(wù)流程:D1由送修人填寫(xiě)。修理派工員據(jù)此開(kāi)出修理單D2,分派給指定的修理工執(zhí)行。如果在修理中更換零件,一律由修理工填寫(xiě)零件領(lǐng)用單D3向倉(cāng)庫(kù)領(lǐng)用。修理結(jié)束后,修理工將D2交回派工員,然后轉(zhuǎn)財(cái)務(wù)部門(mén)結(jié)賬并開(kāi)修車發(fā)票D5。D4在零件入庫(kù)時(shí)由倉(cāng)庫(kù)管理員驗(yàn)收并且填寫(xiě)。修車登記單 日期 汽車牌號(hào) 型號(hào)生產(chǎn)商修理項(xiàng)目車主名 電話地址零件領(lǐng)用單 日期修理單編號(hào)零件號(hào)數(shù)量 領(lǐng)用人 汽車修理單修理單編號(hào) 汽車牌號(hào)修理工工號(hào) 送修日期修理項(xiàng)目 派工員 零件用量零件

14、號(hào)數(shù)量修理小時(shí) 完工日期 修理工零件入庫(kù)單 日期零件名成本數(shù)量 驗(yàn)收人 修車發(fā)票 日期車主名地址牌號(hào) 修理項(xiàng)目修理費(fèi)零件費(fèi)總計(jì) 驗(yàn)收人 對(duì)功能目標(biāo)的功能需求通過(guò)對(duì)當(dāng)前系統(tǒng)的的調(diào)查與用戶的共同討論,對(duì)將要開(kāi)放的目標(biāo)系統(tǒng)提出了如下總體需求:用數(shù)據(jù)文件代替現(xiàn)用的全部賬款具有對(duì)各種數(shù)據(jù)文件裝入和修改數(shù)據(jù)的功能能計(jì)算修車費(fèi)用和開(kāi)發(fā)票,其中修車費(fèi)用按下列各式計(jì)算 零件費(fèi)=零件價(jià)格*耗用數(shù)量 修理費(fèi)=小時(shí)工資*修理工時(shí) 總計(jì)=零件費(fèi)*修理費(fèi)能找出需要訂貨的零件,編制并打印零件訂貨計(jì)劃 訂貨條件:零件庫(kù)存量最低庫(kù)存量 訂貨數(shù)量:額定訂貨量按現(xiàn)行格式和內(nèi)容編制和打印零件耗用月報(bào)表和修理工資月報(bào)表有多種查詢和統(tǒng)計(jì)

15、功能。2、流程圖(1)(2)3、數(shù)據(jù)流圖4、數(shù)據(jù)字典(1)數(shù)據(jù)流條目數(shù)據(jù)流名稱:修車登記單簡(jiǎn)述:組成:牌號(hào)、型號(hào)、生產(chǎn)商、車主名、地址、電話備注:數(shù)據(jù)流名稱:零件入庫(kù)單簡(jiǎn)述:待入庫(kù)零件組成:零件號(hào)、零件名、成本、數(shù)量備注:數(shù)據(jù)流名稱:零件領(lǐng)用單簡(jiǎn)述:庫(kù)存零件組成:零件號(hào)、數(shù)量、領(lǐng)用人備注:數(shù)據(jù)流名稱:修車發(fā)票簡(jiǎn)述:組成:車主名、地址、牌號(hào)、修理項(xiàng)目、完工日期、修理費(fèi)、零件費(fèi)、總計(jì)備注:(2)數(shù)據(jù)文件名文件名稱:汽車登記牌簡(jiǎn)述:組成:牌號(hào)、型號(hào)、生產(chǎn)廠、車主名、地址、電話組織:按牌號(hào)升序排列備注:(3)數(shù)據(jù)項(xiàng)條目數(shù)據(jù)項(xiàng)名稱:成本簡(jiǎn)述:進(jìn)廠價(jià)格取值范圍:00000.01-99999.99 備注:數(shù)

16、據(jù)項(xiàng)名稱:車主名簡(jiǎn)述:人名或單位名取值范圍:兩個(gè)至十個(gè)漢字單位 備注:允許包含英文字母或數(shù)字?jǐn)?shù)據(jù)項(xiàng)名稱:汽車牌號(hào)簡(jiǎn)述:取值范圍:12數(shù)字單位 備注:允許包含英文字母數(shù)據(jù)項(xiàng)名稱:汽車型號(hào)簡(jiǎn)述:價(jià)格取值范圍:6備注:5、概念設(shè)計(jì):用E-R圖描述概念模型(一)確定E-R模型應(yīng)含的實(shí)體汽車,修理工,修理單,零件(二)建立對(duì)應(yīng)的單項(xiàng)應(yīng)用的局部E-R圖在實(shí)體之間建立聯(lián)系,通常作法,在系統(tǒng)功能分析中首先選出一至數(shù)項(xiàng)有代表性(設(shè)計(jì)實(shí)體較多的)單項(xiàng)應(yīng)用功能,建立局部R-E。然后在次基礎(chǔ)上逐步擴(kuò)充,直到在所有試題之間建立應(yīng)有的聯(lián)系。例:“開(kāi)設(shè)修理發(fā)票”:計(jì)算修理費(fèi)涉及到修理工的“小時(shí)工資”,修理單的“修理小時(shí)”,

17、計(jì)算零件費(fèi)涉及到修理單的“零件用量”和零件“價(jià)格”發(fā)票中的“車主名”和“地址”,涉及到汽車,(三)將局部E-R圖綜合為系統(tǒng)的總體E-R圖(四)改進(jìn)總體E-R圖:最小數(shù)據(jù)冗余。(1)刪去修理單中的3個(gè)屬性“零件費(fèi)“、“修理費(fèi)”和“總計(jì)”。這3個(gè)屬性數(shù)據(jù)均可從其它數(shù)據(jù)計(jì)算得出。通常把這類數(shù)據(jù)稱為“衍生數(shù)據(jù)”或“可到出數(shù)據(jù)”,以區(qū)別于不能從推倒得到的“基本數(shù)據(jù)”。把他們刪去可以減少冗余。 (2)將實(shí)體“汽車”分解為“汽車”和“車主”,因?yàn)槠噷傩约泻衅嚺c車主兩方面的信息。如果車主送修N輛汽車,則關(guān)于車主名、地址、電話等會(huì)重復(fù)存貯N次,造成數(shù)據(jù)冗余。6、邏輯設(shè)計(jì):將E-R模型轉(zhuǎn)換為關(guān)系模型,且規(guī)

18、范化。(一)每個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系(二)把每一聯(lián)系轉(zhuǎn)換為關(guān)系 聯(lián)系的情況比較復(fù)雜。例如在E-R模型中,有的聯(lián)系不帶屬性,有的聯(lián)系可能帶一個(gè)或者多個(gè)屬性。在轉(zhuǎn)換成關(guān)系時(shí),在關(guān)系的屬性集中一般應(yīng)包括(1)聯(lián)系本身的屬性;(2)由它所聯(lián)系的各個(gè)實(shí)體的主鍵。以圖1010中的三個(gè)聯(lián)系為例,可分別按下述的步驟進(jìn)行轉(zhuǎn)換: (1)聯(lián)系名:使用所聯(lián)系的實(shí)體及其主鍵: 修理單(主鍵為“編號(hào)”) 零 件(主鍵為“零件號(hào)”) 零件用量表(編號(hào),零件號(hào),數(shù)量)對(duì)應(yīng)的關(guān)系因?yàn)橐粡埿蘩韱慰赡苁褂脦追N零件,只有編號(hào)加上零件號(hào),才能唯一地決定某種零件在修理中使用的數(shù)量。所以本例的主鍵應(yīng)由兩個(gè)屬性編號(hào)與零件號(hào)一起組成。這種由幾個(gè)

19、屬性組合起來(lái)的主鍵,通常稱為關(guān)系的“復(fù)合鍵”。 (2)聯(lián)系名;屬于所聯(lián)系的實(shí)體及其主鍵: 汽車(主鍵為“牌號(hào)”) 車主(主鍵為“車主名”)對(duì)應(yīng)的關(guān)系; 汽車歸屬表(車主名,牌號(hào))一個(gè)車主可能僅送修一輛汽車,也可能送修多輛汽車。有了汽車歸屬表,便可知道哪輛汽車是哪一車主送修的,或某一車主共計(jì)送修了哪幾輛汽車。由于“屬于”本身不帶屬性,所以對(duì)應(yīng)的關(guān)系將僅含兩個(gè)屬性車主名與牌號(hào)。它們構(gòu)成新關(guān)系的元組,同時(shí)也是新關(guān)系的主鍵。這種由整個(gè)元組構(gòu)成的主鍵,在有些文獻(xiàn)中稱為“全鍵”(AII,KEY) (3)聯(lián)系名:修理所聯(lián)系的實(shí)體及其主鍵: 修理單(主鍵為“編號(hào)”) 汽 車(主鍵為“牌號(hào)”) 修理工(主鍵為“

20、工號(hào)”)對(duì)應(yīng)的關(guān)系: 修理(編號(hào),牌號(hào),工號(hào),修理項(xiàng)目,修理小時(shí),送修日期,完工日期)上述關(guān)系式中的后面4項(xiàng),都是“修理”本身的屬性。顯然,這一關(guān)系與前面由實(shí)體“修理單”轉(zhuǎn)換得到的關(guān)系是重復(fù)的,只需要保留一個(gè)修理單就可以了。 綜上可知,從5個(gè)實(shí)體可導(dǎo)出5個(gè)關(guān)系,3個(gè)聯(lián)系可導(dǎo)出3個(gè)關(guān)系,去掉重復(fù)的一個(gè),關(guān)系的總數(shù)為7個(gè)。 總結(jié)信息化的汽車維修管理系統(tǒng)能夠?qū)崿F(xiàn)在數(shù)秒內(nèi)從上千萬(wàn)分客戶檔案中找出所需要的某個(gè)車的維修信息和報(bào)修歷史。軟件實(shí)現(xiàn)了整個(gè)汽車維修過(guò)程中的信息自動(dòng)化管理,對(duì)汽修業(yè)務(wù)管理、配件庫(kù)存管理、財(cái)務(wù)管理都有一套科學(xué)的管理方法。加強(qiáng)了汽車維修企業(yè)管理者與企業(yè)管理部門(mén)之間的數(shù)據(jù)傳遞和信息交流,維

21、修企業(yè)效率和工作質(zhì)量,實(shí)現(xiàn)汽車維修廠的信息公開(kāi)透明。附錄資料:不需要的可以自行刪除C語(yǔ)言中如何獲取時(shí)間?精度如何?1 使用time_t time( time_t * timer ) 精確到秒2 使用clock_t clock() 得到的是CPU時(shí)間精確到1/CLOCKS_PER_SEC秒3 計(jì)算時(shí)間差使用double difftime( time_t timer1, time_t timer0 )4 使用DWORD GetTickCount() 精確到毫秒5 如果使用MFC的CTime類,可以用CTime:GetCurrentTime() 精確到秒6 要獲取高精度時(shí)間,可以使用BOOL Que

22、ryPerformanceFrequency(LARGE_INTEGER *lpFrequency)獲取系統(tǒng)的計(jì)數(shù)器的頻率BOOL QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount)獲取計(jì)數(shù)器的值然后用兩次計(jì)數(shù)器的差除以Frequency就得到時(shí)間。7 Multimedia Timer FunctionsThe following functions are used with multimedia timers.timeBeginPeriod/timeEndPeriod/timeGetDevCaps/timeGetSystem

23、Time/*/用標(biāo)準(zhǔn)C實(shí)現(xiàn)獲取當(dāng)前系統(tǒng)時(shí)間的函數(shù)一.time()函數(shù)time(&rawtime)函數(shù)獲取當(dāng)前時(shí)間距1970年1月1日的秒數(shù),以秒計(jì)數(shù)單位,存于rawtime 中。#include time.hvoid main ()time_t rawtime;struct tm * timeinfo;time ( &rawtime );timeinfo = localtime ( &rawtime );printf ( 007The current date/time is: %s, asctime (timeinfo) );exit(0);=#include - 必須的時(shí)間函數(shù)頭文件tim

24、e_t - 時(shí)間類型(time.h 定義是typedef long time_t; 追根溯源,time_t是long)struct tm - 時(shí)間結(jié)構(gòu),time.h 定義如下:int tm_sec;int tm_min;int tm_hour;int tm_mday;int tm_mon;int tm_year;int tm_wday;int tm_yday;int tm_isdst;time ( &rawtime ); - 獲取時(shí)間,以秒計(jì),從1970年1月一日起算,存于rawtimelocaltime ( &rawtime ); - 轉(zhuǎn)為當(dāng)?shù)貢r(shí)間,tm 時(shí)間結(jié)構(gòu)asctime ()- 轉(zhuǎn)為

25、標(biāo)準(zhǔn)ASCII時(shí)間格式:星期 月 日 時(shí):分:秒 年二.clock()函數(shù),用clock()函數(shù),得到系統(tǒng)啟動(dòng)以后的毫秒級(jí)時(shí)間,然后除以CLOCKS_PER_SEC,就可以換成“秒”,標(biāo)準(zhǔn)c函數(shù)。clock_t clock ( void );#includeclock_t t = clock();long sec = t / CLOCKS_PER_SEC;他是記錄時(shí)鐘周期的,實(shí)現(xiàn)看來(lái)不會(huì)很精確,需要試驗(yàn)驗(yàn)證;三.gettime(&t); 據(jù)說(shuō)tc2.0的time結(jié)構(gòu)含有毫秒信息#include#includeint main(void)struct time t;gettime(&t);pri

26、ntf(The current time is: -:d:d.dn,t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);return 0;time 是一個(gè)結(jié)構(gòu)體, 其中成員函數(shù) ti_hund 是毫秒。四.GetTickCount(),這個(gè)是windows里面常用來(lái)計(jì)算程序運(yùn)行時(shí)間的函數(shù);DWORD dwStart = GetTickCount();/這里運(yùn)行你的程序代碼DWORD dwEnd = GetTickCount();則(dwEnd-dwStart)就是你的程序運(yùn)行時(shí)間, 以毫秒為單位這個(gè)函數(shù)只精確到55ms,1個(gè)tick就是55ms。五.timeGe

27、tTime()t,imeGetTime()基本等于GetTickCount(),但是精度更高DWORD dwStart = timeGetTime();/這里運(yùn)行你的程序代碼DWORD dwEnd = timeGetTime();則(dwEnd-dwStart)就是你的程序運(yùn)行時(shí)間, 以毫秒為單位雖然返回的值單位應(yīng)該是ms,但傳說(shuō)精度只有10ms。=/*Unix#unix時(shí)間相關(guān),也是標(biāo)準(zhǔn)庫(kù)的/*1.timegm函數(shù)只是將struct tm結(jié)構(gòu)轉(zhuǎn)成time_t結(jié)構(gòu),不使用時(shí)區(qū)信息;time_t timegm(struct tm *tm);2.mktime使用時(shí)區(qū)信息time_t mktime(

28、struct tm *tm);timelocal 函數(shù)是GNU擴(kuò)展的與posix函數(shù)mktime相當(dāng)time_t timelocal (struct tm *tm);3.gmtime函數(shù)只是將time_t結(jié)構(gòu)轉(zhuǎn)成struct tm結(jié)構(gòu),不使用時(shí)區(qū)信息;struct tm * gmtime(const time_t *clock);4.localtime使用時(shí)區(qū)信息struct tm * localtime(const time_t *clock);1.time獲取時(shí)間,stime設(shè)置時(shí)間time_t t;t = time(&t);2.stime其參數(shù)應(yīng)該是GMT時(shí)間,根據(jù)本地時(shí)區(qū)設(shè)置為本地時(shí)間

29、;int stime(time_t *tp)3.UTC=true 表示采用夏時(shí)制;4.文件的修改時(shí)間等信息全部采用GMT時(shí)間存放,不同的系統(tǒng)在得到修改時(shí)間后通過(guò)localtime轉(zhuǎn)換成本地時(shí)間;5.設(shè)置時(shí)區(qū)推薦使用setup來(lái)設(shè)置;6.設(shè)置時(shí)區(qū)也可以先更變/etc/sysconfig/clock中的設(shè)置再將ln -fs /usr/share/zoneinfo/xxxx/xxx /etc/localtime 才能重效time_t只能表示68年的范圍,即mktime只能返回1970-2038這一段范圍的time_t看看你的系統(tǒng)是否有time_t64,它能表示更大的時(shí)間范圍/*windows#Win

30、dow里面的一些不一樣的/*一.CTime () 類VC編程一般使用CTime類 獲得當(dāng)前日期和時(shí)間CTime t = GetCurrentTime();SYSTEMTIME 結(jié)構(gòu)包含毫秒信息typedef struct _SYSTEMTIME WORD wYear;WORD wMonth;WORD wDayOfWeek;WORD wDay;WORD wHour;WORD wMinute;WORD wSecond;WORD wMilliseconds; SYSTEMTIME, *PSYSTEMTIME;SYSTEMTIME t1;GetSystemTime(&t1)CTime curTime(

31、t1);WORD ms = t1.wMilliseconds;SYSTEMTIME sysTm;:GetLocalTime(&sysTm);在time.h中的_strtime() /只能在windows中用char t11;_strtime(t);puts(t);/*獲得當(dāng)前日期和時(shí)間CTime tm=CTime:GetCurrentTime();CString str=tm.Format(%Y-%m-%d);在VC中,我們可以借助CTime時(shí)間類,獲取系統(tǒng)當(dāng)前日期,具體使用方法如下:CTime t = CTime:GetCurrentTime(); /獲取系統(tǒng)日期,存儲(chǔ)在t里面int d=t

32、.GetDay(); /獲得當(dāng)前日期int y=t.GetYear(); /獲取當(dāng)前年份int m=t.GetMonth(); /獲取當(dāng)前月份int h=t.GetHour(); /獲取當(dāng)前為幾時(shí)int mm=t.GetMinute(); /獲取當(dāng)前分鐘int s=t.GetSecond(); /獲取當(dāng)前秒int w=t.GetDayOfWeek(); /獲取星期幾,注意1為星期天,7為星期六二.CTimeSpan類如果想計(jì)算兩段時(shí)間的差值,可以使用CTimeSpan類,具體使用方法如下:CTime t1( 1999, 3, 19, 22, 15, 0 );CTime t = CTime:Ge

33、tCurrentTime();CTimeSpan span=t-t1; /計(jì)算當(dāng)前系統(tǒng)時(shí)間與時(shí)間t1的間隔int iDay=span.GetDays(); /獲取這段時(shí)間間隔共有多少天int iHour=span.GetTotalHours(); /獲取總共有多少小時(shí)int iMin=span.GetTotalMinutes();/獲取總共有多少分鐘int iSec=span.GetTotalSeconds();/獲取總共有多少秒三._timeb()函數(shù)_timeb定義在SYSTIMEB.H,有四個(gè)fieldsdstflagmillitmtimetimezonevoid _ftime( str

34、uct _timeb *timeptr );struct _timeb timebuffer;_ftime( &timebuffer );取當(dāng)前時(shí)間:文檔講可以到ms,有人測(cè)試,好象只能到16ms!四.設(shè)置計(jì)時(shí)器定義TIMER ID#define TIMERID_JISUANFANGSHI 2在適當(dāng)?shù)牡胤皆O(shè)置時(shí)鐘,需要開(kāi)始其作用的地方;SetTimer(TIMERID_JISUANFANGSHI,200,NULL);在不需要定時(shí)器的時(shí)候的時(shí)候銷毀掉時(shí)鐘KillTimer(TIMERID_JISUANFANGSHI);對(duì)應(yīng)VC程序的消息映射void CJisuan:OnTimer(UINT nI

35、DEvent)switch(nIDEvent)#如何設(shè)定當(dāng)前系統(tǒng)時(shí)間windowsSYSTEMTIME m_myLocalTime,*lpSystemTime;m_myLocalTime.wYear=2003;m_myLocalTime.wM;m_myLocalTime.wDay=1;m_myLocalTime.wHour=0;m_myLocalTime.wMinute=0;m_myLocalTime.wSec;m_myLocalTime.wMillisec;lpSystemTime=&m_myLocalTime;if( SetLocalTime(lpSystemTime) ) /此處換成 S

36、etSystemTime( )也不行MessageBox(OK !);elseMessageBox(Error !);SYSTEMTIME m_myLocalTime,*lpSystemTime;m_myLocalTime.wYear=2003;m_myLocalTime.wM;m_myLocalTime.wDay=1;lpSystemTime=&m_myLocalTime;if( SetDate(lpSystemTime) ) /此處換成 SetSystemTime( )也不行MessageBox(OK !);elseMessageBox(Error !);本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出

37、處:HYPERLINK /khuang2008/archive/2008/12/09/3483274.aspx/khuang2008/archive/2008/12/09/3483274.aspx一種制作微秒級(jí)精度定時(shí)器的方法當(dāng)使用定時(shí)器時(shí),在很多情況下只用到毫秒級(jí)的時(shí)間間隔,所以只需用到下面的兩種常用方式就滿足要求了。一是用SetTimer函數(shù)建立一個(gè)定時(shí)器后,在程序中通過(guò)處理由定時(shí)器發(fā)送到線程消息隊(duì)列中的WM_TIMER消息,而得到定時(shí)的效果(退出程序時(shí)別忘了調(diào)用和SetTimer配對(duì)使用的KillTimer函數(shù))。二是利用GetTickCount函數(shù)可以返回自計(jì)算機(jī)啟動(dòng)后的時(shí)間,通過(guò)兩次

38、調(diào)用GetTickCount函數(shù),然后控制它們的差值來(lái)取得定時(shí)效果,此方式跟第一種方式一樣,精度也是毫秒級(jí)的。用這兩種方式取得的定時(shí)效果雖然在許多場(chǎng)合已經(jīng)滿足實(shí)際的要求,但由于它們的精度只有毫秒級(jí)的,而且在要求定時(shí)時(shí)間間隔小時(shí),實(shí)際定時(shí)誤差大。下面介紹一種能取得高精度定時(shí)的方法。在一些計(jì)算機(jī)硬件系統(tǒng)中,包含有高精度運(yùn)行計(jì)數(shù)器(high-resolution performance counter),利用它可以獲得高精度定時(shí)間隔,其精度與CPU的時(shí)鐘頻率有關(guān)。采用這種方法的步驟如下:1、首先調(diào)用QueryPerformanceFrequency函數(shù)取得高精度運(yùn)行計(jì)數(shù)器的頻率f。單位是每秒多少次(

39、n/s),此數(shù)一般很大。2、在需要定時(shí)的代碼的兩端分別調(diào)用QueryPerformanceCounter以取得高精度運(yùn)行計(jì)數(shù)器的數(shù)值n1,n2。兩次數(shù)值的差值通過(guò)f換算成時(shí)間間隔,t=(n2-n1)/f。下面舉一個(gè)例子來(lái)演示這種方法的使用及它的精確度。在VC 6.0 下用MFC建立一個(gè)對(duì)話框工程,取名為HightTimer.在對(duì)話框面板中控件的布局如下圖:其中包含兩個(gè)靜態(tài)文本框,兩個(gè)編輯框和兩個(gè)按紐。上面和下面位置的編輯框的ID分別為IDC_E_TEST和IDC_E_ACTUAL,通過(guò)MFC ClassWizard添加的成員變量也分別對(duì)應(yīng)為DWORD m_dwTest和DWORD m_dwAc

40、t. “退出”按紐的ID為IDOK,“開(kāi)始測(cè)試”按紐ID為IDC_B_TEST,用MFC ClassWizard添加此按紐的單擊消息處理函數(shù)如下:void CHightTimerDlg:OnBTest()/ TODO: Add your control notification handler code hereUpdateData(TRUE); /取輸入的測(cè)試時(shí)間值到與編輯框相關(guān)聯(lián)的成員變量m_dwTest中LARGE_INTEGER frequence;if(!QueryPerformanceFrequency( &frequence) /取高精度運(yùn)行計(jì)數(shù)器的頻率,若硬件不支持則返回FAL

41、SEMessageBox(Your computer hardware doesnt support the high-resolution performance counter,Not Support, MB_ICONEXCLAMATION | MB_OK);LARGE_INTEGER test, ret;test.QuadPart = frequence.QuadPart * m_dwTest / 1000000; /通過(guò)頻率換算微秒數(shù)到對(duì)應(yīng)的數(shù)量(與CPU時(shí)鐘有關(guān)),1秒=1000000微秒ret = MySleep( test ); /調(diào)用此函數(shù)開(kāi)始延時(shí),返回實(shí)際花銷的數(shù)量m_dwA

42、ct = (DWORD)(1000000 * ret.QuadPart / frequence.QuadPart ); /換算到微秒數(shù)UpdateData(FALSE); /顯示到對(duì)話框面板其中上面調(diào)用的MySleep函數(shù)如下:LARGE_INTEGER CHightTimerDlg:MySleep(LARGE_INTEGER Interval)/ 功能:執(zhí)行實(shí)際的延時(shí)功能 / 參數(shù):Interval 參數(shù)為需要執(zhí)行的延時(shí)與時(shí)間有關(guān)的數(shù)量 / 返回值:返回此函數(shù)執(zhí)行后實(shí)際所用的時(shí)間有關(guān)的數(shù)量 / LARGE_INTEGER privious, current, Elapse;QueryPerf

43、ormanceCounter( &privious );current = privious;while( current.QuadPart - privious.QuadPart Interval.QuadPart )QueryPerformanceCounter( t );Elapse.QuadPart = current.QuadPart - privious.QuadPart;return Elapse;注:別忘了在頭文件中為此函數(shù)添加函數(shù)聲明。至此,可以編譯和執(zhí)行此工程了,結(jié)果如上圖所示。在本人所用的機(jī)上(奔騰366, 64M內(nèi)存)測(cè)試,當(dāng)測(cè)試時(shí)間超過(guò)3微秒時(shí),準(zhǔn)確度已經(jīng)非常高了,此

44、時(shí)機(jī)器執(zhí)行本身延時(shí)函數(shù)代碼的時(shí)間對(duì)需要延時(shí)的時(shí)間影響很小了。上面的函數(shù)由于演示測(cè)試的需要,沒(méi)有在函數(shù)級(jí)封裝,下面給出的函數(shù)基本上可以以全局函數(shù)的形式照搬到別的程序中。BOOL MySleep(DWORD dwInterval)/ 功能:執(zhí)行微秒級(jí)的延時(shí)功能 / 參數(shù):Interval 參數(shù)為需要的延時(shí)數(shù)(單位:微秒) / 返回值:若計(jì)算機(jī)硬件不支持此功能,返回FALSE,若函數(shù)執(zhí)行成功,返回TRUE / BOOL bNormal = TRUE;LARGE_INTEGER frequence, privious, current, interval;if(!QueryPerformanceFre

45、quency( &frequence):MessageBox(NULL, Your computer hardware doesnt support the high-resolution performance counter,Not Support, MB_ICONEXCLAMATION | MB_OK); /或其它的提示信息return FALSE;interval.QuadPart = frequence.QuadPart * dwInterval / 1000000;bNormal = bNormal & QueryPerformanceCounter( &privious );cu

46、rrent = privious;while( current.QuadPart - privious.QuadPart interval.QuadPart )bNormal = bNormal & QueryPerformanceCounter( t );return bNormal;需要指出的是,由于在此函數(shù)中的代碼很多,機(jī)器在執(zhí)行這些代碼所花費(fèi)的時(shí)間也很長(zhǎng),所以在需要幾個(gè)微秒的延時(shí)時(shí),會(huì)影響精度。實(shí)際上,讀者在熟悉這種方法后,只要使用QueryPerformanceFrequency和QueryPerformanceCounter這兩個(gè)函數(shù)就能按實(shí)際需要寫(xiě)出自己的延時(shí)代碼了。使用CPU時(shí)

47、間戳進(jìn)行高精度計(jì)時(shí)對(duì)關(guān)注性能的程序開(kāi)發(fā)人員而言,一個(gè)好的計(jì)時(shí)部件既是益友,也是良師。計(jì)時(shí)器既可以作為程序組件幫助程序員精確的控制程序進(jìn)程,又是一件有力的調(diào)試武器,在有經(jīng)驗(yàn)的程序員手里可以盡快的確定程序的性能瓶頸,或者對(duì)不同的算法作出有說(shuō)服力的性能比較。在Windows平臺(tái)下,常用的計(jì)時(shí)器有兩種,一種是timeGetTime多媒體計(jì)時(shí)器,它可以提供毫秒級(jí)的計(jì)時(shí)。但這個(gè)精度對(duì)很多應(yīng)用場(chǎng)合而言還是太粗糙了。另一種是QueryPerformanceCount計(jì)數(shù)器,隨系統(tǒng)的不同可以提供微秒級(jí)的計(jì)數(shù)。對(duì)于實(shí)時(shí)圖形處理、多媒體數(shù)據(jù)流處理、或者實(shí)時(shí)系統(tǒng)構(gòu)造的程序員,善用QueryPerformanceCou

48、nt/QueryPerformanceFrequency是一項(xiàng)基本功。本文要介紹的,是另一種直接利用Pentium CPU內(nèi)部時(shí)間戳進(jìn)行計(jì)時(shí)的高精度計(jì)時(shí)手段。以下討論主要得益于Windows圖形編程一書(shū),第15頁(yè)17頁(yè),有興趣的讀者可以直接參考該書(shū)。關(guān)于RDTSC指令的詳細(xì)討論,可以參考Intel產(chǎn)品手冊(cè)。本文僅僅作拋磚之用。在Intel Pentium以上級(jí)別的CPU中,有一個(gè)稱為“時(shí)間戳(Time Stamp)”的部件,它以64位無(wú)符號(hào)整型數(shù)的格式,記錄了自CPU上電以來(lái)所經(jīng)過(guò)的時(shí)鐘周期數(shù)。由于目前的CPU主頻都非常高,因此這個(gè)部件可以達(dá)到納秒級(jí)的計(jì)時(shí)精度。這個(gè)精確性是上述兩種方法所無(wú)法比

49、擬的。在Pentium以上的CPU中,提供了一條機(jī)器指令RDTSC(Read Time Stamp Counter)來(lái)讀取這個(gè)時(shí)間戳的數(shù)字,并將其保存在EDX:EAX寄存器對(duì)中。由于EDX:EAX寄存器對(duì)恰好是Win32平臺(tái)下C+語(yǔ)言保存函數(shù)返回值的寄存器,所以我們可以把這條指令看成是一個(gè)普通的函數(shù)調(diào)用。像這樣:inline unsigned _int64 GetCycleCount() _asm RDTSC 但是不行,因?yàn)镽DTSC不被C+的內(nèi)嵌匯編器直接支持,所以我們要用_emit偽指令直接嵌入該指令的機(jī)器碼形式0X0F、0X31,如下:inline unsigned _int64 Get

50、CycleCount() _asm _emit 0 x0F _asm _emit 0 x31 以后在需要計(jì)數(shù)器的場(chǎng)合,可以像使用普通的Win32 API一樣,調(diào)用兩次GetCycleCount函數(shù),比較兩個(gè)返回值的差,像這樣: unsigned long t; t = (unsigned long)GetCycleCount(); /Do Something time-intensive . t -= (unsigned long)GetCycleCount(); Windows圖形編程第15頁(yè)編寫(xiě)了一個(gè)類,把這個(gè)計(jì)數(shù)器封裝起來(lái)。有興趣的讀者可以去參考那個(gè)類的代碼。作者為了更精確的定時(shí),做了一

51、點(diǎn)小小的改進(jìn),把執(zhí)行RDTSC指令的時(shí)間,通過(guò)連續(xù)兩次調(diào)用GetCycleCount函數(shù)計(jì)算出來(lái)并保存了起來(lái),以后每次計(jì)時(shí)結(jié)束后,都從實(shí)際得到的計(jì)數(shù)中減掉這一小段時(shí)間,以得到更準(zhǔn)確的計(jì)時(shí)數(shù)字。但我個(gè)人覺(jué)得這一點(diǎn)點(diǎn)改進(jìn)意義不大。在我的機(jī)器上實(shí)測(cè),這條指令大概花掉了幾十到100多個(gè)周期,在Celeron 800MHz的機(jī)器上,這不過(guò)是十分之一微秒的時(shí)間。對(duì)大多數(shù)應(yīng)用來(lái)說(shuō),這點(diǎn)時(shí)間完全可以忽略不計(jì);而對(duì)那些確實(shí)要精確到納秒數(shù)量級(jí)的應(yīng)用來(lái)說(shuō),這個(gè)補(bǔ)償也過(guò)于粗糙了。 這個(gè)方法的優(yōu)點(diǎn)是: 1.高精度??梢灾苯舆_(dá)到納秒級(jí)的計(jì)時(shí)精度(在1GHz的CPU上每個(gè)時(shí)鐘周期就是一納秒),這是其他計(jì)時(shí)方法所難以企及的。

52、 2.成本低。timeGetTime 函數(shù)需要鏈接多媒體庫(kù)winmm.lib,QueryPerformance* 函數(shù)根據(jù)MSDN的說(shuō)明,需要硬件的支持(雖然我還沒(méi)有見(jiàn)過(guò)不支持的機(jī)器)和KERNEL庫(kù)的支持,所以二者都只能在Windows平臺(tái)下使用(關(guān)于DOS平臺(tái)下的高精度計(jì)時(shí)問(wèn)題,可以參考圖形程序開(kāi)發(fā)人員指南,里面有關(guān)于控制定時(shí)器8253的詳細(xì)說(shuō)明)。但RDTSC指令是一條CPU指令,凡是i386平臺(tái)下Pentium以上的機(jī)器均支持,甚至沒(méi)有平臺(tái)的限制(我相信i386版本UNIX和Linux下這個(gè)方法同樣適用,但沒(méi)有條件試驗(yàn)),而且函數(shù)調(diào)用的開(kāi)銷是最小的。 3.具有和CPU主頻直接對(duì)應(yīng)的速率關(guān)系。一個(gè)計(jì)數(shù)相當(dāng)于1/(CPU主頻Hz數(shù))秒,這樣只要知道了CPU的主頻,可以直接計(jì)算出時(shí)間。這和QueryPerformanceCount不同,后者需要通過(guò)QueryPerformanceFrequency獲取當(dāng)前計(jì)數(shù)器每秒的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論