版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)</b></p><p> 程設(shè)計(jì)課題:商品管理軟件</p><p><b> 要求:</b></p><p> 以有序鏈表結(jié)構(gòu)表示某家電商場(chǎng)的庫(kù)存模型。提/進(jìn)貨時(shí),需對(duì)鏈表進(jìn)行維護(hù)。每個(gè)工作日結(jié)束后,應(yīng)將該鏈表以文件形式保存;每日營(yíng)業(yè)前,應(yīng)從文件中恢復(fù)該有序鏈表結(jié)構(gòu)。&
2、lt;/p><p><b> 設(shè)計(jì)基礎(chǔ):</b></p><p> 基于c++語(yǔ)言的控制臺(tái)應(yīng)用程序;(本文略)</p><p> 基于C# .net的帶友好界面的實(shí)用軟件(V1.0);</p><p> 基于鏈表結(jié)構(gòu)的內(nèi)部數(shù)據(jù)結(jié)構(gòu);</p><p><b> 初步構(gòu)思:</b
3、></p><p><b> 程序?qū)崿F(xiàn)以下功能</b></p><p> ?。?將庫(kù)存以文件的形式保存在硬盤(pán),每日打開(kāi)文件時(shí)讀取</p><p> ?。?允許操作員進(jìn)行商品入庫(kù)出庫(kù)等操作;</p><p> ?。?將每日的操作內(nèi)容記錄并以文本形式保存,方便以后查詢;</p><p> ?。?/p>
4、.以各種關(guān)鍵詞檢索庫(kù)存商品;</p><p> e.顯示當(dāng)前所有庫(kù)存。</p><p><b> 程序的功能模塊:</b></p><p> 讀文件的類(lèi)ReadFile,封裝好接口供程序調(diào)用,單獨(dú)成文件Readfile.cs;</p><p> 存文件的類(lèi)SavetoFile,封裝好接口供程序調(diào)用,單獨(dú)成文件Sa
5、vetoFile.cs;</p><p> 商品類(lèi)Good,記錄單個(gè)商品的信息,單獨(dú)成文件Good.cs;</p><p> 商品鏈表類(lèi)GoodList,記錄整個(gè)庫(kù)存的信息,并封裝好排序等操作,單獨(dú)成文件GoodList;</p><p><b> 算法思想描述:</b></p><p><b> 程序
6、執(zhí)行流程圖:</b></p><p><b> 程序具體描述:</b></p><p> ?、俪绦蜃x入文件-338332457(“Goodfile”的散列值),若不存在,系統(tǒng)自動(dòng)創(chuàng)建一個(gè)空文件;</p><p> ?、谟脩暨x擇適當(dāng)?shù)牟僮鳎热绯鰩?kù),用戶只需要輸入相應(yīng)貨物的名稱(chēng)或者編號(hào),出庫(kù)數(shù)量,系統(tǒng)會(huì)自動(dòng)計(jì)算好金額;入庫(kù)時(shí),系統(tǒng)會(huì)
7、自動(dòng)添加商品編號(hào)(當(dāng)前最大編號(hào)加1),用戶輸入各方面信息,商品可以入庫(kù);商品查詢時(shí),用戶選擇檢索方法,并輸入相應(yīng)關(guān)鍵字,可以找到該商品的目前庫(kù)存信息;日操作記錄即系統(tǒng)會(huì)記錄每天的入庫(kù)和出庫(kù)情況,并將每日記錄分開(kāi)記載(文件名為日期名的散列值),若該日不存在記錄,系統(tǒng)自動(dòng)創(chuàng)建一空文件;顯示所有庫(kù)存即顯示當(dāng)前庫(kù)存中的所有商品文件;</p><p> ?、巯到y(tǒng)有一個(gè)顯示當(dāng)前時(shí)間的小功能,該程序和操作系統(tǒng)時(shí)間同步;<
8、/p><p><b> 關(guān)鍵算法如下:</b></p><p> ReadFile類(lèi)(writefile類(lèi)似):</p><p> class ReadFile</p><p><b> {</b></p><p> StreamReader sr;</p>
9、<p> public StreamReader SR</p><p><b> {</b></p><p><b> get</b></p><p><b> {</b></p><p> return sr;</p><p>
10、<b> }</b></p><p><b> }</b></p><p> public ReadFile(string x)</p><p><b> {</b></p><p> string FileInfo = x.GetHashCode().ToStrin
11、g();</p><p><b> try</b></p><p><b> {</b></p><p> sr = new StreamReader(FileInfo, Encoding.GetEncoding("GB2312"));</p><p><b>
12、 }</b></p><p> catch(FileNotFoundException)</p><p><b> {</b></p><p> MessageBox.Show("未檢測(cè)到記載文件,系統(tǒng)將創(chuàng)建");</p><p> StreamWriter sw = new St
13、reamWriter(FileInfo);</p><p> sw.Write("");</p><p> sw.Flush();</p><p> sw.Close();</p><p> sr = new StreamReader(FileInfo, Encoding.GetEncoding("GB2
14、312")); </p><p><b> }</b></p><p><b> }</b></p><p> public void Close()</p><p><b> {</b></p><p>
15、 sr.Close();</p><p><b> }</b></p><p><b> }</b></p><p> 商品入庫(kù)的主要代碼(出庫(kù)類(lèi)似):</p><p> Good thisgood = new Good(thisname, thisno, thisprice, thisn
16、umber);</p><p> //string NewGoodString;</p><p> MessageBox.Show("商品入庫(kù)成功", "成功");</p><p> TodayWork += DateTime.Now.ToShortTimeString()+"商品入庫(kù)成功!";<
17、;/p><p> TodayWork += " 商品名稱(chēng):" + thisname.ToString() + " 商品編號(hào):" + thisno.ToString() + " 商品價(jià)格:" + thisprice.ToString() + " 商品數(shù)量:" + thisnumber.ToString() + "\r\n
18、" + "\r\n";</p><p> ThisList.AddtoLine(thisgood);</p><p> SavetoFile TodayInfo = new SavetoFile(DateTime.Now.ToLongDateString()); //附加</p><p> TodayInfo.Save(Toda
19、yWork);</p><p> File.Delete("GoodInfo".GetHashCode().ToString()); //刪除原來(lái)的</p><p> SavetoFile Storage = new SavetoFile("GoodInfo"); //重寫(xiě)</p><p> Storage.Save
20、(ThisList.WholeInfo);</p><p> TodayWork = "";</p><p><b> 程序結(jié)構(gòu):</b></p><p> 本程序中所有遇到的類(lèi)為:</p><p> 其中第一排四個(gè)為系統(tǒng)生成,第二排的由自己寫(xiě)。類(lèi)的主要成員如下:</p><
21、;p><b> 說(shuō)明:</b></p><p> GoodList:: Good ExistName(string x);</p><p> 用來(lái)檢查商品庫(kù)中是否存在name為x的商品,存在返回該商品的引用;</p><p> GoodList:: public string WholeInfo;</p><p
22、> 以一定的格式組織當(dāng)回當(dāng)前鏈表中的所有商品信息,以字符串方式給出,方便寫(xiě)入到文件;</p><p><b> 測(cè)試結(jié)果與分析:</b></p><p><b> 收入與體會(huì):</b></p><p> 開(kāi)發(fā)軟件很難,開(kāi)發(fā)一個(gè)可以實(shí)際使用的,無(wú)BUG的,功能強(qiáng)大的應(yīng)用軟件更是難上加難。我做這個(gè)軟件,其實(shí)中途一
23、再想放棄,因?yàn)槠渲械募?xì)節(jié)太多談煩太容易出問(wèn)題了(現(xiàn)在再看感覺(jué)似乎又沒(méi)那么強(qiáng)烈)。系統(tǒng)中的GooList類(lèi)我改了不下20次吧,總是感覺(jué)封裝的不夠,一會(huì)類(lèi)被外部改變了,一會(huì)沒(méi)有權(quán)限讀類(lèi)的保護(hù)數(shù)據(jù)了…同樣的還有WriteFile類(lèi),看起來(lái)它比ReadFile簡(jiǎn)單多了,但其實(shí)我在上面的時(shí)間是后者的三倍,問(wèn)題總是出在文件寫(xiě)入的格式和編碼,忙的我焦頭爛額。最后是通過(guò)MSDN和CSDN上的例子,我才跌跌撞撞地把程序調(diào)出來(lái);</p>&l
24、t;p> 想起來(lái)寫(xiě)策劃很有必要。我上面說(shuō)的,所謂感覺(jué)GoodList類(lèi)老是封裝的不好,用起來(lái)很亂應(yīng)該就是初期沒(méi)有對(duì)整個(gè)系統(tǒng)的要求進(jìn)行一個(gè)總體分析,設(shè)計(jì)這個(gè)類(lèi)時(shí)總是想到一點(diǎn)寫(xiě)一點(diǎn),這在后期大大減慢了我的開(kāi)發(fā)進(jìn)度,感覺(jué)就是恨不得重新寫(xiě)。其實(shí)這個(gè)軟件一共也才70百來(lái)行,想想代碼過(guò)萬(wàn)我就心驚膽顫了。接下來(lái)的一個(gè)學(xué)期我會(huì)找這方面的書(shū)看看,希望以后的開(kāi)發(fā)中,我能先寫(xiě)寫(xiě)需求分析,做做UML圖什么的…</p><p>
25、 C#真簡(jiǎn)單。雖然我還沒(méi)有學(xué)VC,但看見(jiàn)過(guò)VC的代碼,感覺(jué)就是很凌亂很復(fù)雜。C#就不一樣,操作都在.net里差不多弄好了,使用的時(shí)候只要用”.”看下這個(gè)類(lèi)里都包含什么,自己選一個(gè)就好了,還不行就去MSDN,反正不需要像C++那樣還考慮那些底層的東西(不過(guò)似乎STL里也有很多很好的東東,當(dāng)然,我不記得);</p><p> 本程序還有很多問(wèn)題,比如沒(méi)有實(shí)現(xiàn)條形碼,更有甚者其實(shí)那個(gè)商品簡(jiǎn)介都是看看的。主要是時(shí)間關(guān)系
26、,不過(guò)我感覺(jué)我的軟件存儲(chǔ)文件的思路就是有問(wèn)題的,有空得全部重新改;</p><p> 代碼很亂,沒(méi)有注釋。其實(shí)我一直想寫(xiě)注釋的,但真正寫(xiě)代碼的時(shí)候總是控制不住自己停下來(lái)做注釋?zhuān)@點(diǎn)以后真得好好改了。</p><p> 想著能提高安全性,就把所有存儲(chǔ)文件的文件名用上hash了,不過(guò)這沒(méi)什么大用,文件還是可以用記事本打開(kāi)。我在估摸著把文件先huffman壓縮了再存儲(chǔ),這是個(gè)大手術(shù),得慢慢來(lái)
27、,我剛剛知道了動(dòng)態(tài)huffman樹(shù),希望在1.1版本里把這個(gè)功能加上;</p><p> 指針指向地獄。這是我看到一個(gè)程序員博客里說(shuō)的,C#里很不提倡使用指針。它有自己的引用類(lèi)型,不過(guò)這個(gè)似乎和C++里不怎么一樣了,不過(guò)我可以確定的是,因?yàn)檫@個(gè)我的程序里有BUG,而且很?chē)?yán)重,C#的數(shù)據(jù)類(lèi)型和引用類(lèi)型,我還得仔細(xì)研究研究;</p><p> 美工很差,為什么我做的程序總是長(zhǎng)得那么丑???
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)報(bào)告--商品貨架管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--文具店的貨品管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--宿舍管理系統(tǒng)軟件
- 數(shù)據(jù)結(jié)構(gòu)宿舍管理查詢軟件課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----huffman編碼
- 15級(jí)軟件工程-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)要求ppt-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)商品貨物管理系統(tǒng)源程序
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--庫(kù)存管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)宿舍管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)宿舍管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--成績(jī)管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)論文-基礎(chǔ)軟件設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論