



版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、青島理工大學(xué)C 語(yǔ)言程序設(shè)計(jì)題目家庭財(cái)務(wù)管理系統(tǒng)指導(dǎo)教師:王金龍姓名:吳瑋學(xué)號(hào):201007133班級(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ò)誤或者不需要?jiǎng)t可以刪除
2、。5) 顯示模塊: 按照添加的先后順序依次把記錄顯示在屏幕上,并顯示總收入和總支出以及余額。6) 退出模塊:退出財(cái)務(wù)管理系統(tǒng)并保存文件。)二、上機(jī)環(huán)境操作系統(tǒng): windows XP開(kāi)發(fā)工具: VC6.0+三、函數(shù)調(diào)用關(guān)系圖1添加聯(lián)系開(kāi)始打開(kāi)文件,載入信息菜單界面2340查刪顯退詢除示出聯(lián)聯(lián)聯(lián)系系系保存結(jié)束四、各函數(shù)功能說(shuō)明1系統(tǒng)主要函數(shù)及功能。1. ) add 函數(shù):功能為添加收入或支出的記錄2. ) search 函數(shù):功能為查找聯(lián)系人輸入關(guān)鍵字,從文件中搜索相應(yīng)的記錄并顯示出來(lái)。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 原來(lái)所指的結(jié)點(diǎn)。每添加一條記錄后接點(diǎn)隨即加一。查詢 :在主菜單選擇查詢選項(xiàng)后,選擇查詢方式,1. 按姓名查2. 按備注查。然后按提示輸入相應(yīng)的信息姓名(或備注) ,系統(tǒng)會(huì)根據(jù)信息用一個(gè)指針從這個(gè)鏈表的第一個(gè)結(jié)點(diǎn)依次往后開(kāi)始查詢,若某個(gè)結(jié)
4、點(diǎn)符合則輸出該記錄的信息,若指向NULL即最后一個(gè)結(jié)點(diǎn)也查詢完畢依然沒(méi)找到,則返回主菜單。刪除:輸入需要?jiǎng)h除的姓名和金額,系統(tǒng)會(huì)根據(jù)信息用一個(gè)q 指針從這個(gè)鏈表的第一個(gè)結(jié)點(diǎn)依次往后開(kāi)始查詢, 并將已查詢過(guò)的結(jié)點(diǎn)賦給另一個(gè)p 指針。若某個(gè)結(jié)點(diǎn)符合則顯示該記錄的信息, 并讓用戶再次確認(rèn)是否刪除。 若指向 NULL即最后一個(gè)結(jié)點(diǎn)也查詢完畢依然沒(méi)找到,則則返回主菜單。如果確定刪除該結(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)從原來(lái)的鏈表中分離出來(lái)。每刪除一條記錄后接點(diǎn)隨即減一。六、程序運(yùn)行效果圖1. 添加聯(lián)系人添加記錄時(shí)限定月份在 112
5、 月之間,否則無(wú)法添加,每添加一條記錄后就返回主菜單,鏈表中插入了該結(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ì)把所有的資料
6、都保存到文件中,然后關(guān)閉該系統(tǒng)。七、總結(jié)本次對(duì)家庭財(cái)務(wù)管理系統(tǒng)的編寫(xiě),我遇到了許多困難。 主要原因不怎么擅長(zhǎng)使用“指針”。在添加模塊中, 由于沒(méi)有很好的理解指針中插入的專用句子, 所以脫離書(shū)本的時(shí)候根本不知怎么開(kāi)始, 自己想了很久也沒(méi)想出來(lái), 后面翻了書(shū), 把相關(guān)的句子抄上去后死記硬背了下來(lái)。 p->next=head;head=p; 在添加節(jié)點(diǎn)數(shù)是, 未強(qiáng)調(diào) Recordcount 數(shù)據(jù)類(lèi)型。 在寫(xiě)刪除模塊是也遇到了類(lèi)似的問(wèn)題。 看了書(shū)上的一個(gè)例題,里面有兩個(gè)指針, 可是我的代碼中只有一個(gè),怎么辦呢?模仿了書(shū)上的寫(xiě)法, 第一次以失敗告終, 經(jīng)過(guò)很多種修改后總結(jié)出失敗的原因是該指針定義錯(cuò)
7、誤, 針對(duì)該錯(cuò)誤,經(jīng)過(guò)很多的嘗試終成功了。在顯示函數(shù)中,自我感覺(jué)沒(méi)有錯(cuò)誤了,可是每次在“一共收入,一共支出, 當(dāng)前余額” 后面都顯示了一長(zhǎng)串?dāng)?shù)字,在快放棄時(shí)終于發(fā)現(xiàn)自己犯了一個(gè)很可笑的錯(cuò), printf 語(yǔ)言中居然用了取地址符。在保存函數(shù)中也犯了一些常見(jiàn)的錯(cuò),在寫(xiě)入文件中居然用了fscanf語(yǔ)句。八、參考文獻(xiàn)譚浩強(qiáng) C 程序設(shè)計(jì)(第四版) 清華大學(xué)出版社。九、程序清單(雙列排版,小五號(hào)字 )#include <stdio.h>case 1:add();break;#include<stdlib.h>case 2:search();break;#include<st
8、ring.h>case 3:delete_rec();break;struct F_Datacase 4:show();break;int year;/年int month;/月int data;/日期float amout;/金額char name20;/姓名int type;/收入或支出類(lèi)型char comment100;/備注struct F_Data*next;/定義一個(gè)指針;void main()int i,w=1;while(w=1);void add()system("cls");/*清屏*/int Recordcount;struct F_Data*h
9、ead;struct F_Data *p=NULL;/*定義pNode為 struct F_Data類(lèi)型指針 */p=(structF_Data*)malloc(sizeof(structF_Data);/* 運(yùn) 行 時(shí) 動(dòng) 態(tài) 調(diào) 整 所 占 內(nèi) 存void add();的大小 */void search();printf("請(qǐng)輸入年份:");void delete_rec();scanf("%d",&p->year);void show();printf("請(qǐng)輸入月份:");doscanf("%d"
10、;,&p->month);if(p->month>0)&&(p->month<13)/*限定月份為112 */printf("*n");printf("歡迎使用家庭財(cái)務(wù)管理系統(tǒng)printf("1:添加記錄 n");printf("2:查詢記錄 n");printf("3:刪除記錄 n");printf("4:顯示所有記錄n");printf("0:退出 n");scanf("%d",&
11、i);switch(i)n");printf("請(qǐng)輸入日期 :");scanf("%d",&p->data);printf("請(qǐng)輸入金額 :");scanf("%f",&p->amout);printf("請(qǐng)輸入姓名 :");scanf("%s",p->name);printf("收入按 1,支出按scanf("%d",&p->type);0:");printf("請(qǐng)輸
12、入類(lèi)型 :");scanf("%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;structF_Data*p=NULL;/* 定義 pNode 為 struct F_Data類(lèi)型指針 */printf("
13、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);print
14、f("%dt",p->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)輸入類(lèi)型:1收入 0支出 n");scanf("%d",&type);for(p=he
15、ad;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->type);printf("%
16、sn",p->comment);system("PAUSE");/*停頓 */void delete_rec()system("cls");/*清屏 */struct F_Data*head;int Recordcount;char name20;float amout;int choice;structF_Data *p=NULL,*q=NULL;/* 定義 p 和 q都為 struct F_Data類(lèi)型指針 */p=head;/*p指向第一個(gè)結(jié)點(diǎn)*/q=head;/*q指向第一個(gè)結(jié)點(diǎn)*/printf("請(qǐng)輸入要?jiǎng)h除者的姓名:
17、");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(&q
18、uot;%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)head=q->next;/*刪除頭結(jié)點(diǎn) */Recordcount-;/*結(jié)點(diǎn)數(shù)減一
19、 */else break;elseif(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;elsep=q;/*p后移一個(gè)位子 */system("PAUSE");/* 停頓 */void show()system("cls"
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何控制清晨高血壓
- 現(xiàn)代農(nóng)業(yè)產(chǎn)業(yè)園區(qū)合作共建協(xié)議書(shū)
- 我的最?lèi)?ài)它的魅力我解不開(kāi)寫(xiě)物與讀后感結(jié)合(12篇)
- ××超市冷藏設(shè)備規(guī)章
- 咖啡廳營(yíng)業(yè)物資采購(gòu)與配送協(xié)議
- 2025年測(cè)波儀項(xiàng)目提案報(bào)告
- 社區(qū)農(nóng)田保護(hù)措施實(shí)施協(xié)議
- 成長(zhǎng)的足跡心中的情感抒情作文(12篇)
- 回憶兒時(shí)的一場(chǎng)雪抒情散文5篇
- 2025年物業(yè)管理師考試物業(yè)管理企業(yè)文化建設(shè)實(shí)務(wù)案例分析試卷
- 2023年07月山東濰坊市中心血站招考聘用5人上岸筆試歷年難、易錯(cuò)點(diǎn)考題附帶參考答案與詳解
- 建筑固定消防設(shè)施課件
- 7、煤礦安全管理二級(jí)質(zhì)量標(biāo)準(zhǔn)化驗(yàn)收標(biāo)準(zhǔn)
- USSF-美國(guó)太空部隊(duì)數(shù)字服務(wù)遠(yuǎn)景(英文)-2021.5-17正式版
- 靜配中心應(yīng)急預(yù)案處理流程
- 《全國(guó)醫(yī)療服務(wù)價(jià)格項(xiàng)目規(guī)范》(2022版)
- 滄州市河間市2023年數(shù)學(xué)六下期末綜合測(cè)試模擬試題含解析
- 膽囊炎病人護(hù)理 PPT
- 廣東省廣州市華南師大附中2023年初三下學(xué)期中考模擬(一)化學(xué)試題含解析
- 第三次國(guó)土調(diào)查數(shù)字正射影像生產(chǎn)技術(shù)設(shè)計(jì)書(shū)
- 汽車(chē)類(lèi)西班牙語(yǔ)詞匯
評(píng)論
0/150
提交評(píng)論