2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)報(bào)告 </p><p>  一、題目:鏈表的維護(hù)與文件形式的保存</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)。</p><p><b>  二、算法思想描述</b><

2、/p><p>  線性鏈表即線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是用一組任意的存儲(chǔ)單元來(lái)存儲(chǔ)線性表的各個(gè)元素。編寫本程序時(shí),就用到了鏈表的創(chuàng)建,插入,刪除等基本算法。在程序中創(chuàng)建了2個(gè)結(jié)構(gòu)體。</p><p>  1.typedef struct _Types</p><p><b>  {</b></p><p>  char type[

3、10];//保存家電的種類</p><p>  Detail *first;//¸指向具體機(jī)型</p><p>  struct _Types *next;</p><p><b>  }Types;</b></p><p>  2.typedef struct _Detail</p><

4、;p><b>  {</b></p><p>  char brand[10];//保存家電的品牌</p><p>  int number;//保存家電的數(shù)量</p><p>  int price; //保存家電的價(jià)格</p><p>  struct _Detail *next;<

5、/p><p><b>  }Detail;</b></p><p>  通過(guò)點(diǎn)擊不同的按鈕來(lái)執(zhí)行相應(yīng)的函數(shù)對(duì)鏈表進(jìn)行操作,完成各項(xiàng)功能。</p><p><b>  三、功能介紹</b></p><p>  程序使用了窗口界面,通過(guò)按鈕來(lái)進(jìn)行各種操作,比之DOS界面下的菜單更為美觀。</p>

6、<p>  窗口左側(cè)的按鈕有鏈表創(chuàng)建、初始數(shù)據(jù)、打開文件、保存文件和退出。其中鏈表在軟件啟動(dòng)時(shí)會(huì)自己創(chuàng)建,若是創(chuàng)建失敗則需要點(diǎn)擊創(chuàng)建按鈕進(jìn)行創(chuàng)建。</p><p>  初始數(shù)據(jù)的功能是將程序內(nèi)置的數(shù)據(jù)賦給鏈表。</p><p>  打開文件和保存文件顧名思義,一個(gè)是從文件讀入數(shù)據(jù)到鏈表,一個(gè)是將數(shù)據(jù)保存到鏈表。在文件操作方便我采用了CFile下的函數(shù),實(shí)現(xiàn)了彈出式窗口進(jìn)行文件

7、載入與保存,不再局限于固定地址的文件讀寫。</p><p>  代碼段CFileDialog fileDlg(TRUE);</p><p>  退出按鈕則調(diào)用系統(tǒng)函數(shù)退出軟件。</p><p>  窗口右側(cè)的按鈕有管理庫(kù)存和刷新數(shù)據(jù)。</p><p>  在管理庫(kù)存按鈕對(duì)應(yīng)的函數(shù)實(shí)現(xiàn)了一個(gè)伸縮隱藏窗口,點(diǎn)擊后出來(lái)隱藏窗口,在隱藏窗口上有各種管

8、理對(duì)應(yīng)的操作按鈕。</p><p>  刷新數(shù)據(jù)則是將鏈表中的數(shù)據(jù)重新顯示出來(lái)。</p><p>  窗口中間采用了4個(gè)列表框來(lái)實(shí)現(xiàn)輸出。</p><p>  第一個(gè)列表框用來(lái)顯示家電的類別。</p><p>  第二個(gè)列表框用來(lái)顯示家電的品牌。</p><p>  第三個(gè)列表框用來(lái)顯示家電的價(jià)格。</p>

9、;<p>  第四個(gè)列表框用來(lái)顯示家電的數(shù)量。</p><p>  每個(gè)列表框下面都寫個(gè)相應(yīng)的操作函數(shù)。第一個(gè)列表框?qū)崿F(xiàn)了點(diǎn)擊類別之后在二、三、四列表框分別顯示出相應(yīng)類別下的具體家電信息。二、三、四列表框下的函數(shù)實(shí)現(xiàn)了點(diǎn)擊后將二、三、四列表框的焦點(diǎn)顯示一致。</p><p>  在隱藏的下方窗口上有各種管理用的按鈕:添加商品、出售商品、按品牌和種類查詢商品。</p>

10、;<p>  添加商品:可以實(shí)現(xiàn)添加任意商品,自動(dòng)判斷,已有的則會(huì)只添加數(shù)目,沒(méi)有記錄的則會(huì)添加新記錄。</p><p>  出售商品:對(duì)選中的家電進(jìn)行出售。</p><p>  查詢:采用了組合框來(lái)讓用戶進(jìn)行選擇查詢,不需要進(jìn)行輸入操作,可以按類別和品牌分別查詢。解決了同個(gè)品牌有多種家電時(shí)候的名字重復(fù)問(wèn)題。</p><p><b>  四、

11、程序結(jié)構(gòu)</b></p><p><b>  五、特色函數(shù)介紹</b></p><p><b>  1. 列表框</b></p><p>  OnSelchangeList2()</p><p><b>  {</b></p><p>&l

12、t;b>  int i;</b></p><p>  i=((CListBox*)GetDlgItem(IDC_LIST2))->GetCurSel();</p><p>  ((CListBox*)GetDlgItem(IDC_LIST3))->SetCurSel(i);</p><p>  ((CListBox*)GetDlgIte

13、m(IDC_LIST4))->SetCurSel(i);</p><p>  CString str,str1,str2;</p><p>  ((CListBox*)GetDlgItem(IDC_LIST2))->GetText(i,str);</p><p>  ((CListBox*)GetDlgItem(IDC_LIST3))->GetTe

14、xt(i,str1);</p><p>  ((CListBox*)GetDlgItem(IDC_LIST4))->GetText(i,str2);</p><p>  GetDlgItem(IDC_EDIT2)->SetWindowText(str);</p><p>  GetDlgItem(IDC_EDIT3)->SetWindowText(

15、str1);</p><p>  GetDlgItem(IDC_EDIT4)->SetWindowText(str2);</p><p><b>  }</b></p><p>  功能:點(diǎn)擊實(shí)現(xiàn)品牌、價(jià)格、數(shù)量3個(gè)顯示框的焦點(diǎn)一致,并在下方編輯框中顯示出來(lái)。同理OnSelchangeList3()、OnSelchangeList4()2

16、個(gè)函數(shù)與此功能一樣。</p><p><b>  2.文件讀取與保存</b></p><p>  CFileDialog fileDlg(TRUE);</p><p>  fileDlg.m_ofn.lpstrTitle="¶ÁÈ¡¿â´æÎ&#

17、196;¼þ";</p><p>  fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";</p><p>  采用CFile而不用fread函數(shù),實(shí)現(xiàn)窗口彈出進(jìn)行文件操作,使得文件保存不具有局限性。</p><p&g

18、t;<b>  3. 數(shù)據(jù)刷新2</b></p><p>  這個(gè)函數(shù)不是顯示輸出的函數(shù),而是解決查找組合框中品牌名字重復(fù)的問(wèn)題。</p><p>  OnFlush2() </p><p><b>  {</b></p><p>  int Num=((CComboBox*)GetDlgItem

19、(IDC_COMBO1))->GetCount();</p><p>  for(int i=0;i<Num;i++)</p><p><b>  {</b></p><p>  for(int j=i+1;j<Num;j++)</p><p><b>  {</b></p&

20、gt;<p>  CString temp,temp1;</p><p>  ((CComboBox*)GetDlgItem(IDC_COMBO1))->GetLBText(i,temp);</p><p>  ((CComboBox*)GetDlgItem(IDC_COMBO1))->GetLBText(j,temp1);</p><p>

21、;  if(!strcmp(temp,temp1))</p><p><b>  {</b></p><p>  ((CComboBox*)GetDlgItem(IDC_COMBO1))->DeleteString(j);</p><p><b>  Num-=1;</b></p><p>&

22、lt;b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  通過(guò)組合框中串的比較從而刪除一個(gè)重復(fù)的串來(lái)達(dá)到目的。</p><p>

23、<b>  六、技術(shù)討論</b></p><p>  1.界面的制作主要就是對(duì)控件操作函數(shù)的使用,只要找到相應(yīng)的函數(shù)就很簡(jiǎn)單。</p><p>  2.文件操作函數(shù)的選擇。</p><p>  CFile.read與fread的選擇,在反復(fù)實(shí)驗(yàn)之后選用了CFile,保存打開的時(shí)候可以選擇任意地址的文件,不像fread\fwrite那樣局限。&l

24、t;/p><p>  3.對(duì)于保存文件損壞恢復(fù)的問(wèn)題沒(méi)有想到好的解決辦法,采用多個(gè)文件保存也是一個(gè)辦法,但是感覺(jué)沒(méi)有很大作用。</p><p><b>  七.收獲與體會(huì)</b></p><p>  從程序的準(zhǔn)備到設(shè)計(jì)最終完成,我做了一個(gè)多月,但是我可以自豪的講我是完全獨(dú)立完成的。其中大多時(shí)間花在了MFC的學(xué)習(xí)之上,但是后來(lái)卻發(fā)現(xiàn)做一個(gè)界面其實(shí)并沒(méi)

25、有想象中的復(fù)雜。</p><p>  設(shè)計(jì)完程序開始編寫的時(shí)候,我發(fā)現(xiàn)我對(duì)鏈表的操作很不熟悉,所以在開始的時(shí)候總是出現(xiàn)內(nèi)存出錯(cuò),后來(lái)耐著性子慢慢調(diào)試,在漸漸熟悉了之后就變得很簡(jiǎn)單了。剛開始在學(xué)MFC的時(shí)候我用的數(shù)組做的管理系統(tǒng),然后再改成的鏈表版本并添加了不少功能。在整個(gè)程序設(shè)計(jì)的過(guò)程中感覺(jué)最頭疼的是程序能夠成功運(yùn)行但總在某個(gè)操作的時(shí)候突然出錯(cuò),一直到這些天還發(fā)現(xiàn)了2個(gè)很隱蔽的錯(cuò)誤,到現(xiàn)在的完成真正花了很多的時(shí)間

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論