第一篇:財務(wù)會計課設(shè)報告
武漢理工大學(xué)《財務(wù)會計課程設(shè)計》報告書
13年我們一起做的財務(wù)會計課程設(shè)計
財務(wù)會計課程設(shè)計,是我的第三次專業(yè)課程設(shè)計,說實話做起來應(yīng)該輕車熟路,但實際卻不是如此。在剛開始時,因為沒有做好足夠的心理準(zhǔn)備,發(fā)現(xiàn)做起有些困難,現(xiàn)在做完了回頭看看這三周的學(xué)習(xí),發(fā)現(xiàn)自己從中真的學(xué)到不少東西。在寒假期間,我找到了一家軟件公司幫忙代理記賬,所以說這個財務(wù)會計課程設(shè)計課程設(shè)計于我意義更加重大,我更加明白這個課程設(shè)計對我的幫助有多大。下面是我對整個財務(wù)會計課程設(shè)計的感受。1 我眼中的財務(wù)會計課程設(shè)計
當(dāng)?shù)谝淮温犝f要做財務(wù)會計課程設(shè)計時,我感覺既興奮又緊張,剛開始接觸時更多地是迷茫,更深入接觸后,我對財務(wù)會計課程設(shè)計的認(rèn)識又有了新變化。從陌生到熟悉,從害怕到喜歡。讓我講講我眼中的財務(wù)會計課程設(shè)計。
1.1 初識財務(wù)會計課程設(shè)計
我認(rèn)為做財務(wù)會計課程設(shè)計的目的不僅是要求我們掌握賬務(wù)處理程序,更重要的是要我們明確財務(wù)人員的職責(zé)所在。這在我們課程設(shè)計書最前面已經(jīng)指出,我個人十分認(rèn)同這個觀點(diǎn)。會計的職責(zé)主要包括:按相關(guān)規(guī)定開設(shè)賬簿并進(jìn)行會計核算,編制財務(wù)報表;計算稅費(fèi)工資;做好成本控制等。而在此次課程設(shè)計中這些內(nèi)容都有所涉及,讓我們?nèi)娴牧私鈺嫷墓ぷ鳎瑥脑鲁醯皆履┙Y(jié)賬,我們自己做一遍,感覺比老師講很多遍應(yīng)該如何做賬來的更加直接,讓我們印象更加深刻。
1.2 財務(wù)會計課程設(shè)計新認(rèn)識
財務(wù)會計課程設(shè)計的流程將會計的確認(rèn),計量,記錄和報告融合在一起,相互交叉,例如在材料入庫時,需要將在合理損耗范圍內(nèi)的材料也要算入入庫數(shù)量時就很好的體現(xiàn)了一點(diǎn)。另外在做財務(wù)會計課程設(shè)計時,我對會計信息質(zhì)量的謹(jǐn)慎性,明晰性,實質(zhì)重于形式,及時性等有了新的認(rèn)識。
謹(jǐn)慎,是對于會計來說非常重要的特性,我們在填寫憑證登記賬簿時要認(rèn)真填寫,不能隨意更改,一旦填錯必須按照相關(guān)規(guī)定修改如劃線更正法,紅字更正法等。而不能像平時一樣直接隨便拿筆劃掉再寫,在這次課程設(shè)計中我寫錯過很多地方,都堅持按照規(guī)定一個個修改過來,這讓我逐漸養(yǎng)成習(xí)慣,以后在填寫憑證和賬簿時一定要看清楚想清楚再下筆。我感覺謹(jǐn)慎還體現(xiàn)在對充滿不確定性的交易或事項時還要進(jìn)行職業(yè)判斷,例如按照經(jīng)驗確定計提壞賬準(zhǔn)備和存貨跌價準(zhǔn)備的比例等,不能隨意臆測,要有依據(jù)。這樣我們最終
體現(xiàn)在報表上的數(shù)據(jù)才能符合既不高估企業(yè)資產(chǎn)或者收益,又不低估企業(yè)的負(fù)債或費(fèi)用的要求。
拿財務(wù)會計課程設(shè)計和我們之前做的會計學(xué)原理的課程設(shè)計進(jìn)行對比,我發(fā)現(xiàn)此次課程設(shè)計的重心除日常的業(yè)務(wù)處理外,還加入了月末的計提稅費(fèi),調(diào)整稅費(fèi)等,特別加入了我們在中財課上剛剛學(xué)習(xí)的遞延所得稅負(fù)債和遞延所得稅資產(chǎn),所得稅費(fèi)用和應(yīng)交所得稅,通過四者之間的關(guān)系計算出實際應(yīng)交的稅費(fèi);針對債務(wù)重組、以前年度損益調(diào)整等都有專門的訓(xùn)練,特別是設(shè)備盤盈如何沖減以前年度損益調(diào)整,然后再如何沖減所得稅費(fèi)用和盈余公積等之前都是從未碰到過;另外,因為這個學(xué)期剛剛學(xué)習(xí)了現(xiàn)金流量表的編制,所以在編制報表也是一個大重點(diǎn)大難點(diǎn)。當(dāng)我們編制完現(xiàn)金流量表時,長長的舒了一口氣。2 簡述課程設(shè)計流程
第一步,登記期初余額。包括建帳,填寫期初余額等。在此次實訓(xùn)中,資產(chǎn)負(fù)債類期初填制時間為12月1號,摘要寫余額,而損益類的要寫11月30號,摘要寫本年累計,登記借貸方,余額一律為0;第二步,審核填制記賬憑證;第三步,登記賬簿。具體包括:三欄式明細(xì)賬,數(shù)量金額式明細(xì)賬,八欄式明細(xì)賬,十七欄明細(xì)賬,應(yīng)交稅費(fèi)明細(xì)賬等;第四步,成本核算。包括登記制造費(fèi)用明細(xì)賬和生產(chǎn)成本明細(xì)賬;編制制造費(fèi)用分配表,產(chǎn)品成本明細(xì)表;結(jié)轉(zhuǎn)完工產(chǎn)品成本;第五步,對賬,結(jié)賬。將總賬與明細(xì)賬,總賬與日記賬核對;第六步,編制資產(chǎn)負(fù)債表、利潤表、現(xiàn)金流量表;第七步,歸檔及會計檔案保管。
具體的例子將在財務(wù)會計課程設(shè)計的個人心得即財務(wù)會計課程設(shè)計中的“酸甜苦辣”中詳細(xì)敘述。心得之財務(wù)會計課程設(shè)計中的“酸甜苦辣”
在做財務(wù)會計課程設(shè)計的過程中心情時時刻刻都在變,會因為填寫憑證和賬簿時整張都沒錯誤而開心;會因為數(shù)據(jù)計算錯誤而傷心;會因為自己進(jìn)度比別人慢而焦急不已;也會因為自己有些賬務(wù)無從下手而不知所措??整個手工中酸甜苦辣都有,但是更多地是充足,感覺有綿綿不斷的只是注入了你的大腦,整個人分分秒秒都感覺到了激情,而不是大家認(rèn)為通常做賬時的苦悶。
3.1 財務(wù)會計課程設(shè)計中的“酸”
在做賬時發(fā)現(xiàn)原始資料中有許多不合理的地方,例如庫存現(xiàn)金在12月17日時的余額只有897.5,但是18號卻發(fā)生了李天一預(yù)支差旅費(fèi)2000元,十分不合理,但大家當(dāng)時做
賬時沒有想到這一點(diǎn),都直接按書上的數(shù)額記賬登記日記賬,后來董老師看了后,告訴我們這種做法不合理,因為在實際中,支取的現(xiàn)金是不能大于日記賬中的余額的。我后來認(rèn)真想想明白了,如果你是出納,你難不成要3己墊支不足的額度給來支取差旅費(fèi)的員工嗎?我感覺老師給我們指出來并要求我們重新登記相關(guān)憑證的做法是對的,雖然我們現(xiàn)在只是一個實驗,并不是真實的,但是我們就要從現(xiàn)在養(yǎng)成實事求是的態(tài)度,切不可降低對會計信息真實性的要求。這樣做雖然需要我們改很多東西增加了很多工作量但也是值得的。
像這種錯誤還有幾個,雖然給我們在記賬過程中增加了工作量,但恰恰是這些給我們提了一個醒,這也許就是我們以后可能會犯的錯誤。現(xiàn)在遇到了,以后碰上類似的情況我們就知道該如何處理了。
3.2 財務(wù)會計課程設(shè)計中的“甜”
就如在對財務(wù)會計課程設(shè)計新認(rèn)識的那里寫到的一樣,我在課程設(shè)計過程中學(xué)到最多的總結(jié)起來就是三個字“如何做”。這三個字的含義有很多,既包括如何進(jìn)行賬務(wù)處理也包括在做賬過程中遇到困難時我該用什么態(tài)度對待等。在進(jìn)行建賬那一部分時,我感覺特別容易掌握,不需要特別動腦筋,但在進(jìn)行日常業(yè)務(wù)時,就發(fā)現(xiàn)在根據(jù)原始憑證填制記賬憑證時,像31號的那些結(jié)轉(zhuǎn)處理以及計提的稅費(fèi)、壞賬準(zhǔn)備等都感覺有些吃力,最后在問過老師和同學(xué)后最終學(xué)會該如何計算,這時真的感覺自己學(xué)過的知識點(diǎn)掌握的有多么不牢固。
但是通過這次的財務(wù)會計課程設(shè)計后我發(fā)現(xiàn)我真的學(xué)到了很多東西,像如何更正明細(xì)賬及總賬中的錯誤,如何填制原始憑證,如何計提壞賬,如何編制報表等,或許以前這些知識點(diǎn)我們都有學(xué)過,但卻是這一次的財務(wù)會計課程設(shè)計讓我真的掌握了這些知識點(diǎn)。
還記得之前分不清楚原材料和材料采購的區(qū)別,在這個案例中,因為有多筆相關(guān)賬務(wù)要處理,像12月1號購入x材料,實際數(shù)量,價格要登記在材料采購,當(dāng)然還有運(yùn)費(fèi),說到運(yùn)費(fèi)又要注意運(yùn)費(fèi)中可以抵扣的進(jìn)項稅額,要一并加入材料采購的進(jìn)項稅額中去。在材料入庫時因為要求按計劃成本核算,所以入庫時的價格要按計劃成本的算,但是數(shù)量還是要按照真實性的原則,登記實際入庫數(shù)量,相應(yīng)計入管理費(fèi)用的合理損耗也要計入入庫數(shù)量等等。
另外在現(xiàn)金流量表編制時,胡老師告訴了我們一個小技巧,不一定非得編制調(diào)整分錄或者用底稿,其實像一些比較簡單的業(yè)務(wù),并且數(shù)量不多時,可以直接分類,按類別計入。在這種方法下,比較難填列的項目有銷售商品、提供勞務(wù)收到的現(xiàn)金和購買商品、接受勞
務(wù)支付的現(xiàn)金。在計算這兩個項目時需要特別注意。這是在實際工作中比較實用的一個技巧,我們大多數(shù)同學(xué)都是按照這種方法編制的現(xiàn)金流量表
3.3 財務(wù)會計課程設(shè)計中的“苦”
在計算銀行存款日記賬時,因為數(shù)據(jù)較多,自己在計算時經(jīng)常出現(xiàn)錯誤,導(dǎo)致銀行存款日記賬錯誤太多,不得不在全部計算完成后又另外抄了一份。像這種情況還有很多,像有時候在登記管理費(fèi)用,制造費(fèi)用,財務(wù)費(fèi)用等時一不小心就登錯了行,我真的有時候感覺自己這種神經(jīng)大條的人不適合做財務(wù)會計課程設(shè)計,但經(jīng)過后來慢慢地磨練我發(fā)現(xiàn)自己出現(xiàn)的這種低級大意的錯誤越來越少。
因為在剛開始做賬時,不知道書寫規(guī)范或者可能是自己太隨意,導(dǎo)致書寫不規(guī)范,像數(shù)字書寫過大等等,我又利用課余時間把憑證和明細(xì)賬都抄了一遍,在寫第二遍時,發(fā)現(xiàn)很多東西都已經(jīng)了然于心,沒有剛開始做時那么生疏,很多人都說沒必要這么做,但是我個人還是感覺有些東西在你做第二遍時效果肯定比第一遍好很多。
在這次財務(wù)會計課程設(shè)計中,因為很多數(shù)據(jù)都要自己重新計算,所以可能有時候需要我們睡得晚些,但是我感覺這些都是值得的,都是有意義的。如果老師說數(shù)據(jù)你們就將錯就錯吧,我估計會有很多同學(xué)會直接抄答案,特別是31后結(jié)轉(zhuǎn)成本,計提折舊、壞賬等這些比較麻煩的賬務(wù)。但是老師本著嚴(yán)謹(jǐn)?shù)膽B(tài)度,真的想讓我們在這次財務(wù)會計課程設(shè)計中得到鍛煉,所以讓我們自己計算,并且老師也很負(fù)責(zé)任的自己算了一遍,并不斷詢問同學(xué)們的數(shù)據(jù),這讓我感覺感動,每位老師都很負(fù)責(zé),是一個學(xué)生最想看到的。
說實話,這些也說不上是苦,只是當(dāng)時可能有點(diǎn)抱怨,但現(xiàn)在什么真的對我以后的工作是有益處的,已經(jīng)了然于心了。謝謝老師。
3.4 財務(wù)會計課程設(shè)計中的“辣”
所謂辣,給人感覺就是剛開始吃感覺不適應(yīng),但是如果吃習(xí)慣了,就會越來越習(xí)慣。而在課程設(shè)計則是指那些剛開始我不會的問題。像結(jié)轉(zhuǎn)完工產(chǎn)品和編制報表表雖然也多多少少會,但是不夠熟練,這次我一直堅持自己登記制造費(fèi)用明細(xì)賬和生產(chǎn)成本明細(xì)賬,本著不怕出錯但絕不能不敢下筆的原則,把所有工作做完后在和別人對一下,再把錯誤的改過來,不會的就問,再簡單的問題只要自己還有疑問的都不放過,把硬骨頭一個個啃透,最終越做越熟練。
想債務(wù)重組這些碰到的比較少,不太熟悉的知識點(diǎn),我也愿意先去網(wǎng)上找相關(guān)知識點(diǎn)然后再看答案,就是抱著這種嚴(yán)謹(jǐn)?shù)膶W(xué)習(xí)態(tài)度,真的在課程設(shè)計中學(xué)到很多東西。財務(wù)會計課程設(shè)計總結(jié)
在這次課程設(shè)計中,受益匪淺,把以前學(xué)過的忘記的知識點(diǎn)又重新?lián)炝似饋怼3酥猓谧鰩み^程中我養(yǎng)成了許多好習(xí)慣并且學(xué)會如何調(diào)整好心態(tài)對待接下來的會計工作。
從專業(yè)上說,我對書本上學(xué)過的知識有了更加直觀的認(rèn)識,像根據(jù)明細(xì)賬登記總賬,根據(jù)科目匯總表登記總賬等。另外課程設(shè)計與我們們剛剛學(xué)完的中財聯(lián)系在一起,像應(yīng)付職工薪酬、應(yīng)交稅費(fèi)等,之前也有接觸但是學(xué)的不是十分詳細(xì),而這次課程設(shè)計使這些知識點(diǎn)都連在了一次。像編制報表在這次課程設(shè)計前我認(rèn)為我最多只能編制一個資產(chǎn)負(fù)債表和利潤表出來,根本沒有想到自己居然可以編出現(xiàn)金流量表。但我真的自己編制出來了,與老師的答案對過之后,發(fā)現(xiàn)有一點(diǎn)小錯誤,改正后真的很開心,為自己肯去嘗試并努力去做這件事情真的感到自豪。
從心態(tài)上說,做事要不急不躁,時刻保持警惕,不可放松對自己的要求。這是我在財務(wù)會計課程設(shè)計中得到的啟示。有時候,我們做事情就是太急功近利,到最后反而什么都做不好,越落后別人,越做不對數(shù)據(jù)時一定要靜下心來把下一步的計劃做好后再行動,磨刀不誤砍柴工。遇到不會的、不明白的事情,就要不恥下問,一個人將不明白就多問幾個人,只有這樣才能學(xué)到真正要學(xué)習(xí)的知識。這次財務(wù)會計課程設(shè)計實訓(xùn),歷時三周,感覺每天都能學(xué)到新知識,每天都很充實,希望以后還可以在工作前再有這種實訓(xùn)來鍛煉自己。
第二篇:財務(wù)會計課設(shè)報告
武漢理工大學(xué)《財務(wù)會計》課程設(shè)計說明書
財務(wù)會計手工模擬實驗及感悟概述
1.1實務(wù)背景 作為一名未來的會計人員,我們現(xiàn)在才剛剛起步,為了更好的掌握會計學(xué)知識,我們進(jìn)行了財務(wù)會計課程設(shè)計。我們進(jìn)行模擬實驗的是一家國有中型企業(yè)——寧電修造廠,注冊資金800萬,主要以生產(chǎn)為主,兼營運(yùn)輸業(yè)務(wù)。該廠下設(shè)鑄造、機(jī)加工、金工、裝配四個基本生產(chǎn)車間和一個機(jī)修輔助生產(chǎn)車間及一個小型運(yùn)輸隊。我們主要是對該修造廠2012年12月份發(fā)生的所有業(yè)務(wù)進(jìn)行核算。核算要求根據(jù)科目匯總表定期登記總賬,采用科目匯總表賬務(wù)處理程序,每10天匯總一次。
1.2實訓(xùn)目的 我認(rèn)為此次實訓(xùn)的目的是為了將“教學(xué)”與“實踐”相結(jié)合,提高我們的動手能力,增強(qiáng)我們對會計知識進(jìn)一步理解,培養(yǎng)我們對會計知識的靈活運(yùn)用,以便在以后的就業(yè)時不至于“手慌腳亂”,以便提高我們工作時與專科或培訓(xùn)機(jī)構(gòu)的學(xué)生的競爭力。
1.3實訓(xùn)意義 在剛剛結(jié)束的兩周計算機(jī)會計課程設(shè)計和此次完成的手工做賬會計相比,此次實訓(xùn)更加讓我感覺到我即將成為一名會計人員。雖然在技術(shù)上,電算化比手工做賬要方便很多,但是,手工做賬更加培養(yǎng)了一名會計人員的耐心和細(xì)心。這也是作為一名會計人員必須具備的素質(zhì)。它使我加深理解了會計核算的基本原則和方法,將所有的基礎(chǔ)會計、財務(wù)會計等相關(guān)課程進(jìn)行綜合運(yùn)用。它還讓我了解會計內(nèi)部控制的基本要求,掌握從理論到實踐的轉(zhuǎn)化過程,熟練掌握了會計操作的基本技能,將會計專業(yè)理論知識和專業(yè)實踐有機(jī)的結(jié)合起來,開闊了我的視野,增進(jìn)了我對企業(yè)實踐運(yùn)作情況的認(rèn)識,為我畢業(yè)走上工作崗位奠定堅實的基礎(chǔ)。具體操作
2.1憑證處理
2.1.1審核原始憑證
在原理上主要指審核原始憑證的真實性、合法性、合理性、完整性和正確性。但在此次的實務(wù)中主要審核的是實驗書后面附帶的原始憑證是否完整,包括張數(shù)是否完整和內(nèi)容
是否完整。因為可能存在缺頁或破損情況,故需要進(jìn)行簡單查看,其次,部分原始憑證的金額、日期、具體數(shù)據(jù)需要計算填寫補(bǔ)充,要仔細(xì)審核完善。
2.1.2填制記賬憑證 填制記賬憑證時進(jìn)行所有賬務(wù)處理的基礎(chǔ),所以正確填寫尤其重要。此次實務(wù)中,填寫的記賬憑證共計229張。因為是根據(jù)科目匯總表登記總賬,且要求分旬編制科目匯總表,所以先填制前十天的記賬憑證。實務(wù)中2012年12月01日至12月10日的業(yè)務(wù)為記字001號——記字053號記賬憑證。在編制記賬憑證時要注意記賬憑證各項內(nèi)容必須完整,記賬憑證應(yīng)該連續(xù)編號且記賬憑證的書寫應(yīng)清楚、規(guī)范。填制記賬憑證時若發(fā)生錯誤,應(yīng)該重新填制。填制完經(jīng)濟(jì)業(yè)務(wù)事項后,如有空行應(yīng)當(dāng)自金額欄最后一筆金額數(shù)字下的空行處至合計數(shù)上的空行處劃線注銷,我采取的是借貸方各劃線注銷。填制記賬憑證必須要細(xì)心,填制完還要進(jìn)行核對,看時間、摘要、分錄、金額大小及方向、附單據(jù)數(shù)是否錯誤,合計欄的金額前是否帶有“¥”。
2.1.3原始憑證粘貼
填制完記賬憑證,就要對其原始憑證進(jìn)行粘貼,粘貼時為了方便裝訂,自左往右依次排列成魚鱗狀粘貼。粘貼時要注意不可以讓原始憑證超出記賬憑證,一定要注意美觀。粘貼完以后要核對記賬憑證中附單據(jù)數(shù)與原始憑證數(shù)是否一致。
2.2 賬表處理
2.2.1登記日記賬、明細(xì)賬
完成了第一步的填制記賬憑證工作,接下來根據(jù)記賬憑證的每一筆業(yè)務(wù)填制銀行存款、現(xiàn)金日記賬,和相應(yīng)的原材料、庫存商品、往來賬戶等明細(xì)賬。填制之前,首先得根據(jù)期初余額先開設(shè)各明細(xì)賬的賬戶,銀行存款和現(xiàn)金日記賬在登記時要按照業(yè)務(wù)發(fā)生的時間順序,逐日逐筆順序進(jìn)行登記。而原材料、庫存商品、往來賬戶等明細(xì)賬通常采用活頁式賬本,方便隨時的添加業(yè)務(wù),也無需當(dāng)每筆發(fā)生時都結(jié)出余額。填制時,如果當(dāng)當(dāng)頁已寫完,需在最后一行摘要寫“轉(zhuǎn)次頁”并結(jié)出借貸方及余額,而在下一頁以“承上頁”并寫下前門的“借”、“貸”方,及余額的金額。另外,當(dāng)填制時發(fā)現(xiàn)金額錯誤須用紅字劃掉,并用藍(lán)字作以改正。對于庫存商品、原材料、包裝物、低值易耗品我們采用的是數(shù)量金額式的賬簿登記的明細(xì)賬;管理費(fèi)用、財務(wù)費(fèi)用、銷售費(fèi)用、生產(chǎn)成本——機(jī)修車間的明細(xì)賬采用的是十六欄式明細(xì)賬簿;生產(chǎn)成本——DZW-A、生產(chǎn)成本——DZW-B、生產(chǎn)成本——DZW-C、生產(chǎn)成本——鑄造車間采用的是八欄式明細(xì)賬;制造費(fèi)用采用十三欄式明
細(xì)賬。
2.2.2編制科目匯總表、登記總賬
接下來,根據(jù)每一張記賬憑證編制相應(yīng)的科目匯總表。可以先將各會計科目用‘T’字型賬戶在草稿上結(jié)出其‘借’、‘貸’方發(fā)生額,然后再填科目匯總表。先根據(jù)前十天的記賬憑證確定會計科目,然后分別計算出借貸方的金額,保證科目匯總表的借方發(fā)生額與貸方發(fā)生額相等后,說明計算無誤,再登記科目匯總表。
完成科目匯總表的登記后填制總賬。在填制總賬之前,要先根據(jù)期初余額建立總賬,注意填寫時直接填余額及方向,借貸方表示發(fā)生額,此處不可以填寫。建總賬時,要防止漏記、錯記,所以需要很認(rèn)真的核對無誤后再填入賬簿。建好賬以后就登記前十天的總賬,因為是按照科目匯總表登記的總賬,所以種類寫“科匯”。總賬只需要進(jìn)行三次登記,沒有發(fā)生額只有期初余額的也要進(jìn)行月結(jié),沒有期初余額的按發(fā)生時直接登記。
2.2.3編制三表
總賬的填制工作完成后,就得開始核賬了,記賬憑證與各明細(xì)賬、明細(xì)賬與明細(xì)賬、總賬與明細(xì)賬之間核對,從而達(dá)到賬賬、賬證、賬實合一。核對無誤后,就可以根據(jù)總賬月末余額編制試算平衡表,要求做到期初借方余額與期初貸方余額、本期借方發(fā)生額與本期貸方發(fā)生額、本期借方余額與本期貸方余額都分別相等。在準(zhǔn)確無誤的情況下,編制資產(chǎn)負(fù)債表和利潤表、現(xiàn)金流量表等財務(wù)報表。
2.3裝訂處理
最后一步是整理與裝訂記賬憑證、總賬和明細(xì)賬,裝訂工作是個細(xì)致活,采用裁、剪、疊等方式將其整理好,達(dá)到記賬憑證的上、左、下的整齊統(tǒng)一。在裝訂時,我們先要用打孔機(jī)將記賬憑證打孔,然后按每十天的憑證分開穿線,最后貼上封皮。對于總賬和明細(xì)賬也要整理歸類后按相同方法裝訂。裝訂出來的賬本盡量做到美觀大方。總結(jié)
3.1手工做賬注意細(xì)節(jié)
3.1.1填寫要求規(guī)范
在填寫時,一定要注意填寫字跡清楚,不能亂涂,選擇正確顏色的筆填寫,表示紅字時要用紅筆。摘要應(yīng)該簡明扼要,要能說明問題。數(shù)字要寫在偏下方,大概占整格的1/2到2/3左右,以便修改。填制記賬憑證時,科目要力求完整。還有劃線也要注意筆的顏色,記賬憑證劃線用黑筆,明細(xì)賬和總賬結(jié)賬要用紅筆,且現(xiàn)金日記賬、銀行存款日記賬、總
賬用雙紅線,其他明細(xì)賬用單紅線。
3.1.2錯帳更正方法
在記賬過程中,可能由于種種原因會使賬薄記錄發(fā)生錯誤,我們要運(yùn)用正確的更正方法對錯誤進(jìn)行更正,一般有劃線更正法、補(bǔ)充登記法、紅字更正法三種,而不是填補(bǔ)、挖改。
我采用的最多的是劃線更正法,劃線更正法主要適用于編制的記賬憑證沒有錯誤,而是在登記賬簿時發(fā)生錯誤,導(dǎo)致賬簿記錄的錯誤。更正時將錯誤的文字或者數(shù)字劃紅線注銷,但必須使原有字跡仍可辨認(rèn);然后在劃線上方填寫正確的文字或者數(shù)字,此處省略了記賬人員簽字蓋章工作,但在工作過程中不可以省略。對于錯誤的數(shù)字,應(yīng)當(dāng)全部劃紅線更正,不得只更正其中的錯誤數(shù)字。對于文字錯誤,可只劃去錯誤的部分。
3.1.3對帳
在實訓(xùn)中我們必須做的是原始憑證與記賬憑證、各明細(xì)賬與總賬核對等。這是會計工作中必不可少的步驟,是企業(yè)進(jìn)行有效控制的一種手段。在實訓(xùn)中,可能會因為某些原因忽略這一步驟,所以要引起我們的注意。
3.2手工做賬感悟
手工做賬是一門細(xì)活,更是一門藝術(shù)。在整整的兩周做賬過程里,我感覺無比的艱辛,但又充滿了快樂。
首先,書寫要規(guī)范,內(nèi)容要完整,其次,要保證正確性。為了做賬,我們每天差不多晚上熬到一兩點(diǎn),不停的修改核對,直到正確為止。每次為了美觀,只要發(fā)現(xiàn)錯誤就把整頁撕下來重新填寫,這樣相當(dāng)耗時費(fèi)力,我覺得我在做賬過程中還是沒有正確掌握修改方法,或者說是知道修改方法卻為了美觀寧愿重寫也不修改,這在以后工作中是不可取的作法。
我是一個比較粗心的人,所以在這次實訓(xùn)中吃了不少苦,因為登記管理費(fèi)用明細(xì)賬時采用的是十六欄式的賬頁,比較長,所以我按項目填寫時總是錯位。還有現(xiàn)金日記賬和銀行存款日記賬計算余額時有時候會把發(fā)生額的借貸方搞錯,導(dǎo)致錯誤,一旦不發(fā)現(xiàn)就會直接影響后面所以的余額錯誤,在登記科目匯總表時也是一個細(xì)活,因為要先在草稿紙上計算出每十天各個科目借貸方發(fā)生額,要先試算平衡后才登記,所以工作量相當(dāng)大。因為每十天的科目是存在差異的,所以要一一檢查核對,不能缺少或多余。尤其在下旬12月21里到12月31日,包含了大量的結(jié)轉(zhuǎn)的記賬憑證,其涉及的數(shù)據(jù)相當(dāng)多,管理費(fèi)用有幾十
個明細(xì),一個也不能遺漏,這絕對是考驗會計細(xì)心的時候,所以我絲毫不敢掉以輕心,計算了三四遍確保完全正確后才填寫。
我覺得手工做賬完全是靠會計人員自己去檢查核對錯誤,不像電算化會計可以直接依靠軟件的功能進(jìn)行試算平衡來發(fā)現(xiàn)錯誤,所以這些過程是相當(dāng)復(fù)雜而又細(xì)致的,需要我們用十足的耐心和細(xì)心來對待。而且,會計人員是要求保證會計資料的真實性的,我剛開始填寫憑證時,發(fā)現(xiàn)錯誤總會習(xí)慣性的去描摹來改正錯誤。后來才知道,這犯了會計的大忌,切忌不可以對涂改,要用正確的方法進(jìn)行更正。這也讓我對會計真實性有了一個更加明確的認(rèn)識,它不僅要求我們不做假賬,還要求我們在賬頁上保證數(shù)據(jù)真實性,即使錯誤也要留有錯誤的痕跡。
平時我們只能紙上談兵,思維的認(rèn)識基本上只是局限于課本的范圍之內(nèi),這就導(dǎo)致我們對會計知識認(rèn)識的片面性,使得我們只知所以然,而不知其之所以然。這些都是十分有害的,其極大地限制了我們會計知識水平的提高。這將近三周的實訓(xùn)讓我對填制原始憑證,根據(jù)原始憑證填制記賬憑證等工作有了更進(jìn)一步的認(rèn)識,并在實際操作過程中找出自身存在的不足,對今后的會計學(xué)習(xí)有了一個更為明確的方向和目標(biāo)。
作為一名大三的學(xué)生,面對目前就業(yè)形勢的嚴(yán)峻,我常常會很關(guān)心會計以后到底就業(yè)前景如何,而忘了最根本的東西,就是學(xué)好基本的會計知識,只有知識學(xué)得扎實了,以后就算在再怎么嚴(yán)峻的形式下也會脫穎而出。我總感覺我還只是一名學(xué)生,一名只是學(xué)著會計學(xué)知識卻什么都不會的學(xué)生。在實訓(xùn)之前,當(dāng)我拿著一摞一摞的賬本的時候我既激動又高興,覺得自己就是一名會計了。實訓(xùn)之后,感受又深刻了一些,做會計,看似簡單,登帳而已,但卻有著很多學(xué)問。當(dāng)我把所有的疑惑弄清,拿著填滿的賬本,不僅是激動、高興,更多的是心酸之后的欣慰。這種收獲可能是永遠(yuǎn)也無法從書本上獲得的,只有自己動手做了,才會清楚其原理和步驟。所以,我始終覺得會計是一門實踐性很強(qiáng)的學(xué)科。如今,企業(yè)琳瑯滿目、數(shù)不勝數(shù)。每一個企業(yè),只要不是個體工商業(yè)戶,就都需要會計,因為每月都要做帳報表,并且要按照稅務(wù)要求的時間、格式和內(nèi)容上報,這就要求,會計人員必須要會計專業(yè)知識和稅務(wù)知識,當(dāng)今的會計,不是隨便拉個人就能干了的。會計人員,不能單純只會做帳、會報表,應(yīng)該全面提高自身素質(zhì),不但應(yīng)當(dāng)熟練掌握會計法和會計知識,還應(yīng)當(dāng)熟練掌握稅法和稅務(wù)知識,還要多向有經(jīng)驗的會計學(xué)習(xí),取人之長,補(bǔ)己之短,從實踐中積累豐富的工作經(jīng)驗,這樣才能遇事不驚,游刃有余。所以這對我們的要求更高。
無論何時何地,我覺得會計都需要不斷學(xué)習(xí)充實自己才會讓自己不被淘汰,我們還只是未出茅廬的大學(xué)生。如何在這時代的潮流站住腳,我覺得我以后要做的還有很多。
希望在接下來的日子里,學(xué)校能給我們更多的實訓(xùn)課,以便我們能不斷地查漏補(bǔ)缺,這樣更能幫助我們學(xué)好會計這門課,為以后走向社會奠定良好的基礎(chǔ)。當(dāng)然,我自身也要把握各種機(jī)會去鍛煉自己,不僅要會做賬,還要會分析,會運(yùn)用。
通過此次實訓(xùn),我深刻理解了什么是會計,會計不僅僅是一份職業(yè),更是一份細(xì)心+一份耐心+一份責(zé)任心=人生價值的詮釋。同時我也認(rèn)識到要做一個合格的會計工作者并非我以前想象的那么容易,最重要的還是細(xì)致嚴(yán)謹(jǐn)。社會不會要一個一無是處的人,所以我們要更多更快得從一個學(xué)生向工作者轉(zhuǎn)變。
第三篇:財務(wù)會計手工課設(shè)報告
武漢理工大學(xué)《財務(wù)會計》課程設(shè)計說明書
細(xì)節(jié)決定成敗,恒心鑄就未來
1課程設(shè)計目的及過程
1.1目的
財務(wù)會計的課程設(shè)計是為了加強(qiáng)我們的實踐能力,使得我們能真正的把實踐和理論結(jié)合起來,給動手機(jī)會少的在校大學(xué)生提供一個絕佳的機(jī)會,為以后的工作和實習(xí)積累經(jīng)驗。
1.2過程
我們從6月25日開始進(jìn)行為期兩周的財務(wù)會計課程設(shè)計,課程設(shè)計的內(nèi)容是根據(jù)藍(lán)夢有限責(zé)任公司2008年12月份全月的業(yè)務(wù)處理,不僅僅涉及當(dāng)月的每一筆業(yè)務(wù),還涉及到月末的結(jié)算和結(jié)轉(zhuǎn),加上全年年末的結(jié)算和結(jié)轉(zhuǎn)。
1.2.1啟用賬簿和審核原始憑證
業(yè)務(wù)處理首先要大致了解該公司的一般業(yè)務(wù),做到心中有數(shù)。然后啟用銀行存款庫存現(xiàn)金日記賬,設(shè)置各種明細(xì)賬以及總賬,并填寫明細(xì)賬和總賬的月初余額。公司的科目細(xì)分詳細(xì),但是也有需要補(bǔ)充之處,在這點(diǎn)上我們特別需要留意,因為沒有開設(shè)的科目是不能使用的。至于填寫月初余額是根據(jù)教材上上的上月月末余額編制的。
接下來要審核并填制原始憑證,原始憑證附在教材最后,一些原始憑證的內(nèi)容不完整,我們通過結(jié)合該公司的基本情況和一般業(yè)務(wù)來填制。
1.2.2填寫記賬憑證并登記日記賬
填寫記賬憑證是根據(jù)已經(jīng)完成的原始憑證,確定正確的會計分錄反映到記賬憑證上。記賬憑證時間、摘要、會計科目和金額是時刻在變的,所以就需要我們的精神一定要集中,心一定要細(xì),正所謂細(xì)心決定成敗。
日記賬需要逐日逐筆的登記,是一項看起來簡單,但又是很繁瑣的一項工作。它及時并正確的反映著科目的金額變化。
1.2.3根據(jù)記賬憑證登明細(xì)賬
根據(jù)記賬憑證登記之前設(shè)置的明細(xì)賬,明細(xì)賬涉及很多項目,所以編制時一定要細(xì)心,看清楚科目尤其重要。
1.2.4編制科目匯總表并根據(jù)科目匯總表登記總賬
科目匯總表需要處理每一個數(shù)字的計算和匯總,以便達(dá)到試算平衡。我們采取科目匯
武漢理工大學(xué)《財務(wù)會計》課程設(shè)計說明書
總表的方式,每間隔10天編制科目匯總表,并進(jìn)行的總賬登記。
1.2.5編制資產(chǎn)負(fù)債表、利潤表和現(xiàn)金流量表,并裝訂會計憑證
資產(chǎn)負(fù)債表、利潤表和現(xiàn)金流量表是非常重要的三張表格,反映公司的經(jīng)營情況。
2課程設(shè)計的認(rèn)識及體會
2.1認(rèn)識
開始對于財務(wù)會計課程設(shè)計是很期待的,因為我們需要熟悉會計學(xué)原理的基礎(chǔ)知識,把理論和實踐結(jié)合起來。這對我們這些整天面對課本上的知識的學(xué)生來說,是很好的提高我們的動手能力的方式。但是,在課程設(shè)計的過程中,我發(fā)現(xiàn)這是一項枯燥又繁瑣的工作。
第一個星期我們主要是根據(jù)企業(yè)的相關(guān)憑證編制記賬憑證以及明細(xì)賬、總賬等,接下來主要是資產(chǎn)負(fù)債表、利潤表、現(xiàn)金流量表和完成課程設(shè)計說明書。我們需要運(yùn)用已經(jīng)掌握的專業(yè)知識,在老師的指導(dǎo)下獨(dú)立進(jìn)行課程設(shè)計,主要是獨(dú)立完成原始憑證、記賬憑證的填制和審核,賬簿的設(shè)計與登記,成本計算,納稅申報以及相關(guān)的財務(wù)報表等會計核算的操作。
2.2體會
2.2.1基礎(chǔ)知識缺乏
雖然很多書本知識已經(jīng)學(xué)過,但是跟現(xiàn)實處理業(yè)務(wù)之間的相互聯(lián)系,相互掛鉤還是需要相當(dāng)?shù)氖炀毝取U驗椴粔蛄私夂褪煜だ碚摚瑢?dǎo)致了在實際的運(yùn)用中不能隨心所欲,所以才會導(dǎo)致很多錯誤。通過這次課程設(shè)計,我發(fā)現(xiàn)自己有很多知識上的缺乏和遺忘,或者說是知識上的一些跟實際運(yùn)用不能很好地銜接,深刻地體會到了作為一個會計的能力有待加強(qiáng)。
2.2.2實際操作的生疏
就像剛開始面對著實訓(xùn)時自己桌上的做賬用品,就有種無從下手的感覺,久久不敢下筆,生怕哪一步怕做錯,從而導(dǎo)致后邊的跟著錯,就一直停步不前。但后來通過填制原始憑證,根據(jù)原始憑證,填記帳憑證;填制科目匯總表,根據(jù)科目匯總表填總分類帳;根據(jù)記帳憑證填總分類帳和各種明細(xì)帳,現(xiàn)金日記帳,銀行日記帳等等。實際操作能力有了一定程度的提高。
從建賬,設(shè)置期初數(shù)額,按照當(dāng)月發(fā)生業(yè)務(wù)登記相關(guān)憑證,到根據(jù)憑證登記相關(guān)賬目和表單。整個過程連貫且透徹地訓(xùn)練我們手工做賬的能力。這次課程設(shè)計要求每間隔10天匯總一次賬務(wù),這樣可以很好地簡化匯總的工作復(fù)雜度,也可以及時地檢查有關(guān)業(yè)務(wù)的
武漢理工大學(xué)《財務(wù)會計》課程設(shè)計說明書
登記情況是否正確,不至于把匯總工作累積到最后來處理,不會出現(xiàn)過于重大的會計處理問題。
通過做分錄,填制憑證到制作賬本來鞏固實際操作技能。系統(tǒng)地練習(xí)企業(yè)會計核算的基本程序和具體方法,加強(qiáng)對所學(xué)專業(yè)理論知識的理解、實際操作的動手能力,提高運(yùn)用會計基本技能的水平,同時也是對所學(xué)專業(yè)知識的一個檢驗。并且通過實際操作,不僅使得個人更加熟練地掌握填制和審核原始憑證與記賬憑證,登記賬薄的會計工作技能和方法,而且對所學(xué)理論有一個較系統(tǒng)、完整的認(rèn)識,最終達(dá)到會計理論,會計實踐相結(jié)合的目的。
2.2.3心態(tài)問題的調(diào)整
會計本來就是煩瑣的工作。不可避免的會出現(xiàn)一些問題,關(guān)于業(yè)務(wù)的科目填寫,關(guān)于業(yè)務(wù)金額的計算,關(guān)于結(jié)轉(zhuǎn)科目選擇和金額計算的各項問題。這些都是常見的問題,也是做賬過程中需要注意的所在。
隨著這些工作的進(jìn)行,也會出現(xiàn)各種問題,在這些問題上我們都需要依靠自己的努力想辦法解決,不管是詢問指導(dǎo)老師也好,和同學(xué)討論研究也好,還是查找相關(guān)資料也好,都是需要通過自己的努力和研究才能解決的,不能總是放在一邊。這就需要我們一定要堅持,只有堅持我們才能獲得牢固的知識和寶貴的經(jīng)驗。
切不可因?qū)χ强菰餆o味的賬目和數(shù)字而心生煩悶、厭倦,從而愈錯愈煩,愈煩愈錯。要及時地調(diào)整自己的心態(tài),認(rèn)真、細(xì)心、耐心地去做,問題自然會迎刃而解。就如科目匯總表的編制。科目匯總表需要處理每一個數(shù)字的計算和匯總,以便達(dá)到試算平衡。有了記賬憑證,匯總的時候需要留意數(shù)字上的問題,特別是在明細(xì)賬的等級中,關(guān)系到原材料和生產(chǎn)成本上。由于抄寫和計算的誤差,很容易造成試算上不不平衡,而這些誤差通常會帶來各個不等數(shù)額的不等,對于檢查這些失誤帶來的試算不等又是很費(fèi)時費(fèi)力的工作。所以此時切忌粗心大意,馬虎了事,心浮氣躁,需要細(xì)致地計算每一個數(shù)據(jù),從而減輕工作量。
只要你用心地做,總會左右逢源。越做越覺樂趣,越做越起勁。梁啟超說過:凡職業(yè)都具有趣味的,只要你肯干下去,趣味自然會發(fā)生。因此,做賬、做任何事都一樣,需要有恒心、細(xì)心和毅力,那才會到達(dá)成功的彼岸!
這次財務(wù)會計課程設(shè)計中,我受益非淺。經(jīng)過這些天的手工記賬,使我的基礎(chǔ)會計知識在實際工作中得到了驗證,并具備了一定的基本實際操作能力。在取得實效的同時,我也在操作過程中發(fā)現(xiàn)了自身的許多不足:
1、基礎(chǔ)知識不夠扎實,熟練度有待加強(qiáng)。
2、不
武漢理工大學(xué)《財務(wù)會計》課程設(shè)計說明書
夠細(xì)心,看錯數(shù)字、登錯分錄或是遺漏業(yè)務(wù),導(dǎo)致核算結(jié)果出錯,引起不必要的麻煩。
3、心態(tài)調(diào)整不夠好,有些心浮氣躁,做賬需要自己堅持下去,有恒心,有毅力。
3.課程設(shè)計的總結(jié)
財務(wù)會計課程設(shè)計主要是為了提高我們的實際應(yīng)用水平。在課本上我們所學(xué)到的理論知識只是為我們的實際執(zhí)業(yè)注明框架、指明方向、提供相應(yīng)的方法論,真正的職業(yè)技巧是要我們從以后的實際工作中慢慢汲取的。
通過這次課程設(shè)計,我發(fā)現(xiàn)最大的一個所需具備的能力就是細(xì)心。填制憑證、登記賬簿本身是個較為死板不求靈活的工作,因此這項工作尤其考驗人的細(xì)心度。越是細(xì)心的人就越有效率,越是細(xì)心的人就越適合會計工作,課程設(shè)計不僅僅是培養(yǎng)我們的會計實際操作能力,更能訓(xùn)練一個人的細(xì)心程度。一個細(xì)心的人能夠更好地勝任各種工作,而在實際工作中,不管是哪一門,都更加需要一個細(xì)心的人才。
另外一項我們所要具備的能力就是恒心。也就是做任何一項工作我們都需要有恒心,不能朝三暮四,半途而廢。會計這一類的工作切忌心浮氣躁,需要我們在細(xì)心的基礎(chǔ)上堅持不懈。前一部分的工作是后一部分工作的基礎(chǔ)和依據(jù),如果不堅持下來,工作永遠(yuǎn)都不能完成。
財務(wù)會計課程設(shè)計中,我們鞏固了之前學(xué)習(xí)的理論知識,掌握了一地的會計核算實際操作能力,并在細(xì)心度和恒心度上有了顯著的提高,然我們有了更扎實的基礎(chǔ)和更好的心態(tài)去面對以后我們要遇到的問題。
通過課程設(shè)計,我們可以了解會計內(nèi)部控制的基本要求,掌握從理論到實踐的轉(zhuǎn)化過程;熟練掌握會計操作的基本技能;將會計專業(yè)理論知識和專業(yè)實踐,有機(jī)的結(jié)合起來,開闊我們的視野,增進(jìn)我們對企業(yè)實踐運(yùn)作情況的認(rèn)識,找出自身存在的不足,明確將來的的方向和目標(biāo),為我們畢業(yè)走上工作崗位奠定堅實的基礎(chǔ)。
時刻銘記著細(xì)節(jié)決定成敗,恒心鑄就未來。
第四篇:ERP課設(shè)報告
《企業(yè)資源計劃ERP》
課程設(shè)計
題目:關(guān)于企業(yè)實施ERP對人力資源管理影響的探究
班 級 信管 092 專 業(yè) 信息管理和信息系統(tǒng) 學(xué) 號 3090561053 姓 名 竇 婷 地 點(diǎn) 經(jīng)濟(jì)與管理學(xué)院實驗室
指導(dǎo)老師 朱宗乾
設(shè)計日期 2012-6-24 — 2012-6-29
2012 年 春季 學(xué)期
目
錄 研究背景、研究意義及研究目標(biāo)?????????????????? 3 1.1 設(shè)計背景??????????????????????????? 3 1.2 設(shè)計意義及目標(biāo)???????????????????????? 3 2 設(shè)計內(nèi)容???????????????????????????? 4 2.1 實施ERP的風(fēng)險識別?????????????????????? 4 2.2 人在ERP系統(tǒng)中居主導(dǎo)地位??????????????????? 4 2.2.1 ERP系統(tǒng)本質(zhì)上是一個以人為主的動態(tài)開放系統(tǒng)?????????4 2.2.2在ERP實施和應(yīng)用過程中需要大量的人力資源管理工作??????5 2.2.3 ERP對人力資源管理提出了更高的要求???????????? 5 2.3人力資源模塊設(shè)計??????????????????????? 6 2.3.1 組織管理?????????????????????????6 2.3.2人事管理??????????????????????????7 2.3.3 招聘管理?????????????????????????7 2.3.4 考勤管理?????????????????????????7 2.3.5 薪資核算?????????????????????????7 2.3.6 培訓(xùn)管理?????????????????????????7 2.3.7 員工管理?????????????????????????8
2.3.7.1制定職務(wù)模型??????????????????????8 2.3.7.2 進(jìn)行人員成本分析????????????????????8 2.3.7.3 績效考核????????????????????????8 2.4 ERP成功實施的人力資源管理條件與對應(yīng)措施 ???????????8 2.4.1 企業(yè)有穩(wěn)定的人力資源管理體系??????????????? 8 2.4.2全體員工的關(guān)注和支持??????????????????? 9 2.4.3 堅持人本管理,重視心理契約???????????????? 9 2.4.4 注重長期規(guī)劃???????????????????????9 3 課程設(shè)計心得體會????????????????????????10 4 參考文獻(xiàn)????????????????????????????10
1、研究背景、意義及目標(biāo) 1.
1、研究背景
企業(yè)實施ERP系統(tǒng),意味著給會企業(yè)帶來一場大規(guī)模的、深刻的變革。人力資源是企業(yè)的重要資源之一,同樣的人力資源管理也是ERP系統(tǒng)中的一個重要組成部分。企業(yè)實施ERP,是指建立在信息技術(shù)基礎(chǔ)上,以系統(tǒng)化的管理思想,為企業(yè)決策層及員工提供決策運(yùn)行手段的管理平臺。ERP系統(tǒng)集信息技術(shù)與先進(jìn)的管理思想于一身,成為現(xiàn)代企業(yè)在信息時代生存、發(fā)展的基本運(yùn)行模式。可以從管理思想、軟件產(chǎn)品、管理系統(tǒng)三個層次給出它的定義:一是在MRPⅡ(Manufacturing Resources Planning)基礎(chǔ)上進(jìn)一步發(fā)展而成的面向供應(yīng)鏈(Supply Chain)的管理思想;二是綜合應(yīng)用了客戶機(jī)服務(wù)器體系、關(guān)系數(shù)據(jù)庫結(jié)構(gòu)、面向?qū)ο蠹夹g(shù),圖形用戶界面,網(wǎng)絡(luò)通訊等信息技術(shù)成果,以ERP管理思想為靈魂的軟件產(chǎn)品;三是整合了企業(yè)管理理念、業(yè)務(wù)流程、人力物力、計算機(jī)硬件和軟件于一體的企業(yè)資源管理系統(tǒng)。企業(yè)資源計劃系統(tǒng)是企業(yè)進(jìn)行管理創(chuàng)新提高管理水平,實現(xiàn)企業(yè)管理功能整體優(yōu)化的重要途徑。
以往ERP在企業(yè)管理中的發(fā)展進(jìn)程,始終是以生產(chǎn)制造及銷售過程為中心的。而作為企業(yè)資源:人、財、物之首要的人力資源,長期以來一直作為一個孤立的系統(tǒng)獨(dú)立于企業(yè)核心管理系統(tǒng)之外。在競爭日益激烈的今天,如何吸引優(yōu)秀人才、合理安排人力資源、降低人員成本、提高企業(yè)競爭力。已經(jīng)成為企業(yè)管理者首先需要面對的一個問題。成功實施ERP可以使庫存下降、停工待料減少、成本降低、生產(chǎn)能力提高,從而帶來巨大經(jīng)濟(jì)效益,這使很多企業(yè)對ERP產(chǎn)生了濃厚興趣。在知識經(jīng)濟(jì)時代,落后的信息技術(shù)意味著將被市場淘汰,企業(yè)要想長久地發(fā)展,必須實施ERP成為不爭的事實。因此,如何將ERP與企業(yè)的內(nèi)部條件和外部環(huán)境有機(jī)地結(jié)合起來,是ERP成功的首要因素,而其中人力資源問題首當(dāng)其沖。
1.2研究意義及目標(biāo)
企業(yè)實施ERP系統(tǒng),可以實現(xiàn)管理方式的重大變革,進(jìn)一步體現(xiàn)現(xiàn)代企業(yè)流程科學(xué)化、管理精細(xì)化、信息集成化的管理思想。它往往意味著,公司將不再需要原有數(shù)量的人員來完成工作,但是他們必須飛躍性地在技術(shù)上更加嫻熟,了解更多的經(jīng)營知識,必須搞清楚如何借助于新系統(tǒng)來完成手頭上的工作任務(wù),必須 3
要知道他們對ERP所做的一舉一動會對企業(yè)中的其他部門產(chǎn)生什么影響,還必須去學(xué)習(xí)新型的分析方法及申報手段。總之,他們必須學(xué)會在一個完全不同的、更加復(fù)雜的環(huán)境中生存。任何改革都會面對來自雇員的抵抗,抵抗變化是人類的本性。這種抵抗可能是對新系統(tǒng)及其優(yōu)勢的忽視,對失業(yè)或?qū)π录夹g(shù)的懼怕(對自身被淘汰的懼怕)等等。如果這些擔(dān)心和焦慮不被合理地提前解決,肯定會給新系統(tǒng)的實施帶來災(zāi)難。所以研究企業(yè)實施ERP對于人力資源的研究對于企業(yè)的生存及長遠(yuǎn)發(fā)展意義重大。
企業(yè)資源計劃系統(tǒng)(ERP)以其巨大的潛在經(jīng)濟(jì)效益在國內(nèi)外得到廣泛的應(yīng)用,人力資源管理系統(tǒng)功能的完善和發(fā)揮對ERP的成功起舉足輕重的作用。研究企業(yè)實施ERP對人力資源管理的影響,就是要通過了解這些影響,提前作出應(yīng)對措施,來避免因?qū)嵤〦RP而導(dǎo)致企業(yè)業(yè)績下滑、組織機(jī)構(gòu)渙散、發(fā)展?fàn)顩r變差等不良狀況,從而幫助企業(yè)實現(xiàn)業(yè)績增加、組織機(jī)構(gòu)緊密有序、更好更快地發(fā)展。
2、研究內(nèi)容
2.1 實施ERP的風(fēng)險識別
企業(yè)人力資源風(fēng)險管理始于風(fēng)險識別。ERP系統(tǒng)是面向整個企業(yè)的,它需要所有部門和使用者的支持,而不僅僅是高層管理人員的認(rèn)同和支持。因此,使各個部門都能認(rèn)同ERP是系統(tǒng)協(xié)調(diào)員所面臨的最困難的任務(wù)之一。ERP的實施需要許多人的通力合作——軟件經(jīng)銷商、外部的顧問、內(nèi)部的實施小組、終端操作人員以及公司的管理層。一個典型的實施小組的結(jié)構(gòu)為:最頂端的是執(zhí)行委員會(負(fù)責(zé)人是CIO或COO,或者是其他高層管理人員),而后依次是項目管理小組、技術(shù)支持小組和管理支持小組、工作組,最底端是普通員工。所以任何一個環(huán)節(jié)出現(xiàn)問題,ERP 的實施都會受到影響。所以針對人力資源管理來說,必須把整個ERP實施過程所涉及的所有人員都協(xié)調(diào)好,使之各司其職,ERP的成功實施才有保障。
2.2 人在ERP系統(tǒng)中居主導(dǎo)地位
2.2.1 ERP系統(tǒng)本質(zhì)上是一個以人為主的動態(tài)開放系統(tǒng)
ERP系統(tǒng)是一個以人為主的人機(jī)系統(tǒng),人在系統(tǒng)中發(fā)揮決策主導(dǎo)的作用。人是ERP系統(tǒng)的輸入端,是ERP系統(tǒng)要管理的重要資源,同時人又是其它企業(yè)資源 4 的運(yùn)籌整合與使用者。ERP是一種處理邏輯、一種方法論、一種管理哲學(xué),它為企業(yè)管理人員提供了一套科學(xué)有效的管理工具,只有人們真正地理解了ERP的思想和邏輯,只有最終用戶面對企業(yè)實際生產(chǎn)中的問題,加強(qiáng)相應(yīng)的采購管理、庫存管理、財務(wù)管理、生產(chǎn)管理、人力資源管理、銷售管理等才能使ERP創(chuàng)造出明顯的效益,使企業(yè)更快地收回投入ERP系統(tǒng)的資金,產(chǎn)生更大的效益和更長遠(yuǎn)的發(fā)展。ERP系統(tǒng)同時也是一個動態(tài)的系統(tǒng),首先系統(tǒng)賴以運(yùn)行的數(shù)據(jù)是動態(tài)的,作為系統(tǒng)重要組成部分的人一一管理人員和操作人員,也是動態(tài)的。管理人員和操作人員的創(chuàng)造性和規(guī)范性將決定系統(tǒng)的運(yùn)行效果。再者ERP系統(tǒng)更是一個開放的系統(tǒng),系統(tǒng)必須適應(yīng)企業(yè)并促使企業(yè)適應(yīng)外部環(huán)境,反過來外部環(huán)境是不斷變化的,企業(yè)要適應(yīng)變化,作為企業(yè)資源計劃系統(tǒng)的ERP也必須變化,它不但不能成為束縛企業(yè)的因素,而且要能夠敏捷地使企業(yè)變化,促使企業(yè)更快更長遠(yuǎn)地發(fā)展。因此ERP不但對軟件系統(tǒng)有較高要求,而且要求管理人員和操作人員要不斷進(jìn)取,快速適應(yīng)企業(yè)的不斷變革和新舊系統(tǒng)的切換,推動系統(tǒng)應(yīng)用不斷向前發(fā)展,從而推動企業(yè)不斷發(fā)展。
2.2.2在ERP實施和應(yīng)用過程中需要大量的人力資源管理工作
實施ERP必須和企業(yè)業(yè)務(wù)流程重組(BPR)結(jié)合起來,沒有BPR實施ERP只是換湯不換藥,只是將原有的手工系統(tǒng)換成了一個相對快速的計算機(jī)系統(tǒng),遠(yuǎn)遠(yuǎn)達(dá)不到企業(yè)實施ERP的目的。在BPR過程中要對企業(yè)的整個業(yè)務(wù)流程進(jìn)行全面的審視,根據(jù)公司戰(zhàn)略,重組業(yè)務(wù)流程,然后在此基礎(chǔ)上進(jìn)行組織結(jié)構(gòu)的調(diào)整、人力資源結(jié)構(gòu)的調(diào)整,進(jìn)而是崗位職責(zé)的劃分,最后是工作分析與績效考核。在這個過程中,需要耗費(fèi)相當(dāng)大的人力資源,而人力資源管理工作的成效將直接決定BPR與ERP的程度和效果,ERP系統(tǒng)的實施是一個管理項目而非僅僅是一個IT項目,員工適應(yīng)新的工作流程和觀念的轉(zhuǎn)變都需要大量持久的教育和培訓(xùn),需要耗費(fèi)大量的人力物力以及財力,因此人力資源的管理在ERP的成功實施過程中占有舉足輕重的作用。
2.2.3 ERP對人力資源管理提出了更高的要求
ERP項目是一個企業(yè)管理系統(tǒng)工程,努力提高企業(yè)全體員工的知識水平,充分調(diào)動和發(fā)揮人的主動性、積極性和創(chuàng)造性,積極營造人與企業(yè)一起成長、共同發(fā)展的良好環(huán)境是現(xiàn)代企業(yè)管理的新理論,也是企業(yè)生存與發(fā)展之本。應(yīng)用ERP 5
要求企業(yè)加強(qiáng)以人為本的管理工作,建立相應(yīng)的競爭機(jī)制、激勵機(jī)制和約束機(jī)制,把應(yīng)用ERP與制定企業(yè)經(jīng)營發(fā)展戰(zhàn)略和全體員工的業(yè)績考核有機(jī)地結(jié)合起來,促使員工能感受外部壓力,從而自覺地投入到ERP應(yīng)用與心得工作機(jī)制中來。
人力資源管理的職能之一就是幫助業(yè)務(wù)人員提升解決問題的能力,高效、快速地對企業(yè)各個層次的員工進(jìn)行管理。應(yīng)用ERP要求企業(yè)通過各種形式,不同程度地使全體員工接受新思想、新方法和新機(jī)制、新系統(tǒng)的培訓(xùn)教育,以使他們適應(yīng)系統(tǒng)變化,促使系統(tǒng)應(yīng)用深入和組織架構(gòu)的調(diào)整。為適應(yīng)ERP系統(tǒng)帶來的改變,企業(yè)必須在組織架構(gòu)和部門職責(zé)上做出相應(yīng)的調(diào)整,在改革中會涉及到部門職能的重新劃分、崗位職責(zé)的調(diào)整、業(yè)務(wù)流程的改變、權(quán)力利益的重新分配等復(fù)雜問題,如果企業(yè)不能妥當(dāng)?shù)靥幚磉@些問題,將會使企業(yè)的處于不穩(wěn)定的狀態(tài),這對于企業(yè)的張遠(yuǎn)發(fā)展是極其不利的。由于使用計算機(jī)系統(tǒng)的人員層次結(jié)構(gòu)有了很大的變化,原來是管理人員重復(fù)勞動,現(xiàn)在管理人員把主要精力放到更具創(chuàng)造性的工作上來,這樣就能為企業(yè)創(chuàng)造出更多的利潤,員工自身也能受益,達(dá)到員工與企業(yè)共同發(fā)展的雙贏局面。企業(yè)要進(jìn)行新的工作分析,以此為根據(jù)調(diào)整人力資源目標(biāo),對企業(yè)員工制定相應(yīng)的引進(jìn)、提拔、培訓(xùn)等計劃。
由于企業(yè)組織架構(gòu)、業(yè)務(wù)流程和人力資源結(jié)構(gòu)的調(diào)整,企業(yè)必須對業(yè)績考評體系進(jìn)行相應(yīng)的調(diào)整,以適應(yīng)新的崗位職責(zé)和業(yè)務(wù)要求。能否順利地將原有的業(yè)績考評體系轉(zhuǎn)變到適應(yīng)新系統(tǒng)的業(yè)績考評體系是對人力資源管理部門的一個考驗,也是企業(yè)實施ERP后人力資源管理成敗的關(guān)鍵所在。2.3人力資源模塊設(shè)計
目前ERP中的人力資源系統(tǒng)功能已經(jīng)從單一的工資核算、人事管理發(fā)展到可以為企業(yè)的決策提供幫助的全方位解決方案。這些領(lǐng)域包括人力資源規(guī)劃、員工考核、勞動力安排、時間管理、招聘管理、員工薪資核算、培訓(xùn)計劃和差旅管理等。并同ERP中的財務(wù)、生產(chǎn)等子系統(tǒng)一起組成高效的、具有高度集成性的企業(yè)資源管理系統(tǒng)。
2.3.1 組織管理。該模塊清晰的顯示組織機(jī)構(gòu)圖,組織結(jié)構(gòu)、職能、成立日期、工作范疇一目了然,便于管理。
2.3.2人事管理。該模塊記錄了公司所有員工的檔案,便于領(lǐng)導(dǎo)對員工進(jìn)行統(tǒng)籌管理,只有最高領(lǐng)導(dǎo)有權(quán)使用本功能。領(lǐng)導(dǎo)可以從不同角度對員工進(jìn)行分類 6
查看,用其所長,避其所短,充分發(fā)揮每一位員工的聰明才智。從而達(dá)到最佳的用人效果。
2.3.3 招聘管理。人才是企業(yè)最重要的資源,擁有優(yōu)秀的人才才能保證企業(yè)獲得持久的競爭力。招聘系統(tǒng)一般從以下幾方面提供支持:一是通過信息取舍,優(yōu)化招聘過程,減少業(yè)務(wù)工作量;二是通過信息比對,對招聘成本進(jìn)行歸集、分析,從而降低招聘成本;三是為選擇聘用人才的崗位提供輔助信息。并有效地幫助企業(yè)進(jìn)行人力資源的挖掘。
2.3.4 考勤管理。一則能通過權(quán)限分配由最終用戶進(jìn)行考勤輸入,由關(guān)鍵用戶進(jìn)行考勤校隊及工資核算:二則與時間管理壹接集成,方便查看及管理。同時,根據(jù)所在國或當(dāng)?shù)氐娜諝v,靈活安排企業(yè)的運(yùn)作時間以及員工的作息時間表。對員工加班、作業(yè)輪班、員工假期、以及員工作業(yè)頂替等作出一整套周密的編排。2.3.5 薪資核算。一則能根據(jù)公司跨地區(qū)、跨部門、跨工種的不同薪資結(jié)構(gòu)及處理流程制定與之相適應(yīng)的薪資核算方法:二則與時間管理壹接集成,能夠及時更新,對員工的薪資核算動態(tài)化;三則通過和其他塊的集成.自動根據(jù)要求調(diào)整薪資結(jié)構(gòu)及數(shù)據(jù),履行“回算功能”。當(dāng)薪資核算過程結(jié)束之后.員工的有關(guān)上一薪核算期的主數(shù)據(jù)發(fā)生變化,在下一薪核算期內(nèi),回算功能會自動觸發(fā),進(jìn)行修正。工作管理。運(yùn)用遠(yuǎn)端考勤系統(tǒng),可以將員工的實際出勤狀況記錄到主系統(tǒng)中。并把與員工薪資、獎金有關(guān)的數(shù)據(jù)導(dǎo)入薪資系統(tǒng)和成本核算中。
2.3.6培訓(xùn)管理。從員工技術(shù)現(xiàn)狀到培訓(xùn)計劃、實施、評審、完成形成一整套完整的管理體系。實現(xiàn)培訓(xùn)管理程序化、科學(xué)化、數(shù)字化。根據(jù)擔(dān)任該職位員工的資格和條件,系統(tǒng)會提出針對本員工的一系列相應(yīng)培訓(xùn)設(shè)計方案,如遇機(jī)構(gòu)改組或職位變遷,系統(tǒng)會及時提出對應(yīng)的一系列的培訓(xùn)變動。
2.3.7員工管理。
2.3.7.1制定職務(wù)模型。包括職位要求、升遷路徑和培訓(xùn)計劃,根據(jù)擔(dān)任該職位員工的資格和條件,系統(tǒng)會提出針對本員工的一系列相應(yīng)培訓(xùn)設(shè)計方案,如遇機(jī)構(gòu)改組或職位變遷,系統(tǒng)會及時提出對應(yīng)的一系列的職位變動或升遷建議。
2.3.7.2 進(jìn)行人員成本分析。可以對過去、現(xiàn)在、將來的人員成本做出細(xì)節(jié)性分析及總評性分析,在此基礎(chǔ)上。對相應(yīng)的成本做出數(shù)據(jù)化升降趨勢預(yù)測。并 7
通過ERP集成環(huán)境,為企業(yè)成本分析提供依據(jù)。對于企業(yè)人員、組織結(jié)構(gòu)編制的多種方案.進(jìn)行模擬比較和運(yùn)用分析,并輔之以圖形的直觀評估,輔助管理層做出最終決策。
2.3.7.3績效考核。為激發(fā)員工工作積極性、保留優(yōu)秀的員工而建立的考核機(jī)制,為高效員工創(chuàng)建晉升機(jī)會,恰當(dāng)?shù)男匠昙羁梢宰寙T工個盡心盡力地工作,提高工作效率、不斷創(chuàng)新。.4 ERP成功實施的人力資源管理條件與對應(yīng)措施
人力資源管理信息化是ERP實施后企業(yè)人力資源管理的主要方式,該過程以先進(jìn)的電子信息技術(shù)為手段,以軟件系統(tǒng)為平臺實現(xiàn)低成本、高效率、全員共同參與管理過程。實現(xiàn)人力資源戰(zhàn)略地位的全面、開放的人力資源管理新模式。人力資源信息化作為知識經(jīng)濟(jì)時代的產(chǎn)物。在以ERP技術(shù)為平臺基礎(chǔ)上,它的需要企業(yè)具備以下幾個條件:
2.4.1 企業(yè)有穩(wěn)定的人力資源管理體系。企業(yè)需要有扎實穩(wěn)定的管理體系,保證各項命令都能認(rèn)真貫徹執(zhí)行,只有這樣才能讓每位員工在企業(yè)里安心工作并因才使用。促進(jìn)企業(yè)不斷成長。在這樣的前提下可以考慮更進(jìn)一步的信息化。2.2 企業(yè)人力資源管理人員應(yīng)具備相當(dāng)?shù)臉I(yè)務(wù)水準(zhǔn)與操作技能。既要有人力資源開發(fā)與管理的專業(yè)知識和實務(wù)經(jīng)驗,又同時具備ERP系統(tǒng)的操作技能,即復(fù)合型人才。人力資源信息化要求管理人員遵循一定的規(guī)范。如實做好對工作步驟和流程的記錄工作。
2.4.2全體員工的關(guān)注和支持。人力資源管理信息化不只是人力資源部門的事情.需要生產(chǎn)、研發(fā)、財務(wù)等部門的協(xié)助和配合。作為企業(yè)領(lǐng)導(dǎo)者.要以發(fā)展的眼光看到它能給企業(yè)未來壯大集聚的巨大效益,積極給于支持.加大資金投入.配備合適人員。對于企業(yè)其他員工。也要充分認(rèn)識到信息化給自己帶來的實惠。通力配合人力資源部門信息化改革。人力資源管理軟件的導(dǎo)入及運(yùn)用無疑給企業(yè)帶來了前所未有的便利與效率,但是管理畢竟是出自實踐的,如何將軟件和企業(yè)自身管理調(diào)度之特點(diǎn)尤其是自身人力資源管理結(jié)構(gòu)及流程恰當(dāng)結(jié)合起來。最大限度地發(fā)揮其功能,這才是解決問題的重心所在。
2.4.3 堅持人本管理,重視心理契約。“以人為本”的管理思想不僅僅是傳統(tǒng)管理所需的,既是企業(yè)實施人力資源管理信息化,這一思想仍要被重視.畢竟 8
再好的機(jī)器也要靠人去操作。管理軟件是“一把手”。人性管理也是“一把手”,一定要兩只手一起抓,只有這樣,才能使企業(yè)更快地適應(yīng)信息化,提高人力資源管理的工作績效。心理契約是靠溝通、信旗、承諾、感情聯(lián)系來實現(xiàn)的,基于國際互聯(lián)網(wǎng)的在不確定環(huán)境下的柔性溝通將成為未來組織的發(fā)展方向,因此企業(yè)實施人力資源管理信息化是一項改革與挑戰(zhàn)。如果不能合理有效的與員工進(jìn)行溝通,則有可能會破壞他們的心理契約,進(jìn)而導(dǎo)致滿意率下降、忠誠度下降,影響企業(yè)的績效。
2.4.4 注重長期規(guī)劃。實現(xiàn)持續(xù)發(fā)展。很多企業(yè)在導(dǎo)人人力資源管理信息化后往往產(chǎn)生一勞永逸的思想。忽視后期規(guī)劃和發(fā)展。其實成功的人力資源管理信息化建設(shè)是需要長期給予關(guān)注和規(guī)劃的。只有審時度勢地不斷改進(jìn)它的工作,才有可能將它對企業(yè)潛移默化的影響轉(zhuǎn)化成持續(xù)的經(jīng)濟(jì)效益。ERP系統(tǒng)注重企業(yè)管理的全面性、系統(tǒng)性,重視企業(yè)與外界的關(guān)系,支持全球化經(jīng)營等,同時ERP還能使企業(yè)以更低的成本為客戶提供更多的服務(wù)。成功地選擇和實施ERP可以優(yōu)化企業(yè)的業(yè)務(wù)流程,改善數(shù)據(jù)信息系統(tǒng),有效地提高企業(yè)的管理、工作及設(shè)備等效率,實現(xiàn)快速信息傳遞與共享,從而達(dá)到管理水平的全面提高,使企業(yè)活力及競爭力加強(qiáng)。
3、課程設(shè)計心得體會
人力資源管理在信息化、科技化的今天越來越要求快速高效的管理,開發(fā)適合企業(yè)需要的人力資源管理系統(tǒng)已是非常重要的工作。而ERP系統(tǒng)的實施注定要對企業(yè)的各個管理部門進(jìn)行一次深入的變革,人力資源作為企業(yè)最最重要的資源之一,其管理理念當(dāng)然也要隨之變化。
首先要對ERP實施下的人力資源風(fēng)險進(jìn)行分析,只有清楚地了解了風(fēng)險,才能懂得如何更好地避免風(fēng)險,從而為企業(yè)避免損失。
其次,企業(yè)要將傳統(tǒng)的人力資源管理模式信息化,企業(yè)實施ERP就是一個實現(xiàn)信息化管理的過程,因此人力資源管理也要隨之信息化,才能使整個ERP系統(tǒng)高度集成、高度信息化,實現(xiàn)更高效和快速的管理。
最后,要對原有的人力資源模塊進(jìn)行改革和重新設(shè)計,設(shè)計出適應(yīng)ERP系統(tǒng)實施的新模塊,為企業(yè)成功實施ERP奠定堅實的基礎(chǔ)。在ERP運(yùn)行的過程中還要隨著ERP系統(tǒng)的改變而迅速作出響應(yīng),從而保證企業(yè)能夠快速適應(yīng)市場變化,保 9
證企業(yè)更好地、長遠(yuǎn)地發(fā)展。
在課程設(shè)計過程中我查閱了相關(guān)資料,對原有的ERP知識有了更加透徹的理解。同時對ERP實施下的人力資源管理業(yè)有了一定的認(rèn)識。當(dāng)然,可能我的許多認(rèn)識和理解可能還不是很成熟甚至是錯誤的,希望老師能予以批評指正,幫助我更好地提高。
4、參考文獻(xiàn)
[1]賀軍.ERP-HR系統(tǒng)在人力資源信息化建設(shè)中的應(yīng)用【J】.湖南電力,2007,27(1):11-14.
[2]陳啟申.ERP—從企業(yè)內(nèi)部集成起步(第二版)【M】.電子工業(yè)出版社2012 [3]池續(xù)航.對ERP實施現(xiàn)狀的思考【N】.中國計算機(jī)報,2000—10—05. [4]楊體仁,祁光華.勞動與人力資源管理總覽【M】.北京:中國人民大學(xué)出版社,1999.
[5]李嚴(yán)鋒.對ERP中人力資源管理的思考【J】.云南財貿(mào)學(xué)院學(xué)報,2010(5). [6]黃燃東.ERP/MRPII環(huán)境下的人力資源管理【J】.企業(yè)管理,2001.(4):94.
[7] [荷] 諾伯特·韋爾伯.成功的ERP項目實施[M].北京:機(jī)械工業(yè)出版社,2003.
第五篇:數(shù)據(jù)結(jié)構(gòu)課設(shè)報告
華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
課程設(shè)計報告
題目:華科校園導(dǎo)航
課程名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 專業(yè)班級: 學(xué)
號:
姓
名: 指導(dǎo)教師: 報告日期:
計算機(jī)科學(xué)與技術(shù)學(xué)院
華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
任務(wù)書
數(shù)據(jù)結(jié)構(gòu)是計算機(jī)科學(xué)技術(shù)與信息安全等專業(yè)的一門重要專業(yè)基礎(chǔ)課,牢固掌握數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)知識,熟練地運(yùn)用數(shù)據(jù)結(jié)構(gòu)的思想與技術(shù)方法解決實際應(yīng)用問題是是本課程學(xué)習(xí)的基本任務(wù)與目標(biāo)。而課程設(shè)計是實現(xiàn)這一學(xué)習(xí)目標(biāo)的重要環(huán)節(jié)和組成部分。通過課程設(shè)計的訓(xùn)練,使學(xué)生加深對數(shù)據(jù)結(jié)構(gòu)知識的理解,牢固掌握其應(yīng)用方法,并合理靈活地解決一定實際問題,增強(qiáng)和提高綜合分析問題與解決問題的能力。
設(shè)計題目
華科地圖導(dǎo)航系統(tǒng)。設(shè)計目的
掌握圖結(jié)構(gòu)的物理存儲結(jié)構(gòu)、基本算法及其算法在相關(guān)領(lǐng)域中的應(yīng)用。
設(shè)計內(nèi)容
華中科技大學(xué)(Huazhong University of Science and Technology),簡稱華中大,坐落于湖北省武漢市,學(xué)校面積7000余畝。華科大校園具有典型的工科院校特征,道路筆直,建筑面積方方正正,這為構(gòu)建電子地圖提供了極大的便利。本次課程設(shè)計要求以華中科技大學(xué)為背景,設(shè)計一個簡單的華科地圖導(dǎo)航程序,可以方便的為用戶提供搜索、導(dǎo)航等功能。
設(shè)計要求
基本要求:
1.輸入地點(diǎn)名,可以在地圖中以一定標(biāo)記標(biāo)示出地點(diǎn)所在的位置 2.鼠標(biāo)移動到指定建筑處顯示建筑名稱
3.輸入或點(diǎn)擊起點(diǎn)和終點(diǎn),找出最短的路徑,并在圖上描出路徑,路徑不能脫離道路
4.輸入起點(diǎn),輸入特定的地點(diǎn),如食堂,超市能夠找到最近的兩到三個 5.地點(diǎn)至少要包括清單中所列的位置 實驗提示:
1.將每個十字路口或特定建筑看作節(jié)點(diǎn),構(gòu)建圖模型,兩個節(jié)點(diǎn)的邊即是一個路段。對于某些節(jié)點(diǎn),可能具有特定的意義,例如“圖書館”,可以為其設(shè)置一個名稱;而對于大多數(shù)節(jié)點(diǎn),例如普通路口,可能并不需要名稱,只是用來構(gòu)建圖模型的一個節(jié)點(diǎn)。信息的錄入可能需要人為輸入,需要編寫輔助程序。輔助程序可以如下構(gòu)造:
程序首先載入一張圖片并顯示。程序具有多個文本框,當(dāng)點(diǎn)擊圖片上
I 華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
特定點(diǎn)時,獲取該點(diǎn)的坐標(biāo),第一個文本框顯示該點(diǎn)的圖像坐標(biāo),第二個文本框可以輸入地點(diǎn)名,第三個文本框用來輸入節(jié)點(diǎn)編號,剩下的文本框用來輸入直接相鄰的節(jié)點(diǎn)編號或者節(jié)點(diǎn)的屬性。點(diǎn)擊“確認(rèn)”后可以將信息保存到磁盤。這樣可以實現(xiàn)坐標(biāo)、節(jié)點(diǎn)編號和位置名稱的綁定,為實驗構(gòu)圖采集數(shù)據(jù)。
2.特定建筑只需考慮建筑大門所對應(yīng)的路段上的一點(diǎn)。例如“圖書館”建 筑,可認(rèn)為“圖書館”位于圖書館大門和學(xué)校道路相接處,簡化處理。當(dāng)鼠標(biāo)移動到“圖書館”附近時,找到距離最近的具有名稱的節(jié)點(diǎn)顯示 即可。
3.對于存在折線的路段,將其看作多段處理;對于細(xì)碎的彎折路線,當(dāng)作 直線簡化處理。
參考文獻(xiàn)
[1] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版).北京: 清華大學(xué)出版社,1997 [2] 王曉東.計算機(jī)算法設(shè)計與分析.北京: 電子工業(yè)出版社, 2007 [3] 嚴(yán)蔚敏,吳偉民,米寧.數(shù)據(jù)結(jié)構(gòu)題集(C語言版).北京: 清華大學(xué)出版社,1999 [4] Elliot B.Koffman and Paul A.T.Wolfgang..Objects, Abstraction, Data Structures and Design: Using C++.October 2005, ?2006
II華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
目錄
任務(wù)書.............................................................................................................................I 1 系統(tǒng)需求分析與總體設(shè)計........................................................................................1 1.1系統(tǒng)需求分析.................................................................................................1 1.2系統(tǒng)總體設(shè)計.................................................................................................1 2 系統(tǒng)詳細(xì)設(shè)計............................................................................................................2 2.1 有關(guān)數(shù)據(jù)結(jié)構(gòu)的定義....................................................................................2 2.2 主要算法設(shè)計................................................................................................3 3 系統(tǒng)實現(xiàn)與測試........................................................................................................4 3.1 系統(tǒng)實現(xiàn)........................................................................................................4 3.2 系統(tǒng)測試........................................................................................................6 4 總結(jié)與展望..............................................................................................................13 4.1 全文總結(jié)......................................................................................................13 4.1 工作展望......................................................................................................13 5 體會..........................................................................................................................15 參考文獻(xiàn)......................................................................................................................16 附錄..............................................................................................................................17
華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告 系統(tǒng)需求分析與總體設(shè)計
1.1系統(tǒng)需求分析
華中科技大學(xué)(Huazhong University of Science and Technology),簡稱華中大,坐落于湖北省武漢市,學(xué)校面積7000余畝。華科大校園具有典型的工科院校特征,道路筆直,建筑面積方方正正,這為構(gòu)建電子地圖提供了極大的便利。本次課程設(shè)計以華中科技大學(xué)為背景,設(shè)計一個簡單的華科校園地圖導(dǎo)航程序,可以方便的為用戶提供搜索、導(dǎo)航等功能。該系統(tǒng)的具體的功能為:
1.輸入任意地點(diǎn)名,可以在地圖中以一定標(biāo)記顯示出該地點(diǎn)所在的位置;
2.輸入任意起點(diǎn)和終點(diǎn),可以在地圖上查詢并顯示從起點(diǎn)到終點(diǎn)的最佳路線以及最短距離;
3.輸入任意地點(diǎn)名,可以在地圖上查詢并顯示出距離該地點(diǎn)最近的食堂或者超市,并給出從該地點(diǎn)到達(dá)食堂或者超市的最佳路線和最短距離; 4.鼠標(biāo)移動到地圖上的某一地點(diǎn)是,顯示該地點(diǎn)的名稱和簡介; 5.系統(tǒng)能為用戶提供華科整體地圖、系統(tǒng)使用說明、設(shè)計信息。擁有以上的功能的導(dǎo)航應(yīng)用將給不熟悉華科的用戶提供極大的便利,是人們所需要的。
1.2系統(tǒng)總體設(shè)計
系統(tǒng)的總體模塊圖如圖1所示。用戶進(jìn)入系統(tǒng)后,在窗口主界面可以選擇“地圖導(dǎo)航”、“進(jìn)入地圖”、“使用幫助”“關(guān)于導(dǎo)航”、“退出導(dǎo)航”等功能。在“地圖導(dǎo)航”功能中,用戶可以查詢某個地點(diǎn)或者某個地點(diǎn)附近最近的食堂和超市、到達(dá)該地點(diǎn)的最佳路徑和距離等,在過了一定時間后,系統(tǒng)會提示用戶選擇返回“地圖導(dǎo)航”界面還是進(jìn)入“進(jìn)入地圖”功能,然后系統(tǒng)根據(jù)用戶的選擇進(jìn)入相應(yīng)的界面;在“進(jìn)入地圖”功能下,用戶可以瀏覽整個華科地圖并且查詢某個地點(diǎn)的名稱和簡介;在“使用幫助”下,用戶可以閱讀該系統(tǒng)的使用說明;在“關(guān)于導(dǎo)航”下,用戶可以了解該系統(tǒng)的設(shè)計信息;用戶點(diǎn)擊“退出導(dǎo)航”即可退出該系統(tǒng)。
華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
圖 1 系統(tǒng)詳細(xì)設(shè)計
2.1 有關(guān)數(shù)據(jù)結(jié)構(gòu)的定義
華科校園導(dǎo)游系統(tǒng)是用圖結(jié)構(gòu)來實現(xiàn)的。具體數(shù)據(jù)結(jié)構(gòu)如下: 定義景點(diǎn)的結(jié)構(gòu)類型 typedef struct { 華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
Point point;char name[20];char num;}Vexs;
定義景點(diǎn)坐標(biāo)的結(jié)構(gòu)類型 typedef struct { int x;int y;}Point;
定義圖的結(jié)構(gòu)類型 struct MGraph {
};
聲明無向圖的鄰接矩陣類型 MGraph G[100],G0,G1;
初始化所有景點(diǎn)信息,存放在圖G1中 int CreateUDG1(MGraph &G1);Vexs vexs[MAX_VEX_NUM];
//頂點(diǎn)向量 int vexnum,arcnum;
//頂點(diǎn)數(shù),邊數(shù)
int arcs[MAX_VEX_NUM][MAX_VEX_NUM];//鄰接矩陣
2.2 主要算法設(shè)計
Floyd算法:void Floyd(void);
通過一個圖的權(quán)值矩陣求出它的每兩點(diǎn)間的最短路徑矩陣。
從圖的帶權(quán)鄰接矩陣A=[a(i,j)] n×n開始,遞歸地進(jìn)行n次更新,即由矩陣D(0)=A,按一個公式,構(gòu)造出矩陣D(1);又用同樣地公式由D(1)構(gòu)造出D(2);??;最后又用同樣的公式由D(n-1)構(gòu)造出矩陣D(n)。矩陣D(n)的i行j列元素便是i號頂點(diǎn)到j(luò)號頂點(diǎn)的最短路徑長度,稱D(n)為圖的距離矩陣,同時還可引入一個后繼節(jié)點(diǎn)矩陣path來記錄兩點(diǎn)間的最短路徑。
采用松弛技術(shù)(松弛操作),對在i和j之間的所有其他點(diǎn)進(jìn)行一次松弛。所以時間復(fù)雜度為O(n^3);其狀態(tài)轉(zhuǎn)移方程為map[i,j]:=min{map[i,k]+map[k,j],map[i,j]};map[i,j]表示i到j(luò)的最短距離,K是窮舉i,j的斷點(diǎn),map[n,n]初值應(yīng)該為0,或者按照題目意思來做。當(dāng)然,如果這條路沒有通的話,還必須特殊處理,比如沒有map[i,k]這 華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
條路。
通過弗洛伊德算法計算出兩單間的最短路徑之后,就可以通過距離計算公式計算出兩點(diǎn)間的最短距離。
利用佛洛依德算法計算出每兩點(diǎn)間的最短路徑矩陣。里面有三重for循環(huán),時間的復(fù)雜度為O(n^3)。系統(tǒng)實現(xiàn)與測試
3.1 系統(tǒng)實現(xiàn)
3.1.1 開發(fā)環(huán)境
本系統(tǒng)是在windows7下的Visual C++ 6.0編譯器中進(jìn)行設(shè)計,但是一般的編譯器中沒有包含編寫界面的
Runtime Library
下選
Multi-threaded Debug(/MTd)Project->setting->C/C++->category(code generation)->using runtime library(debug multithread)。3.1.2 運(yùn)行環(huán)境
Window7 64位旗艦版系統(tǒng)。3.1.3 主要函數(shù)及說明
1、void Floyd(void);
按照實際路況處理,利用佛洛依德算法,算出每兩點(diǎn)間的最短路徑矩陣。求 華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
->的最短路徑,如果->有弧,則存在一條長度為arcs[i][j]的路徑,但是該路徑不一定是最短路徑,尚需要進(jìn)行n次試探。若存在(Vi,Vo,Vj),則比較(Vi,Vj)和(Vi,Vo)+(Vo,Vj)的大小。取(Vi,Vo,Vj)和(Vi,Vj)的較短者,繼續(xù)添加結(jié)點(diǎn)。依此類推,每次都找到短路徑,最后得到的便是最短路徑。把最短的路徑存到全局變量path中。
2、void LoadData(void);
加載初期設(shè)定的信息包括所有圖片。并且將設(shè)定好的坐標(biāo)信息存儲到圖G0中。并且使用佛洛依德算法,將每對景點(diǎn)之間的最短路徑距離算出并存儲最短路徑到全局變量path中。以方便后續(xù)程序的進(jìn)行。
3、int CreateUDG1(MGraph &G1);加載所有景點(diǎn)信息,并存儲到圖G1中。(圖G1不包括路口坐標(biāo)信息)。里面有兩個for循環(huán),一個用來加載景點(diǎn)坐標(biāo),名稱和代號。另一個for循環(huán)用來構(gòu)建完全圖G1,計算出每對景點(diǎn)的最短路徑(理想情況下處理的)。返回值為1。
4、int weight(Point a,Point b);計算兩個點(diǎn)之間的距離,利用公式,計算出的結(jié)果是double類型的,將結(jié)果強(qiáng)制類型轉(zhuǎn)換為int類型,并將其值返回。
5、void Musicplay(int mark);
利用mciSendString函數(shù),mark用來控制背景音樂的播放與停止。mark=1,循環(huán)播放音樂。界面打開時后臺啟動。當(dāng)主界面上點(diǎn)擊音樂暫停圖標(biāo)mark=2,音樂暫停.。當(dāng)主界面上點(diǎn)擊音樂播放圖標(biāo)mark=3,音樂恢復(fù)播放。.6、void Windows(void);加載事先做好的主界面背景圖。在上面輸出文字信息。用GetMouseMsg();函數(shù)獲取鼠標(biāo)信息,設(shè)置鼠標(biāo)響應(yīng)區(qū),當(dāng)鼠標(biāo)移動到響應(yīng)區(qū)時,文字實現(xiàn)顏色的改變。當(dāng)單擊鼠標(biāo)左鍵時,會進(jìn)入到相應(yīng)的函數(shù)里面,進(jìn)行下一步操作。
7、void Viewmain(void);輸出景點(diǎn)坐標(biāo)及名稱。設(shè)置景點(diǎn)活動區(qū)域,獲取鼠標(biāo)信息,當(dāng)鼠標(biāo)移動到相應(yīng)的景點(diǎn)活動區(qū)域,就會加載相應(yīng)的景點(diǎn)圖片。
8、void Help(void);
有簡單的操作說明。操作說明是以圖片的形式加載進(jìn)去的。圖片是事先用PS 5 華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
準(zhǔn)備好的。
9、void About(void);有簡單的作者信息及實驗感想。背景是以圖片的形式加載進(jìn)去的。圖片是事先用PS準(zhǔn)備好的。里面還有一個網(wǎng)頁鏈接,點(diǎn)擊后會用Systen函數(shù),打開該網(wǎng)頁鏈接。
10、void Quit(void);關(guān)閉圖形區(qū)域,退出導(dǎo)航。詳細(xì)設(shè)計代碼見附錄。
3.2 系統(tǒng)測試
根據(jù)設(shè)計要求測試相關(guān)的功能,測試結(jié)果用相應(yīng)的截圖表示。
1、運(yùn)行程序,進(jìn)入系統(tǒng)主窗口界面,結(jié)果如圖2所示。
圖 2
2、選擇主界面的“地圖導(dǎo)航功”能,進(jìn)入功能選區(qū),結(jié)果如圖3所示。華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
圖 3 2.1、在“地圖導(dǎo)航”功能界面選擇“place”(地點(diǎn)查詢)功能,查詢地點(diǎn)A(南大門)。輸入A,系統(tǒng)在地圖上正確地顯示地點(diǎn)A的位置。結(jié)果如圖4,圖5所示。
華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
圖 4
圖 5 2.2、在“地圖導(dǎo)航”功能界面選擇“route”(路線查詢)功能,查詢A(南大門)到B(南一樓)之間的最佳路線和距離。輸入AB,系統(tǒng)在地圖上正確地顯示AB之前的最佳路線和距離。結(jié)果如圖6,圖7所示。
圖 6 華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
圖 7
2.3、在“地圖導(dǎo)航”功能界面選擇“repast”(食堂查詢)功能,查詢B(南一樓)附近最近的食堂。輸入B,系統(tǒng)在地圖上正確地顯示B附近最近的食堂,并且給出了最佳路線和距離。結(jié)果如圖8,圖9所示。
圖 8 華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
圖 9 2.4、在“地圖導(dǎo)航”功能界面選擇“market”(超市查詢)功能,查詢A(南大門)附近最近的超市。輸入A,系統(tǒng)在地圖上正確地顯示A附近最近的超市,并且給出了最佳路線和距離。結(jié)果如圖10,圖11所示。華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
圖 10
圖 11
3、在系統(tǒng)主界面選擇“進(jìn)入地圖”功能,將鼠標(biāo)光標(biāo)移動到地圖的地點(diǎn)(機(jī)械大樓)上面,地圖右下角顯示該地點(diǎn)的具體信息。結(jié)果如圖12所示。
圖 12 11 華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
4、在系統(tǒng)主界面選擇進(jìn)入“使用幫助”功能,系統(tǒng)顯示該系統(tǒng)的使用說明。結(jié)果如圖13所示。
圖 13
5、在系統(tǒng)主界面選擇進(jìn)入“關(guān)于導(dǎo)航”功能,系統(tǒng)顯示該系統(tǒng)的設(shè)計信息。結(jié)果如圖14所示。華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
圖 14
6、在系統(tǒng)主界面選擇“退出導(dǎo)航”功能,點(diǎn)擊“確定”即退出系統(tǒng)。結(jié)果如所示。總結(jié)與展望
圖 1
54.1 全文總結(jié)
對自己的工作做個總結(jié),主要工作總結(jié)如下:
(1)分析設(shè)計題目、設(shè)計內(nèi)容和設(shè)計要求,到圖書館和網(wǎng)上查閱相關(guān)資料,制定設(shè)計計劃,為設(shè)計工作做準(zhǔn)備。
(2)按照設(shè)計要求進(jìn)行設(shè)計工作,設(shè)計合適的數(shù)據(jù)結(jié)構(gòu)和算法,收集并處理相關(guān)的資料,編程實現(xiàn)。
(3)按照設(shè)計要求測試系統(tǒng),調(diào)試程序BUG,優(yōu)化、完善系統(tǒng)。(4)撰寫課程設(shè)計報告。
4.1 工作展望
在今后的研究中,圍繞著如下幾個方面開展工作:
(1)此次設(shè)計使用了弗洛伊德算法,沒有設(shè)計出更高效的算法。所以應(yīng)該
設(shè)計更合適的數(shù)據(jù)結(jié)構(gòu)和更高效的算法,優(yōu)化代碼,提高系統(tǒng)的效率。華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
(2)設(shè)計的系統(tǒng)功能還是比較單一。所以應(yīng)該完善和擴(kuò)充系統(tǒng)功能,使系 統(tǒng)能為用戶提供更多、更優(yōu)質(zhì)的服務(wù)。
華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告 體會
在該接觸到本次《數(shù)據(jù)結(jié)構(gòu)》的課程設(shè)計時,心里是沒有底的,一開始就為了確定題目思考了很久,但是看到地圖就有了很多想法,回想起在課程的學(xué)習(xí)中對圖進(jìn)行了深入地學(xué)習(xí)并且學(xué)習(xí)了諸多尋路算法,于是就選擇了這個題目,我覺得我可以根據(jù)自己所學(xué)習(xí)的圖的知識和算法設(shè)計出“華科地圖導(dǎo)航”。
“華科地圖導(dǎo)航”涉及到大量的圖形信息與繪圖信息,于是我開始尋找合適的開發(fā)的工具與語言進(jìn)行編程設(shè)計。最開始在網(wǎng)上查詢相關(guān)信息了解到QT是寫圖形界面的好工具,但是進(jìn)行上手學(xué)習(xí)后發(fā)現(xiàn)QT函數(shù)庫眾多,而我不能正確熟悉地使用,于是考慮了很久就放棄了。后來了解到了C語言的圖形庫easyx,于是上網(wǎng)查詢了相關(guān)的資料,對easyx有了大致的了解,上手很容易,只需根據(jù)其圖形函數(shù)與繪圖函數(shù)進(jìn)行編程設(shè)計,課設(shè)就正式進(jìn)入了設(shè)計、編寫、測試,然后順利完成課設(shè)。
感謝幫助過我同學(xué)和老師,也感謝我自己。
華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
參考文獻(xiàn)
[1] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版).北京: 清華大學(xué)出版社,1997 [2] 嚴(yán)蔚敏,吳偉民,米寧.數(shù)據(jù)結(jié)構(gòu)題集(C語言版).北京: 清華大學(xué)出版社,1999 [3] 曹計昌,盧萍,李開.C語言與程序設(shè)計.北京: 電子工業(yè)出版社,2013 [4] 王曉東.計算機(jī)算法設(shè)計與分析.北京: 電子工業(yè)出版社, 2007
華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
附錄
1.TourGuide.h
#include
#define MAX_VEX_NUM 100 //最大地點(diǎn)個數(shù) #define N 22
//當(dāng)前地點(diǎn)個數(shù) #define All 60
//地點(diǎn)和路口總數(shù)
#define MAX_ROAD 10000 //相當(dāng)于兩地點(diǎn)間斷開
int shortest[MAX_VEX_NUM][MAX_VEX_NUM];
//全局變量存貯最小路徑 int path[MAX_VEX_NUM][MAX_VEX_NUM];
//存貯路徑 int pos[][2]={
//地點(diǎn)坐標(biāo)及路口坐標(biāo)
//地點(diǎn)坐標(biāo)
{208,430},{209,387},{50,404} ,{105,355}, {110,300},{170,300},{167,234},{230,150}, {310,235},{310,320},{390,320},{615,155},{430,320},{430,150},{417,320},{368,307},{406,320},{472,160},{5,185} ,{339,293},{65,452} ,{109,439}, //路口坐標(biāo)
{369,317},{46,379} ,{110,387},{368,293}, {168,386},{262,384},{112,320},{170,320}, {262,320},{309,292},{309,282},{110,284}, {170,284},{230,250},{309,250},{170,250}, {230,220},{307,220},{370,150},{2,219} , {108,188},{33,337} ,{109,250},{109,218}, {309,150},{108,150},{167,218},{427,250}, {368,218},{368,250},{166,150},{166,188}, {230,188},{309,188},{368,188},{230,282}, {230,320},{168,350} };char Num[]={
//地點(diǎn)編號
'A','B','C','D', 'E','F','G','H', 'I','J','K','L','M','N','O','P','Q','R','S','T','U','V' };char Name[][20]={
//地點(diǎn)名稱
“南大門”,“南一樓”,“西十二樓”,“西五樓”, “青年園”,“圖書館”,“科技樓”,“喻園餐廳”, 華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
“機(jī)械學(xué)院”,“名人園”,“中心操場”,“東九樓”, “沁苑”,“喻園教工超市”,“東教工超市”, “東一食堂”,“紫荊園餐廳”,“清真食堂”, “百景園”,“東五樓”,“南三門”,“南二門” };typedef struct { int x;int y;}Point;typedef struct { Point point;char name[20];char num;}Vexs;struct MGraph { Vexs vexs[MAX_VEX_NUM];
//頂點(diǎn)向量
int arcs[MAX_VEX_NUM][MAX_VEX_NUM];//鄰接矩陣
int vexnum,arcnum;
//頂點(diǎn)數(shù),邊數(shù) };MGraph G[100],G0,G1;
//聲明無向圖的鄰接矩陣類型 int Gi;IMAGE map,map1;
//圖片信息的加載 IMAGE loading;IMAGE about;IMAGE help;IMAGE background;IMAGE Aa,Bb,Cc,Dd,Ee,Ff,Gg,Hh,Ii,Jj,Kk,Ll,Mm,Nn,Oo,Pp,Qq,Rr,Ss,Tt,Uu,Vv,a1,a2,b1,b2,c1,c2,d1,d2;void LoadData(void);
//加載信息
int CreateUDG1(MGraph &G1);//初始化所有景點(diǎn)信息 int weight(Point a,Point b);//計算兩點(diǎn)之間的距離 void Windows(void);
//主窗口界面 void Musicplay(int mark);//播放音樂
void Showplace(void);
//查找地點(diǎn)位置 void Showpoint(int i);void Shortest(void);
//兩點(diǎn)之間的最短路徑 void Showline(int i,int j);//顯示輸入框 void Showline1(int i,int j);//顯示輸入框 void Showline2(int i,int j);//顯示輸入框
void Floyd(void);
//佛洛依德算法,算出每兩點(diǎn)間的最短路徑矩陣 void Linemin(int i,int j);
//畫最短路徑
void Findrepast(void);
//查找附近的食堂 void Findmarket(void);
//查找附近的超市 void Entermap(void);
//進(jìn)入地圖操作界面 void Viewmain(void);
//瀏覽地點(diǎn)信息 void HelP(void);
//操作說明 void About(void);
//作者相關(guān)信息 void Quit(void);
//退出系統(tǒng)
2.TourGuide.cpp 華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
#include“head.h” int main(){ initgraph(640,480);HWND hwnd = GetHWnd();
// 設(shè)置窗口標(biāo)題文字
SetWindowText(hwnd, “華科地圖導(dǎo)航”);LoadData();CreateUDG1(G1);Musicplay(1);Windows();return 0;}
/*功能:對輸入的兩個點(diǎn)計算它們之間的距離,并將其返回到調(diào)用的函數(shù)中*/ int weight(Point a,Point b){ double x;int y;x=pow((a.x-b.x),2)+pow((a.y-b.y),2);x=sqrt(x);y=int(x);return y;} /*功能:加載程序運(yùn)行必須的圖片及函數(shù)相關(guān)信息*/ void LoadData(void){ int i,j;loadimage(&loading,“./picture/loading.jpg”);loadimage(&about,“./picture/about.jpg”);loadimage(&help,“./picture/help.jpg”);loadimage(&background,“./picture/background.jpg”);loadimage(&map,“./picture/map.jpg”);loadimage(&map1,“./picture/map1.jpg”);loadimage(&Aa,“./picture/place/A.jpg”);loadimage(&Bb,“./picture/place/B.jpg”);loadimage(&Cc,“./picture/place/C.jpg”);loadimage(&Dd,“./picture/place/D.jpg”);loadimage(&Ee,“./picture/place/E.jpg”);loadimage(&Ff,“./picture/place/F.jpg”);loadimage(&Gg,“./picture/place/G.jpg”);loadimage(&Hh,“./picture/place/H.jpg”);loadimage(&Ii,“./picture/place/I.jpg”);loadimage(&Jj,“./picture/place/J.jpg”);loadimage(&Kk,“./picture/place/K.jpg”);loadimage(&Ll,“./picture/place/L.jpg”);loadimage(&Mm,“./picture/place/M.jpg”);loadimage(&Nn,“./picture/place/N.jpg”);loadimage(&Oo,“./picture/place/O.jpg”);loadimage(&Pp,“./picture/place/P.jpg”);loadimage(&Qq,“./picture/place/Q.jpg”);loadimage(&Rr,“./picture/place/R.jpg”);loadimage(&Ss,“./picture/place/S.jpg”);loadimage(&Tt,“./picture/place/T.jpg”);loadimage(&Uu,“./picture/place/U.jpg”);loadimage(&Vv,“./picture/place/V.jpg”);loadimage(&a1,“./picture/menu/a1.jpg”);華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告
loadimage(&a2,“./picture/menu/a2.jpg”);loadimage(&b1,“./picture/menu/b1.jpg”);loadimage(&b2,“./picture/menu/b2.jpg”);loadimage(&c1,“./picture/menu/c1.jpg”);loadimage(&c2,“./picture/menu/c2.jpg”);loadimage(&d1,“./picture/menu/d1.jpg”);loadimage(&d2,“./picture/menu/d2.jpg”);for(i=1;i<=All;i++){
for(j=1;j<=All;j++)
{
G0.arcs[i][j]=MAX_ROAD;
}
}
for(i=1;i<=All;i++)
{
shortest[i][i]=0;
} for(i=0;i G0.vexs[i+1].point.x=pos[i][0]; G0.vexs[i+1].point.y=pos[i][1]; } //初始化連通路徑 G0.arcs[1][2]=G0.arcs[2][1]=weight(G0.vexs[1].point,G0.vexs[2].point);G0.arcs[1][22]=G0.arcs[22][1]=weight(G0.vexs[22].point,G0.vexs[1].point);G0.arcs[1][27]=G0.arcs[27][1]=weight(G0.vexs[27].point,G0.vexs[1].point); G0.arcs[1][28]=G0.arcs[28][1]=weight(G0.vexs[28].point,G0.vexs[1].point); G0.arcs[2][27]=G0.arcs[27][2]=weight(G0.vexs[27].point,G0.vexs[2].point); G0.arcs[2][28]=G0.arcs[28][2]=weight(G0.vexs[28].point,G0.vexs[2].point); G0.arcs[3][21]=G0.arcs[21][3]=weight(G0.vexs[21].point,G0.vexs[3].point); G0.arcs[3][24]=G0.arcs[24][3]=weight(G0.vexs[24].point,G0.vexs[3].point);G0.arcs[4][24]=G0.arcs[24][4]=weight(G0.vexs[24].point,G0.vexs[4].point); G0.arcs[4][25]=G0.arcs[25][4]=weight(G0.vexs[25].point,G0.vexs[4].point);G0.arcs[4][29]=G0.arcs[29][4]=weight(G0.vexs[29].point,G0.vexs[4].point);G0.arcs[4][60]=G0.arcs[60][4]=weight(G0.vexs[60].point,G0.vexs[4].point); G0.arcs[5][29]=G0.arcs[29][5]=weight(G0.vexs[29].point,G0.vexs[5].point);G0.arcs[5][34]=G0.arcs[34][5]=weight(G0.vexs[34].point,G0.vexs[5].point);G0.arcs[6][30]=G0.arcs[30][6]=weight(G0.vexs[6].point,G0.vexs[30].point);G0.arcs[6][35]=G0.arcs[35][6]=weight(G0.vexs[6].point,G0.vexs[35].point); G0.arcs[7][49]=G0.arcs[49][7]=weight(G0.vexs[7].point,G0.vexs[49].point);G0.arcs[7][38]=G0.arcs[38][7]=weight(G0.vexs[7].point,G0.vexs[38].point);G0.arcs[8][47]=G0.arcs[47][8]=weight(G0.vexs[8].point,G0.vexs[47].point);G0.arcs[8][53]=G0.arcs[53][8]=weight(G0.vexs[53].point,G0.vexs[8].point);G0.arcs[8][55]=G0.arcs[55][8]=weight(G0.vexs[55].point,G0.vexs[8].point);G0.arcs[9][37]=G0.arcs[37][9]=weight(G0.vexs[9].point,G0.vexs[37].point);G0.arcs[9][40]=G0.arcs[40][9]=weight(G0.vexs[9].point,G0.vexs[40].point);G0.arcs[10][31]=G0.arcs[31][10]=weight(G0.vexs[10].point,G0.vexs[31].point);G0.arcs[10][23]=G0.arcs[23][10]=weight(G0.vexs[10].point,G0.vexs[23].point);G0.arcs[10][32]=G0.arcs[32][10]=weight(G0.vexs[10].point,G0.vexs[32].point); G0.arcs[11][17]=G0.arcs[17][11]=weight(G0.vexs[11].point,G0.vexs[17].point); G0.arcs[11][23]=G0.arcs[23][11]=weight(G0.vexs[11].point,G0.vexs[23].point); G0.arcs[12][18]=G0.arcs[18][12]=weight(G0.vexs[12].point,G0.vexs[18].point); G0.arcs[13][50]=G0.arcs[50][13]=weight(G0.vexs[13].point,G0.vexs[50].point);G0.arcs[13][15]=G0.arcs[15][13]=weight(G0.vexs[13].point,G0.vexs[15].point); G0.arcs[14][18]=G0.arcs[18][14]=weight(G0.vexs[14].point,G0.vexs[18].point); G0.arcs[14][41]=G0.arcs[41][14]=weight(G0.vexs[14].point,G0.vexs[41].point);華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告 G0.arcs[14][50]=G0.arcs[50][14]=weight(G0.vexs[14].point,G0.vexs[50].point); G0.arcs[15][17]=G0.arcs[17][15]=weight(G0.vexs[15].point,G0.vexs[17].point); G0.arcs[16][23]=G0.arcs[23][16]=weight(G0.vexs[16].point,G0.vexs[23].point); G0.arcs[16][26]=G0.arcs[26][16]=weight(G0.vexs[16].point,G0.vexs[26].point); G0.arcs[19][42]=G0.arcs[42][19]=weight(G0.vexs[19].point,G0.vexs[42].point); G0.arcs[19][43]=G0.arcs[43][19]=weight(G0.vexs[19].point,G0.vexs[43].point); G0.arcs[20][26]=G0.arcs[26][20]=weight(G0.vexs[20].point,G0.vexs[26].point); G0.arcs[20][32]=G0.arcs[32][20]=weight(G0.vexs[20].point,G0.vexs[32].point); G0.arcs[21][22]=G0.arcs[22][21]=weight(G0.vexs[22].point,G0.vexs[21].point); G0.arcs[22][25]=G0.arcs[25][22]=weight(G0.vexs[22].point,G0.vexs[25].point); G0.arcs[24][44]=G0.arcs[44][24]=weight(G0.vexs[24].point,G0.vexs[44].point); G0.arcs[25][27]=G0.arcs[27][25]=weight(G0.vexs[25].point,G0.vexs[27].point); G0.arcs[26][52]=G0.arcs[52][26]=weight(G0.vexs[26].point,G0.vexs[52].point); G0.arcs[27][60]=G0.arcs[60][27]=weight(G0.vexs[27].point,G0.vexs[60].point); G0.arcs[28][31]=G0.arcs[31][28]=weight(G0.vexs[28].point,G0.vexs[31].point); G0.arcs[29][30]=G0.arcs[30][29]=weight(G0.vexs[29].point,G0.vexs[30].point); G0.arcs[29][44]=G0.arcs[44][29]=weight(G0.vexs[29].point,G0.vexs[44].point); G0.arcs[30][59]=G0.arcs[59][30]=weight(G0.vexs[30].point,G0.vexs[59].point);G0.arcs[30][60]=G0.arcs[60][30]=weight(G0.vexs[30].point,G0.vexs[60].point); G0.arcs[31][59]=G0.arcs[59][31]=weight(G0.vexs[31].point,G0.vexs[59].point); G0.arcs[32][33]=G0.arcs[33][32]=weight(G0.vexs[32].point,G0.vexs[33].point); G0.arcs[33][37]=G0.arcs[37][33]=weight(G0.vexs[33].point,G0.vexs[37].point); G0.arcs[33][58]=G0.arcs[58][33]=weight(G0.vexs[33].point,G0.vexs[58].point); G0.arcs[34][35]=G0.arcs[35][34]=weight(G0.vexs[34].point,G0.vexs[35].point); G0.arcs[34][45]=G0.arcs[45][34]=weight(G0.vexs[34].point,G0.vexs[45].point); G0.arcs[35][38]=G0.arcs[38][35]=weight(G0.vexs[35].point,G0.vexs[38].point);G0.arcs[35][58]=G0.arcs[58][35]=weight(G0.vexs[35].point,G0.vexs[58].point); G0.arcs[36][37]=G0.arcs[37][36]=weight(G0.vexs[36].point,G0.vexs[37].point); G0.arcs[36][38]=G0.arcs[38][36]=weight(G0.vexs[36].point,G0.vexs[38].point); G0.arcs[36][39]=G0.arcs[39][36]=weight(G0.vexs[36].point,G0.vexs[39].point);G0.arcs[36][58]=G0.arcs[58][36]=weight(G0.vexs[36].point,G0.vexs[58].point); G0.arcs[37][52]=G0.arcs[52][37]=weight(G0.vexs[37].point,G0.vexs[52].point);G0.arcs[38][45]=G0.arcs[45][38]=weight(G0.vexs[45].point,G0.vexs[38].point);G0.arcs[39][49]=G0.arcs[49][39]=weight(G0.vexs[39].point,G0.vexs[49].point); G0.arcs[39][55]=G0.arcs[55][39]=weight(G0.vexs[39].point,G0.vexs[55].point);G0.arcs[39][40]=G0.arcs[40][39]=weight(G0.vexs[39].point,G0.vexs[40].point); G0.arcs[40][56]=G0.arcs[56][40]=weight(G0.vexs[40].point,G0.vexs[56].point); G0.arcs[40][51]=G0.arcs[51][40]=weight(G0.vexs[40].point,G0.vexs[51].point); G0.arcs[41][47]=G0.arcs[47][41]=weight(G0.vexs[41].point,G0.vexs[47].point);G0.arcs[41][57]=G0.arcs[57][41]=weight(G0.vexs[41].point,G0.vexs[57].point);G0.arcs[42][44]=G0.arcs[44][42]=weight(G0.vexs[42].point,G0.vexs[44].point);G0.arcs[42][46]=G0.arcs[46][42]=weight(G0.vexs[42].point,G0.vexs[46].point);G0.arcs[43][46]=G0.arcs[46][43]=weight(G0.vexs[43].point,G0.vexs[46].point); G0.arcs[43][48]=G0.arcs[48][43]=weight(G0.vexs[43].point,G0.vexs[48].point);G0.arcs[43][54]=G0.arcs[54][43]=weight(G0.vexs[43].point,G0.vexs[54].point);G0.arcs[45][46]=G0.arcs[46][45]=weight(G0.vexs[45].point,G0.vexs[46].point); G0.arcs[46][49]=G0.arcs[49][46]=weight(G0.vexs[46].point,G0.vexs[49].point);G0.arcs[47][56]=G0.arcs[56][47]=weight(G0.vexs[47].point,G0.vexs[56].point);G0.arcs[48][53]=G0.arcs[53][48]=weight(G0.vexs[48].point,G0.vexs[53].point);G0.arcs[49][54]=G0.arcs[54][49]=weight(G0.vexs[49].point,G0.vexs[54].point); G0.arcs[50][52]=G0.arcs[52][50]=weight(G0.vexs[50].point,G0.vexs[52].point);G0.arcs[51][52]=G0.arcs[52][51]=weight(G0.vexs[51].point,G0.vexs[52].point);G0.arcs[51][57]=G0.arcs[57][51]=weight(G0.vexs[51].point,G0.vexs[57].point); G0.arcs[53][54]=G0.arcs[54][53]=weight(G0.vexs[53].point,G0.vexs[54].point);G0.arcs[54][55]=G0.arcs[55][54]=weight(G0.vexs[54].point,G0.vexs[55].point);G0.arcs[55][56]=G0.arcs[56][55]=weight(G0.vexs[55].point,G0.vexs[56].point);G0.arcs[56][57]=G0.arcs[57][56]=weight(G0.vexs[56].point,G0.vexs[57].point);華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告 G0.arcs[58][59]=G0.arcs[59][58]=weight(G0.vexs[58].point,G0.vexs[59].point Floyd();} /*功能:佛洛依德算法,將每對景點(diǎn)之間的最短路徑距離算出并存儲最短路徑到path中 */ void Floyd() { int i,j,k; for(i=1;i<=All;i++) { for(j=1;j<=All;j++) { shortest[i][j]=G0.arcs[i][j]; path[i][j]=j; } } /*初始化數(shù)組*/ for(k=1;k<=All;k++) { for(i=1;i<=All;i++) { for(j=1;j<=All;j++) { if(shortest[i][j]>(shortest[i][k]+shortest[k][j])) { shortest[i][j]=shortest[i][k]+shortest[k][j]; path[i][j]=k; path[j][i]=k; /*記錄經(jīng)過的路徑*/ } } } } } /*功能:初始化由所有景點(diǎn)構(gòu)成的無向完全圖G1,并加載必要信息*/ int CreateUDG1(MGraph &G1){ int p,q;Gi=0;G1.vexnum=22; for(q=0;q G1.vexs[q].point.x=pos[q][0]; G1.vexs[q].point.y=pos[q][1]; strcpy(G1.vexs[q].name,Name[q]); G1.vexs[q].num=Num[q];} for(q=0;q { for(p=q;p G1.arcs[q][p]=G1.arcs[p][q]=weight(G1.vexs[p].point,G1.vexs[q].point);} return 1;} /*把音樂以資源形式嵌入exe并播放,mark用來控制音樂的播放與暫停*/ void Musicplay(int mark){ mciSendString(“open./music/1024.mp3 alias music”,NULL,0,NULL);華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告 if(mark==1) mciSendString(_T(“play music repeat”),NULL,0,NULL);if(mark==2) mciSendString(_T(“pause music”),NULL,0,NULL);if(mark==3) mciSendString(_T(“resume music”),NULL,0,NULL);} /*功能:顯示主窗口界面,進(jìn)入功能選擇區(qū)*/ void Windows(void){ cleardevice();int posx[]={265,265,265,265,265,31,62};int posy[]={180,220,260,300,340,449,449};putimage(0,0,&loading);settextstyle(25, 0, _T(“隸書”));setbkmode(TRANSPARENT);settextcolor(WHITE);outtextxy(posx[0],posy[0], _T(“地圖導(dǎo)航”));outtextxy(posx[1],posy[1], _T(“進(jìn)入地圖”));outtextxy(posx[2],posy[2], _T(“使用幫助”));outtextxy(posx[3],posy[3], _T(“關(guān)于導(dǎo)航”));outtextxy(posx[4],posy[4], _T(“退出導(dǎo)航”));MOUSEMSG m;while(true){ m=GetMouseMsg(); if(m.uMsg==WM_MOUSEMOVE) { if(m.x>posx[0]&&m.x posy[0]&&m.y settextcolor(BLACK); else settextcolor(WHITE); outtextxy(posx[0],posy[0], _T(“地圖導(dǎo)航”)); if(m.x>posx[1]&&m.x posy[1]&&m.y settextcolor(BLACK); else settextcolor(WHITE); outtextxy(posx[1],posy[1], _T(“進(jìn)入地圖”)); if(m.x>posx[2]&&m.x posy[2]&&m.y settextcolor(BLACK); else settextcolor(WHITE); outtextxy(posx[2],posy[2], _T(“使用幫助”)); if(m.x>posx[3]&&m.x posy[3]&&m.y settextcolor(BLACK); else settextcolor(WHITE); outtextxy(posx[3],posy[3], _T(“關(guān)于導(dǎo)航”)); if(m.x>posx[4]&&m.x posy[4]&&m.y settextcolor(BLACK); else settextcolor(WHITE); outtextxy(posx[4],posy[4], _T(“退出導(dǎo)航”)); } if(m.uMsg==WM_LBUTTONUP) { 華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告 if(m.x>posx[0]&&m.x posy[0]&&m.y Entermap(); if(m.x>posx[1]&&m.x posy[1]&&m.y Viewmain(); if(m.x>posx[2]&&m.x posy[2]&&m.y HelP(); if(m.x>posx[3]&&m.x posy[3]&&m.y About(); if(m.x>posx[4]&&m.x posy[4]&&m.y Quit(); if(m.x>posx[5]&&m.x posy[5]&&m.y Musicplay(3); if(m.x>posx[6]&&m.x posy[6]&&m.y Musicplay(2); } } cleardevice();return;} /*功能:進(jìn)入地圖操作界面,可選功能項有最短路徑查詢和最佳路線問題*/ void Entermap(){ int posx[]={215,325,215,325,0};int posy[]={135,135,245,245,0};putimage(0,0,&background);MOUSEMSG m;while(true){ m=GetMouseMsg(); if(m.uMsg==WM_MOUSEMOVE) { if(m.x>posx[0]&&m.x posy[0]&&m.y putimage(215,135,&c2); else putimage(215,135,&c1); if(m.x>posx[1]&&m.x posy[1]&&m.y putimage(325,135,&d2); else putimage(325,135,&d1); if(m.x>posx[2]&&m.x posy[2]&&m.y putimage(215,245,&a2); else putimage(215,245,&a1); if(m.x>posx[3]&&m.x posy[3]&&m.y putimage(325,245,&b2); else putimage(325,245,&b1); } if(m.uMsg==WM_LBUTTONUP) { if(m.x>posx[0]&&m.x posy[0]&&m.y Showplace(); if(m.x>posx[1]&&m.x posy[1]&&m.y Shortest(); if(m.x>posx[2]&&m.x posy[2]&&m.y Findrepast(); if(m.x>posx[3]&&m.x posy[3]&&m.y 華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告 Findmarket(); if(m.x>posx[4]&&m.x posy[4]&&m.y Windows(); } } } /*功能:彈出地點(diǎn)查詢框,作為輸入信息用*/ void Showplace(void){ char s[10];int choose;HWND wnd = GetHWnd();M: if(InputBox(s, 10, “查找地點(diǎn),如:我的選擇是:AnA南大門 B南一樓 C西十二樓 D西五樓nE青年園 F圖書館 G科技樓 H喻園餐廳nI機(jī)械學(xué)院 J名人園 K中心操場 L東九樓nM沁苑 N喻園教工超市 O東教工超市nP東一食堂 Q紫荊園餐廳 R清真食堂nS百景園 T東五樓 U南三門 V南二門”,“輸入地點(diǎn)編號”,NULL,300,90,false)==true){ choose=s[0]-'A'+1; if(0 Showpoint(choose); else if(MessageBox(wnd, _T(“選擇出現(xiàn)在A-V,請重新輸入”), _T(“提醒”),MB_OK | MB_ICONWARNING)== IDOK) goto M; } else Entermap();} void Showpoint(int i){ HWND wnd = GetHWnd();char s[][100] = {“你現(xiàn)在查詢的是 : ”,“ 【紅色為查詢地點(diǎn)所在位置】”};char message[100];int a=i;strcpy(message,s[0]);putimage(0,0,&map1);strcat(message,G1.vexs[a-1].name);strcat(message,s[1]);setfillcolor(0x001eff);fillcircle(G1.vexs[a-1].point.x,G1.vexs[a-1].point.y,7); if(MessageBox(wnd, _T(message), _T(“提醒”),MB_OK | MB_ICONQUESTION)== IDOK)Sleep(1000);if(MessageBox(wnd, _T(“你要繼續(xù)查詢嗎?n是 : 返回查詢界面n否 : 進(jìn)入地圖界面”), _T(“提醒”),MB_YESNO | MB_ICONQUESTION)== IDNO) Viewmain();else Entermap();} /*功能:彈出最短路徑查詢框,作為輸入信息用*/ void Shortest(void){ char s[10];int choose1,choose2;HWND wnd = GetHWnd();華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告 M: if(InputBox(s, 10, “查詢線路,如:我的選擇是:ABnA南大門 B南一樓 C西十二樓 D西五樓nE青年園 F圖書館 G科技樓 H喻園餐廳nI機(jī)械學(xué)院 J名人園 K中心操場 L東九樓nM沁苑 N喻園教工超市 O東教工超市nP東一食堂 Q紫荊園餐廳 R清真食堂nS百景園 T東五樓 U南三門 V南二門”,“輸入兩地點(diǎn)編號”,NULL,300,90,false)==true){ choose1=s[0]-'A'+1; choose2=s[1]-'A'+1; if(0 Showline(choose1,choose2); else if(MessageBox(wnd, _T(“選擇出現(xiàn)在A-V,請重新輸入”), _T(“提醒”),MB_OK | MB_ICONWARNING)== IDOK) goto M; } else Entermap();} /*功能:彈出食堂查詢框,作為輸入信息用*/ void Findrepast(void){ char s[10];int choose1,choose2;HWND wnd = GetHWnd();M: if(InputBox(s, 10, “查找地點(diǎn)附近食堂,如:我的選擇是:AnA南大門 B南一樓 C西十二樓 D西五樓nE青年園 F圖書館 G科技樓 H喻園餐廳nI機(jī)械學(xué)院 J名人園 K中心操場 L東九樓nM沁苑 N喻園教工超市 O東教工超市nP東一食堂 Q紫荊園餐廳 R清真食堂nS百景園 T東五樓 U南三門 V南二門”,“輸入編號”,NULL,300,90,false)==true){ choose1=s[0]-'A'+1; if(0 { if(choose1==6||choose1==7||choose1==8){ choose2=8; Showline1(choose1,choose2);} else if(choose1==1||choose1==2||choose1==9||choose1==10||choose1==16||choose1==20){ choose2=16; Showline1(choose1,choose2);} else if(choose1==11||choose1==13||choose1==15||choose1==17){ choose2=17; Showline1(choose1,choose2);} else if(choose1==12||choose1==14||choose1==18){ choose2=18; Showline1(choose1,choose2);} else{ choose2=19; Showline1(choose1,choose2);} } else if(MessageBox(wnd, _T(“選擇出現(xiàn)在A-V,W-X,請重新輸入”), _T(“提醒”),MB_OK | MB_ICONWARNING)== IDOK) goto M; } else Entermap();華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告 } /*功能:彈出食堂超市查詢框,作為輸入信息用*/ void Findmarket(void){ char s[10];int choose1,choose2;HWND wnd = GetHWnd();M: if(InputBox(s, 10, “查找地點(diǎn)附近超市,如:我的選擇是:AnA南大門 B南一樓 C西十二樓 D西五樓nE青年園 F圖書館 G科技樓 H喻園餐廳nI機(jī)械學(xué)院 J名人園 K中心操場 L東九樓nM沁苑 N喻園教工超市 O東教工超市nP東一食堂 Q紫荊園餐廳 R清真食堂nS百景園 T東五樓 U南三門 V南二門”,“輸入編號”,NULL,300,90,false)==true){ choose1=s[0]-'A'+1; if(0 { if(choose1==8||choose1==12||choose1==14||choose1==18||choose1==19){ choose2=14; Showline2(choose1,choose2);} else{ choose2=15; Showline2(choose1,choose2);} } else if(MessageBox(wnd, _T(“選擇出現(xiàn)在A-V,W-X,請重新輸入”), _T(“提醒”),MB_OK | MB_ICONWARNING)== IDOK) goto M; } else Entermap();} /*功能:輸出最短路徑線路圖及最短距離*/ void Showline(int i,int j){ HWND wnd = GetHWnd();char s[][100] = {“你現(xiàn)在查詢的是 : ”,“→”,“的最短距離nn”,“最短距離為:”,“米 【藍(lán)色為起點(diǎn),紅色為終點(diǎn)】”};char message[100];char string[10];int a,b;a=i;b=j;strcpy(message,s[0]);putimage(0,0,&map1);strcat(message,G1.vexs[a-1].name);strcat(message,s[1]);strcat(message,G1.vexs[b-1].name);strcat(message,s[2]);strcat(message,s[3]);Linemin(a,b);itoa(shortest[a][b]*3.68,string,10);strcat(message,string);strcat(message,s[4]);setfillcolor(BLUE);fillcircle(G1.vexs[a-1].point.x,G1.vexs[a-1].point.y,7);setfillcolor(0x001eff);fillcircle(G1.vexs[b-1].point.x,G1.vexs[b-1].point.y,7);if(MessageBox(wnd, _T(message), _T(“提醒”), 華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告 MB_OK | MB_ICONQUESTION)== IDOK)Sleep(1000);if(MessageBox(wnd, _T(“你要繼續(xù)查詢嗎?n是 : 返回查詢界面n否 : 進(jìn)入地圖界面”), _T(“提醒”),MB_YESNO | MB_ICONQUESTION)== IDNO) Viewmain();else Entermap();} /*功能:輸出食堂最短路徑線路圖及最短距離*/ void Showline1(int i,int j){ HWND wnd = GetHWnd();char s[][100] = {“你現(xiàn)在查詢的是 : ”,“ 附近最近的食堂 ”,“ 其路徑如圖nn”,“最短距離為:”,“米 【藍(lán)色為起點(diǎn),紅色為終點(diǎn)】”};char message[100];char string[10];int a,b;a=i;b=j;strcpy(message,s[0]);putimage(0,0,&map1);strcat(message,G1.vexs[a-1].name);strcat(message,s[1]);strcat(message,G1.vexs[b-1].name);strcat(message,s[2]);strcat(message,s[3]);Linemin(a,b);itoa(shortest[a][b]*3.68,string,10);strcat(message,string);strcat(message,s[4]);setfillcolor(BLUE);fillcircle(G1.vexs[a-1].point.x,G1.vexs[a-1].point.y,7);setfillcolor(0x001eff);fillcircle(G1.vexs[b-1].point.x,G1.vexs[b-1].point.y,7);if(MessageBox(wnd, _T(message), _T(“提醒”),MB_OK | MB_ICONQUESTION)== IDOK)Sleep(1000);if(MessageBox(wnd, _T(“你要繼續(xù)查詢嗎?n是 : 返回查詢界面n否 : 進(jìn)入地圖界面”), _T(“提醒”),MB_YESNO | MB_ICONQUESTION)== IDNO) Viewmain();else Entermap();} /*功能:輸出食堂最短路徑線路圖及最短距離*/ void Showline2(int i,int j){ HWND wnd = GetHWnd();char s[][100] = {“你現(xiàn)在查詢的是 : ”,“ 附近最近的超市 ”,“ 其路徑如圖nn”,“最短距離為:”,“米 【藍(lán)色為起點(diǎn),紅色為終點(diǎn)】”};char message[100];char string[10];int a,b;a=i;b=j;strcpy(message,s[0]);putimage(0,0,&map1);華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告 strcat(message,G1.vexs[a-1].name);strcat(message,s[1]);strcat(message,G1.vexs[b-1].name);strcat(message,s[2]);strcat(message,s[3]);Linemin(a,b);itoa(shortest[a][b]*3.68,string,10);strcat(message,string);strcat(message,s[4]);setfillcolor(BLUE);fillcircle(G1.vexs[a-1].point.x,G1.vexs[a-1].point.y,7);setfillcolor(0x001eff);fillcircle(G1.vexs[b-1].point.x,G1.vexs[b-1].point.y,7);if(MessageBox(wnd, _T(message), _T(“提醒”),MB_OK | MB_ICONQUESTION)== IDOK)Sleep(1000);if(MessageBox(wnd, _T(“你要繼續(xù)查詢嗎?n是 : 返回查詢界面n否 : 進(jìn)入地圖界面”), _T(“提醒”),MB_YESNO | MB_ICONQUESTION)== IDNO) Viewmain();else Entermap();} /*功能:繪制最短路徑線路圖*/ void Linemin(int i,int j){ setlinestyle(PS_DASH|PS_JOIN_ROUND,4);if(path[i][j]==i||path[i][j]==j) line(G0.vexs[i].point.x,G0.vexs[i].point.y,G0.vexs[j].point.x,G0.vexs[j].point.y);else{ Linemin(path[i][j],i); Linemin(path[i][j],j);} setlinestyle(PS_SOLID,1);} /*功能:地圖地點(diǎn)相關(guān)信息的介紹*/ void Viewmain(){ IMAGE temp;int choose;putimage(0,0,&map);getimage(&temp,465,275,210,260);setfillcolor(0x001eff);settextstyle(20,0,“楷體”);settextcolor(BLACK);setbkmode(TRANSPARENT);for(choose=1;choose<=N;choose++){ fillcircle(pos[choose-1][0],pos[choose-1][1],7);} outtextxy(0,0,“返回”);outtextxy(80,0,“Tips:鼠標(biāo)移動到相應(yīng)的點(diǎn)范圍即可查看對應(yīng)地點(diǎn)信息”);MOUSEMSG m;while(true){ m=GetMouseMsg(); if(m.uMsg==WM_MOUSEMOVE)華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告 { if(m.x>pos[0][0]-7&&m.x pos[0][1]-7&&m.y putimage(465,275,&Aa); else if(m.x>pos[1][0]-7&&m.x pos[1][1]-7&&m.y putimage(465,275,&Bb); else if(m.x>pos[2][0]-7&&m.x pos[2][1]-7&&m.y putimage(465,275,&Cc); else if(m.x>pos[3][0]-7&&m.x pos[3][1]-7&&m.y putimage(465,275,&Dd); else if(m.x>pos[4][0]-7&&m.x pos[4][1]-7&&m.y putimage(465,275,&Ee); else if(m.x>pos[5][0]-7&&m.x pos[5][1]-7&&m.y putimage(465,275,&Ff); else if(m.x>pos[6][0]-7&&m.x pos[6][1]-7&&m.y putimage(465,275,&Gg); else if(m.x>pos[7][0]-7&&m.x pos[7][1]-7&&m.y putimage(465,275,&Hh); else if(m.x>pos[8][0]-7&&m.x pos[8][1]-7&&m.y putimage(465,275,&Ii); else if(m.x>pos[9][0]-7&&m.x pos[9][1]-7&&m.y putimage(465,275,&Jj); else if(m.x>pos[10][0]-7&&m.x pos[10][1]-7&&m.y putimage(465,275,&Kk); else if(m.x>pos[11][0]-7&&m.x pos[11][1]-7&&m.y putimage(465,275,&Ll); else if(m.x>pos[12][0]-7&&m.x pos[12][1]-7&&m.y putimage(465,275,&Mm); else if(m.x>pos[13][0]-7&&m.x pos[13][1]-7&&m.y putimage(465,275,&Nn); else if(m.x>pos[14][0]-7&&m.x pos[14][1]-7&&m.y putimage(465,275,&Oo); else if(m.x>pos[15][0]-7&&m.x pos[15][1]-7&&m.y putimage(465,275,&Pp); else if(m.x>pos[16][0]-7&&m.x pos[16][1]-7&&m.y putimage(465,275,&Qq); else if(m.x>pos[17][0]-7&&m.x pos[17][1]-7&&m.y putimage(465,275,&Rr); else if(m.x>pos[18][0]-7&&m.x pos[18][1]-7&&m.y putimage(465,275,&Ss);華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告 else if(m.x>pos[19][0]-7&&m.x pos[19][1]-7&&m.y putimage(465,275,&Tt); else if(m.x>pos[20][0]-7&&m.x pos[20][1]-7&&m.y putimage(465,275,&Uu); else if(m.x>pos[21][0]-7&&m.x pos[21][1]-7&&m.y putimage(465,275,&Vv); else putimage(465,275,&temp); } if(m.uMsg==WM_LBUTTONUP) { if(m.x>0&&m.x<40&&m.y>0&&m.y<20) { setbkmode(TRANSPARENT); Windows(); } } } } /*功能:進(jìn)入幫助功能界面,顯示操作說明*/ void HelP(void){ putimage(0,0,&help);MOUSEMSG m;while(true){ m=GetMouseMsg(); if(m.uMsg==WM_LBUTTONUP) if(m.x>0&&m.x<070&&m.y>0&&m.y<50) Windows();} } /*功能:顯示作者相關(guān)信息*/ void About(void){ int posx[]={0,25};int posy[]={0,350};cleardevice();putimage(0,0,&about);MOUSEMSG m;while(true){ m=GetMouseMsg(); if(m.uMsg==WM_LBUTTONUP) if(m.x>posx[0]&&m.x posy[0]&&m.y Windows();} } /*退出系統(tǒng),結(jié)束程序的運(yùn)行*/ void Quit(void){ HWND wnd = GetHWnd();if(MessageBox(wnd, _T(“你確定要退出嗎?”), _T(“提醒”),31 華 中 科 技 大 學(xué) 計 算 機(jī) 科 學(xué) 與 技 術(shù) 學(xué) 院 課 程 設(shè) 計 報 告 } { } MB_OKCANCEL | MB_ICONQUESTION)== IDOK)closegraph();exit(0);