版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_銀行賬戶管理系統(tǒng)
- java課程設(shè)計---銀行賬戶管理系統(tǒng)
- 銀行賬戶管理系統(tǒng)-課程設(shè)計報告
- 數(shù)據(jù)庫課程設(shè)計--個人銀行賬戶管理系統(tǒng)
- 課程設(shè)計---個人銀行賬戶管理系統(tǒng)
- c++課程設(shè)計 銀行賬戶管理系統(tǒng)
- c++課程設(shè)計報告---銀行賬戶管理系統(tǒng)
- c++課程設(shè)計---銀行賬戶管理系統(tǒng)程序
- c語言課程設(shè)計報告(銀行賬戶信息管理系統(tǒng))
- c語言課程設(shè)計報告(銀行賬戶信息管理系統(tǒng))
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---銀行模擬系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(銀行模擬系統(tǒng))
- 數(shù)據(jù)結(jié)構(gòu)-課程設(shè)計--學(xué)生管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--航班管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計—機(jī)場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---員工管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---員工管理系統(tǒng)
- 畢業(yè)設(shè)計--銀行賬戶管理系統(tǒng)
評論
0/150
提交評論