畢業(yè)設(shè)計(jì)--基于c、c++語言的客戶消費(fèi)積分管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
已閱讀1頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p><b>  目錄</b></p><p><b>  1.設(shè)計(jì)目的1</b></p><p><b>  2. 問題描述2</b></p><p><b>  3.需求分

2、析2</b></p><p>  3.1 數(shù)據(jù)需求2</p><p>  3.2 基本功能需求2</p><p>  3.3 非功能性需求2</p><p><b>  4.概要設(shè)計(jì)3</b></p><p>  4.1 數(shù)據(jù)結(jié)構(gòu)3</p><p>

3、  4.2 系統(tǒng)包含的函數(shù)3</p><p>  4.3 函數(shù)間的關(guān)系3</p><p>  4.4 系統(tǒng)功能模塊圖4</p><p><b>  5.詳細(xì)設(shè)計(jì)4</b></p><p>  5.1 結(jié)構(gòu)體的詳細(xì)定義4</p><p>  5.2 系統(tǒng)函數(shù)詳細(xì)介紹5</p>

4、<p>  5.3 系統(tǒng)功能模塊介紹11</p><p>  5.4 具體模塊設(shè)計(jì)12</p><p><b>  6.調(diào)試分析14</b></p><p><b>  7.使用說明15</b></p><p>  8. 設(shè)計(jì)總結(jié)19</p><p>

5、<b>  9.參考文獻(xiàn)20</b></p><p>  《數(shù)據(jù)結(jié)構(gòu)》畢業(yè)設(shè)計(jì)</p><p><b>  客戶消費(fèi)積分管理</b></p><p><b>  1.設(shè)計(jì)目的</b></p><p>  “數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)一門十分重要的專業(yè)技術(shù)基礎(chǔ)課,計(jì)算機(jī)科

6、學(xué)各領(lǐng)域及有關(guān)的應(yīng)用軟件都要使用到各種數(shù)據(jù)結(jié)構(gòu)。對(duì)于從事計(jì)算機(jī)科學(xué)及其應(yīng)用的科技工作者來說,數(shù)據(jù)結(jié)構(gòu)與算法是必須透徹地掌握的重要基礎(chǔ)。</p><p>  學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法的最終目的是解決實(shí)際的應(yīng)用問題,特別是非數(shù)值計(jì)算類型的應(yīng)用問題。畢業(yè)設(shè)計(jì)是加強(qiáng)學(xué)生實(shí)踐能力的一個(gè)強(qiáng)有力手段。畢業(yè)設(shè)計(jì)所安排的題目,在難度和深度方面都大于平時(shí)的上機(jī)訓(xùn)練,要求同學(xué)在完成設(shè)計(jì)和編寫中小型軟件的過程中,深化對(duì)數(shù)據(jù)結(jié)構(gòu)與算法畢業(yè)中基本

7、概念、理論和方法的理解;訓(xùn)練綜合運(yùn)用所學(xué)知識(shí)處理實(shí)際問題的能力,強(qiáng)化面向?qū)ο蟮某绦蛟O(shè)計(jì)理念;使同學(xué)的程序設(shè)計(jì)與調(diào)試水平有一個(gè)明顯的提高。</p><p>  畢業(yè)設(shè)計(jì)要求學(xué)生在完成程序設(shè)計(jì)的同時(shí)能夠撰寫比較規(guī)范的設(shè)計(jì)報(bào)告。嚴(yán)格實(shí)施畢業(yè)設(shè)計(jì)這一環(huán)節(jié),對(duì)于學(xué)生基本程序設(shè)計(jì)素養(yǎng)的培養(yǎng)和軟件工作者工作作風(fēng)的訓(xùn)練,將起到顯著的促進(jìn)作用。</p><p>  問題描述

8、 </p><p>  本設(shè)計(jì)用于管理客戶的消費(fèi)情況,從而根據(jù)客戶的消費(fèi)積分對(duì)客戶實(shí)行不同程度的打折優(yōu)惠??蛻粝M(fèi)積分管理系統(tǒng)具體應(yīng)該使用一定的存儲(chǔ)結(jié)構(gòu)將用戶的消費(fèi)信息存儲(chǔ)起來,以方便管理。其中用戶的信息包括用戶姓名,用戶身份證號(hào)碼,用戶消費(fèi)金額,用戶積分多少。繼而完成對(duì)于客戶信息的增刪查改等管理。</p><p

9、><b>  3.需求分析</b></p><p><b>  3.1 數(shù)據(jù)需求</b></p><p>  應(yīng)使用結(jié)構(gòu)體對(duì)每個(gè)用戶的信息進(jìn)行封裝。其中用戶的信息包括用戶姓名,用戶身份證號(hào)碼,用戶消費(fèi)金額,用戶積分多少。</p><p>  然后運(yùn)用鏈表的存儲(chǔ)結(jié)構(gòu)將所有用戶信息進(jìn)行保存。繼而完成各種功能。</p

10、><p>  3.2 基本功能需求</p><p>  本設(shè)計(jì)應(yīng)該同時(shí)完成以下功能①添加用戶②查找用戶③修改用戶④刪除用戶⑤統(tǒng)計(jì)客戶數(shù)量⑥按一定順序顯示客戶信息⑦清空用戶信息⑧用一定的存儲(chǔ)方法實(shí)現(xiàn)用戶信息的永久保存,充分滿足對(duì)于管理系統(tǒng)的要求。</p><p>  3.3 非功能性需求</p><p>  用戶界面需求:簡(jiǎn)潔、易用、易懂、友好的用

11、戶界面。</p><p>  硬件要求:裝有Visual C++6.0的計(jì)算機(jī)。</p><p>  可靠性需求:保證用戶在正常使用本系統(tǒng)時(shí),用戶的操作或誤操作不會(huì)產(chǎn)生數(shù)據(jù)的丟失。</p><p><b>  4.概要設(shè)計(jì)</b></p><p><b>  4.1 數(shù)據(jù)結(jié)構(gòu)</b></p&g

12、t;<p>  本設(shè)計(jì)采用鏈表的存儲(chǔ)方式對(duì)用戶的信息進(jìn)行臨時(shí)性的存儲(chǔ),其中每個(gè)節(jié)點(diǎn)的信息用結(jié)構(gòu)體進(jìn)行封裝,其中用戶的信息包括用戶姓名,用戶身份證號(hào)碼,用戶消費(fèi)金額,用戶積分?jǐn)?shù)量。</p><p>  4.2 系統(tǒng)包含的函數(shù)</p><p>  系統(tǒng)包含的函數(shù)有:添加函數(shù),按姓名查找函數(shù),按身份證號(hào)查找函數(shù),修改函數(shù),刪除函數(shù),顯示函數(shù),統(tǒng)計(jì)函數(shù),排序函數(shù),計(jì)算折扣函數(shù),清空函

13、數(shù),文件保存函數(shù),文件讀取函數(shù),身份證驗(yàn)證函數(shù)和主函數(shù)。共計(jì)14個(gè)函數(shù)。</p><p>  4.3 函數(shù)間的關(guān)系</p><p>  ①顯示函數(shù)調(diào)用計(jì)算折扣函數(shù),計(jì)算出客戶的折扣信息,并在屏幕上顯示;</p><p> ?、谥骱瘮?shù)在調(diào)用添加,修改,刪除,清空函數(shù)之后都必須調(diào)用文件保存函數(shù)進(jìn)行保存。</p><p> ?、壅{(diào)用顯示函數(shù)之前先調(diào)

14、用排序函數(shù),以便屏幕輸出有序的用戶信息。</p><p> ?、苷{(diào)用添加函數(shù)之前先調(diào)用身份驗(yàn)證函數(shù),判斷身份證號(hào)是否重復(fù)。</p><p> ?、萜渌鱾€(gè)函數(shù)都各自獨(dú)立。</p><p>  4.4 系統(tǒng)功能模塊圖</p><p>  圖 4-1 系統(tǒng)功能模塊圖</p><p>  注釋:此處的調(diào)用不是真正意義上的調(diào)用

15、,而是在主函數(shù)中調(diào)用A函數(shù)前,先調(diào)用B函數(shù)。以此來類比A函數(shù)調(diào)用B函數(shù)。</p><p><b>  5.詳細(xì)設(shè)計(jì)</b></p><p>  5.1 結(jié)構(gòu)體的詳細(xì)定義</p><p>  構(gòu)造一個(gè)結(jié)構(gòu)體,封裝客戶的個(gè)人信息,作為鏈表中每個(gè)節(jié)點(diǎn)的模板。括用戶姓名,用戶身份證號(hào)碼,用戶消費(fèi)金額,用戶積分?jǐn)?shù)量。具體實(shí)現(xiàn)如下:</p>

16、<p>  struct C //定義一個(gè)結(jié)構(gòu)體 C</p><p><b>  { </b></p><p>  char name[20]; </p><p>  char ID[

17、20]; </p><p>  double consume; </p><p>  double integer; </p><p>  C *next;

18、 </p><p><b>  };</b></p><p>  5.2 系統(tǒng)函數(shù)詳細(xì)介紹</p><p> ?、偬砑佑脩簟:瘮?shù)void Getelem (cnode *head);采用類將每個(gè)用戶的信息封裝,其中包括用戶姓名name、用戶省份證號(hào)ID、用戶消費(fèi)金額cons

19、ume、積分integer的信息。輸入一個(gè)客戶信息后再開辟新的節(jié)點(diǎn)連接。如添加一個(gè)客戶:定義指針p,用于申請(qǐng)空的結(jié)點(diǎn)空間,p=(cnode*)malloc(sizeof(cnode)),利用函數(shù)輸入姓名,身份證號(hào),并保證身份證號(hào)的正確。</p><p>  void A::Getelem (C *head) //增加客戶</p>&l

20、t;p>  { </p><p><b>  C *p;</b></p><p><b>  double y;</b></p><p>  p=(C*)malloc(sizeof(C)

21、); //申請(qǐng)空的節(jié)點(diǎn)空間</p><p>  cout<<"請(qǐng)輸入姓名:";</p><p>  cin>>p->name;</p><p>  cout<<"請(qǐng)輸入身份證號(hào)(18位):";</p><p>  ci

22、n>>p->ID;</p><p>  while(strlen(p->ID)!=18)</p><p><b>  {</b></p><p>  cout<<"身份證號(hào)碼位數(shù)有誤請(qǐng)重新輸入(18位):";</p><p>  cin>> p->

23、ID;</p><p><b>  }</b></p><p>  cout<<"請(qǐng)輸入消費(fèi)金額:";</p><p>  cin>>p->consume;</p><p>  p->integer=p->consume;</p><p&g

24、t;  y=display_discount(p->integer); //調(diào)用函數(shù)計(jì)算折扣</p><p>  cout<<"折扣:"<<y<<"折";</p><p>  p->next=head->next;</p><p>  he

25、ad->next=p;</p><p><b>  }</b></p><p> ?、趘oid Search(cnode *head,char ID[]);和void Search(cnode *head,char ID[]);查找用戶,用每一個(gè)節(jié)點(diǎn)的ID信息或者姓名信息和待查信息進(jìn)行比對(duì),直到找到正確信息并顯示。用身份證號(hào)(ID)核對(duì)的程序?qū)崿F(xiàn)如下:</

26、p><p>  void A:: Searchi(C *head,char ID[]) //查找用戶</p><p><b>  {</b></p><p><b>  C *p;</b></p><p><b>  double y;<

27、;/b></p><p><b>  p=head;</b></p><p>  if(p->next==NULL)</p><p>  cout<<"沒有客戶!"; //判斷鏈表是否為空</p><p><b>  els

28、e</b></p><p><b>  {</b></p><p>  while(p->next!=NULL)</p><p><b>  {</b></p><p>  p=p->next;</p><p>  if(strcmp(ID,p->

29、;ID)==0) //判斷身份證號(hào)是否相同</p><p>  { </p><p>  cout<< " ****************************"<<endl;</p><p>  cout<<"姓名:"<&

30、lt;p->name<<endl;</p><p>  cout<<"身份證號(hào):"<<p->ID<<endl;</p><p>  cout<<"消費(fèi):"<<p->consume<<endl;</p><p>  cout&l

31、t;<"積分:"<<p->integer<<endl;</p><p>  y=display_discount(p->integer);</p><p>  cout<<"折扣:"<<y<<"折"<<endl;</p><

32、;p>  cout<< " ****************************"<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><

33、p><b>  }</b></p><p> ?、踲oid Amend(cnode *head,char ID[]);查找并顯示然后修改。先判斷鏈表是否為空,若為空則提示沒有客戶;若不為空,則用每一個(gè)節(jié)點(diǎn)信息和待查節(jié)點(diǎn)信息進(jìn)行比對(duì),知道找到該節(jié)點(diǎn),然后對(duì)該節(jié)點(diǎn)信息進(jìn)行修改。以下程序以修改客戶姓名為例。</p><p>  void A:: Amend(C *he

34、ad,char ID[]) //修改客戶函數(shù)</p><p>  { </p><p><b>  C *p;</b></p><p>  double y,z;</p><p>  int choose,x;</p

35、><p><b>  p=head;</b></p><p>  if(p->next==NULL)</p><p>  cout<<"沒有客戶!";</p><p><b>  else</b></p><p><b>  {&l

36、t;/b></p><p>  while(p->next!=NULL)</p><p><b>  {</b></p><p>  p=p->next;</p><p>  if(strcmp(ID,p->ID)==0) //判斷身份證號(hào)是否相同</p><

37、;p>  { </p><p>  cout<< " ****************************"<<endl;</p><p>  cout<<"姓名:"<<p->name<<endl;</p><p>

38、;  cout<<"身份證號(hào):"<<p->ID<<endl;</p><p>  cout<<"消費(fèi):"<<p->consume<<endl;</p><p>  cout<<"積分:"<<p->integer<

39、<endl;</p><p>  y=display_discount(p->integer);</p><p>  cout<<"折扣:"<<y<<"折"<<endl;</p><p>  cout<< " ******************

40、**********"<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>  cout<<"請(qǐng)選擇你要修改的1、姓名。2、身份證號(hào)。3、消費(fèi)金額。";</p><p>  cin>

41、>choose;</p><p>  if(choose==1)</p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入修改后姓名;";</p><p>  cin>>p->name;</p><p><b&g

42、t;  }</b></p><p> ?、躹oid Delete(cnode *head,char ID[]);查找顯示并刪除。查找時(shí)的做法與上述兩個(gè)函數(shù)基本相同,以下程序用來實(shí)現(xiàn)刪除該客戶(該節(jié)點(diǎn))的功能。cout<<"你確認(rèn)刪除?1、確定。2、取消。請(qǐng)選擇:";</p><p><b>  cin>>x;</b&g

43、t;</p><p><b>  if(x==1)</b></p><p><b>  {</b></p><p>  head->next=p->next;</p><p>  cout<<"刪除成功!";</p><p><

44、;b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"刪除失敗!";</p><p><b>  }</b></p><

45、p> ?、輛oid Showall(cnode *head);遍歷鏈表并顯示客戶。用一個(gè)while語句實(shí)現(xiàn)打印每一個(gè)用戶。</p><p>  while(p->next!=NULL)</p><p><b>  {</b></p><p>  cout<< " ************************

46、****"<<endl;</p><p>  p=p->next;</p><p>  cout<<"姓名:"<<p->name<<endl;</p><p>  cout<<"身份證號(hào):"<<p->ID<<endl

47、;</p><p>  cout<<"消費(fèi):"<<p->consume<<endl;</p><p>  cout<<"積分:"<<p->integer<<endl;</p><p>  y=display_discount(p->int

48、eger);</p><p>  cout<<"折扣:"<<y<<"折"<<endl;</p><p><b>  }</b></p><p>  ⑥void count(cnode *head);遍歷統(tǒng)計(jì)客戶數(shù)量顯示。用一個(gè)計(jì)數(shù)變量i遍歷鏈表實(shí)現(xiàn)計(jì)數(shù)功能。

49、</p><p>  while(p->next!=NULL)</p><p><b>  {</b></p><p>  p=p->next;</p><p><b>  i++;</b></p><p><b>  }</b></p

50、><p>  ⑦void A:: Clear(C *head);清空所有客戶信息。代碼實(shí)現(xiàn)如下:</p><p>  void A:: Clear(C *head)</p><p><b>  {</b></p><p><b>  C *p;</b></p><p><b

51、>  p=head;</b></p><p>  while(p->next!=NULL)</p><p><b>  {</b></p><p><b>  head=p;</b></p><p>  p=p->next;</p><p>  

52、head->next=p->next;</p><p><b>  }</b></p><p>  cout<<"清空成功!";</p><p><b>  }</b></p><p> ?、郿ouble display_discount(double

53、integer);計(jì)算客戶折扣,每次顯示用戶信息調(diào)用一次保證客戶為最新打折信息。根據(jù)每個(gè)客戶的積分不同,用if和else語句打印出不同的折扣信息。詳見附錄。</p><p> ?、醰oid paixu(C *head);排序函數(shù),用冒泡排序法將用戶信息按照積分從小到大的順序排列。在顯示用戶信息的時(shí)候調(diào)用。代碼詳見附錄。</p><p>  ⑩void save(C*head);和void

54、load(C*head);將用戶信息從鏈表中寫入文件中,并可以從文件中讀入鏈表。代碼如下:</p><p>  void A::save(C*head)</p><p><b>  { </b></p><p>  ofstream outstuf ; </p><p>  outstuf.open("ch

55、esen.txt",ios::out ) ; </p><p>  if(!outstuf) </p><p><b>  { </b></p><p>  cout<<"File could not be open."<<endl ; </p><p>  cout

56、<<"保存失敗!"<<endl ; </p><p><b>  } </b></p><p><b>  else{</b></p><p><b>  C*save;</b></p><p>  save=head->nex

57、t;</p><p>  while(save!=NULL) </p><p><b>  { </b></p><p>  outstuf<<save->name<< ' '<< save->ID</p><p>  << ' '

58、;<<save->consume<<' ' <<save->integer<<'\n' ; </p><p>  save=save->next ; </p><p><b>  }</b></p><p>  cout<<"

59、;保存成功,保存文件為:"<<"chesen.txt";</p><p><b>  }</b></p><p><b>  }</b></p><p>  void A::load(C*head)</p><p><b>  {</b>

60、;</p><p>  ifstream in;</p><p>  char a[20];char b[20];double c;double d;</p><p>  in.open("chesen.txt",ios::app);</p><p>  while(in>>a>>b>>

61、c>>d)</p><p><b>  {</b></p><p>  C *p=new C(a,b,c,d,NULL);</p><p>  p->next=head->next;</p><p>  head->next=p;</p><p><b> 

62、 }</b></p><p>  if(head==NULL)</p><p>  cout<<"加載失敗,請(qǐng)檢查格式是否正確或文件是否有效!";</p><p><b>  else</b></p><p>  cout<<"加載成功!";&l

63、t;/p><p><b>  }</b></p><p>  11 int check(C*head,char ID[]);身份驗(yàn)證函數(shù)。判斷身份證號(hào)是否重復(fù)。</p><p>  5.3 系統(tǒng)功能模塊介紹</p><p> ?、偬砑佑脩裟K。函數(shù)void Getelem (cnode *head);采用類將每個(gè)用戶的信息

64、封裝,其中包括用戶姓名name、用戶省份證號(hào)ID、用戶消費(fèi)金額consume、積分integer的信息。輸入一個(gè)客戶信息后再開辟新的節(jié)點(diǎn)連接。如添加一個(gè)客戶:定義指針p,用于申請(qǐng)空的結(jié)點(diǎn)空間,p=(cnode*)malloc(sizeof(cnode)),利用函數(shù)輸入姓名,身份證號(hào),并保證身份證號(hào)的正確。</p><p> ?、诓檎夷Kvoid Search(cnode *head,char ID[]);和voi

65、d Search(cnode *head,char ID[]);查找用戶,用每一個(gè)節(jié)點(diǎn)的ID信息或者姓名信息和待查信息進(jìn)行比對(duì),直到找到正確信息并顯示。</p><p> ?、坌薷哪Kvoid Amend(cnode *head,char ID[]);查找并顯示然后修改。先判斷鏈表是否為空,若為空則提示沒有客戶;若不為空,則用每一個(gè)節(jié)點(diǎn)信息和待查節(jié)點(diǎn)信息進(jìn)行比對(duì),知道找到該節(jié)點(diǎn),然后對(duì)該節(jié)點(diǎn)信息進(jìn)行修改。<

66、/p><p> ?、軇h除模塊void Delete(cnode *head,char ID[]);查找顯示并刪除。查找時(shí)的做法與上述兩個(gè)函數(shù)基本相同,以下程序用來實(shí)現(xiàn)刪除該客戶(該節(jié)點(diǎn))的功能。cout<<"你確認(rèn)刪除?1、確定。2、取消。請(qǐng)選擇:";</p><p> ?、蒿@示模塊void Showall(cnode *head);遍歷鏈表并顯示客戶。用一個(gè)w

67、hile語句實(shí)現(xiàn)打印每一個(gè)用戶。</p><p> ?、藿y(tǒng)計(jì)模塊void count(cnode *head);遍歷統(tǒng)計(jì)客戶數(shù)量顯示。用一個(gè)計(jì)數(shù)變量i遍歷鏈表實(shí)現(xiàn)計(jì)數(shù)功能。</p><p>  ⑦清空模塊void A:: Clear(C *head);清空所有客戶信息。</p><p> ?、嘤?jì)算折扣模塊double display_discount(double

68、integer);計(jì)算客戶折扣,每次顯示用戶信息調(diào)用一次保證客戶為最新打折信息。根據(jù)每個(gè)客戶的積分不同,用if和else語句打印出不同的折扣信息。</p><p> ?、崤判蚰Kvoid paixu(C *head);排序函數(shù),用冒泡排序法將用戶信息按照積分從小到大的順序排列。在顯示用戶信息的時(shí)候調(diào)用。</p><p> ?、馕募x取模塊void save(C*head);和void lo

69、ad(C*head);將用戶信息從鏈表中寫入文件中,并可以從文件中讀入鏈表。</p><p>  11 int check(C*head,char ID[]);身份驗(yàn)證函數(shù)。判斷身份證號(hào)是否重復(fù)。</p><p>  5.4 具體模塊設(shè)計(jì)</p><p> ?、偬砑幽K流程流程圖</p><p>  圖5-1 添加模塊流程流程圖</

70、p><p> ?、诓檎液瘮?shù)模塊流程圖</p><p>  圖5-2 查找函數(shù)模塊流程圖</p><p>  ③統(tǒng)計(jì)函數(shù)模塊流程圖</p><p>  圖5-3 統(tǒng)計(jì)函數(shù)模塊流程圖</p><p><b> ?、苡?jì)算折扣函數(shù)</b></p><p>  圖5-4 計(jì)算

71、折扣函數(shù)</p><p><b> ?、菸募4婺K</b></p><p>  圖5-5 文件保存模塊流程圖</p><p><b>  ⑥文件讀取函數(shù)</b></p><p>  圖5-6 文件讀取函數(shù)流程圖</p><p> ?、咝薷暮瘮?shù),刪除函數(shù),顯示函數(shù),清

72、空函數(shù),查找函數(shù)基本相同,這里不在贅述。</p><p><b>  6.調(diào)試分析</b></p><p>  本軟件是基于Windows的編程開發(fā),所以,軟件調(diào)試必須在Windows環(huán)境下進(jìn)行。調(diào)試前須做好準(zhǔn)備工作:</p><p>  需要安裝Visual C++6.0的計(jì)算機(jī)一臺(tái);</p><p>  配置好之后,

73、在Visual C++6.0環(huán)境下進(jìn)行軟件的調(diào)試。</p><p><b>  測(cè)試數(shù)據(jù):</b></p><p><b>  客戶信息輸入:</b></p><p>  在“輸入數(shù)據(jù)”模塊中,根據(jù)主界面提示,鍵入數(shù)字1,確定,再按提示進(jìn)行操作測(cè)試,添加一條記錄后,發(fā)現(xiàn)在數(shù)據(jù)文本中有保存該記錄,如果錯(cuò)誤輸入,觀察是否能正常

74、提示信息。否則修改程序再進(jìn)行調(diào)試。</p><p><b>  客戶信息的查詢:</b></p><p>  按姓名進(jìn)行查詢、按ID進(jìn)行查詢、這兩個(gè)功能模塊在具體編程實(shí)現(xiàn)上基本上是一樣的,因?yàn)槎际轻槍?duì)學(xué)生信息的查詢。因此我們僅以“按姓名進(jìn)行查詢”為例來說明一下這兩個(gè)功能模塊的詳細(xì)實(shí)現(xiàn)過程。另一個(gè)個(gè)模塊僅介紹其實(shí)現(xiàn)思想。</p><p><

75、b>  算法改進(jìn)設(shè)想:</b></p><p>  在程序設(shè)計(jì)前期,我們并沒有用txt文件來保存學(xué)生信息。經(jīng)過我不斷的修改以及調(diào)試后,該程序總算可以進(jìn)行txt文本的讀出與寫入,并且添加學(xué)生信息后可以直接將信息保存在txt文本文件中。</p><p><b>  7.使用說明</b></p><p><b> ?、僦骱?/p>

76、數(shù)界面</b></p><p>  圖7-1 主界面圖</p><p><b> ?、谠黾涌蛻?lt;/b></p><p>  圖7-2 增加客戶</p><p><b> ?、鄄檎铱蛻?lt;/b></p><p>  圖7-3 查找客戶示意圖</p>

77、<p><b> ?、苄薷目蛻?lt;/b></p><p>  圖7-4 修改客戶示意圖</p><p><b> ?、輨h除客戶</b></p><p>  圖7-5 刪除客戶示意圖</p><p><b> ?、揎@示客戶</b></p><p&

78、gt;  圖7-6 顯示客戶示意圖</p><p><b>  ⑦統(tǒng)計(jì)客戶</b></p><p>  圖7-7 統(tǒng)計(jì)客戶示意圖</p><p><b> ?、嗲蹇湛蛻?lt;/b></p><p>  圖7-8 清空客戶示意圖</p><p><b> ?、峒?/p>

79、載客戶信息</b></p><p>  圖7-9 加載客戶信息示意圖</p><p><b>  設(shè)計(jì)總結(jié)</b></p><p>  這次畢業(yè)設(shè)計(jì)在我和同學(xué)們以及老師的努力下順利完成了。這是第二次獨(dú)自完成的畢業(yè)設(shè)計(jì),雖然有了上次的經(jīng)驗(yàn),但難度還是很大。不過在此同時(shí)我也學(xué)到了很多寶貴的東西,相信對(duì)我以后的學(xué)習(xí)會(huì)有很大的啟發(fā)。<

80、;/p><p>  首先,我深刻地認(rèn)識(shí)到了一個(gè)好的管理系統(tǒng)在生活中所發(fā)揮的作用是巨大的,能夠大大降低勞動(dòng)力成本,提高工作效率。因此,開發(fā)一個(gè)好的管理系統(tǒng)對(duì)程序員的要求也是很大的。開發(fā)系統(tǒng)之前一定要詳細(xì)了解客戶的需求,并盡可能優(yōu)化客戶需求。開發(fā)過程中,一定要注意程序的運(yùn)行效率,以及人機(jī)交互界面的友好,這些都是非常重要的。</p><p>  在程序設(shè)計(jì)前期,我們并沒有用txt文件來保存學(xué)生信息。

81、經(jīng)過我不斷的修改以及調(diào)試后,該程序總算可以進(jìn)行txt文本的讀出與寫入,并且添加學(xué)生信息后可以直接將信息保存在txt文本文件中。從此,自己又可以掌握了文件存儲(chǔ)的知識(shí)要點(diǎn)。</p><p>  開始的時(shí)候,客戶信息的存儲(chǔ)時(shí)混亂的,沒有順序和規(guī)律的。最后下決心運(yùn)用鏈表排序的方法對(duì)客戶信息進(jìn)行一定標(biāo)準(zhǔn)的排序,并且獲得成功。彌補(bǔ)了當(dāng)時(shí)學(xué)習(xí)鏈表的時(shí)候的一大短板。并且復(fù)習(xí)鞏固了與之相關(guān)的知識(shí)。</p><p

82、>  在開始遇到問題的時(shí)候,只是機(jī)械地一遍一遍地讀程序,期待發(fā)現(xiàn)程序的錯(cuò)誤,但是沒有取得很好的效果。最后我采用了加斷點(diǎn)調(diào)試等多種方法才解決了懸而未決的一些問題。使我的調(diào)試能力有了大大地提高。</p><p>  這次設(shè)計(jì)雖然順利地完成了任務(wù),但是還有很多不足。最主要的缺點(diǎn)就是界面問題,界面太過單調(diào),也不夠友好。因?yàn)橐婚_始擔(dān)心工作量太過龐大,沒有用MFC制作windows界面的想法。所以選擇了相對(duì)比較低級(jí)的D

83、OS界面。在完成設(shè)定的任務(wù)之后,我曾嘗試改版成windows界面。但由于時(shí)間倉促,并沒有完成預(yù)期結(jié)果。但也學(xué)到了很多關(guān)于MFC的知識(shí),相信以后一定會(huì)取得成功。</p><p>  一個(gè)好的數(shù)據(jù)存儲(chǔ)方式可以大大降低程序員的工作量,也可以解放使用者的勞動(dòng)力。所以,數(shù)據(jù)結(jié)構(gòu)可謂是所有程序員應(yīng)該掌握的重要財(cái)富。只要學(xué)好數(shù)據(jù)庫,并且在以后的實(shí)踐中敢于嘗試,我相信,一定會(huì)創(chuàng)作出滿意的東西。</p><p&

84、gt;<b>  9.參考文獻(xiàn)</b></p><p>  [1] Clifford,A.Shaffer編著,數(shù)決結(jié)構(gòu)與算法分析(C++版),電子工業(yè)出版社,2005.7 </p><p>  [2] 趙文靜,祁飛等編著,數(shù)據(jù)結(jié)構(gòu)與算法,科學(xué)出版社,2005.08</p><p>  [3] 趙文靜編著,數(shù)據(jù)結(jié)構(gòu)-C++語言描述,西安交通大學(xué)出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論