


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)題目: 家庭財(cái)務(wù)管理系統(tǒng)學(xué)生姓名 :專業(yè) : 信息工程指導(dǎo)教師 :2018 年 1 月 8 日1. 需求分析根據(jù)家庭賬務(wù)管理的需要,建立一個(gè)“家庭賬務(wù)管理系統(tǒng)” ,以方便對家庭日常收入及支出進(jìn)行記 錄和管理。該系統(tǒng)要求:家庭月收入管理家庭月支出管理統(tǒng)計(jì)家庭總收入/總支出系統(tǒng)提供收入/支出的添加、刪除和修改功能。2. 總體設(shè)計(jì)根據(jù)以上分析,本家庭賬務(wù)管理系統(tǒng)主要包括: 從鍵盤鍵入家庭月收入、月支出數(shù)據(jù); 查詢月收入、月支出明細(xì); 刪除收入、支出數(shù)據(jù); 修改收入、支出數(shù)據(jù); 統(tǒng)計(jì)總收入 /總支出; 退出系統(tǒng)。除 main() 函數(shù)之外,系統(tǒng)還定義了以下函數(shù)來實(shí)現(xiàn)各部分內(nèi)容: a
2、dd_income():添加收入數(shù)據(jù)函數(shù)。 add_payout ():添加支出數(shù)據(jù)函數(shù)。 search_data ():查找數(shù)據(jù)函數(shù)。 ini tialize():初始化函數(shù),讀取文本數(shù)據(jù)。 show_info ():顯示數(shù)據(jù)函數(shù)。 count_total ():統(tǒng)計(jì)函數(shù),統(tǒng)計(jì)總收入、總支出。 update_data ():修改信息函數(shù)。 delete_data ():刪除數(shù)據(jù)函數(shù)。 quit():退出函數(shù)。程序結(jié)構(gòu)功能圖如下3. 詳細(xì)設(shè)計(jì)收入管理 支出管理4. 測試結(jié)果程序運(yùn)行主菜單 添加收入測試 查詢收入明細(xì)測試 刪除收入測試 修改收入測試 添加支出測試 查詢支出明細(xì)測試 刪除支出測試
3、修改支出測試 統(tǒng)計(jì)總收入 / 支出測試 退出系統(tǒng)測試5. 軟件操作使用說明書 本系統(tǒng)采用命令行對話方式進(jìn)行操作,運(yùn)行后出現(xiàn)主界面(如下圖所示) ,然后按照主界面菜 單指引操作即可。6. 總結(jié)編寫程序之前要有一個(gè)整體的思路,不能寫到哪里算哪里。這樣很容易遺漏,連續(xù)性也不好。 通過 本次的課程設(shè)計(jì)讓我對于數(shù)組、 文件的存放、 循環(huán)結(jié)構(gòu)等知識有了更加透徹的理解。 希望在以后的 課程設(shè)計(jì)中對于知識的運(yùn)用能夠更加的熟練。代碼:#include <>#include <>#include <> #include <>#define MAXNAME 11 加收
4、入 "); printf(" 2.查詢收入明細(xì) n");printf("ttt 3. 刪除收入 "); printf(" 4.修改收入 n");printf("tt*n");printf("tt printf("5. printf(" 6. printf("ttt 7. printf(" 8.支出管理 :"); 添加支出 ");查詢支出明細(xì) n"); 刪除支出 ");修改支出 n");printf(&quo
5、t;tt*n");printf("tt 統(tǒng)計(jì) :");printf("9. 統(tǒng)計(jì)總收入 / 總支出 n");printf("tt*n");printf("tt 退出 :0. 退出系統(tǒng) n");printf("tt*nnn");void main()int selected=0;initialize();while(selected>=0&&selected<=9)system("cls");menu();printf("tt&g
6、t; 請選擇要進(jìn)行的操作 (0-9):"); if(scanf("%d",&selected)!=1|selected<0|selected>9)printf("tt> 輸入有誤!請選擇 (0-9) 之間的數(shù)字!按任意鍵重試 "); getchar();elseswitch(selected)case 0:exit(0);clear_data();break;case 1:add_income();save_to_file();break;case 2:search_income();break;case 3:dele
7、te_income();save_to_file();break;case 4:update_income();save_to_file();break;case 5:add_payout();save_to_file();break;case 6:search_payout();break;case 7:delete_payout();save_to_file();break;case 8:update_payout();save_to_file();break;case 9:count_total();break;void addncome()t | 年/ 月 tt| 類型 tt| 姓名
8、tt| 金額 tt| 備注 tt|n");printf("|%5dt|%4d/%02dt|%4st|%10st|%|%20s|n",i+1,p->,p->,p->=income" 收入 ":" 支出",p->,p->,p->printf("|tt|tt|tt|tt|tt|tt|n");/ 統(tǒng)計(jì)總收入、總支出void count_total()float total_income=;float total_payout=;fi_data *p=head;while(p!=
9、NULL)if(p->=income)total_income+=p->elsetotal_payout+=p->p=p->next;printf("tt+tt+tt+n");printf("tt|合計(jì)收入 t| 合計(jì)支出 t| 結(jié)余 t|n");printf("tt%|%|%|n",total_income,total_payout,total_income-total_payout); printf("tt+tt+tt+n");printf("tt>按任意鍵返回主菜單 &
10、quot;);getchar();getchar();/ 保存到文件void save_to_file()FILE *fp=fopen("","wb" ); fi_data *p=head; while(p!=NULL) fwrite(&(p->info),sizeof(fi_info),1,fp); fseek(fp,0,SEEK_END);p=p->next; fclose(fp);/ 修改信息函數(shù) void update_data(fi_type type) int year=0;int month=0; fi_data *p=
11、NULL; fi_data *pre=NULL; char input;int count=0; int i=0;while(1) printf("tt> 請輸入要查詢的年月 (YYYY/M)"); if(scanf("%d/%d",&year,&month)!=2) printf("tt> 輸入有誤 n"); else p=head; count=0;while(p!=NULL) if(p->=year)&&(p->=month)&&(p->=type)
12、count+; show_info(p); input_info(&(p->info); printf("tt 修改成功 n"); p=get_previous(p); p=p->next; if(count=0) printf("tt>沒有找到數(shù)據(jù) n");printf("tt>繼續(xù)查找其他數(shù)據(jù)? (y or n)");input=getchar();if(input='y'|input='Y')continue;elsebreak;void delete_data(f
13、i_type type)/刪除數(shù)據(jù)函數(shù) int year=0;int month=0;fi_data *p=NULL;fi_data *pre=NULL;int count=0;char input=' 'int i=0;while(1) printf("tt> 請輸入要查詢的年月 (YYYY/M)"); if(scanf("%d/%d",&year,&month)!=2)printf("tt> 輸入有誤 n");elsep=head;count=0;while(p!=NULL)if(p-&
14、gt;=year)&&(p->=month)&&(p->=type)count+; show_info(p); pre=get_previous(p); if(pre=NULL) head=head->next;elsepre->next=p->next;free(p);printf("tt> 刪除成功 n");p=p->next;if(count=0)printf("tt> 沒有找到數(shù)據(jù) n");printf("tt> 繼續(xù)查找其他數(shù)據(jù)? (y or n)&
15、quot;); input=getchar();if(input='y'|input='Y')continue;elsebreak;void clear_data()/ 清空鏈表數(shù)據(jù)fi_data *p=NULL;while(head!=NULL)if(head->next!=NULL)p=head;head=head->next;free(p);p=NULL;elsefree(head);head=NULL;fi_data *get_last()fi_data * p=head;if(p=NULL)return p;while(p!=NULL)&&(p->next!=NULL) p=p->next;return p;fi_data *get_previous(fi_data *p)fi_data *previous=head;while(previous!=NULL)if(previous->next=p)break;previous=previous->next;return prev
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年惠州市第一婦幼保健院招聘制工作人員筆試真題
- 專題02 客觀題:按材料類型分類-2020年中考道德與法治題型解題技巧進(jìn)階
- 2024年昆明市第十四中學(xué)部屬公費(fèi)師范生招聘筆試真題
- 2024年海南煙草考試真題試卷及答案
- 語言接觸與變異研究-洞察及研究
- 第2課+生涯規(guī)劃+筑夢未來教案【中職專用】中職思想政治《心理健康與職業(yè)生涯》(高教版2023基礎(chǔ)模塊)
- 降水格局時(shí)空變化-洞察及研究
- 高二升高三數(shù)學(xué)暑假作業(yè)01 等差數(shù)列、等比數(shù)列的通項(xiàng)公式及前n項(xiàng)和(解析版)
- 低頻治療儀療法講課件
- 四川省南充營山縣聯(lián)考2025屆七下英語期中檢測模擬試題含答案
- 綠色施工管理體系及管理制度(土木)
- 護(hù)理與風(fēng)險(xiǎn)防范課件
- 2025年高考安徽卷物理真題(解析版)
- 標(biāo)準(zhǔn)件項(xiàng)目管理制度
- 十五五智慧校園建設(shè)發(fā)展規(guī)劃
- 中醫(yī)眼科學(xué)綠風(fēng)內(nèi)障課件
- 2025屆上海市高考英語考綱詞匯表
- 暑假安全家長會課件
- 2025年中小學(xué)生安全知識競賽試題及答案
- 2024年山西煙草專賣局考試真題試卷及答案
- SOP-15天視頻起號流程圖
評論
0/150
提交評論