C語言家庭財(cái)務(wù)管理系統(tǒng)設(shè)計(jì)報(bào)告_第1頁
C語言家庭財(cái)務(wù)管理系統(tǒng)設(shè)計(jì)報(bào)告_第2頁
C語言家庭財(cái)務(wù)管理系統(tǒng)設(shè)計(jì)報(bào)告_第3頁
C語言家庭財(cái)務(wù)管理系統(tǒng)設(shè)計(jì)報(bào)告_第4頁
C語言家庭財(cái)務(wù)管理系統(tǒng)設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

東華理工高校C語言課程設(shè)計(jì)試驗(yàn)報(bào)告題目:家庭賬務(wù)管理姓名:曾祥華班級(jí):1321815學(xué)號(hào):201320181518指導(dǎo)老師:程志梅一案例描述1.總體描述家庭財(cái)務(wù)管理系統(tǒng)主要是對(duì)家庭成員的收入,支出,進(jìn)行添加,刪除,查詢等操作,并能統(tǒng)計(jì)總收入和總支出。該軟件給家庭成員供應(yīng)了一個(gè)管理家庭財(cái)務(wù)的平臺(tái)。2.模塊描述1)菜單設(shè)計(jì):本系統(tǒng)供應(yīng)簡(jiǎn)潔易操作的界面。有提示,幫助用戶依據(jù)須要對(duì)家庭財(cái)務(wù)管理系統(tǒng)進(jìn)行操作。2)添加模塊:依據(jù)實(shí)際的收入或支出,添加相應(yīng)的記錄,條數(shù)不限。3)查詢模塊:可以選擇不同關(guān)鍵字輸入,查找該條記錄。4)刪除模塊:若某條記錄錯(cuò)誤或者不須要?jiǎng)t可以刪除。5)顯示模塊:依據(jù)添加的先后依次依次把記錄顯示在屏幕上,并顯示總收入和總支出以及余額。6)退出模塊:退出財(cái)務(wù)管理系統(tǒng)并保存文件。二界面設(shè)計(jì)界面有相應(yīng)的選擇,依據(jù)自己的須要對(duì)該管理系統(tǒng)進(jìn)行添加,查找,刪除,顯示功能操作。本軟件界面友好,不難操作,用戶可依據(jù)自己的須要按提示進(jìn)行。三模塊化設(shè)計(jì)方案1.系統(tǒng)主要函數(shù)及功能DataInit函數(shù):功能為數(shù)據(jù)初始化將數(shù)據(jù)從硬盤傳到內(nèi)存。add函數(shù):功能為添加收入或支出的記錄search函數(shù):功能為查找聯(lián)系人輸入關(guān)鍵字,從文件中搜尋相應(yīng)的記錄并顯示出來。delete_rec函數(shù):功能為刪除記錄若某條記錄錯(cuò)誤或者不須要?jiǎng)t可以刪除。5)show函數(shù):功能為顯示記錄將添加的記錄顯示在屏幕上。6)quit函數(shù):功能為保存信息退出系統(tǒng)2.主函數(shù)調(diào)用各功能函數(shù)流程起先起先打開文件,載入信息用戶菜單界面1添加記錄2查詢記錄3刪除記錄4顯示記錄0退出保存結(jié)束四.?dāng)?shù)據(jù)結(jié)構(gòu)描述structF_Data{ intyear;//年 intmonth;//月 intdata;//日期 floatamout;//金額charname[20];//姓名inttype;//收入或支出類型 charcomment[100];//備注 structF_Data*next;//定義一個(gè)指針};該數(shù)據(jù)結(jié)構(gòu)為鏈表,是一種動(dòng)態(tài)進(jìn)行存儲(chǔ)安排的結(jié)構(gòu)。鏈表的每一個(gè)一個(gè)節(jié)點(diǎn)中包含了一個(gè)指針變量,用它存放下一個(gè)結(jié)點(diǎn)的地址,環(huán)環(huán)相扣,中間決不能斷開,該指針指向一個(gè)structF_Data類型的數(shù)據(jù)。鏈表中各元素在內(nèi)存中可以不是連續(xù)存放的。五算法設(shè)計(jì)添加起先起先輸入年月月份>0&&月份<13?是輸入日,金額,姓名,類型類型結(jié)束鏈表中添加該記錄在主菜單選擇添加選項(xiàng)后,系統(tǒng)會(huì)依次讓用戶輸入年月日,并且限定月份輸入時(shí)要在1至12內(nèi),假如符合要求則接著執(zhí)行,輸完整條記錄。動(dòng)態(tài)鏈表會(huì)依據(jù)用戶的運(yùn)用狀況動(dòng)態(tài)調(diào)整內(nèi)存大小。插入一個(gè)結(jié)點(diǎn)到已有鏈表后,head指向插入的結(jié)點(diǎn),該結(jié)點(diǎn)指向head原來所指的結(jié)點(diǎn)。每添加一條記錄后接點(diǎn)隨即加一。查詢?cè)谥鞑藛芜x擇查詢選項(xiàng)后,選擇查詢方式,1.按姓名查2.按類型查。然后按提示輸入相應(yīng)的信息姓名(或備注),系統(tǒng)會(huì)依據(jù)信息用一個(gè)指針從這個(gè)鏈表的第一個(gè)結(jié)點(diǎn)依次往后起先查詢,若某個(gè)結(jié)點(diǎn)符合則輸出該記錄的信息,若指向NULL即最終一個(gè)結(jié)點(diǎn)也查詢完畢依舊沒找到,則返回主菜單。刪除輸入須要?jiǎng)h除的姓名和金額,系統(tǒng)會(huì)依據(jù)信息用一個(gè)q指針從這個(gè)鏈表的第一個(gè)結(jié)點(diǎn)依次往后起先查詢,并將已查詢過的結(jié)點(diǎn)賦給另一個(gè)p指針。若某個(gè)結(jié)點(diǎn)符合則顯示該記錄的信息,并讓用戶再次確認(rèn)是否刪除。若指向NULL即最終一個(gè)結(jié)點(diǎn)也查詢完畢依舊沒找到,則則返回主菜單。假如確定刪除該結(jié)點(diǎn),則q所指的結(jié)點(diǎn)的前一個(gè)結(jié)點(diǎn)(即p所指的結(jié)點(diǎn))指向該接點(diǎn)所指向的下一個(gè)結(jié)點(diǎn),也就是將q所指的結(jié)點(diǎn)從原來的鏈表中分別出來。每刪除一條記錄后接點(diǎn)隨即減一。六.程序運(yùn)行結(jié)果添加聯(lián)系人添加記錄時(shí)限定月份在1~12月之間,否則無法添加,每添加一條記錄后就返回主菜單,鏈表中插入了該結(jié)點(diǎn)。2查詢聯(lián)系人查詢記錄時(shí),可以選擇類型或者姓名進(jìn)行查找。若選擇按姓名查找,則在輸入名字后,系統(tǒng)會(huì)依據(jù)添加的先后依次,在屏幕上依次顯示出該聯(lián)系人的全部記錄。3刪除聯(lián)系人選擇刪除選項(xiàng)后,界面會(huì)讓運(yùn)用者輸入要?jiǎng)h除者的姓名及金額,并依據(jù)輸入的信息顯示該條記錄,并且為了防止意外刪除而有提示是否刪除,經(jīng)運(yùn)用者一再確認(rèn)后便刪除該記錄。4顯示聯(lián)系人在菜單中選擇顯示選項(xiàng)后,系統(tǒng)會(huì)把全部的記錄依據(jù)先后依次依次逐條顯示在界面上,并且還計(jì)算出了一共的收入,一共的支出及當(dāng)前余額。5退出在菜單中選中該選項(xiàng)后,系統(tǒng)會(huì)把全部的資料都保存到文件中,然后關(guān)閉該系統(tǒng)。七.總結(jié)1.工作時(shí)間通訊錄界面——1星期添加的實(shí)現(xiàn)——1星期查詢的實(shí)現(xiàn)——1星期刪除的實(shí)現(xiàn)——1星期顯示實(shí)現(xiàn)——1星期退出的實(shí)現(xiàn)——1星期程序初步完成——3星期整理修改程序——1星期報(bào)告的制作——1星期2.分工狀況何潔:設(shè)計(jì)程序的整個(gè)框架,編寫add函數(shù),delete_rec函數(shù),并對(duì)初步完成的整個(gè)程序做調(diào)試修改。制作報(bào)告的案例描述,模塊設(shè)計(jì)方案,數(shù)據(jù)結(jié)構(gòu)描述,總結(jié)。潘昇琳:編寫search函數(shù),quit函數(shù),制作報(bào)告的封面,流程圖,界面設(shè)計(jì)。王樹康:編寫DataInit函數(shù),show函數(shù),算法設(shè)計(jì),程序運(yùn)行結(jié)果。3.心得體會(huì)本次對(duì)家庭財(cái)務(wù)管理系統(tǒng)的編寫,我遇到了很多困難。主要緣由不怎么擅長(zhǎng)運(yùn)用“指針”。在添加模塊中,由于沒有很好的理解指針中插入的專用句子,所以脫離書本的時(shí)候根本不知怎么起先,自己想了很久也沒想出來,后面翻了書,把相關(guān)的句子抄上去后死記硬背了下來。p->next=head;head=p;在寫刪除模塊是也遇到了類似的問題??戳藭系囊粋€(gè)例題,里面有兩個(gè)指針,可是我的代碼中只有一個(gè),怎么辦呢?仿照了書上的寫法,第一次以失敗告終,經(jīng)過很多種修改后總結(jié)出失敗的緣由是該指針定義錯(cuò)誤,針對(duì)該錯(cuò)誤,經(jīng)過很多的嘗試終勝利了。在顯示函數(shù)中,自我感覺沒有錯(cuò)誤了,可是每次在“一共收入,一共支出,當(dāng)前余額”后面都顯示了一長(zhǎng)串?dāng)?shù)字,在快放棄時(shí)最終發(fā)覺自己犯了一個(gè)很可笑的錯(cuò),printf語言中盡然用了取地址符,真是苦笑不得。在保存函數(shù)中葉犯了一些常見的錯(cuò),在寫入文件中盡然用了fscanf語句,因此,一起先打開該系統(tǒng)時(shí)總是什么記錄也沒有,后來老師給我指出了這個(gè)錯(cuò)誤,在修改之后還是不能顯示之前的記錄,請(qǐng)教其他同學(xué)后才發(fā)覺主函數(shù)中沒有調(diào)用數(shù)據(jù)導(dǎo)入函數(shù),在修改之后,一個(gè)系統(tǒng)就完成了。我們也有了一些感慨:我們平常的一些基礎(chǔ)學(xué)習(xí)真的很重要.總而言之,這次的報(bào)告讓我們獲益匪淺。附頁(源代碼附加注釋)以下是添加模塊代碼 voidadd(){ system("cls"); /*清屏*/ structF_Data*p=NULL;/*定義pNode為structF_Data類型指針*/ p=(structF_Data*)malloc(sizeof(structF_Data));/*運(yùn)行時(shí)動(dòng)態(tài)調(diào)整所占內(nèi)存的大小*/printf("請(qǐng)輸入年份:"); scanf("%d",&p->year);printf("請(qǐng)輸入月份:"); scanf("%d",&p->month);if((p->month>0)&&(p->month<13))/*限定月份為1~12*/{printf("請(qǐng)輸入日期:"); scanf("%d",&p->data);printf("請(qǐng)輸入金額:"); scanf("%f",&p->amout); printf("請(qǐng)輸入姓名:");scanf("%s",p->name); printf("收入按1,支出按0:"); scanf("%d",&p->type); printf("請(qǐng)輸入類型:");scanf("%s",p->comment); p->next=head;/*插入一個(gè)結(jié)點(diǎn)*/ head=p; Recordcount++;/*結(jié)點(diǎn)數(shù)加一*/}system("PAUSE");/*停頓*/}在菜單界面選擇“添加”選項(xiàng),界面會(huì)依次顯示年份,月份,且限定月份為1~12,再顯示日期,金額,姓名,type,類型逐個(gè)填寫,然后返回到菜單界面。以下是查詢模塊代碼voidsearch(){ system("cls");/*清屏*/charname[20];inttype;intchoice;structF_Data*p=NULL;/*定義pNode為structF_Data類型指針*/printf("1按姓名查找\n2按類型查找\n"); printf("請(qǐng)輸入你的選擇:"); scanf("%d",&choice); if(choice==1) { printf("請(qǐng)輸入姓名:"); scanf("%s",name); for(p=head;p!=NULL;p=p->next)/*從鏈表的第一個(gè)結(jié)點(diǎn)到尾結(jié)點(diǎn)*/ if(strcmp(p->name,name)==0)/*假如輸入的name和結(jié)點(diǎn)中的name一樣*/ { printf("%d\t",p->year); printf("%d\t",p->month); printf("%d\t",p->data); printf("%.2f\t",p->amout); printf("%s\t",p->name); printf("%d\t",p->type); printf("%s\n",p->comment); } } if(choice==2) { printf("請(qǐng)輸入類型:1收入0支出\n"); scanf("%d",&type); for(p=head;p!=NULL;p=p->next) if(p->type==type)/*假如輸入的type和結(jié)點(diǎn)中的type一樣*/ { printf("%d\t",p->year); printf("%d\t",p->month); printf("%d\t",p->data); printf("%.2f\t",p->amout); printf("%s\t",p->name); printf("%d\t",p->type); printf("%s\n",p->comment); } } system("PAUSE");/*停頓*/}在菜單界面選擇“查詢”選項(xiàng),界面會(huì)讓你選擇查找的方式:1按姓名查找2按類型查找,用戶可以依據(jù)自己的須要進(jìn)行選擇,按1就輸入聯(lián)系人的姓名,按2就輸入類型,系統(tǒng)會(huì)進(jìn)行查詢,假如有就顯示該條記錄。以下是刪除模塊代碼 voiddelete_rec(){system("cls");/*清屏*/charname[20];floatamout;intchoice;structF_Data*p=NULL,*q=NULL;/*定義p和q都為structF_Data類型指針*/p=head;/*p指向第一個(gè)結(jié)點(diǎn)*/q=head;/*q指向第一個(gè)結(jié)點(diǎn)*/printf("請(qǐng)輸入要?jiǎng)h除者的姓名:");scanf("%s",name); printf("請(qǐng)輸入金額:");scanf("%f",&amout);for(;q!=NULL;q=q->next)/*q指針從鏈表的第一個(gè)結(jié)點(diǎn)到尾結(jié)點(diǎn)*/{if((head->amout==amout)&&(strcmp(head->name,name)==0))/*假如頭結(jié)點(diǎn)符合要求*/{ printf("%d\t",q->year); printf("%d\t",q->month); printf("%d\t",q->data); printf("%.2f\t",q->amout); printf("%s\t",q->name); printf("%d\t",q->type); printf("%s\n",q->comment); printf("確認(rèn)刪除?\n1是\n2否\n"); scanf("%d",&choice); if(choice==1) { head=q->next;/*刪除頭結(jié)點(diǎn)*/Recordcount--;/*結(jié)點(diǎn)數(shù)減一*/ } elsebreak;}else{if((q->amout==amout)&&(strcmp(q->name,name)==0))/*假如結(jié)點(diǎn)符合要求*/{ { printf("%d\t",q->year); printf("%d\t",q->month); printf("%d\t",q->data); printf("%.2f\t",q->amout); printf("%s\t",q->name); printf("%d\t",q->type); printf("%s\n",q->comment); } printf("確認(rèn)刪除?\n1是\n2否\n"); scanf("%d",&choice); if(choice==1) {p->next=q->next;/*刪除一個(gè)結(jié)點(diǎn)*/ Recordcount--;/*結(jié)點(diǎn)數(shù)減一*/ } elsebreak;}else { p=q;/*p后移一個(gè)位子*/ } }}system("PAUSE"); /*停頓*/}選擇刪除選項(xiàng)后,界面會(huì)讓運(yùn)用者輸入要?jiǎng)h除者的姓名及金額,并依據(jù)輸

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論