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

下載本文檔

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

文檔簡介

1、<p><b>  目  錄</b></p><p><b>  A: 設(shè)計目的3</b></p><p>  1.1了解分析方法3</p><p><b>  B: 需求分析3</b></p><p>  1.程序需求及思想3</p><

2、p>  2.程序執(zhí)行命令操作3</p><p>  C: 概要設(shè)計3-5</p><p>  1.程序設(shè)計流程圖4</p><p>  2.程序結(jié)構(gòu)設(shè)計說明5</p><p>  D:詳細(xì)設(shè)計5-12</p><p>  E:程序運(yùn)行結(jié)果................................1

3、3-16</p><p>  F:設(shè)計心得.....................................16-17</p><p>  G:參考文獻(xiàn).......................................17 </p><p><b>  A、設(shè)計目的:</b></p><p>  1.

4、了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法,具備初步的獨(dú)立分析和設(shè)計能力; </p><p>  2.充分了解和學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的系統(tǒng)設(shè)計和程序編碼,對問題的探究與分析,進(jìn)行更多的應(yīng)用與測試。</p><p>  3.學(xué)習(xí)設(shè)計實(shí)現(xiàn)活期儲蓄賬目管理,并令其方便、簡單、快捷的實(shí)現(xiàn)其各個部分的功能。</p><p>  4.通過這次實(shí)驗(yàn)使自己的設(shè)計水平有所提高,對數(shù)據(jù)結(jié)構(gòu)的

5、整體認(rèn)知程度有所加強(qiáng),鍛煉自己思考和設(shè)計能力。</p><p><b>  B、需求分析:</b></p><p>  1.本程序需要先建立結(jié)點(diǎn)類模板,然后使用鏈表的基本操作應(yīng)用實(shí)現(xiàn)各個程序的實(shí)現(xiàn),頭插法先建立鏈表使之成當(dāng)前操作數(shù)據(jù)基礎(chǔ),然后可以使用節(jié)點(diǎn)的刪除進(jìn)行儲戶的銷戶,結(jié)點(diǎn)的插入的應(yīng)用成為程序的開戶(注意:建立新的用戶要先確認(rèn)新建的用戶號不可以語之前的用戶號碼相

6、同, 引起系統(tǒng)錯誤!本程序應(yīng)用鏈表節(jié)點(diǎn)的比較改進(jìn)程序。)。儲戶的存取也是應(yīng)用節(jié)點(diǎn)的比較查找之后進(jìn)行的賬戶錢數(shù)加減。</p><p>  2.程序的執(zhí)行命令操作</p><p>  (1).建立節(jié)電類模板,構(gòu)建鏈表.</p><p>  (2).輸入儲戶信息.</p><p>  (3).執(zhí)行各項(xiàng)操作(數(shù)據(jù)測試)</p><

7、p>  1.查詢儲戶信息. 2開戶.</p><p>  3儲戶支取信息查詢.</p><p>  4.儲戶的程序銷戶. 5.程序完成.</p><p>  (4).程序退出. </p><p><b>  C、概要設(shè)計:</b></p><p><b>  C.1:程序流程圖&l

8、t;/b></p><p><b>  *程序設(shè)計流程圖*</b></p><p>  C.2:結(jié)構(gòu)設(shè)計說明</p><p>  1.本程序主要應(yīng)用數(shù)據(jù)結(jié)構(gòu)節(jié)點(diǎn)類模板,首先構(gòu)建節(jié)點(diǎn)類模板,在建立已有儲戶數(shù)據(jù)中對頭結(jié)點(diǎn)(*head)分配動態(tài)存儲空間,對頭結(jié)點(diǎn)的鄰接點(diǎn)(head->next)賦初值,循環(huán)插入新結(jié)點(diǎn)建立儲戶數(shù)據(jù)(頭插法)。

9、在賬號循環(huán)插入中進(jìn)行賬號重復(fù)判斷。</p><p>  2.在查找賬戶的過程中,應(yīng)用結(jié)點(diǎn)下移繼續(xù)查找,實(shí)現(xiàn)賬戶正確查找應(yīng)用。</p><p>  3.在銷戶過程中,進(jìn)行結(jié)點(diǎn)刪除,從而實(shí)現(xiàn)儲戶的銷戶。</p><p>  4.在開戶過程中,定義新結(jié)點(diǎn),分配新的存儲空間,進(jìn)行結(jié)點(diǎn)插入,在賬號循環(huán)插入中進(jìn)行賬號重復(fù)判斷,完成開戶過程。</p><p&g

10、t;  5.在存取記錄過程中,應(yīng)用結(jié)點(diǎn)下移進(jìn)行循環(huán)查找賬戶信息,顯示賬戶信息。</p><p><b>  6.主函數(shù)測試。</b></p><p><b>  D、詳細(xì)設(shè)計:</b></p><p>  //活期儲蓄帳目管理 </p><p>  #include<iostream>&

11、lt;/p><p>  #include<string></p><p>  using namespace std;</p><p>  template<class T>//構(gòu)建節(jié)點(diǎn)類模板</p><p>  class Node</p><p><b>  {</b>&l

12、t;/p><p><b>  public: </b></p><p>  Node<T> *next;// T 可省指針</p><p>  string name; </p><p><b>  T data;</b></p><p>  long int num

13、ber; </p><p><b>  };</b></p><p>  template<class T> </p><p>  class SavingList</p><p><b>  {</b></p><p><b>  public: &l

14、t;/b></p><p>  SavingList(){};</p><p>  Node<T> * CreatSavingList();</p><p>  void SearchAccount(long int x);</p><p>  Node<T> * DeleteAccount(long int x

15、);</p><p>  Node<T> * InsertAccount(long int x); </p><p>  void Record(long int x,int y); </p><p><b>  private:</b></p><p>  Node<T> *head; <

16、/p><p><b>  }; </b></p><p>  template<class T> //建立已有儲戶數(shù)據(jù) </p><p>  Node<T> * SavingList<T>::CreatSavingList() </p><p><b>  { </b>

17、;</p><p>  head=new Node<T>;//初值 </p><p>  int k=1;//分配動態(tài)空間</p><p>  Node<T> *p,*q;</p><p>  head->next=NULL;// 賦初值</p><p>  long int number

18、,Number;</p><p>  int data; </p><p>  string name; </p><p>  cout<<"請輸入賬戶號(八位整數(shù)): "; </p><p>  cin>>number;</p><p>  Number=number;&l

19、t;/p><p>  cout<<"請輸入姓名: "; </p><p>  cin>>name; </p><p>  cout<<"請輸入賬戶余額: ";</p><p>  cin>>data;</p><p>  while(

20、number/1e7>=1 && number/1e7<=10) </p><p><b>  {</b></p><p>  p=new Node<T>;</p><p>  q=new Node<T>;</p><p>  p->number=number;/

21、/節(jié)點(diǎn)初值</p><p>  p->name=name;</p><p>  p->data=data;</p><p>  p->next=head->next;//將p插入連中</p><p>  head->next=p;</p><p>  cout<<"是

22、否繼續(xù)輸入信息 按1繼續(xù)輸入 按0退出"<<endl;</p><p><b>  cin>>k;</b></p><p><b>  if(k==0)</b></p><p><b>  break;</b></p><p>  cout&

23、lt;<"請輸入賬戶號(八位整數(shù)): "; </p><p>  cin>>number;</p><p>  q=head->next;</p><p>  while(q)//賬號的重復(fù)判斷</p><p><b>  {</b></p><p> 

24、 if(q->number==number)</p><p><b>  {</b></p><p>  cout<<"賬號已存在 !"<<endl;</p><p><b>  break;</b></p><p><b>  }<

25、/b></p><p><b>  else</b></p><p>  q=q->next;</p><p><b>  }</b></p><p><b>  if(!q)</b></p><p><b>  {</b&g

26、t;</p><p>  cout<<"請輸入姓名: ";</p><p>  cin>>name;</p><p>  cout<<"請輸入賬戶余額: "; </p><p>  cin>>data;</p><p><b&

27、gt;  }</b></p><p><b>  }</b></p><p>  return head;</p><p><b>  }</b></p><p>  template<class T> //查找賬戶 </p><p>  voi

28、d SavingList<T>::SearchAccount(long int x)</p><p><b>  { </b></p><p>  if(x/1e7<1||x/1e7>10) </p><p><b>  {</b></p><p>  cout<<

29、;"您輸入的賬戶不存在"<<endl; </p><p><b>  return ;</b></p><p><b>  } </b></p><p>  Node<long> *p; </p><p><b>  p=head; </b

30、></p><p>  while(p!=NULL && p->number!=x) </p><p><b>  {</b></p><p>  p=p->next;//向下移位 繼續(xù)查找</p><p><b>  } </b></p><p

31、>  if(p==NULL) </p><p><b>  {</b></p><p>  cout<<"您輸入的賬戶未找到"<<endl;</p><p><b>  } </b></p><p><b>  else </b>

32、;</p><p><b>  { </b></p><p>  cout<<"賬戶名: "<<p->name<<endl;</p><p>  cout<<"賬戶號碼: "<<p->number<<endl;</p

33、><p>  cout<<"賬戶余額: "<<p->data<<"元"<<endl;</p><p><b>  } </b></p><p><b>  } </b></p><p>  template&l

34、t;class T> //銷戶</p><p>  Node<T> * SavingList<T>::DeleteAccount(long int x)</p><p><b>  { </b></p><p>  Node<T> *p,*q;//節(jié)點(diǎn)類型 </p><p>&l

35、t;b>  p=head; </b></p><p>  while(p!=NULL&&p->number!=x) </p><p><b>  {</b></p><p><b>  q=p;</b></p><p>  p=p->next;</

36、p><p><b>  }</b></p><p>  if(p==NULL) </p><p><b>  {</b></p><p>  cout<<"您輸入的賬戶已不存在"<<endl;</p><p><b>  }

37、</b></p><p><b>  else </b></p><p><b>  {</b></p><p>  q->next=p->next;//將q刪掉</p><p><b>  } </b></p><p>  re

38、turn head;</p><p><b>  } </b></p><p>  template<class T> //開戶 </p><p>  Node<T> * SavingList<T>::InsertAccount(long int x) </p><p><b&g

39、t;  { </b></p><p>  Node<T> *p,*q;</p><p>  q=new Node<T>; </p><p>  char w[10];//名字 </p><p><b>  int i; </b></p><p><b>

40、;  p=head;</b></p><p>  q->number=x; </p><p>  q->next=p->next; </p><p>  p->next=q;//插入 q(新的賬號)</p><p>  cout<<"請輸入姓名: "; </p>

41、<p><b>  cin>>w;</b></p><p>  cout<<"請輸入余額: "; cin>>i;</p><p>  q->name=w; </p><p>  q->data=i; </p><p>  cout<&l

42、t;"您的新賬戶的信息是:"<<endl; </p><p>  cout<<"賬戶名: "<<q->name<<endl;</p><p>  cout<<"賬戶號碼: "<<q->number<<endl; </p>

43、<p>  cout<<"賬戶余額: "<<q->data<<"元"<<endl;</p><p>  return head;</p><p><b>  } </b></p><p>  template<class T> /

44、/存取款記錄 </p><p>  void SavingList<T>::Record(long int x,int y) </p><p><b>  { </b></p><p>  Node<T> *p;</p><p><b>  p=head;</b></p

45、><p>  while(p!=NULL && p->number!=x) //循環(huán)查找P的相同正確值 節(jié)點(diǎn)下移</p><p><b>  {</b></p><p>  p=p->next;</p><p><b>  } </b></p><p>

46、;  if(p==NULL) </p><p>  cout<<"您輸入的賬戶不存在"<<endl; </p><p><b>  else </b></p><p><b>  {</b></p><p>  p->data=p->data+

47、y;</p><p>  if(p->data<0)</p><p>  cout<<"余額不足 請充值!"<<endl;</p><p><b>  else</b></p><p><b>  {</b></p><p&

48、gt;  cout<<"目前您的賬戶信息:"<<endl;</p><p>  cout<<"賬戶名(八位): "<<p->name<<endl; </p><p>  cout<<"賬戶號碼: "<<p->number<<

49、endl; </p><p>  cout<<"賬戶余額: "<<p->data<<"元"<<endl;</p><p><b>  }</b></p><p><b>  } </b></p><p>&

50、lt;b>  } </b></p><p>  int Menu()</p><p><b>  {</b></p><p><b>  int n; </b></p><p>  cout<<"--------------------------Menu--

51、-------------------------"<<endl; </p><p>  cout<<"\t1.查詢賬戶 2.開戶\n\n"<<endl; cout<<"\t3.支出存儲記錄 4.銷戶\n\n"<<endl;</p><p>  cout<<"

52、\t5.退出"<<endl;</p><p>  cout<<"---------------------------------------------------------";</p><p>  cout<<endl;</p><p><b>  do </b></

53、p><p><b>  {</b></p><p>  cout<<"請輸入你的選擇(1--5):\n"<<endl;</p><p><b>  cin>>n; </b></p><p><b>  }</b></p&

54、gt;<p>  while(n<1||n>5);</p><p>  return n; </p><p><b>  } </b></p><p>  int main()</p><p><b>  {</b></p><p>  Saving

55、List<long> T; </p><p>  Node<long> *head;</p><p>  head=T.CreatSavingList(); </p><p>  long int x; </p><p><b>  int y,n;</b></p><p>

56、;<b>  for(;;) </b></p><p><b>  {</b></p><p>  switch (Menu()) </p><p><b>  { </b></p><p><b>  case 1:</b></p><

57、;p><b>  {</b></p><p>  cout<<"請輸入您要查詢的賬戶:";</p><p><b>  cin>>x; </b></p><p>  T.SearchAccount(x); </p><p>  cout<<

58、;" 是否需要繼續(xù)進(jìn)行操作?是請輸入1,放棄則輸入0: ";</p><p><b>  cin>>y;</b></p><p><b>  if(y==1) </b></p><p><b>  {</b></p><p>  cout<

59、<"-----------------------------------------------------\n\n\n";</p><p>  cout<<"\t1.支出存入 2.銷戶\n\n";</p><p>  cout<<"-------------------------

60、----------------------------\n\n\n"; </p><p><b>  do </b></p><p><b>  {</b></p><p>  cout<<"請輸入你選擇的操作 : ";</p><p><b>

61、  cin>>n;</b></p><p><b>  }</b></p><p>  while(n!=1 && n!=2); </p><p><b>  if(n==1) </b></p><p><b>  {</b></p

62、><p>  cout<<"請輸入你存取的錢數(shù): " ; </p><p>  cout<<"存入錢數(shù)在前加“ + ”, 取出錢數(shù)在前加“ - ”"<<endl;</p><p><b>  int a;</b></p><p><b> 

63、 cin>>a; </b></p><p>  T.Record(x,a);</p><p><b>  } </b></p><p><b>  if(n==2) </b></p><p><b>  {</b></p><p>

64、;  cout<<"銷戶請輸入 1, 不進(jìn)行操作輸入 0 !: "; </p><p><b>  int b;</b></p><p><b>  cin>>b; </b></p><p><b>  if(b==1)</b></p><

65、;p>  T.DeleteAccount(x);</p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }</b></p><p><b>  break;</b></p>&l

66、t;p><b>  case 2:</b></p><p><b>  {</b></p><p>  long int c; </p><p>  Node<long> *q;</p><p>  q=head->next;</p><p>  co

67、ut<<"請輸入您的賬號(八位): ";</p><p><b>  cin>>c;</b></p><p><b>  while(q)</b></p><p><b>  {</b></p><p>  if(q->numb

68、er==c)</p><p><b>  {</b></p><p>  cout<<"賬號已存在 !"<<endl;</p><p><b>  break;</b></p><p><b>  }</b></p>&

69、lt;p><b>  else</b></p><p>  q=q->next;</p><p><b>  }</b></p><p><b>  if(!q)</b></p><p><b>  {</b></p><p

70、>  while(c/1e7 <1||c/ 1e7>10) </p><p><b>  {</b></p><p>  cout<<"輸入的位數(shù)不正確: "; </p><p><b>  cin>>c;</b></p><p><

71、;b>  } </b></p><p>  T.InsertAccount(c);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  break; </b></p><p>&l

72、t;b>  case 3:</b></p><p><b>  {</b></p><p>  long int r;</p><p><b>  int t,l; </b></p><p>  cout<<"請輸入執(zhí)行操作的賬號: "; </

73、p><p><b>  cin>>r;</b></p><p>  cout<<"請輸入你存取的錢數(shù): " ; </p><p>  //cout<<"存入錢數(shù)在前加“ + ”, 取出錢數(shù)在前加“ - ”"<<endl;</p><p>

74、<b>  cin>>t;</b></p><p>  T.Record(r,t); </p><p>  cout<<"繼續(xù)操作請輸入1 ,退出輸入0:"<<endl; </p><p><b>  cin>>l; </b></p><

75、;p>  while(l==1) </p><p><b>  {</b></p><p>  cout<<"請輸入執(zhí)行操作的賬號: "; </p><p><b>  cin>>r;</b></p><p>  cout<<"

76、請輸入你存取的錢數(shù): " ;</p><p>  cout<<"存入錢數(shù)在前加“ + ”, 取出錢數(shù)在前加“ - ”"<<endl;</p><p><b>  cin>>t; </b></p><p>  T.Record(r,t); </p><p>

77、  cout<<"繼續(xù)操作請輸入1,退出輸入0"<<endl;</p><p><b>  cin>>l;</b></p><p><b>  } </b></p><p><b>  }</b></p><p><

78、b>  break;</b></p><p><b>  case 4:</b></p><p><b>  {</b></p><p>  long int k;</p><p><b>  int m;</b></p><p>  

79、cout<<"請輸入你想要消掉的賬戶(請選擇以上已有的) : "; </p><p><b>  cin>>k; </b></p><p>  while(k/1e7<1||k/1e7>9) </p><p><b>  {</b></p><p&

80、gt;  cout<<"輸入的位數(shù)不正確: ";</p><p><b>  cin>>k;</b></p><p><b>  } </b></p><p>  T.DeleteAccount(k); </p><p>  cout<<&qu

81、ot;繼續(xù)操作請輸入1,退出輸入0"<<endl; </p><p><b>  cin>>m; </b></p><p>  while(m==1) </p><p><b>  {</b></p><p>  cout<<"請輸入要銷掉的賬

82、戶: "; </p><p><b>  cin>>k;</b></p><p>  while(k/1e7<1||k/1e7>10) </p><p><b>  {</b></p><p>  cout<<"輸入的位數(shù)不正確,請你確認(rèn)后再進(jìn)

83、行操作!: "; </p><p><b>  } </b></p><p>  T.DeleteAccount(k);</p><p>  cout<<"繼續(xù)操作請輸入1,退出輸入0"<<endl;</p><p><b>  cin>>m;

84、</b></p><p><b>  } </b></p><p><b>  }</b></p><p><b>  break; </b></p><p><b>  case 5:</b></p><p><

85、b>  exit(0);</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  return 0; </p><p><b>  }</b></p><p><b>  E

86、、系統(tǒng)運(yùn)行結(jié)果:</b></p><p><b>  F、設(shè)計心得:</b></p><p>  通過此次的課程試驗(yàn)的練習(xí),我有了很大的收獲,同時也加深了對數(shù)據(jù)結(jié)構(gòu)這門課程的理解和學(xué)會了如何在實(shí)際中應(yīng)用數(shù)據(jù)結(jié)構(gòu)。</p><p>  我選擇的儲蓄儲管理設(shè)計使我了解到鏈表節(jié)點(diǎn)類的正確使用方法,熟悉結(jié)點(diǎn)類的作用,更加得知道了數(shù)據(jù)結(jié)構(gòu)的知

87、識的靈活應(yīng)用的方便,思路更加清晰。而且更加珍惜的是我了解到了分析問題的整體性非常重要,賬戶的重復(fù)問題,程序的可行性,還有程序設(shè)計報告的整體過程我都有了更深刻的認(rèn)識!</p><p>  更加重要的是這次是我和另外的一個同學(xué)一起設(shè)計的程序,第一次充分了解到團(tuán)隊(duì)合作的重要性!不同的同學(xué)的思想在很多的地方是不相同的,同樣的問題可以有不同的算法分析與求解。可以更加有效的讓我們的相互學(xué)習(xí)能力快速提高相互的學(xué)習(xí)進(jìn)步。對數(shù)據(jù)結(jié)

88、構(gòu)的進(jìn)一步認(rèn)識,我感覺到數(shù)據(jù)結(jié)構(gòu)的奧妙,對知識的掌握要透徹,分析問題要有步驟,有條理。我們都以認(rèn)真的態(tài)度對待這次設(shè)計,在爭論與磨合后完成了這次設(shè)計,希望我們對真理探究到底的態(tài)度保持在各項(xiàng)學(xué)習(xí)中,讓我們變得越來越充實(shí),只是越來越豐富!</p><p><b>  G、參考文獻(xiàn):</b></p><p>  1.數(shù)據(jù)結(jié)構(gòu)(C++版) </p><p&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論