版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 數(shù)據結構課程設計</b></p><p> 程設計課題:商品管理軟件</p><p><b> 要求:</b></p><p> 以有序鏈表結構表示某家電商場的庫存模型。提/進貨時,需對鏈表進行維護。每個工作日結束后,應將該鏈表以文件形式保存;每日營業(yè)前,應從文件中恢復該有序鏈表結構。&
2、lt;/p><p><b> 設計基礎:</b></p><p> 基于c++語言的控制臺應用程序;(本文略)</p><p> 基于C# .net的帶友好界面的實用軟件(V1.0);</p><p> 基于鏈表結構的內部數(shù)據結構;</p><p><b> 初步構思:</b
3、></p><p><b> 程序實現(xiàn)以下功能</b></p><p> ?。?將庫存以文件的形式保存在硬盤,每日打開文件時讀取</p><p> ?。?允許操作員進行商品入庫出庫等操作;</p><p> c.將每日的操作內容記錄并以文本形式保存,方便以后查詢;</p><p> d
4、.以各種關鍵詞檢索庫存商品;</p><p> ?。?顯示當前所有庫存。</p><p><b> 程序的功能模塊:</b></p><p> 讀文件的類ReadFile,封裝好接口供程序調用,單獨成文件Readfile.cs;</p><p> 存文件的類SavetoFile,封裝好接口供程序調用,單獨成文件Sa
5、vetoFile.cs;</p><p> 商品類Good,記錄單個商品的信息,單獨成文件Good.cs;</p><p> 商品鏈表類GoodList,記錄整個庫存的信息,并封裝好排序等操作,單獨成文件GoodList;</p><p><b> 算法思想描述:</b></p><p><b> 程序
6、執(zhí)行流程圖:</b></p><p><b> 程序具體描述:</b></p><p> ①程序讀入文件-338332457(“Goodfile”的散列值),若不存在,系統(tǒng)自動創(chuàng)建一個空文件;</p><p> ②用戶選擇適當?shù)牟僮?,比如出庫,用戶只需要輸入相應貨物的名稱或者編號,出庫數(shù)量,系統(tǒng)會自動計算好金額;入庫時,系統(tǒng)會
7、自動添加商品編號(當前最大編號加1),用戶輸入各方面信息,商品可以入庫;商品查詢時,用戶選擇檢索方法,并輸入相應關鍵字,可以找到該商品的目前庫存信息;日操作記錄即系統(tǒng)會記錄每天的入庫和出庫情況,并將每日記錄分開記載(文件名為日期名的散列值),若該日不存在記錄,系統(tǒng)自動創(chuàng)建一空文件;顯示所有庫存即顯示當前庫存中的所有商品文件;</p><p> ?、巯到y(tǒng)有一個顯示當前時間的小功能,該程序和操作系統(tǒng)時間同步;<
8、/p><p><b> 關鍵算法如下:</b></p><p> ReadFile類(writefile類似):</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("未檢測到記載文件,系統(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> 商品入庫的主要代碼(出庫類似):</p><p> Good thisgood = new Good(thisname, thisno, thisprice, thisn
16、umber);</p><p> //string NewGoodString;</p><p> MessageBox.Show("商品入庫成功", "成功");</p><p> TodayWork += DateTime.Now.ToShortTimeString()+"商品入庫成功!";<
17、;/p><p> TodayWork += " 商品名稱:" + thisname.ToString() + " 商品編號:" + thisno.ToString() + " 商品價格:" + 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()); //刪除原來的</p><p> SavetoFile Storage = new SavetoFile("GoodInfo"); //重寫</p><p> Storage.Save
20、(ThisList.WholeInfo);</p><p> TodayWork = "";</p><p><b> 程序結構:</b></p><p> 本程序中所有遇到的類為:</p><p> 其中第一排四個為系統(tǒng)生成,第二排的由自己寫。類的主要成員如下:</p><
21、;p><b> 說明:</b></p><p> GoodList:: Good ExistName(string x);</p><p> 用來檢查商品庫中是否存在name為x的商品,存在返回該商品的引用;</p><p> GoodList:: public string WholeInfo;</p><p
22、> 以一定的格式組織當回當前鏈表中的所有商品信息,以字符串方式給出,方便寫入到文件;</p><p><b> 測試結果與分析:</b></p><p><b> 收入與體會:</b></p><p> 開發(fā)軟件很難,開發(fā)一個可以實際使用的,無BUG的,功能強大的應用軟件更是難上加難。我做這個軟件,其實中途一
23、再想放棄,因為其中的細節(jié)太多談煩太容易出問題了(現(xiàn)在再看感覺似乎又沒那么強烈)。系統(tǒng)中的GooList類我改了不下20次吧,總是感覺封裝的不夠,一會類被外部改變了,一會沒有權限讀類的保護數(shù)據了…同樣的還有WriteFile類,看起來它比ReadFile簡單多了,但其實我在上面的時間是后者的三倍,問題總是出在文件寫入的格式和編碼,忙的我焦頭爛額。最后是通過MSDN和CSDN上的例子,我才跌跌撞撞地把程序調出來;</p>&l
24、t;p> 想起來寫策劃很有必要。我上面說的,所謂感覺GoodList類老是封裝的不好,用起來很亂應該就是初期沒有對整個系統(tǒng)的要求進行一個總體分析,設計這個類時總是想到一點寫一點,這在后期大大減慢了我的開發(fā)進度,感覺就是恨不得重新寫。其實這個軟件一共也才70百來行,想想代碼過萬我就心驚膽顫了。接下來的一個學期我會找這方面的書看看,希望以后的開發(fā)中,我能先寫寫需求分析,做做UML圖什么的…</p><p>
25、 C#真簡單。雖然我還沒有學VC,但看見過VC的代碼,感覺就是很凌亂很復雜。C#就不一樣,操作都在.net里差不多弄好了,使用的時候只要用”.”看下這個類里都包含什么,自己選一個就好了,還不行就去MSDN,反正不需要像C++那樣還考慮那些底層的東西(不過似乎STL里也有很多很好的東東,當然,我不記得);</p><p> 本程序還有很多問題,比如沒有實現(xiàn)條形碼,更有甚者其實那個商品簡介都是看看的。主要是時間關系
26、,不過我感覺我的軟件存儲文件的思路就是有問題的,有空得全部重新改;</p><p> 代碼很亂,沒有注釋。其實我一直想寫注釋的,但真正寫代碼的時候總是控制不住自己停下來做注釋,這點以后真得好好改了。</p><p> 想著能提高安全性,就把所有存儲文件的文件名用上hash了,不過這沒什么大用,文件還是可以用記事本打開。我在估摸著把文件先huffman壓縮了再存儲,這是個大手術,得慢慢來
27、,我剛剛知道了動態(tài)huffman樹,希望在1.1版本里把這個功能加上;</p><p> 指針指向地獄。這是我看到一個程序員博客里說的,C#里很不提倡使用指針。它有自己的引用類型,不過這個似乎和C++里不怎么一樣了,不過我可以確定的是,因為這個我的程序里有BUG,而且很嚴重,C#的數(shù)據類型和引用類型,我還得仔細研究研究;</p><p> 美工很差,為什么我做的程序總是長得那么丑???
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《數(shù)據結構》課程設計報告--商品貨架管理系統(tǒng)
- 數(shù)據結構課程設計--文具店的貨品管理
- 數(shù)據結構課程設計--宿舍管理系統(tǒng)軟件
- 數(shù)據結構宿舍管理查詢軟件課程設計
- 數(shù)據結構課程設計--數(shù)據結構課程設計----huffman編碼
- 15級軟件工程-數(shù)據結構課程設計要求ppt-數(shù)據結構課程設計
- 數(shù)據結構課程設計商品貨物管理系統(tǒng)源程序
- 數(shù)據結構課程設計--庫存管理
- 數(shù)據結構課程設計宿舍管理
- 數(shù)據結構課程設計宿舍管理
- 數(shù)據結構課程設計--成績管理
- 數(shù)據結構課程設計
- 數(shù)據結構課程設計
- 數(shù)據結構課程設計
- 數(shù)據結構課程設計
- 數(shù)據結構課程設計
- 數(shù)據結構課程設計
- 數(shù)據結構課程設計
- 數(shù)據結構課程設計
- 數(shù)據結構課程設計論文-基礎軟件設計
評論
0/150
提交評論