畢業(yè)設(shè)計(jì)項(xiàng)目KTV管理系統(tǒng)的評(píng)析思考

時(shí)間:2022-07-13 09:05:52

導(dǎo)語(yǔ):畢業(yè)設(shè)計(jì)項(xiàng)目KTV管理系統(tǒng)的評(píng)析思考一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

畢業(yè)設(shè)計(jì)項(xiàng)目KTV管理系統(tǒng)的評(píng)析思考

摘要:為了提高畢業(yè)設(shè)計(jì)質(zhì)量,進(jìn)一步提升學(xué)生的職業(yè)崗位能力,有必要對(duì)畢業(yè)設(shè)計(jì)項(xiàng)目進(jìn)行評(píng)析和反思。本文對(duì)學(xué)生的畢業(yè)設(shè)計(jì)項(xiàng)目ktv管理系統(tǒng)所用的開發(fā)軟件、功能設(shè)計(jì)、開發(fā)的重點(diǎn)和難點(diǎn)等方面存在的問(wèn)題進(jìn)行分析和評(píng)價(jià),并反思在指導(dǎo)過(guò)程中存在的一些不足。通過(guò)評(píng)析和反思,可以發(fā)現(xiàn)軟件開發(fā)畢業(yè)設(shè)計(jì)中存在的問(wèn)題和解決方法,有利于促進(jìn)畢業(yè)設(shè)計(jì)質(zhì)量的提升。

關(guān)鍵詞:評(píng)析畢業(yè)設(shè)計(jì);KTV管理系統(tǒng);反思

1引言

當(dāng)前,許多學(xué)校軟件技術(shù)專業(yè)的畢業(yè)設(shè)計(jì)質(zhì)量低下,有學(xué)生不重視敷衍了事的原因,有學(xué)校安排不合理的原因,也有學(xué)校對(duì)畢業(yè)設(shè)計(jì)的評(píng)析只關(guān)注結(jié)果呈現(xiàn)的原因。軟件項(xiàng)目開發(fā)有自身的流程,評(píng)析軟件項(xiàng)目需要圍繞軟件開發(fā)流程進(jìn)行。KTV管理系統(tǒng)是學(xué)生完成的畢業(yè)設(shè)計(jì)軟件項(xiàng)目。本文通過(guò)對(duì)KTV管理系統(tǒng)的開發(fā)軟件、需求分析、功能設(shè)計(jì)及實(shí)現(xiàn)的重點(diǎn)等的分析,詳細(xì)指出存在的問(wèn)題。這對(duì)改進(jìn)指導(dǎo)過(guò)程、提高畢業(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(yǔ)言,有強(qiáng)大的編程功能。因此項(xiàng)目組學(xué)生選擇C#作為項(xiàng)目的開發(fā)軟件既符合軟件技術(shù)專業(yè)的培養(yǎng)目標(biāo),也可以使學(xué)生完成從知識(shí)學(xué)習(xí)到知識(shí)遷移的過(guò)程,促進(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),用戶界面完全通過(guò)瀏覽器實(shí)現(xiàn)。C/S架構(gòu)即客戶端/服務(wù)器結(jié)構(gòu),需要安裝客戶端才能進(jìn)行管理操作。對(duì)于某個(gè)KTV店鋪的管理系統(tǒng)而言,這種兩種架構(gòu)方式都可以實(shí)現(xiàn)。通過(guò)調(diào)研和參考市場(chǎng)已有的商品化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)來(lái)消費(fèi)時(shí)基本的開房、結(jié)賬,還要了解整個(gè)歌廳的營(yíng)收情況等。通過(guò)市場(chǎng)調(diào)研,KTV管理系統(tǒng)分為三類用戶:管理員、超級(jí)管理員和普通用戶。系統(tǒng)應(yīng)具備有以下功能:(1)管理員對(duì)食品、房間、歌曲、歌手、用戶進(jìn)行增、刪、改、查的操作。(2)超級(jí)管理員可以統(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é)生對(duì)項(xiàng)目進(jìn)行了一定研究。當(dāng)然也存在缺陷,如系統(tǒng)沒(méi)有預(yù)定功能、沒(méi)有記錄服務(wù)員的服務(wù)情況等。

4項(xiàng)目系統(tǒng)功能設(shè)計(jì)

項(xiàng)目組通過(guò)需求分析,設(shè)計(jì)了系統(tǒng)的前臺(tái)功能模塊和后臺(tái)管理模塊。后臺(tái)管理員分為超級(jí)管理員和普通管理員。超級(jí)管理員可以對(duì)普通管理員進(jìn)行管理,也可以對(duì)普通管理員設(shè)置相關(guān)的操作權(quán)限和查看營(yíng)業(yè)情況。營(yíng)業(yè)情況不僅有每日賬單和每月賬單及賬單的詳細(xì)信息,還可以查看每年?duì)I業(yè)額折線圖等。普通管理員可以對(duì)商品、歌曲、歌手、房間等進(jìn)行編輯操作。從這里可以看出,學(xué)生對(duì)KTV管理系統(tǒng)的管理員功能梳理得比較清晰,初步理解了軟件的概要設(shè)計(jì)。KTV管理系統(tǒng)的前臺(tái)功能是:用戶通過(guò)登錄操作后選擇空房間并進(jìn)入主操作頁(yè)面,可以進(jìn)行點(diǎn)歌、點(diǎn)餐、結(jié)賬操作及打印消費(fèi)單等。從這里可以看出,學(xué)生對(duì)用戶功能和管理員功能相互混淆,與需求分析相互矛盾。用戶能做的只有點(diǎn)餐和點(diǎn)歌,而開房、結(jié)賬和打印消費(fèi)單等應(yīng)由管理員來(lái)操作。

5數(shù)據(jù)庫(kù)設(shè)計(jì)

通過(guò)功能分析,采用SQLServer構(gòu)建數(shù)據(jù)庫(kù)。SQLServer數(shù)據(jù)庫(kù)技術(shù)也是軟件技術(shù)專業(yè)的核心課程。選用SQLServer可以實(shí)現(xiàn)對(duì)職業(yè)能力的鍛煉。系統(tǒng)需要以下數(shù)據(jù)表保存信息:用戶表、用戶等級(jí)表、管理員表、會(huì)員等級(jí)表、歌手信息表、歌曲信息表、歌手國(guó)籍表、房間信息表、房間類型表、房間狀態(tài)表、商品信息表、商品類型表、開房信息表、消費(fèi)信息表、訂單表、訂單詳情表。

6重點(diǎn)難點(diǎn)分析與實(shí)現(xiàn)

在KTV系統(tǒng)的實(shí)現(xiàn)中,點(diǎn)歌功能的實(shí)現(xiàn)、分頁(yè)顯示歌曲、歌手等信息是系統(tǒng)的重點(diǎn)和難點(diǎn)。

(1)點(diǎn)歌模塊的實(shí)現(xiàn)。點(diǎn)歌模塊的實(shí)現(xiàn),在專業(yè)課的教學(xué)中一般不涉及。這就需要學(xué)生通過(guò)自我學(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í)器,分別用來(lái)控制正在播放歌曲、未播放的歌曲和窗體的隱藏。點(diǎn)歌完成后,播放器獲取存放歌曲的數(shù)組、自動(dòng)開始從點(diǎn)歌列表的第一首歌曲開始播放,并顯示當(dāng)前正在播放的歌曲名稱。winplay窗體還具備拉伸和收縮等一些動(dòng)態(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)播過(guò)的和還沒(méi)有播的狀態(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ù)組后才能存儲(chǔ)。這樣定義既浪費(fèi)存儲(chǔ)空間,又不盡合理。數(shù)組的優(yōu)點(diǎn)是存儲(chǔ)在連續(xù)內(nèi)存上、數(shù)據(jù)類型相同、通過(guò)下標(biāo)訪問(wèn)元素。它的缺點(diǎn)是必須指定其長(zhǎng)度,元素插入也不方便,過(guò)長(zhǎng)浪費(fèi)內(nèi)存,超出下標(biāo)會(huì)產(chǎn)生溢出錯(cuò)誤。而用戶在點(diǎn)歌時(shí),要點(diǎn)多少首歌曲是一個(gè)不確定的數(shù),應(yīng)該采用List泛型數(shù)組來(lái)保存和實(shí)現(xiàn)更合適,泛型數(shù)組適用于元素?cái)?shù)量不固定的情況,而且兩端存取非常方便。上述代碼可以優(yōu)化為:publicstaticList<Song>songs=newList<Song>();publicstaticvoidAdd(Songsong){songs.Add(song);}

(2)分頁(yè)功能的實(shí)現(xiàn)。在實(shí)現(xiàn)信息顯示時(shí),由于歌手、歌曲等信息都保存在數(shù)據(jù)表中,因此界面呈現(xiàn)的信息必須動(dòng)態(tài)生成。為了使界面美觀且能加載更多數(shù)據(jù),在設(shè)計(jì)顯示數(shù)據(jù)信息時(shí)需要分頁(yè)。分頁(yè)功能的實(shí)現(xiàn)有許多方法。學(xué)生采用的分頁(yè)方法是通過(guò)子查詢實(shí)現(xiàn)。這里以顯示每頁(yè)8條數(shù)據(jù)即pagesize=8為例進(jìn)行說(shuō)明。代碼在實(shí)現(xiàn)使用兩個(gè)變量currentpage、pcount。currentpage用來(lái)記錄當(dāng)前頁(yè)號(hào),第一頁(yè)的頁(yè)號(hào)為0;pcount=currentpage*pagesize記錄查詢某頁(yè)數(shù)據(jù)時(shí),需要排除的某頁(yè)之前的記錄數(shù)。具體數(shù)據(jù)查詢代碼如下:"selecttop8*fromv_singerwhereSingerIDnotin(selecttop"+pcount+"SingerIDfromv_singer)"即首頁(yè)顯示時(shí),相應(yīng)的查詢語(yǔ)句是:selecttop8*fromv_singerwhereSingerIDnotin(selecttop0SingerIDfromv_singer)表示查詢數(shù)據(jù)中的第1條~第8條記錄。以此實(shí)現(xiàn)分頁(yè)查詢。由于分頁(yè)功能在項(xiàng)目中多次使用,應(yīng)該采用自定義分頁(yè)控件的方法來(lái)實(shí)現(xiàn)更合理,可以增加程序的通用性、可移植性。這也說(shuō)明學(xué)生對(duì)分頁(yè)的知識(shí)學(xué)習(xí)沒(méi)有提升。此外,項(xiàng)目的點(diǎn)歌模塊還存在缺陷:如在點(diǎn)歌后,無(wú)法查看點(diǎn)歌列表,沒(méi)有實(shí)現(xiàn)點(diǎn)歌列表中歌曲的刪除操作等。

7畢業(yè)設(shè)計(jì)指導(dǎo)工作反思

畢業(yè)設(shè)計(jì)的質(zhì)量與指導(dǎo)工作密不可分。通過(guò)跟蹤KTV管理系統(tǒng)的畢業(yè)設(shè)計(jì)過(guò)程,發(fā)現(xiàn)在畢業(yè)設(shè)計(jì)指導(dǎo)中還存在一些需要解決的問(wèn)題:(1)引導(dǎo)學(xué)生重視畢業(yè)設(shè)計(jì)的工作做得不夠充分。畢業(yè)設(shè)計(jì)通常歷時(shí)幾個(gè)月的時(shí)間,需要學(xué)生投入大量的時(shí)間和精力來(lái)完成。有些學(xué)生不夠重視,對(duì)項(xiàng)目研究不夠,許多細(xì)節(jié)考慮不夠周全[4]。(2)培養(yǎng)學(xué)生自主學(xué)習(xí)的意識(shí)和方法還有欠缺。畢業(yè)設(shè)計(jì)中,學(xué)生會(huì)遇到?jīng)]有學(xué)過(guò)的知識(shí)。作為指導(dǎo)教師,要糾正學(xué)生的依賴性,引導(dǎo)學(xué)生查閱文獻(xiàn)、資料進(jìn)行自我學(xué)習(xí),完成新知識(shí)的積累。(3)畢業(yè)設(shè)計(jì)過(guò)程有待進(jìn)一步精細(xì)化。在跟蹤指導(dǎo)學(xué)生畢業(yè)設(shè)計(jì)時(shí),指導(dǎo)教師不僅要指導(dǎo)學(xué)生選題、把關(guān)學(xué)生對(duì)系統(tǒng)的功能分析、審查學(xué)生的數(shù)據(jù)庫(kù)設(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]。

作者:馬海珠 單位:無(wú)錫城市職業(yè)技術(shù)學(xué)院