版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上青島理工大學(xué)C語言程序設(shè)計(jì)題目 家庭財(cái)務(wù)管理系統(tǒng) 指導(dǎo)教師: 王金龍 姓名: 吳瑋 學(xué)號(hào): 班級(jí): 網(wǎng)絡(luò)102 專業(yè): 網(wǎng)絡(luò)工程 地點(diǎn): 多媒體樓207 時(shí)間: 6.27 至 7.01 一、內(nèi)容家庭財(cái)務(wù)管理系統(tǒng)主要是對(duì)家庭成員的收入,支出,進(jìn)行添加,刪除,查詢等操作,并能統(tǒng)計(jì)總收入和總支出。該軟件給家庭成員提供了一個(gè)管理家庭財(cái)務(wù)的平臺(tái)。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)刪除模塊:若某條記錄錯(cuò)誤
2、或者不需要?jiǎng)t可以刪除。5)顯示模塊:按照添加的先后順序依次把記錄顯示在屏幕上,并顯示總收入和總支出以及余額。6)退出模塊:退出財(cái)務(wù)管理系統(tǒng)并保存文件。)二、上機(jī)環(huán)境操作系統(tǒng):windows XP開發(fā)工具:VC6.0+三、函數(shù)調(diào)用關(guān)系圖開始打開文件,載入信息菜單界面1添加聯(lián)系人2查詢聯(lián)系人3刪除聯(lián)系人4顯示聯(lián)系人0退出保存結(jié)束四、各函數(shù)功能說明1系統(tǒng)主要函數(shù)及功能。 1.)add函數(shù):功能為添加收入或支出的記錄2.)search函數(shù):功能為查找聯(lián)系人 輸入關(guān)鍵字,從文件中搜索相應(yīng)的記錄并顯示出來。3.)delete_rec函數(shù):功能為刪除記錄 若某條記錄錯(cuò)誤或者不需要?jiǎng)t可以刪除。4.)show函
3、數(shù):功能為顯示記錄,將添加的記錄顯示在屏幕上。5.)quit函數(shù):功能為保存信息退出系統(tǒng)。五、算法描述添加:在主菜單選擇添加選項(xiàng)后,系統(tǒng)會(huì)依次讓用戶輸入年月日,并且限定月份輸入時(shí)要在1至12內(nèi),如果符合要求則繼續(xù)執(zhí)行,輸完整條記錄。動(dòng)態(tài)鏈表會(huì)根據(jù)用戶的使用情況動(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)隨即加一。查詢:在主菜單選擇查詢選項(xiàng)后,選擇查詢方式,1.按姓名查 2.按備注查。然后按提示輸入相應(yīng)的信息姓名(或備注),系統(tǒng)會(huì)根據(jù)信息用一個(gè)指針從這個(gè)鏈表的第一個(gè)結(jié)點(diǎn)依次往后開始查詢,若某個(gè)結(jié)點(diǎn)符合則輸出該記錄的信息
4、,若指向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)行效果圖1. 添加聯(lián)系人添加記錄時(shí)限定月份在112月之間,否則無法添加,每添加一條記錄后就返回主
5、菜單,鏈表中插入了該結(jié)點(diǎn)。2查詢聯(lián)系人查詢記錄時(shí),可以選擇備注或者姓名進(jìn)行查找。若選擇按姓名查找,則在輸入名字后,系統(tǒng)會(huì)根據(jù)添加的先后順序,在屏幕上依次顯示出該聯(lián)系人的全部記錄。3 刪除聯(lián)系人選擇刪除選項(xiàng)后,界面會(huì)讓使用者輸入要?jiǎng)h除者的姓名及金額,并根據(jù)輸入的信息顯示該條記錄,并且為了防止意外刪除而有提示是否刪除,經(jīng)使用者再三確認(rèn)后便刪除該記錄。4 顯示聯(lián)系人在菜單中選擇顯示選項(xiàng)后,系統(tǒng)會(huì)把所有的記錄按照先后順序依次逐條顯示在界面上,并且還計(jì)算出了一共的收入,一共的支出及當(dāng)前余額。5退出在菜單中選中該選項(xiàng)后,系統(tǒng)會(huì)把所有的資料都保存到文件中,然后關(guān)閉該系統(tǒng)。七、總結(jié)本次對(duì)家庭財(cái)務(wù)管理系統(tǒng)的編寫
6、,我遇到了許多困難。主要原因不怎么擅長(zhǎng)使用“指針”。在添加模塊中,由于沒有很好的理解指針中插入的專用句子,所以脫離書本的時(shí)候根本不知怎么開始,自己想了很久也沒想出來,后面翻了書,把相關(guān)的句子抄上去后死記硬背了下來。p->next=head;head=p;在添加節(jié)點(diǎn)數(shù)是,未強(qiáng)調(diào)Recordcount數(shù)據(jù)類型。在寫刪除模塊是也遇到了類似的問題??戳藭系囊粋€(gè)例題,里面有兩個(gè)指針,可是我的代碼中只有一個(gè),怎么辦呢?模仿了書上的寫法,第一次以失敗告終,經(jīng)過很多種修改后總結(jié)出失敗的原因是該指針定義錯(cuò)誤,針對(duì)該錯(cuò)誤,經(jīng)過很多的嘗試終成功了。在顯示函數(shù)中,自我感覺沒有錯(cuò)誤了,可是每次在“一共收入,一共
7、支出,當(dāng)前余額”后面都顯示了一長(zhǎng)串?dāng)?shù)字,在快放棄時(shí)終于發(fā)現(xiàn)自己犯了一個(gè)很可笑的錯(cuò),printf語言中居然用了取地址符。在保存函數(shù)中也犯了一些常見的錯(cuò),在寫入文件中居然用了fscanf語句。八、參考文獻(xiàn)譚浩強(qiáng)C程序設(shè)計(jì)(第四版)清華大學(xué)出版社。九、程序清單(雙列排版,小五號(hào)字)專心-專注-專業(yè)#include <stdio.h>#include<stdlib.h>#include<string.h>struct F_Dataint year; /年int month; /月 int data; /日期float amout; /金額 char name20;
8、/姓名 int type; /收入或支出類型char comment100; /備注 struct F_Data*next; /定義一個(gè)指針; void main() int i,w=1; void add(); void search(); void delete_rec(); void show(); do printf("*n"); printf("歡迎使用家庭財(cái)務(wù)管理系統(tǒng)n"); printf("1:添加記錄n"); printf("2:查詢記錄n"); printf("3:刪除記錄n"
9、); printf("4:顯示所有記錄n"); printf("0:退出n"); scanf("%d",&i); switch(i) case 1:add();break; case 2:search();break; case 3:delete_rec();break; case 4:show();break; while(w=1); void add()system("cls"); /*清屏*/ int Recordcount;struct F_Data*head;struct F_Data *p=NU
10、LL; /*定義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->month>0)&&(p->month<13) /*限定月份為112 */ pri
11、ntf("請(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("%
12、s",p->comment);p->next=head; /*插入一個(gè)結(jié)點(diǎn) */ head=p;Recordcount+; /*結(jié)點(diǎn)數(shù)加一 */ system("PAUSE"); /*停頓*/ void search()system("cls"); /*清屏*/struct F_Data*head;char name20;int type; int choice; struct F_Data*p=NULL; /*定義pNode為struct F_Data類型指針*/ printf("1按姓名查找n2按備注查找n "
13、;);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-
14、>month); printf("%dt",p->data);printf("%.2ft",p->amout);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->
15、;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->type);printf("%sn",p->com
16、ment);system("PAUSE"); /*停頓*/ void delete_rec()system("cls"); /*清屏*/struct F_Data*head;int Recordcount;char name20;float amout; int choice;struct F_Data *p=NULL,*q=NULL; /*定義p和q都為struct F_Data類型指針*/p=head; /*p指向第一個(gè)結(jié)點(diǎn) */q=head; /*q指向第一個(gè)結(jié)點(diǎn) */printf("請(qǐng)輸入要?jiǎng)h除者的姓名:");scanf(&q
17、uot;%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&quo
18、t;,q->data);printf("%.2ft",q->amout);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)head=q->next; /*刪除頭結(jié)點(diǎn) */ Recordcount-; /*結(jié)點(diǎn)數(shù)減一*/ else b
19、reak; 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);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"); /*停頓*/ v
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年中國(guó)鏡前燈平底合子數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024至2030年中國(guó)自動(dòng)蒸汽殺菌鍋數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024至2030年中國(guó)真空封盒機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024至2030年特種膠板項(xiàng)目投資價(jià)值分析報(bào)告
- 2024至2030年中國(guó)塑料擠出管材生產(chǎn)線數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024至2030年P(guān)VC鋼絲包項(xiàng)目投資價(jià)值分析報(bào)告
- 懷柔區(qū)供暖設(shè)備合同范本
- 江蘇省淮安市盱眙中學(xué)2025屆高三物理第一學(xué)期期中統(tǒng)考模擬試題含解析
- 2025屆廣西桂林、百色、梧州、崇左、北海五市高三物理第一學(xué)期期末調(diào)研模擬試題含解析
- 2025屆日喀則市物理高二第一學(xué)期期末統(tǒng)考試題含解析
- 工程造價(jià)咨詢費(fèi)黑價(jià)聯(lián)[2013]39號(hào)
- 聚氨酯車輪容許載荷的計(jì)算方法
- 五年級(jí)地方教學(xué)計(jì)劃
- 河北省廊坊市房屋租賃合同自行成交版
- 電商銷售獎(jiǎng)勵(lì)制度
- 初中數(shù)學(xué)論文參考文獻(xiàn)
- 關(guān)于設(shè)置治安保衛(wèi)管理機(jī)構(gòu)的通知(附安全保衛(wèi)科職責(zé))
- 《留置尿管》PPT課件.ppt
- 淺論國(guó)省道干線公路養(yǎng)護(hù)管理存在問題與應(yīng)對(duì)措施
- 淺談激光標(biāo)簽打印機(jī)在電磁兼容測(cè)試標(biāo)準(zhǔn)及在產(chǎn)品設(shè)計(jì)中應(yīng)關(guān)注的焦點(diǎn)
- MES系統(tǒng)調(diào)研教學(xué)提綱
評(píng)論
0/150
提交評(píng)論