畢業(yè)設(shè)計(jì)項(xiàng)目KTV管理系統(tǒng)的評析思考
時(shí)間:2022-07-13 09:05:52
導(dǎo)語:畢業(yè)設(shè)計(jì)項(xiàng)目KTV管理系統(tǒng)的評析思考一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要:為了提高畢業(yè)設(shè)計(jì)質(zhì)量,進(jìn)一步提升學(xué)生的職業(yè)崗位能力,有必要對畢業(yè)設(shè)計(jì)項(xiàng)目進(jìn)行評析和反思。本文對學(xué)生的畢業(yè)設(shè)計(jì)項(xiàng)目ktv管理系統(tǒng)所用的開發(fā)軟件、功能設(shè)計(jì)、開發(fā)的重點(diǎn)和難點(diǎn)等方面存在的問題進(jìn)行分析和評價(jià),并反思在指導(dǎo)過程中存在的一些不足。通過評析和反思,可以發(fā)現(xiàn)軟件開發(fā)畢業(yè)設(shè)計(jì)中存在的問題和解決方法,有利于促進(jìn)畢業(yè)設(shè)計(jì)質(zhì)量的提升。
關(guān)鍵詞:評析畢業(yè)設(shè)計(jì);KTV管理系統(tǒng);反思
1引言
當(dāng)前,許多學(xué)校軟件技術(shù)專業(yè)的畢業(yè)設(shè)計(jì)質(zhì)量低下,有學(xué)生不重視敷衍了事的原因,有學(xué)校安排不合理的原因,也有學(xué)校對畢業(yè)設(shè)計(jì)的評析只關(guān)注結(jié)果呈現(xiàn)的原因。軟件項(xiàng)目開發(fā)有自身的流程,評析軟件項(xiàng)目需要圍繞軟件開發(fā)流程進(jìn)行。KTV管理系統(tǒng)是學(xué)生完成的畢業(yè)設(shè)計(jì)軟件項(xiàng)目。本文通過對KTV管理系統(tǒng)的開發(fā)軟件、需求分析、功能設(shè)計(jì)及實(shí)現(xiàn)的重點(diǎn)等的分析,詳細(xì)指出存在的問題。這對改進(jìn)指導(dǎo)過程、提高畢業(yè)設(shè)計(jì)質(zhì)量至關(guān)重要[1]。
2項(xiàng)目開發(fā)的軟件和架構(gòu)
項(xiàng)目開發(fā)采用什么軟件,是畢業(yè)設(shè)計(jì)首要確定的任務(wù)。軟件技術(shù)專業(yè)人才培養(yǎng)方案的目標(biāo)是培養(yǎng)學(xué)生基于.NET方向的開發(fā)能力。C#是微軟推出一種基于.NET框架的面向?qū)ο蟮木幊陶Z言,有強(qiáng)大的編程功能。因此項(xiàng)目組學(xué)生選擇C#作為項(xiàng)目的開發(fā)軟件既符合軟件技術(shù)專業(yè)的培養(yǎng)目標(biāo),也可以使學(xué)生完成從知識學(xué)習(xí)到知識遷移的過程,促進(jìn)學(xué)生掌握.NET方向的整體開發(fā)流程及設(shè)計(jì)能力[2]。項(xiàng)目開發(fā)按系統(tǒng)架構(gòu)分為B/S和C/S。它們是當(dāng)今系統(tǒng)架構(gòu)的兩大主流技術(shù)。B/S結(jié)構(gòu)即瀏覽器/服務(wù)器結(jié)構(gòu),用戶界面完全通過瀏覽器實(shí)現(xiàn)。C/S架構(gòu)即客戶端/服務(wù)器結(jié)構(gòu),需要安裝客戶端才能進(jìn)行管理操作。對于某個(gè)KTV店鋪的管理系統(tǒng)而言,這種兩種架構(gòu)方式都可以實(shí)現(xiàn)。通過調(diào)研和參考市場已有的商品化KTV管理系統(tǒng),既有B/S架構(gòu),也有C/S架構(gòu)。項(xiàng)目組學(xué)生采用C/S模式的架構(gòu)。采用混合模式架構(gòu)更佳,可使項(xiàng)目組學(xué)生在.NET方向的編程能力上得到全方位的鍛煉,既鍛煉學(xué)生在Web方向的編程能力,也可以提高學(xué)生Windows應(yīng)用程序的開發(fā)能力[3]。
3項(xiàng)目需求分析
整個(gè)項(xiàng)目開發(fā)前,需要完成以下工作:了解、分析KTV歌廳的管理流程;顧客在KTV歌廳中除了唱歌,還有其他消費(fèi)的情況;顧客在KTV唱歌時(shí),點(diǎn)歌的一些常規(guī)方法;歌廳的管理者通常在歌廳中要做的事情,如顧客進(jìn)來消費(fèi)時(shí)基本的開房、結(jié)賬,還要了解整個(gè)歌廳的營收情況等。通過市場調(diào)研,KTV管理系統(tǒng)分為三類用戶:管理員、超級管理員和普通用戶。系統(tǒng)應(yīng)具備有以下功能:(1)管理員對食品、房間、歌曲、歌手、用戶進(jìn)行增、刪、改、查的操作。(2)超級管理員可以統(tǒng)計(jì)和查看每天、每月及每年?duì)I業(yè)情況等。(3)用戶可以實(shí)現(xiàn)點(diǎn)歌和查歌功能,按歌手查歌、按拼音首字母查歌、按熱門的歌曲查歌等。(4)系統(tǒng)應(yīng)提供點(diǎn)餐、結(jié)賬功能。系統(tǒng)功能的設(shè)計(jì)比較全面。這些功能需求基本符合KTV管理系統(tǒng)的功能。這表明學(xué)生對項(xiàng)目進(jìn)行了一定研究。當(dāng)然也存在缺陷,如系統(tǒng)沒有預(yù)定功能、沒有記錄服務(wù)員的服務(wù)情況等。
4項(xiàng)目系統(tǒng)功能設(shè)計(jì)
項(xiàng)目組通過需求分析,設(shè)計(jì)了系統(tǒng)的前臺功能模塊和后臺管理模塊。后臺管理員分為超級管理員和普通管理員。超級管理員可以對普通管理員進(jìn)行管理,也可以對普通管理員設(shè)置相關(guān)的操作權(quán)限和查看營業(yè)情況。營業(yè)情況不僅有每日賬單和每月賬單及賬單的詳細(xì)信息,還可以查看每年?duì)I業(yè)額折線圖等。普通管理員可以對商品、歌曲、歌手、房間等進(jìn)行編輯操作。從這里可以看出,學(xué)生對KTV管理系統(tǒng)的管理員功能梳理得比較清晰,初步理解了軟件的概要設(shè)計(jì)。KTV管理系統(tǒng)的前臺功能是:用戶通過登錄操作后選擇空房間并進(jìn)入主操作頁面,可以進(jìn)行點(diǎn)歌、點(diǎn)餐、結(jié)賬操作及打印消費(fèi)單等。從這里可以看出,學(xué)生對用戶功能和管理員功能相互混淆,與需求分析相互矛盾。用戶能做的只有點(diǎn)餐和點(diǎn)歌,而開房、結(jié)賬和打印消費(fèi)單等應(yīng)由管理員來操作。
5數(shù)據(jù)庫設(shè)計(jì)
通過功能分析,采用SQLServer構(gòu)建數(shù)據(jù)庫。SQLServer數(shù)據(jù)庫技術(shù)也是軟件技術(shù)專業(yè)的核心課程。選用SQLServer可以實(shí)現(xiàn)對職業(yè)能力的鍛煉。系統(tǒng)需要以下數(shù)據(jù)表保存信息:用戶表、用戶等級表、管理員表、會員等級表、歌手信息表、歌曲信息表、歌手國籍表、房間信息表、房間類型表、房間狀態(tài)表、商品信息表、商品類型表、開房信息表、消費(fèi)信息表、訂單表、訂單詳情表。
6重點(diǎn)難點(diǎn)分析與實(shí)現(xiàn)
在KTV系統(tǒng)的實(shí)現(xiàn)中,點(diǎn)歌功能的實(shí)現(xiàn)、分頁顯示歌曲、歌手等信息是系統(tǒng)的重點(diǎn)和難點(diǎn)。
(1)點(diǎn)歌模塊的實(shí)現(xiàn)。點(diǎn)歌模塊的實(shí)現(xiàn),在專業(yè)課的教學(xué)中一般不涉及。這就需要學(xué)生通過自我學(xué)習(xí)完成代碼設(shè)計(jì)。點(diǎn)歌模塊分為點(diǎn)歌、歌曲控制兩部分。點(diǎn)歌部分主要實(shí)現(xiàn):將選中的歌曲保存到指定的數(shù)組中及設(shè)置多種點(diǎn)歌界面。歌曲控制部分是控制歌曲的播放,可以實(shí)現(xiàn)上一首、下一首、音量設(shè)置等操作。歌曲控制采用WindowsMediaPlayer媒體播放器,并設(shè)計(jì)winplay窗體類實(shí)現(xiàn)播放控制。在winplay窗體類中設(shè)置三個(gè)計(jì)時(shí)器,分別用來控制正在播放歌曲、未播放的歌曲和窗體的隱藏。點(diǎn)歌完成后,播放器獲取存放歌曲的數(shù)組、自動開始從點(diǎn)歌列表的第一首歌曲開始播放,并顯示當(dāng)前正在播放的歌曲名稱。winplay窗體還具備拉伸和收縮等一些動態(tài)效果。點(diǎn)歌界面如圖1所示。在設(shè)計(jì)點(diǎn)歌模塊時(shí),設(shè)計(jì)了一個(gè)歌曲類Song。它有三大屬性:分別用于保存歌曲名稱、歌曲存放的路徑位置url及歌曲的播放狀態(tài)。歌曲的播放狀態(tài)設(shè)置為全局的枚舉類型,共有三種狀態(tài):Playing、Played和UnPlay,分別表示正在播的、已經(jīng)播過的和還沒有播的狀態(tài)。同時(shí),還設(shè)計(jì)了一個(gè)公共播放類playlist。它包含一些關(guān)于播放需要的重要方法:將歌曲保存到指定數(shù)組、播放下一首和上一首的方法、獲得當(dāng)前的、上一首及下一首的歌曲名稱的方法及獲得播放列表的歌曲數(shù)等。學(xué)生定義的playlist類中添加歌曲方法代碼如下:publicstaticSong[]songs=newSong[1000];//Song是歌曲類publicstaticvoidAdd(Songsong){for(inti=0;i<songs.Length;i++){if(songs[i]==null){songs[i]=song;break;}}}從運(yùn)行效果看,功能確實(shí)是實(shí)現(xiàn)了,但不代表設(shè)計(jì)方法的正確。首先,學(xué)生采用數(shù)組songs存放用戶點(diǎn)的歌曲,定義最大容量是1000,且將新的歌曲添加到播放列表中時(shí),需要遍歷數(shù)組后才能存儲。這樣定義既浪費(fèi)存儲空間,又不盡合理。數(shù)組的優(yōu)點(diǎn)是存儲在連續(xù)內(nèi)存上、數(shù)據(jù)類型相同、通過下標(biāo)訪問元素。它的缺點(diǎn)是必須指定其長度,元素插入也不方便,過長浪費(fèi)內(nèi)存,超出下標(biāo)會產(chǎn)生溢出錯誤。而用戶在點(diǎn)歌時(shí),要點(diǎn)多少首歌曲是一個(gè)不確定的數(shù),應(yīng)該采用List泛型數(shù)組來保存和實(shí)現(xiàn)更合適,泛型數(shù)組適用于元素?cái)?shù)量不固定的情況,而且兩端存取非常方便。上述代碼可以優(yōu)化為:publicstaticList<Song>songs=newList<Song>();publicstaticvoidAdd(Songsong){songs.Add(song);}
(2)分頁功能的實(shí)現(xiàn)。在實(shí)現(xiàn)信息顯示時(shí),由于歌手、歌曲等信息都保存在數(shù)據(jù)表中,因此界面呈現(xiàn)的信息必須動態(tài)生成。為了使界面美觀且能加載更多數(shù)據(jù),在設(shè)計(jì)顯示數(shù)據(jù)信息時(shí)需要分頁。分頁功能的實(shí)現(xiàn)有許多方法。學(xué)生采用的分頁方法是通過子查詢實(shí)現(xiàn)。這里以顯示每頁8條數(shù)據(jù)即pagesize=8為例進(jìn)行說明。代碼在實(shí)現(xiàn)使用兩個(gè)變量currentpage、pcount。currentpage用來記錄當(dāng)前頁號,第一頁的頁號為0;pcount=currentpage*pagesize記錄查詢某頁數(shù)據(jù)時(shí),需要排除的某頁之前的記錄數(shù)。具體數(shù)據(jù)查詢代碼如下:"selecttop8*fromv_singerwhereSingerIDnotin(selecttop"+pcount+"SingerIDfromv_singer)"即首頁顯示時(shí),相應(yīng)的查詢語句是:selecttop8*fromv_singerwhereSingerIDnotin(selecttop0SingerIDfromv_singer)表示查詢數(shù)據(jù)中的第1條~第8條記錄。以此實(shí)現(xiàn)分頁查詢。由于分頁功能在項(xiàng)目中多次使用,應(yīng)該采用自定義分頁控件的方法來實(shí)現(xiàn)更合理,可以增加程序的通用性、可移植性。這也說明學(xué)生對分頁的知識學(xué)習(xí)沒有提升。此外,項(xiàng)目的點(diǎn)歌模塊還存在缺陷:如在點(diǎn)歌后,無法查看點(diǎn)歌列表,沒有實(shí)現(xiàn)點(diǎn)歌列表中歌曲的刪除操作等。
7畢業(yè)設(shè)計(jì)指導(dǎo)工作反思
畢業(yè)設(shè)計(jì)的質(zhì)量與指導(dǎo)工作密不可分。通過跟蹤KTV管理系統(tǒng)的畢業(yè)設(shè)計(jì)過程,發(fā)現(xiàn)在畢業(yè)設(shè)計(jì)指導(dǎo)中還存在一些需要解決的問題:(1)引導(dǎo)學(xué)生重視畢業(yè)設(shè)計(jì)的工作做得不夠充分。畢業(yè)設(shè)計(jì)通常歷時(shí)幾個(gè)月的時(shí)間,需要學(xué)生投入大量的時(shí)間和精力來完成。有些學(xué)生不夠重視,對項(xiàng)目研究不夠,許多細(xì)節(jié)考慮不夠周全[4]。(2)培養(yǎng)學(xué)生自主學(xué)習(xí)的意識和方法還有欠缺。畢業(yè)設(shè)計(jì)中,學(xué)生會遇到?jīng)]有學(xué)過的知識。作為指導(dǎo)教師,要糾正學(xué)生的依賴性,引導(dǎo)學(xué)生查閱文獻(xiàn)、資料進(jìn)行自我學(xué)習(xí),完成新知識的積累。(3)畢業(yè)設(shè)計(jì)過程有待進(jìn)一步精細(xì)化。在跟蹤指導(dǎo)學(xué)生畢業(yè)設(shè)計(jì)時(shí),指導(dǎo)教師不僅要指導(dǎo)學(xué)生選題、把關(guān)學(xué)生對系統(tǒng)的功能分析、審查學(xué)生的數(shù)據(jù)庫設(shè)計(jì)等,還要關(guān)注項(xiàng)目的重點(diǎn)模塊的實(shí)現(xiàn),既要關(guān)注運(yùn)行的結(jié)果,也要查看算法、設(shè)計(jì)方法等細(xì)節(jié)。只有這樣才能提高畢業(yè)設(shè)計(jì)的質(zhì)量[5]。
作者:馬海珠 單位:無錫城市職業(yè)技術(shù)學(xué)院