版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 目錄</b></p><p> 第一章 課程設計目的和要求1</p><p> 1.1課程設計教學環(huán)節(jié)的主要目的1</p><p> 1.2本課程設計主要目標1</p><p> 1.3課程設計要求1</p><p> 第二章 課程設計任務背景與內(nèi)容
2、3</p><p> 2.1任務背景介紹3</p><p><b> 2.2任務內(nèi)容3</b></p><p> 第三章 詳細設計說明5</p><p> 3.1總體模塊圖5</p><p> 3.2程序流程圖6</p><p> 3.3程序設計思路
3、10</p><p> 3.4編碼與調(diào)試10</p><p> 第四章 軟件使用說明12</p><p> 第五章 課程設計心得與體會16</p><p> 附錄1 參考文獻17</p><p> 附錄2 程序18</p><p> 第一章 課程設計目的和要求<
4、/p><p> 1.1課程設計教學環(huán)節(jié)的主要目的</p><p> C語言課程設計的主要目的是培養(yǎng)學生綜合運用C語言程序設計課程所學到的知識,編寫C程序解決實際問題的能力,以及嚴謹?shù)墓ぷ鲬B(tài)度和良好的程序設計習慣。</p><p> 通過課程設計的訓練,學生應該能夠了解程序設計的基本開發(fā)過程,掌握編寫、調(diào)試和測試C語言程序的基本技巧,充分理解結構化程序設計的基本方法
5、。</p><p> C語言程序設計的主要任務是要求學生遵循軟件開發(fā)過程的基本規(guī)范,運用結構化程序設計的方法,按照課程設計的題目要求,分析、設計、編寫、調(diào)試和測試C語言程序及編寫設計報告。</p><p> 本次課程設計是通過設計一個較為簡單的“ATM自動提款機”系統(tǒng),進一步熟悉C++中有關各種知識的運用與掌握。了解系統(tǒng)開發(fā)的需求分析、模塊分析、編碼測試、模塊組裝與整體調(diào)試的全過程,加
6、深對C++的理解與Visual C++環(huán)境的使用;逐步熟悉程序設計的方法,并養(yǎng)成良好的編程習慣,進一步培養(yǎng)完善的C++編程設計思維,為以后進行軟件編程、數(shù)據(jù)庫管理等深入學習打下一個牢固基礎。</p><p> 1.2本課程設計主要目標</p><p> 1.鞏固和加深學生對C++語言課程的基本知識的理解和掌握;</p><p> 2.掌握C++語言編程和程序調(diào)
7、試的基本技能;</p><p> 3.掌握利用C++語言進行軟件設計的方法;</p><p> 4.提高書寫程序設計說明文檔的能力;</p><p> 5.提高運用C++語言解決實際問題的能力。</p><p><b> 1.3課程設計要求</b></p><p> 1.題目:設計一款“
8、ATM自動提款機”系統(tǒng)軟件;</p><p> 2.了解軟件開發(fā)的相關背景;</p><p> 3.參考書籍學習相關課程設計的知識;</p><p> 4.清楚開發(fā)軟件的各個相關功能,以便順利開發(fā)軟件;</p><p> 5.對系統(tǒng)功能模塊進行分析,寫出詳細設計說明文檔;</p><p> 6.設計完成的軟件
9、要便于操作和使用;</p><p> 7.對自己所設計的程序進行調(diào)試,并不斷完善;</p><p> 8.在設計過程中熟練掌握軟件編程的過相關知識;</p><p> 9.詳細體會并記錄相關過程,并將心得體會寫在課程設計報告中;</p><p> 10.設計完成后提交課程設計報。</p><p> 第二章 課
10、程設計任務背景與內(nèi)容</p><p><b> 2.1任務背景介紹</b></p><p> 在1939年,一個叫Luther George Simjian的人發(fā)明了ATM的雛形,他將當時與硬件設備相關的20個專利組合起來,然后說服一家叫Citicorp 的公司去做一個樣板試驗產(chǎn)品出來。6個月后,有銀行說這個產(chǎn)品還是有些需求的。</p><p&
11、gt; Don Wetzel是其中一些專利的所有人和發(fā)明ATM的主要的貢獻者,當他在銀行柜臺排隊等候取錢時,冒出了發(fā)明ATM這種設備的想法。</p><p> 1968年,Wetzel是一家叫Docutel公司的負責產(chǎn)品規(guī)范的副總裁,這家公司是開發(fā)包裹自動化處理設備的。公司中有另外兩個擁有專利的是Tom Barnes,首席機械工程師,和George Chastain,電子工程師。他們在一起花了5百萬美元去開發(fā)
12、第一臺ATM。其實,現(xiàn)代的ATM概念最開始是在1968年出現(xiàn)的,而一個能夠工作的ATM原型在1969年左右才面世,Docutel公司在1973年申請了ATM的專利。第一臺能夠運作的ATM被安裝在紐約的一家銀行。</p><p> 第一臺ATM并不像現(xiàn)在是與銀行的主機連接在一起的,它是離線的,意味著ATM把錢出來后,并不會馬上從你的賬戶上把帳扣掉。因此,銀行非常在意給哪個用戶開通使用ATM的權限,僅僅允許有良好信
13、用記錄的信用卡用戶在ATM上操作。接著,Wetzel、Barnes和Chastain共同開發(fā)了第一個真正用于ATM上的銀行卡,該卡擁有磁條信息和一個個人ID號,以用于在取錢時做驗證。這個ATM專用卡與信用卡不同,里面包含賬戶等相關信息。</p><p> 從那以后,就越來越多的公司參與到ATM的研發(fā)當中來了。為了使儲戶隨時隨地、方便快捷地提款和進行其它交費業(yè)務并與國際金融接軌,各大銀行普遍采用了自動柜員機ATM
14、,這些ATM有的在室內(nèi),有的在戶外。它為儲戶提供了24小時的服務,受到了普遍贊譽。</p><p><b> 2.2任務內(nèi)容</b></p><p> 1、查詢余額:初始余額為10000元2、ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支。3、ATM存款:不能出現(xiàn)負存款。4、修改密碼:新密碼長度不小于6位,不允許出現(xiàn)6位完全
15、相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。</p><p> 第三章 詳細設計說明</p><p><b> 3.1總體模塊圖</b></p><p> 此ATM自動存款機系統(tǒng)主要包含四項功能:</p><p> 1.取款:系統(tǒng)內(nèi)部自定義一個虛擬賬戶,其中包含用戶基本信
16、息,內(nèi)部存有一定余額,取款即從余款內(nèi)自動扣除所取錢數(shù),并在內(nèi)部記錄、存檔;</p><p> 2.存款:同上,存入一定款項,并自動生成記錄,存檔;</p><p> 3.查詢余額:查詢系統(tǒng)內(nèi)部虛擬賬戶的余額錢數(shù);</p><p> 4.密碼修改:修改系統(tǒng)自定義虛擬賬戶生成的密碼,并記錄新密碼。(如圖 3-1)</p><p> 圖 3
17、-1 系統(tǒng)總體模塊圖</p><p><b> 3.2程序流程圖</b></p><p> 1.開始即進入ATM界面根據(jù)提示,先選擇語言,之后進入用戶個人界面,此時需輸入密碼。密碼必須與系統(tǒng)內(nèi)部存儲用戶密碼一致,否則,再次輸入。成功后,進入下一界面——用戶服務界面。選擇相關服務,按提示執(zhí)行相關操作,完畢后可選擇結束或繼續(xù)。(如圖 3-2)</p>&
18、lt;p> 圖 3-2 總流程圖</p><p> 2.存款時按提示輸入錢數(shù),注意錢數(shù)必須為100的整數(shù)倍,且小于5000,不能是負存款,否則存款不成功返回繼續(xù),滿足條件,存款成功。(如圖 3-3)</p><p> 圖 3-3 存款流程圖</p><p> 3.取款時按提示輸入錢數(shù),注意錢數(shù)必須為100的整數(shù)倍,且小于5000,不能是負取款,否則取款
19、不成功返回繼續(xù),滿足條件,取款成功。(如圖 3-4)</p><p> 圖 3-4取款流程圖</p><p> 4.修改密碼時需注意密碼必須是六位數(shù)字,先輸入原密碼,正確后進行下一步操作,否則返回。原密碼正確,輸入新密碼,再次輸入,兩次輸入一致后,密碼修改成功,保存新密碼,否則返回。(如圖 3-5)</p><p> 圖 3-5 密碼修改流程圖</p&g
20、t;<p> 5.余額查詢,選擇后輸出錢數(shù),之后返回上層。(如圖 3-6)</p><p> 圖 3-6 余額查詢流程圖</p><p><b> 3.3程序設計思路</b></p><p> 1.此程序主要包含四項功能:取款、存款、余額查詢、密碼修改;</p><p> 2.編程時須先設定以虛擬
21、用戶,包含用戶基本信息;</p><p> 3.在編程中需對所有數(shù)據(jù)進行限定,包括輸入、輸出、原始定義等。</p><p><b> 3.4編碼與調(diào)試</b></p><p> 此程序包含六個函數(shù):main() computer2() cunkuan() qukuan() mima() yue(),其中:</p><p
22、> main()為主函數(shù),可輸出開機界面;</p><p> computer2()對應密碼正確后進入功能選擇界面,按提示可提供相關服務;</p><p> cunkuan()執(zhí)行存款服務,按相關提示操作可存款;</p><p> qukuan()執(zhí)行取款服務,按相關提示操作可取款;</p><p> yue()執(zhí)行余額查詢服
23、務,輸出用戶所剩余額;</p><p> mima()執(zhí)行修改密碼服務,按提示可修改用戶密碼。</p><p> 第四章 軟件使用說明 </p><p><b> 開始進入ATM界面</b>&
24、lt;/p><p> 執(zhí)行main()主函數(shù)</p><p><b> 進行語言選擇或退出</b></p><p><b> 輸入1或2</b></p><p><b> 1開始界面:</b></p><p> 圖 4-1 開始界面</p&g
25、t;<p><b> 輸入密碼:</b></p><p> 密碼正確執(zhí)行computer2()出現(xiàn)功能選擇界面,密碼不正確,繼續(xù)輸入。</p><p> 出現(xiàn)功能選擇界面,輸入n</p><p> 執(zhí)行computer2() //服務選擇</p><p> 圖 4-2 選擇界面</p>
26、;<p> 2.余額查詢與存款服務</p><p> 執(zhí)行yue() //余額查詢函數(shù)</p><p> 執(zhí)行cunkuan() //存款函數(shù)</p><p> 圖 4-3 查詢余額與存款界面</p><p> 3.選擇取款與余額查詢</p><p> 執(zhí)行qukuan()
27、 //取款函數(shù)</p><p> 執(zhí)行yue() //余額查詢</p><p> 圖 4-4 取款與余額查詢界面</p><p><b> 4選擇修改密碼</b></p><p> 執(zhí)行mima() //修改密碼函數(shù)</p><p> 圖 4-5 密碼修改界
28、面</p><p> 第五章 課程設計心得與體會</p><p> 自從學習C++以來,這應該是我第一次自己獨立自主設計一個比較大的程序(對我來說確實不?。?。所謂:實踐出真知。通過這次課程設計我發(fā)現(xiàn)太多問題。</p><p> 以前就知道自己學得不怎么樣,但沒想到是這么差。首先是基本知識不牢固,許多C++常識是一知半解,有的還不懂。在編寫ATM自動提款機時,運
29、用函數(shù)的調(diào)用始終不能實現(xiàn),最后還是找老師幫忙才能成功運行,實現(xiàn)想要的功能。再有就是關于函數(shù)如何定義也不是很明白,不知道什么時候要帶返回值,什么時候不需要帶,因此對于函數(shù)定義老是不清不楚,從而導致函數(shù)功能的不到很好實現(xiàn)。</p><p> 其次是不能深入,稍微涉及一點深奧的東西就不會,比如對于面向對象、類之類的程序設計簡直是摸不著頭腦。想用高深點的東西來編寫程序但總是心有余而力不足,進行程序設計老是感覺縛手縛腳,
30、不能伸展自如。課程設計一下來,就去網(wǎng)上搜了一下。網(wǎng)上確實有,但是都有錯誤。Copy下來一份運行,想改改,但發(fā)現(xiàn)自己不會。倒是還能看懂怎么回事,但是那程序使用了類來定義,改了好多次但是始終不能改過來。給人一種老鼠拉龜,無從下手的感覺。讓人很是郁悶。</p><p> 最后就是發(fā)現(xiàn)自己沒有編程思維,我想可能和我平時不常練習有關吧??匆妱e人編程好好的,感覺很輕松,到自己手里就那么費勁。而且還發(fā)現(xiàn)自己英語不行,對于專業(yè)
31、術語看不懂,也是導致編寫程序老是失敗的一大原因。</p><p> 總之,這次課程設計讓我感到了自己在C++編程方面的嚴重不足,以后一定要多多練習編程,進行有關方面的精深學習。而且程序設計中,語句的語法和常量變量的定義都有嚴格的要求,有時輸了一個中文標點、打錯了一個字母,編譯就不通過,程序無法正常運行。平時就比較粗心大意,因此我經(jīng)常會犯這樣的錯誤,可能要通過幾次乃至十多次的反復修改、調(diào)試,才能成功。因此,程序設
32、計于我來說又是一個對心思的歷練過程。</p><p><b> 附錄1 參考文獻</b></p><p> [1]譚浩強編著:C++程序設計,北京:清華大學出版社,2004</p><p> [2](美)戴特爾(Deitel,H.M.)等編著,張引等譯:C++大學基礎教程(第五版),北京:電子工業(yè)出版社,2006.6</p>
33、<p> [3]夏云慶編著:Visual C++ 6.0數(shù)據(jù)庫高級編程,北京:希望電子出版社 2002</p><p> [4]高林 周海燕:數(shù)據(jù)庫技術,人民郵電出版社,2004年1月第一版</p><p> [5]嚴蔚敏:數(shù)據(jù)結構(C語言版),清華大學出版社,1997年4月第一版</p><p><b> 附錄2 程序</b
34、></p><p> #include "stdio.h"</p><p> #include "iostream.h"</p><p> int password=123456;</p><p> int money=100000;</p><p> int
35、 z;</p><p> void computer2();</p><p> void cunkuan() //存款</p><p><b> { </b></p><p> int c;
36、 //存款錢數(shù)</p><p> cout<<"請輸入你的存款額:"<<endl;</p><p><b> cin>>c;</b></p><p> if (c%100==0&&c>0,c<5001) //錢數(shù)必須是一
37、百整數(shù)倍且小于五千不能為負</p><p> {money+=c;</p><p> cout<<"交易成功!"<<endl;</p><p> cout<<"按1鍵繼續(xù),按2返回"<<endl;</p><p><b> cin>
38、>z;</b></p><p><b> if(z==1)</b></p><p> cunkuan();</p><p> else if(z==2)</p><p> computer2();</p><p><b> }</b></p&
39、gt;<p><b> else</b></p><p><b> {</b></p><p> cout<<"錯誤"<<endl;</p><p> cunkuan();</p><p><b> }</b>
40、</p><p><b> }</b></p><p> void qukuan () //取款</p><p> { int q; //取款錢數(shù)</p><p> cout<<"
41、;請輸入你的取款額:"<<endl;</p><p><b> cin>>q;</b></p><p> if(q<50001,q%100==0&&q>0) //取款必須是一百整數(shù)倍且小于五千不能為負</p><p><b> {</b>&l
42、t;/p><p><b> money-=q;</b></p><p> cout<<"按1鍵繼續(xù),按2返回"<<endl; //功能選擇</p><p><b> cin>>z;</b></p><p><b> if(z
43、==1)</b></p><p><b> qukuan();</b></p><p> else if(z==2)</p><p> computer2();</p><p><b> }</b></p><p> else if(q>=mone
44、y)</p><p><b> {</b></p><p> cout<<"你的余額不足!請返回后再取"<<endl;</p><p> qukuan () ;</p><p> cout<<"按1鍵繼續(xù),按2返回"<<en
45、dl;</p><p><b> cin>>z;</b></p><p><b> if(z==1)</b></p><p><b> qukuan();</b></p><p> else if(z==2)</p><p> co
46、mputer2();</p><p><b> }</b></p><p><b> else</b></p><p><b> { </b></p><p> cout<<"錯誤"<<endl;</p>&
47、lt;p> qukuan () ;</p><p> cout<<"按1鍵繼續(xù),按2返回"<<endl;</p><p><b> cin>>z;</b></p><p><b> if(z==1)</b></p><p>&l
48、t;b> qukuan();</b></p><p> else if(z==2)</p><p> computer2();</p><p><b> }</b></p><p><b> }</b></p><p> int yue()
49、 //余額查詢</p><p><b> {</b></p><p> cout<<money<<endl;</p><p> cout<<"按1鍵繼續(xù),按2返回"<<endl;</p><p>
50、;<b> cin>>z;</b></p><p><b> if(z==1)</b></p><p><b> yue() ;</b></p><p> else if(z==2)</p><p> computer2();</p><
51、;p> return money;</p><p><b> }</b></p><p> void mima( ) //密碼修改</p><p><b> {</b></p><p> int m, p1,p2;
52、 //原密碼,新密碼,新密碼確認</p><p> cout<<"請輸入原密碼"<<endl;</p><p><b> cin>>m;</b></p><p> if(m=password)</p><p><b>
53、; {</b></p><p> cout<<"輸入你的新密碼:(必須是六位數(shù)字)"<<endl;</p><p><b> cin>>p1;</b></p><p> cout<<"請確認你的新密碼:"<<endl;<
54、/p><p><b> cin>>p2;</b></p><p> if(p1==p2&&p1<1000000) //兩次輸入新密碼一致且新密碼是六位整數(shù)</p><p><b> {</b></p><p> password
55、=p1; </p><p> cout<<"密碼保存成功,自動返回。"<<endl;</p><p> computer2() ;</p><p><b> }</b></p><p><b> else</b></p><p&
56、gt; cout<<"你兩次輸入的密碼不一致!!!自動返回!"<<endl;</p><p><b> mima();</b></p><p><b> }</b></p><p><b> else</b></p><p>
57、 cout<<"你輸入的密碼不正確!!!自動返回!"<<endl;</p><p><b> mima();</b></p><p><b> }</b></p><p> void computer2() </p><p>
58、;<b> {</b></p><p> cout<<" 請選擇業(yè)務功能 "<<endl;</p><p> cout<<"1. 人民幣存款業(yè)務"<<endl;</p><p> cout<<"2. 人民幣取款業(yè)務"
59、<<endl;</p><p> cout<<"3. 余額查詢 "<<endl;</p><p> cout<<"4. 修改密碼 "<<endl;</p><p> cout<<"5. 結束 "
60、;<<endl;</p><p> cout<<" 請選擇 (1到5): "<<endl;</p><p><b> int n;</b></p><p><b> cin>>n;</b></p><p><b>
61、 if(n==1)</b></p><p> cunkuan() ;</p><p> else if(n==2)</p><p><b> qukuan();</b></p><p> else if(n==3)</p><p><b> yue();</
62、b></p><p> else if(n==4)</p><p><b> mima();</b></p><p> else if(n==5)</p><p> cout<<"謝謝使用"<<endl;</p><p><b>
63、 else</b></p><p> cout<<"輸入錯誤"<<endl;</p><p> getchar();</p><p><b> }</b></p><p> void main()</p><p><b>
64、 {</b></p><p> cout<<"*********************************************************"<<endl;</p><p> cout<<"*
65、 *"<<endl;</p><p> cout<<"* Welcome to use automatic Teller Machine ! *"<<endl;</p><p> cout<<"*
66、 *"<<endl;</p><p> cout<<"* 歡迎使用 *"<<endl;</p><p> cout<<"*
67、 *"<<endl;</p><p> cout<<"*********************************************************"<<endl;</p><p> cout<<" Please sel
68、ect your native language (請選擇用戶語言)"<<endl;</p><p> cout<<"1. English,"<<endl;</p><p> cout<<"2. 中文,"<<endl;</p><p> cout<
69、;<"3. Exit (退出系統(tǒng)),"<<endl;</p><p> cout<<"Enter your choice (between 1 to 3)請選擇(在1和3之間)"<<endl;</p><p> int p ; //功
70、能選擇</p><p><b> cin>>p;</b></p><p> if(p==1||2)</p><p><b> {</b></p><p> int pass; //密碼</p>
71、<p> cout<<"請輸入你的密碼:"<<endl;</p><p> cin>>pass;</p><p> if(pass==password)</p><p> computer2();</p><p><b> else</b>&
72、lt;/p><p> cout<<"輸入錯誤"<<endl;</p><p> getchar();</p><p><b> }</b></p><p> else if(p==3)</p><p> cout<<"Than
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能提款機
- 別讓中國變成“自動提款機”
- atm機課程設計--atm自動粗取款系統(tǒng)
- atm課程設計報告---簡易atm機系統(tǒng)
- 銀行atm自動取款機系統(tǒng)課程設計
- 銀行atm自動取款機系統(tǒng)課程設計
- c語言課程設計-自動提款模擬系統(tǒng)
- java課程設計報告--銀行atm機系統(tǒng)
- atm課程設計報告--atm管理系統(tǒng)
- atm課程設計報告---atm交易管理系統(tǒng)
- “快槍手”變身人肉提款機
- java課程設計--atm機模擬系統(tǒng)
- atm自動取款機系統(tǒng)課程設計說明書
- 我的提款機 -中國股市(精編)
- 課程設計報告--atm取款機程序
- java課程設計報告---atm柜員機
- java課程設計atm機
- java課程設計--- atm柜員機
- 數(shù)字系統(tǒng)課程設計報告--自動售郵票機
- java課程設計報告--atm存取款系統(tǒng)
評論
0/150
提交評論