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

下載本文檔

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

文檔簡(jiǎn)介

1、-寧波大紅鷹學(xué)院信息工程學(xué)院課程設(shè)計(jì)報(bào)告項(xiàng)目名稱:家庭財(cái)務(wù)管理系統(tǒng)設(shè)計(jì)項(xiàng)目組長(zhǎng):潘昇琳項(xiàng)目成員:何潔,潘昇琳,王樹康班級(jí)名稱:10信管4專業(yè)名稱:信息管理與信息系統(tǒng)完成時(shí)間: 2011年5月30日信息工程學(xué)院制一 案例描述1總體描述家庭財(cái)務(wù)管理系統(tǒng)主要是對(duì)家庭成員的收入,支出,進(jìn)行添加,刪除,查詢等操作,并能統(tǒng)計(jì)總收入和總支出。該軟件給家庭成員提供了一個(gè)管理家庭財(cái)務(wù)的平臺(tái)。2模塊描述1)菜單設(shè)計(jì):本系統(tǒng)提供簡(jiǎn)單易操作的界面。有提示,幫助用戶根據(jù)需要對(duì)家庭財(cái)務(wù)管理系統(tǒng)進(jìn)行操作。2)添加模塊:根據(jù)實(shí)際的收入或支出,添加相應(yīng)的記錄,條數(shù)不限。3)查詢模塊:可以選擇不同關(guān)鍵字輸入,查找該條記錄。4)刪

2、除模塊:若某條記錄錯(cuò)誤或者不需要?jiǎng)t可以刪除。5)顯示模塊:按照添加的先后順序依次把記錄顯示在屏幕上,并顯示總收入和總支出以及余額。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ù)及功能1) datainit函數(shù):功能為數(shù)據(jù)初始化 將數(shù)據(jù)從硬盤傳到內(nèi)存。 2) add函數(shù):功能為添加收入或支出的記錄3) search函數(shù):功能為查找聯(lián)系人 輸入關(guān)鍵字,從文件中搜索相應(yīng)的記錄并顯示出來。4) delete_rec函數(shù):功能為

3、刪除記錄 若某條記錄錯(cuò)誤或者不需要?jiǎng)t可以刪除。5)show函數(shù):功能為顯示記錄 將添加的記錄顯示在屏幕上。6)quit函數(shù):功能為保存信息退出系統(tǒng)2主函數(shù)調(diào)用各功能函數(shù)流程開始打開文件,載入信息用戶菜單界面1添加 記 錄 2 查 詢 記 錄 3刪除記錄4顯示記錄0退出保存結(jié)束四 數(shù)據(jù)結(jié)構(gòu)描述struct f_dataint year; /年int month; /月 int data; /日期float amout; /金額 char name20; /姓名 int type; /收入或支出類型char comment100; /備注 struct f_data*next; /定義一個(gè)指針;

4、該數(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è)struct f_data類型的數(shù)據(jù)。鏈表中各元素在內(nèi)存中可以不是連續(xù)存放的。 五 算法設(shè)計(jì)添加開始輸入年月月份0&月份next=head;head=p;在寫刪除模塊是也遇到了類似的問題。看了書上的一個(gè)例題,里面有兩個(gè)指針,可是我的代碼中只有一個(gè),怎么辦呢?模仿了書上的寫法,第一次以失敗告終,經(jīng)過很多種修改后總結(jié)出失敗的原因是該指針定義錯(cuò)誤,針對(duì)該錯(cuò)誤,經(jīng)過很多的嘗試終成功了。在顯示函數(shù)中,自我感覺沒有錯(cuò)誤了,可是每次在“一共收入,一共支出

5、,當(dāng)前余額”后面都顯示了一長(zhǎng)串?dāng)?shù)字,在快放棄時(shí)終于發(fā)現(xiàn)自己犯了一個(gè)很可笑的錯(cuò),printf語(yǔ)言中居然用了取地址符,真是苦笑不得。在保存函數(shù)中葉犯了一些常見的錯(cuò),在寫入文件中居然用了fscanf語(yǔ)句,因此,一開始打開該系統(tǒng)時(shí)總是什么記錄也沒有,后來老師給我指出了這個(gè)錯(cuò)誤,在修改之后還是不能顯示之前的記錄,請(qǐng)教其他同學(xué)后才發(fā)現(xiàn)主函數(shù)中沒有調(diào)用數(shù)據(jù)導(dǎo)入函數(shù),在修改之后,一個(gè)系統(tǒng)就完成了。我們也有了一些感慨:我們平時(shí)的一些基礎(chǔ)學(xué)習(xí)真的很重要.總而言之,這次的報(bào)告讓我們獲益匪淺。附頁(yè)(源代碼附加注釋) 以下是添加模塊代碼void add()system(cls); /*清屏*/ struct f_dat

6、a *p=null; /*定義pnode為struct f_data類型指針*/p=(struct f_data*)malloc(sizeof(struct f_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-month0)&(p-monthdata); printf(請(qǐng)輸入金額:);scanf(%f,&p-amout);printf(請(qǐng)輸入姓名:); scanf(%s,p-name);printf(收入按1,支出按0:);scanf(%d,&

7、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ì)依次顯示年份,月份,且限定月份為112,再顯示日期,金額,姓名,type,類型逐個(gè)填寫,然后返回到菜單界面。 以下是查詢模塊代碼void search()system(cls); /*清屏*/char name20;int type; int choice; struct f_data*p=null; /*定義pnod

8、e為struct f_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(%dt,p-year); printf(%dt,p-month); printf(%dt,p-data);printf(%.2ft,p-amo

9、ut);printf(%st,p-name);printf(%dt,p-type);printf(%sn,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(%dt,p-year); printf(%dt,p-month); printf(%dt,p-data);printf(%.2ft,p-amout);printf(%st,p-name);printf(%dt,p-

10、type);printf(%sn,p-comment);system(pause); /*停頓*/ 在菜單界面選擇“查詢”選項(xiàng),界面會(huì)讓你選擇查找的方式 :1按姓名查找2按類型查找,用戶可以根據(jù)自己的需要進(jìn)行選擇,按1就輸入聯(lián)系人的姓名,按2就輸入類型,系統(tǒng)會(huì)進(jìn)行查詢,如果有就顯示該條記錄。以下是刪除模塊代碼void delete_rec()system(cls); /*清屏*/char name20;float amout; int choice;struct f_data *p=null,*q=null; /*定義p和q都為struct f_data類型指針*/p=head; /*p指向第

11、一個(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(%dt,q-year); printf(%dt,q-month); printf(%dt,q-data);printf(%.2ft,q-amout);printf(%st,q-nam

12、e);printf(%dt,q-type);printf(%sn,q-comment);printf(確認(rèn)刪除?n 1是n 2否n);scanf(%d,&choice);if(choice=1)head=q-next; /*刪除頭結(jié)點(diǎn) */ recordcount-; /*結(jié)點(diǎn)數(shù)減一*/ else break; else if(q-amout=amout)&(strcmp(q-name,name)=0) /*如果結(jié)點(diǎn)符合要求 */ printf(%dt,q-year); printf(%dt,q-month); printf(%dt,q-data);printf(%.2ft,q-amout);

13、printf(%st,q-name);printf(%dt,q-type);printf(%sn,q-comment); printf(確認(rèn)刪除?n 1是n 2否n);scanf(%d,&choice);if(choice=1) p-next=q-next; /*刪除一個(gè)結(jié)點(diǎn)*/ recordcount-; /*結(jié)點(diǎn)數(shù)減一*/ else break; else p=q; /*p后移一 個(gè)位子*/ system(pause); /*停頓*/ 選擇刪除選項(xiàng)后,界面會(huì)讓使用者輸入要?jiǎng)h除者的姓名及金額,并根據(jù)輸入的信息顯示該條記錄,并且為了防止意外刪除而有提示是否刪除,經(jīng)使用者再三確認(rèn)后便刪除該記錄。以下是顯示模塊void show()system(cls); /*清屏*/struct f_data*p=null; /*定義p和q都為struct f_data類型指針*/float j=0.0,i=0.0,w=0.0;for(p=head;p!=null;p=p-next) /*從鏈表的第一個(gè)結(jié)點(diǎn)到尾結(jié)點(diǎn) */ printf(%dt,p-year); printf(%dt,p-month); printf(%dt,p-data);printf(%.2ft,p-amout);printf(%st,p-name);printf(%dt,p-type);printf(%sn,p

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論