版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 目錄</b></p><p><b> 需求分析</b></p><p><b> 概要設計</b></p><p><b> 主要思想</b></p><p><b> 具體功能流程</b>&l
2、t;/p><p><b> 定義結構</b></p><p><b> 詳細設計</b></p><p><b> 基本函數(shù)</b></p><p><b> 調試與操作結果</b></p><p><b> 進入操
3、作界面</b></p><p><b> 儲蓄開戶</b></p><p> 儲戶登陸,存款,查詢,取款,查詢</p><p><b> 顯示儲戶信息</b></p><p><b> 課程設計總結與體會</b></p><p>&l
4、t;b> 致謝</b></p><p><b> 參考文獻</b></p><p><b> 附源代碼</b></p><p><b> 需求分析</b></p><p> 設計簡單的活期儲蓄賬目管理系統(tǒng),實現(xiàn)最基本的功能。</p>&
5、lt;p> 設計題目:設計活期儲蓄賬目管理。</p><p> 設計任務:活期儲蓄處理中,儲戶開戶、銷戶、存入、支出活動頻繁。</p><p><b> 系統(tǒng)設計要求:</b></p><p> 能比較迅速地找到儲戶的賬目,以實現(xiàn)存款、取款記賬。</p><p> 能比較簡單,迅速地實現(xiàn)插入和刪除,以實現(xiàn)
6、開戶和銷戶的需要。</p><p> 設計思想:建立鏈表,快速實現(xiàn)賬戶的增添,插入,刪除功能。</p><p> 運行環(huán)境:VC6.0++</p><p><b> 概要設計</b></p><p><b> 主要思想:</b></p><p><b>
7、具體功能流程:</b></p><p><b> 開戶</b></p><p><b> 查詢,存款或取款</b></p><p><b> 定義結構:</b></p><p> typedef struct ElemType //定義結構體</p&
8、gt;<p><b> {</b></p><p> char name[11];</p><p> int account;</p><p> char password[7];</p><p> float money;</p><p> }ElemType;<
9、/p><p> typedef struct lnode //定義鏈表</p><p><b> {</b></p><p> ElemType data;</p><p> struct lnode *next;</p><p><b> }LINK;</b><
10、/p><p><b> 詳細設計</b></p><p><b> 基本函數(shù):</b></p><p> void InsertList(LINK *&L) //鏈表插入實現(xiàn)開戶功能</p><p> void Search(LINK *L) //鏈表查找,實現(xiàn)用戶登陸功能&l
11、t;/p><p> void Deposit(LINK *&L,LINK *p) //用戶存款、取款</p><p> void PrintList(LINK*L) //打印鏈表,實現(xiàn)用戶信息輸出</p><p> oid DeleteList(LINK *&L) //鏈表刪除,實現(xiàn)銷戶功能(需要賬號和密碼)</p><p&
12、gt; void save(LINK *L) //保存鏈表,實現(xiàn)用戶信息保存到文件</p><p> void Print(LINK *&L) //打開文件,得到鏈表</p><p> void menu() //主菜單函數(shù)</p><p> void choice() //菜單選擇函數(shù)</p><p><
13、b> 調試與操作結果</b></p><p><b> 進入操作界面</b></p><p><b> 儲蓄開戶</b></p><p> 儲戶登陸,存款,查詢,取款,查詢</p><p><b> 顯示儲戶信息</b></p><
14、;p><b> 課程設計總結與體會</b></p><p> 這次課程設計,我與小組成員選的題目是活期儲蓄賬目管理,對于這個實驗開始感覺不知從哪兒開始,后來經過認真分析后,結合所學知識并與小組成員查閱了許多相關的課外知識,我們開始了一步步解題編程。</p><p> 在編程過程中,遇到問題的時候請教我們班擅長的同學,慢慢把不會不理解的地方給弄明白了,在經過
15、很多次調試以后,最終沒有出現(xiàn)錯誤了,實驗能夠執(zhí)行,將功能實現(xiàn),最后終于將程序完成。</p><p> 這次的綜合性實驗使我了解到,平時對知識的積累相當重要,同時也要注重課上老師的講解,老師在課上的延伸是課本上所沒有的,這些知識對于我們對程序的編寫有很大的作用,同時,編程也要求我們有足夠的耐心,細細推敲。越著急可能就越無法得到我們想要的結果,遇到不會的問題要多多請教,知識是在實踐與向別人請教的過程中積累的,所以問
16、是至關重要的,只要肯下功夫很多東西都是可以完成的??傊?,編程使我學到更多,更全面的知識。</p><p><b> 致謝</b></p><p> 感謝一起編程的組員,感謝幫助我們的同學們和老師。</p><p><b> 參考文獻</b></p><p> 《數(shù)據(jù)機構(C語言版)》……嚴蔚
17、敏,吳偉民編著……清華大學出版社</p><p> 《C語言程序設計教程》……劉玲主編……清華大學出版社</p><p><b> 附源代碼</b></p><p> #include<stdio.h></p><p> #include<string.h></p><
18、p> #include<stdlib.h></p><p> #include<conio.h></p><p> #define file "lnode.txt"</p><p> int total=0; //定義的全局變量,用于開戶所需</p><p> typedef
19、struct ElemType //定義結構體</p><p><b> {</b></p><p> char name[11];</p><p> int account;</p><p> char password[7];</p><p> float money;</p
20、><p> }ElemType;</p><p> typedef struct lnode //定義鏈表</p><p><b> {</b></p><p> ElemType data;</p><p> struct lnode *next;</p><p>
21、<b> }LINK;</b></p><p> void InitList(LINK *&L) //建立空鏈表 </p><p><b> {</b></p><p> L=(LINK *)malloc (sizeof(LINK));</p><p> L-&
22、gt;next=NULL;</p><p><b> }</b></p><p> void InsertList(LINK *&L) //鏈表插入實現(xiàn)開戶功能</p><p><b> {</b></p><p><b> int x;</b></p
23、><p><b> LINK *s;</b></p><p> s=(LINK*)malloc(sizeof(LINK));</p><p> printf("請輸入你要開戶的姓名(10字符以內):");</p><p> scanf("%s",s->data.name)
24、;</p><p> x=rand()%10; //隨機數(shù)</p><p> total+=x; //total隨機增大一個數(shù)值(10以內)x</p><p> s->data.account=10000000+total;</p><p> printf("\n你開戶的賬號為:%d\
25、n",s->data.account);</p><p> printf("請輸入你賬號的密碼(6位數(shù)以內):");</p><p> scanf("%s",s->data.password);</p><p> s->data.money=0.00;</p><p>
26、 s->next=NULL;</p><p> if(L->next==NULL)</p><p> L->next=s; </p><p><b> else</b></p><p><b> {</b></p><p> s->next
27、=L->next;</p><p> L->next=s;</p><p><b> }</b></p><p> printf("開戶成功。\n");</p><p><b> }</b></p><p> void DeleteL
28、ist(LINK *&L) //鏈表刪除實現(xiàn)銷戶功能(需要賬號和密碼)</p><p><b> {</b></p><p> LINK *p=L,*q;</p><p> char pass[6];</p><p><b> int s;</b></p><p&
29、gt; printf("請輸入你要銷戶的賬號:");</p><p> scanf("%d",&s);</p><p> printf("請輸入該賬號的密碼:");</p><p> scanf("%s",pass);</p><p> whil
30、e(p->next!=NULL)</p><p><b> {</b></p><p> if(p->next->data.account==s)</p><p><b> break;</b></p><p> p=p->next;</p><p
31、><b> }</b></p><p> if(p->next!=NULL)</p><p><b> {</b></p><p> while(strcmp(p->next->data.password,pass)!=0)</p><p><b> {&
32、lt;/b></p><p> printf("密碼錯誤!請重新輸入:");</p><p> scanf("%s",pass);</p><p><b> }</b></p><p> q=p->next;</p><p> p-&g
33、t;next=q->next;</p><p><b> free(q);</b></p><p> printf("賬號銷戶成功。\n");</p><p><b> }</b></p><p> else printf("你所要銷戶的的賬號不存在(或者
34、已經銷戶)。\n");</p><p><b> }</b></p><p> void PrintList(LINK*L) //打印鏈表,實現(xiàn)用戶信息輸出</p><p><b> {</b></p><p> LINK *p=L->next;</p>&l
35、t;p> while (p!=NULL)</p><p><b> {</b></p><p> printf("%s\t",p->data.name);</p><p> printf("%d\t%s\t%.2f\n",p->data.account,p->data.pa
36、ssword,p->data.money);</p><p> p=p->next;</p><p><b> }</b></p><p><b> }</b></p><p> void Deposit(LINK *&L,LINK *p) //用戶存款、取款</
37、p><p><b> {</b></p><p><b> int cq;</b></p><p><b> float mn;</b></p><p><b> while(1)</b></p><p><b>
38、{</b></p><p> if(p!=NULL)</p><p><b> {</b></p><p> printf("請選擇存款(1)、取款(2)、查詢余額(3)、退出賬號(4)。\n(請輸入括號內的數(shù)字,輸入其它字符默認為取款):");</p><p> scanf(&q
39、uot;%d",&cq);</p><p><b> if(cq==1)</b></p><p><b> {</b></p><p> printf("請輸入你的存款金額:");</p><p> scanf("%f",&m
40、n);</p><p> p->data.money=p->data.money+mn;</p><p> printf("存款成功!\n");</p><p><b> }</b></p><p> else if(cq==3)</p><p><b
41、> {</b></p><p> printf("你賬戶的余額為:%.2f\n",p->data.money);</p><p><b> }</b></p><p> else if(cq==4)</p><p><b> {</b></
42、p><p> printf("賬號退出成功。\n");</p><p><b> return;</b></p><p><b> }</b></p><p><b> else </b></p><p><b> {
43、</b></p><p> printf("請輸入你的取款金額:");</p><p><b> FH:</b></p><p> scanf("%f",&mn);</p><p> if((p->data.money-mn)>=0)&l
44、t;/p><p><b> {</b></p><p> p->data.money=p->data.money-mn;</p><p> printf("取款成功!\n");</p><p><b> }</b></p><p><
45、b> else</b></p><p><b> {</b></p><p> printf("取款失敗!\n");</p><p> printf("你賬戶上的金額不足!\n你的賬戶余額為:%.f\n",p->data.money);</p><p&g
46、t; printf("請輸入合適的取款金額:");</p><p> goto FH;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p>
47、<b> }</b></p><p><b> }</b></p><p> void Search(LINK *L) //鏈表查找,實現(xiàn)用戶登陸功能</p><p><b> {</b></p><p> LINK *p=L->next;</p&g
48、t;<p><b> int acc;</b></p><p> char pass[6];</p><p> printf("請輸入你要登錄的賬號:");</p><p> scanf("%d",&acc);</p><p> printf(&qu
49、ot;請輸入你的密碼:");</p><p> scanf("%s",pass);</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if(p->data.account==acc)</p><p>
50、<b> break;</b></p><p> p=p->next;</p><p><b> }</b></p><p> if(p==NULL)</p><p> printf("不存在該賬戶\n");</p><p><b&g
51、t; else</b></p><p><b> {</b></p><p> if(strcmp(p->data.password,pass)==0)</p><p> printf("賬號登錄成功。\n");</p><p><b> else </b&
52、gt;</p><p><b> {</b></p><p> while(strcmp(p->data.password,pass)!=0)</p><p><b> {</b></p><p><b> char pa;</b></p><
53、p> printf("密碼錯誤\n");</p><p> printf("是否重新輸入(是,就輸入任意鍵)、(否,從鍵盤上輸入N or n):");</p><p> scanf("\n%c",&pa);</p><p> if(pa=='n'||pa=='N
54、')</p><p> {system ("cls");return;}</p><p> printf("\n請重新輸入你的密碼:");</p><p> scanf("%s",pass);</p><p><b> }</b></p&
55、gt;<p><b> }</b></p><p> Deposit(L,p);</p><p><b> }</b></p><p><b> }</b></p><p> void save(LINK *L) //保存鏈表,實現(xiàn)用戶信息保存到文
56、件</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> if((fp=fopen(file,"rb"))==NULL)</p><p><b> {</b></p><p
57、> printf("cannot open file.\n");</p><p><b> exit(1);</b></p><p><b> }</b></p><p> LINK *p=L->next;</p><p> if (p!=NULL)<
58、/p><p><b> {</b></p><p> if(fwrite(p,sizeof(struct lnode),1,fp)!=1)</p><p> printf("file write error\n");</p><p> p=p->next;</p><p&
59、gt;<b> }</b></p><p> fclose(fp);</p><p><b> }</b></p><p> void Print(LINK *&L) //打開文件,得到鏈表</p><p><b> {</b></p><
60、;p><b> FILE *fp;</b></p><p> LINK *p,*s;</p><p> if((fp=fopen(file,"rb"))==NULL)</p><p><b> {</b></p><p> printf("cannot
61、 open file.\n");</p><p><b> exit(1);</b></p><p><b> }</b></p><p> s=(LINK*)malloc(sizeof(LINK));s->next=NULL;</p><p> while(fread(s,
62、sizeof(struct lnode),1,fp) )</p><p><b> {</b></p><p> total++; //用于記錄賬號的,以致賬號不重復</p><p> if(L->next==NULL)</p><p><b> {</b></p
63、><p> L->next=s;</p><p><b> p=s;</b></p><p> p->next=s->next;</p><p><b> }</b></p><p><b> else</b></p>
64、<p><b> {</b></p><p> p->next=s;</p><p><b> p=s;</b></p><p> p->next=s->next;</p><p><b> }</b></p><p
65、> s=(LINK*)malloc(sizeof(LINK));</p><p> s->next=NULL;</p><p><b> }</b></p><p> fclose(fp);</p><p><b> }</b></p><p> vo
66、id menu() //主菜單函數(shù)</p><p><b> {</b></p><p> printf("************歡迎進入活期儲蓄賬目管理***********\n");</p><p> printf(" 1.儲戶開戶。\n");</p><p
67、> printf(" 2.儲戶銷戶。\n");</p><p> printf(" 3.儲戶的賬號存款、取款。\n");</p><p> printf(" 4.查看所有儲蓄賬戶信息。\n");</p><p> printf("
68、 5.退出賬目管理。\n");</p><p> printf("***********************************************\n");</p><p><b> }</b></p><p> void choice() //菜單選擇函數(shù)</p><
69、p><b> {</b></p><p><b> LINK *L;</b></p><p> InitList(L);</p><p><b> while(1)</b></p><p><b> {</b></p><
70、;p><b> menu();</b></p><p> char x,ch;</p><p> printf("請選擇你需要的功能:");</p><p> scanf("%c",&x);</p><p> getchar();</p>&l
71、t;p> if(x>'5') </p><p> printf("輸入有誤,請重新選擇操作:\n");</p><p> if(x=='5') </p><p><b> break;</b></p><p><b> switch(
72、x)</b></p><p><b> {</b></p><p> case '1':InsertList(L);ch=getchar();break;</p><p> case '2':DeleteList(L);ch=getchar();break;</p><p&g
73、t; case '3':Search(L);ch=getchar();break;</p><p> case '4':PrintList(L);ch=getchar();break;</p><p> default:break;</p><p><b> } </b></p><p
74、> getch();//暫停功能(讀取任意鍵繼續(xù))(conio.h)</p><p> system ("cls");</p><p><b> }</b></p><p><b> save(L);</b></p><p><b> }&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設計(數(shù)據(jù)結構)報告--活期儲蓄賬目管理
- 活期儲蓄賬目管理系統(tǒng)doc
- 數(shù)據(jù)結構課程設計--趣味問題之八皇后 活期儲蓄帳目管理
- 活期儲蓄帳目管理系統(tǒng)課程設計報告
- 銀行活期儲蓄賬戶管理課程設計
- 銀行活期儲蓄程序課程設計c++
- 畢業(yè)論文-活期賬目儲蓄管理
- 數(shù)據(jù)結構課程設計--數(shù)據(jù)結構課程設計----huffman編碼
- 數(shù)據(jù)結構課程設計--庫存管理
- 數(shù)據(jù)結構課程設計宿舍管理
- 數(shù)據(jù)結構課程設計宿舍管理
- 數(shù)據(jù)結構課程設計--成績管理
- 數(shù)據(jù)結構課程設計
- 數(shù)據(jù)結構課程設計
- 數(shù)據(jù)結構課程設計
- 數(shù)據(jù)結構課程設計
- 數(shù)據(jù)結構課程設計
- 數(shù)據(jù)結構課程設計
- 數(shù)據(jù)結構課程設計
- 數(shù)據(jù)結構課程設計
評論
0/150
提交評論