個(gè)人記賬系統(tǒng)專業(yè)課程設(shè)計(jì)報(bào)告_第1頁
個(gè)人記賬系統(tǒng)專業(yè)課程設(shè)計(jì)報(bào)告_第2頁
個(gè)人記賬系統(tǒng)專業(yè)課程設(shè)計(jì)報(bào)告_第3頁
個(gè)人記賬系統(tǒng)專業(yè)課程設(shè)計(jì)報(bào)告_第4頁
個(gè)人記賬系統(tǒng)專業(yè)課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

個(gè)人記賬系統(tǒng)專業(yè)課程設(shè)計(jì)報(bào)告PAGE4軟件工程學(xué)年設(shè)計(jì)題目:個(gè)人記賬系統(tǒng)院系:計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):計(jì)算機(jī)班學(xué)號(hào):姓名:指導(dǎo)教師:2011年7月15日摘要本報(bào)告介紹了一個(gè)運(yùn)用C語言知識(shí)和DEVC++創(chuàng)建的用于個(gè)人財(cái)務(wù)情況管理的個(gè)人記賬系統(tǒng)。在該系統(tǒng)中創(chuàng)建了包含增加、刪除、修改、查找、插入、瀏覽、統(tǒng)計(jì)的功能總列表,創(chuàng)建序號(hào)鏈接各功能列表,輸入收入支出信息情況,增加信息,刪除信息,,創(chuàng)建合計(jì)排序?yàn)g覽用戶可從總體上瀏覽個(gè)人財(cái)務(wù)信息情況。關(guān)鍵詞:C語言,DEVc++,個(gè)人記賬系統(tǒng)目錄TOC\o"1-2"\h\z\u第一章 緒論 11.1開發(fā)背景及意義 11.2相關(guān)技術(shù)背景 21.3開發(fā)及運(yùn)行環(huán)境 4第二章需求分析 52.1設(shè)計(jì)目標(biāo) 52.2功能需求 52.3可行性分析 5第三章總體設(shè)計(jì) 73.1設(shè)計(jì)目標(biāo) 73.2系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 73.3系統(tǒng)功能結(jié)構(gòu)圖 7第四章詳細(xì)設(shè)計(jì) 125.1基本對(duì)象設(shè)計(jì) 125.2系統(tǒng)主程序的設(shè)計(jì)與實(shí)現(xiàn) 135.3用戶登錄功能的設(shè)計(jì)與實(shí)現(xiàn) 175.4流水賬視圖的設(shè)計(jì)與實(shí)現(xiàn) 205.5消費(fèi)結(jié)構(gòu)視圖的設(shè)計(jì)與實(shí)現(xiàn) 235.6流水賬明細(xì)視圖的設(shè)計(jì)與實(shí)現(xiàn) 245.7賬戶設(shè)置功能的設(shè)計(jì)與實(shí)現(xiàn) 285.8消費(fèi)趨勢(shì)堆棧圖的設(shè)計(jì)與實(shí)現(xiàn) 295.9系統(tǒng)輔助功能的設(shè)計(jì)與實(shí)現(xiàn) 30第六章軟件測(cè)試 346.1系統(tǒng)測(cè)試 346.2性能測(cè)試 376.3驗(yàn)收測(cè)試 37第七章總結(jié) 38參考文獻(xiàn) 40緒論1.1開發(fā)背景及意義個(gè)人理財(cái)在我國(guó)得到大眾的認(rèn)可和金融機(jī)構(gòu)的重視是近幾年的事情。人們對(duì)個(gè)人理財(cái)?shù)闹匾暢潭龋c我國(guó)市場(chǎng)經(jīng)濟(jì)制度不斷完善、資本市場(chǎng)長(zhǎng)足發(fā)展、金融產(chǎn)品的日趨豐富以及居民總體收入水平的逐年上升等等是分不開的。但是比起美、日等發(fā)達(dá)國(guó)家,我國(guó)人民對(duì)于個(gè)人理財(cái)?shù)睦斫膺€處于初級(jí)階段。但是其實(shí)理財(cái)并不困難,并非非要依靠個(gè)人理財(cái)專業(yè)人士的建議才能身體力行。只要了解收支狀況、設(shè)定財(cái)務(wù)目標(biāo)、擬定策略、編列預(yù)算、執(zhí)行預(yù)算到分析成果這六大步驟,便可以輕松的達(dá)成個(gè)人的財(cái)務(wù)管理。至于要如何預(yù)估收入掌握支出進(jìn)而檢討改進(jìn)則有賴于平日的財(cái)務(wù)記錄,簡(jiǎn)單的說記賬是理財(cái)?shù)牡谝徊?。最近越來越多的人具有了記賬的習(xí)慣,在上班族、學(xué)生族既定收入穩(wěn)定的情況下,采取“節(jié)流”的科學(xué)理財(cái)方式是非常實(shí)際的,也符合個(gè)人理財(cái)統(tǒng)籌的原則。家庭、個(gè)人的收入支出結(jié)構(gòu)在日益發(fā)生變化,單純地靠在本子上記錄收入支出無法滿足對(duì)于收入支出結(jié)構(gòu)的統(tǒng)計(jì)分析,因此以個(gè)人用戶為目標(biāo)的記賬軟件應(yīng)運(yùn)而生。相應(yīng)的各種面向家庭及個(gè)人的理財(cái)軟件也越來越多。但是眾多個(gè)人理財(cái)軟件操作專業(yè),對(duì)于個(gè)人用戶來說功能過于強(qiáng)大,分析數(shù)據(jù)用語專業(yè)也不易理解。因此開發(fā)一個(gè)操作簡(jiǎn)便、統(tǒng)計(jì)結(jié)果直觀并對(duì)個(gè)人用戶理財(cái)有參考價(jià)值的記賬軟件無疑能為廣大個(gè)人用戶提供方便。在盛行個(gè)人理財(cái)?shù)拿绹?guó),70%以上的家庭都擁有一套自己的理財(cái)軟件,其中最具影響力的理財(cái)軟件要數(shù)Intuit公司開發(fā)的Quiken和微軟公司開發(fā)的Money這兩款軟件?,F(xiàn)在,Intuit公司已成為世界最大的理財(cái)軟件與理財(cái)咨詢公司,Quiken也成為全世界用戶最多的家庭理財(cái)軟件。歐美家庭平日的財(cái)務(wù)報(bào)表,預(yù)算,稅務(wù)處理,銀行賬目的查詢等等都借助軟件的各項(xiàng)功能,使用理財(cái)軟件幫助家庭打理日常的財(cái)務(wù)安排已經(jīng)成為一件很平常的事。但由于金融體制上的巨大差異,在歐美國(guó)家使用的個(gè)人家庭理財(cái)軟件卻并沒有登陸中國(guó)市場(chǎng)。但是國(guó)內(nèi)的個(gè)人理財(cái)服務(wù)卻剛剛起步,各式各樣的個(gè)人理財(cái)軟件也如雨后春筍,數(shù)不勝數(shù)。至少有上百款的所謂個(gè)人理財(cái)軟件,但實(shí)際上99%是個(gè)人寫的業(yè)務(wù)小程序,功能比Excel方便一點(diǎn)而已,有的加一點(diǎn)報(bào)表功能,充其量叫記賬軟件。如果個(gè)人理財(cái)軟件僅有告訴你“柴米油鹽醬醋茶”這種流水賬的功能,Excel足夠了。但真正做到功能強(qiáng)大,技術(shù)專業(yè),市場(chǎng)有影響力的,而且形成規(guī)模的,國(guó)內(nèi)只有區(qū)區(qū)兩款,成都的財(cái)智和深圳的家財(cái)通??偠灾?,在不久的將來家庭使用理財(cái)軟件也將成為國(guó)內(nèi)家庭的必需品。能提供簡(jiǎn)單明了的功能及操作的記賬軟件更是被廣泛需要。這種軟件也會(huì)為提升人們的生活質(zhì)量發(fā)揮它最大的效用。1.2相關(guān)技術(shù)背景C語言是國(guó)內(nèi)外廣泛使用的一種計(jì)算機(jī)語言,學(xué)會(huì)使用C語言進(jìn)行程序設(shè)計(jì)是計(jì)算機(jī)工作者的一項(xiàng)基本功。對(duì)于我們大學(xué)生來說,學(xué)習(xí)這樣一門“C程序設(shè)計(jì)教程”更是必要的。本課程設(shè)計(jì)“家庭財(cái)務(wù)管理系統(tǒng)”就是通過學(xué)習(xí)《C程序設(shè)計(jì)》采用VisualC++作為編譯環(huán)境,是程序編譯和運(yùn)行的。本系統(tǒng)的總體思想基于結(jié)構(gòu)化的程序設(shè)計(jì)。應(yīng)用高級(jí)語言程序設(shè)計(jì)中的基本控制結(jié)構(gòu),如循環(huán)和選擇,著重實(shí)現(xiàn)管理系統(tǒng)的增、刪、改、查等典型的管理功能由于主要實(shí)現(xiàn)的是管理系統(tǒng)的增、刪、改、查等典型功能。程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程,既要掌握概念,又要?jiǎng)邮志幾g,還要上機(jī)調(diào)試運(yùn)行,通過這一次的課程設(shè)計(jì)我們從實(shí)踐中更進(jìn)一步的學(xué)習(xí)和了解C語言,當(dāng)然由于我們的技術(shù)水平有限,在這途中遇到很多問題,程序也未能做到很完美,望見諒!1.3開發(fā)及運(yùn)行環(huán)境開發(fā)工具:DEVc++運(yùn)行環(huán)境:WindowsXP/WindowsVista/Win7需求分析需求分析是指理解用戶需求,就軟件功能與客戶達(dá)成一致,估計(jì)軟件風(fēng)險(xiǎn)和評(píng)估項(xiàng)目代價(jià),最終形成開發(fā)計(jì)劃的一個(gè)復(fù)雜過程。需求分析就是分析軟件用戶的需求是什么。如果投入大量的人力、物力、財(cái)力和時(shí)間開發(fā)出的軟件卻不被人需要,那么所有的投入都是徒勞。本章將詳細(xì)闡述對(duì)于個(gè)人記賬系統(tǒng)的需求分析。以使得本系統(tǒng)可以盡可能地滿足大多數(shù)個(gè)人用戶記錄日常收支的需要。2.1設(shè)計(jì)目標(biāo)為了做出滿足個(gè)人用戶的需要的符合質(zhì)量要求的系統(tǒng),制定以下設(shè)計(jì)目標(biāo):對(duì)于日常收入設(shè)parents,school,labor,others分類記錄收入。對(duì)于日常支出設(shè)clothes,food,house,travel,else分類記錄2.2功能需求為滿足用戶需要,要求本系統(tǒng)有以下功能:記錄日常收支情況的功能。查找某天的收支情況的功能。插入忘記的收支的功能。顯示賬單的功能。統(tǒng)計(jì)的功能。2.3可行性分析本課題是基于DEVc++環(huán)境,實(shí)現(xiàn)記賬系統(tǒng)的開發(fā)。為了使本設(shè)計(jì)更具可行性,本系統(tǒng)的設(shè)計(jì)嚴(yán)格按照軟件工程的設(shè)計(jì)思想要求,首先對(duì)系統(tǒng)進(jìn)行了可行性分析。為了使分析更為清晰、完整,設(shè)計(jì)本系統(tǒng)的時(shí),將可行性分析分為經(jīng)濟(jì)可行性、操作可行性、技術(shù)可行性三個(gè)方面進(jìn)行分析。1.經(jīng)濟(jì)上可行性:DEVc++是免費(fèi)開源的軟件,使得開發(fā)成本大大下降。而且可重用性高,節(jié)省了二次開發(fā)的費(fèi)用。資源利用率高,成本低。從成本效益角度考慮十分可行。2.操作上的可行性:該設(shè)計(jì)的模塊界面簡(jiǎn)潔,方便快捷,簡(jiǎn)單易學(xué)。即便電腦初學(xué)者也可以輕松的操作所有系統(tǒng)的功能。并不需要掌握繁雜的財(cái)務(wù)專業(yè)知識(shí)也可以對(duì)自己的日常收支有一個(gè)大體的把握。3.技術(shù)上的可行性:該設(shè)計(jì)結(jié)合了軟件工程和會(huì)計(jì)學(xué)兩個(gè)專業(yè)的知識(shí),通過相關(guān)技術(shù)的學(xué)習(xí)和鉆研是對(duì)大學(xué)幾年學(xué)習(xí)內(nèi)容的很好的串聯(lián)。在給定的時(shí)間一定能完成需求說明要求的功能,并且確保軟件運(yùn)行速度及性能均達(dá)到用戶期望??傮w設(shè)計(jì)軟件總體設(shè)計(jì)是把需求分析階段得到的需求轉(zhuǎn)變成符合成本和質(zhì)量要求的、抽象的系統(tǒng)實(shí)現(xiàn)方案的過程。從需求分析到總體設(shè)計(jì),是一個(gè)逐漸擴(kuò)充模型的過程。系統(tǒng)總體設(shè)計(jì)確定實(shí)現(xiàn)系統(tǒng)的策略和目標(biāo)系統(tǒng)的高層結(jié)構(gòu)。確定設(shè)計(jì)中的類、關(guān)聯(lián)、接口形式及實(shí)現(xiàn)操作的算法。符合傳統(tǒng)面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則:模塊化,抽象,信息隱藏,低耦合,高內(nèi)聚。3.1設(shè)計(jì)目標(biāo)本系統(tǒng)為個(gè)人用戶提供一個(gè)記錄日常收支情況,并得到相應(yīng)統(tǒng)計(jì)結(jié)果的平臺(tái),主要實(shí)現(xiàn)以下目標(biāo):提供日常收支情況記錄查看及修改的功能。備份賬目信息。3.2系統(tǒng)結(jié)構(gòu)設(shè)計(jì)個(gè)人記賬系統(tǒng)面向的用戶主要是個(gè)人用戶,用戶只要記錄流水賬信息便可經(jīng)過測(cè)算得到相應(yīng)的統(tǒng)計(jì)結(jié)果,結(jié)合實(shí)際調(diào)查的其他資料可以得出系統(tǒng)的主要功能和輔助功能,并進(jìn)行主控界面及基本對(duì)象的設(shè)計(jì)。根據(jù)上述分析,結(jié)合用戶的具體需求,確定系統(tǒng)主要包括四大功能,分別是流水賬、統(tǒng)計(jì)報(bào)表。3.3系統(tǒng)功能結(jié)構(gòu)圖具體系統(tǒng)結(jié)構(gòu)如下圖:個(gè)人記賬系統(tǒng)個(gè)人記賬系統(tǒng)統(tǒng)計(jì)查找流水賬流水賬統(tǒng)計(jì)查找流水賬流水賬排序流水賬保存讀取文件排序流水賬保存讀取文件按金額排序刪除流水賬新增流水賬按時(shí)間排序按日期查找按序號(hào)查找按金額排序刪除流水賬新增流水賬按時(shí)間排序按日期查找按序號(hào)查找詳細(xì)設(shè)計(jì)軟件詳細(xì)設(shè)計(jì)是軟件工程的重要階段,軟件詳細(xì)設(shè)計(jì)細(xì)化了高層的體系結(jié)構(gòu)設(shè)計(jì),將軟件結(jié)構(gòu)中的主要部件劃分為能獨(dú)立編碼、編譯和測(cè)試的軟件單元,并進(jìn)行軟件單元的設(shè)計(jì),并最終將影響軟件實(shí)現(xiàn)的成敗。優(yōu)秀的詳細(xì)設(shè)計(jì)在提高編碼質(zhì)量、保證開發(fā)周期、節(jié)約開發(fā)成本等各方面都起著非常重要的作用,是一個(gè)軟件項(xiàng)目成功的關(guān)鍵保證。本章將按照設(shè)計(jì)實(shí)現(xiàn)的順序介紹各個(gè)單元的設(shè)計(jì)與實(shí)現(xiàn)情況。4.1基本對(duì)象設(shè)計(jì)按照面向?qū)ο蟮姆治雠c設(shè)計(jì)方法的基本思想,“萬物皆對(duì)象”,把“對(duì)象”作為解決問題的重心。根據(jù)個(gè)人記賬系統(tǒng)的具體情況分析主要對(duì)象有流水賬、統(tǒng)計(jì)數(shù)據(jù)等。1.流水賬對(duì)象流水賬對(duì)象代表用戶所記錄的每一筆賬目。每一筆賬目信息包括賬目發(fā)生的年月日信息,賬目所屬的消費(fèi)或收入的詳細(xì)類別,賬目名稱和金額。2.統(tǒng)計(jì)數(shù)據(jù)對(duì)象本來其實(shí)統(tǒng)計(jì)數(shù)據(jù)對(duì)象可以不設(shè)立,因?yàn)槿康慕y(tǒng)計(jì)數(shù)據(jù)都可以通過計(jì)算得到。但是考慮到用戶查詢較為頻繁,為了避免每次查詢均要計(jì)算一次,特別設(shè)立了統(tǒng)計(jì)數(shù)據(jù)對(duì)象。實(shí)際上,用于保存計(jì)算結(jié)果的數(shù)據(jù)量比較小,犧牲了這些許的空間卻能換來整個(gè)系統(tǒng)的高性能,這無疑是很值得的。統(tǒng)計(jì)數(shù)據(jù)對(duì)象包含了消費(fèi)結(jié)構(gòu)所需要的各項(xiàng)收支的統(tǒng)計(jì)計(jì)算結(jié)果。4.2系統(tǒng)主程序的設(shè)計(jì)與實(shí)現(xiàn)在設(shè)計(jì)系統(tǒng)主程序時(shí),著重考慮項(xiàng)目的核心功能,并圍繞核心功能進(jìn)行設(shè)計(jì)。顯然本項(xiàng)目的核心功能就是記賬。用戶需要很方便的進(jìn)行記賬活動(dòng),并且可以快速看到記賬結(jié)果。經(jīng)過反復(fù)考慮設(shè)計(jì)系統(tǒng)的主控界面如圖5-1所示。4.3流水賬視圖的設(shè)計(jì)與實(shí)現(xiàn)1.輸入數(shù)據(jù)創(chuàng)建鏈表實(shí)現(xiàn)代碼如下:APtrcreat(){APtrcPtr;intnum; printf("輸入的序號(hào)為0時(shí)代表輸入記錄結(jié)束\n"); printf("輸入序號(hào):");scanf("%d",&num);if(num==0)returnNULL;else{cPtr=(APtr)malloc(sizeof(Account));cPtr->num=num; printf("輸入日期,格式為****.**.**:"); scanf("%s",cPtr->date); printf("輸入in或out表示收入和支出:"); scanf("%s",cPtr->in_out); printf("輸入金額:"); scanf("%f",&cPtr->amount); printf("輸入門類,收入有parents、school、labor、others\n" "支出有:clothes、food、house、travel、else:"); scanf("%s",cPtr->kind); printf("輸入余額:"); scanf("%f",&cPtr->remain); cPtr->next=creat();returncPtr;}顯示賬單實(shí)現(xiàn)代碼如下:voidprint(APtrheadPtr){if(headPtr==NULL){printf("鏈表為空\(chéng)n");return;}else {if(headPtr->next==NULL)printf("%d\t%-10s\t%-5s\t\t%5.2f\t\t%-10s\t%5.2f\n",headPtr->num, headPtr->date,headPtr->in_out,headPtr->amount,headPtr->kind,headPtr->remain);else {printf("%d\t%-10s\t%-5s\t\t%5.2f\t\t%-10s\t%5.2f\n",headPtr->num, headPtr->date,headPtr->in_out,headPtr->amount,headPtr->kind,headPtr->remain);print(headPtr->next); } }}刪除記錄實(shí)現(xiàn)代碼如下:APtrdel(APtrheadPtr){APtrp1; APtrp2;intn,i; chardate[12];if(headPtr==NULL){ printf("nolist!"); return(headPtr); } printf("選擇刪除方式,輸入序號(hào):\n");printf("1.按序號(hào)刪除一條記錄\n" "2.按時(shí)間刪除一條記錄\n" "3.刪除全部記錄\n");scanf("%d",&i);if(i==1){ printf("輸入要?jiǎng)h除的記錄序號(hào):");scanf("%d",&n);p1=headPtr;while(p1->num!=n&&p1->next!=NULL) { p2=p1; p1=p1->next; }if(p1->num==n)//p1的num等于n {if(p1==headPtr) { headPtr=headPtr->next; }else { p2->next=p1->next; }free(p1); printf("刪除成功\n"); }elseprintf("記錄不存在,序號(hào)錯(cuò)誤\n"); }elseif(i==2) {printf("輸入要?jiǎng)h除記錄的日期:"); scanf("%s",date); p1=headPtr;while(strcmp(date,p1->date)!=0&&p1->next!=NULL) { p2=p1; p1=p1->next; } if(strcmp(date,p1->date)==0) { if(p1==headPtr) { headPtr=headPtr->next; } else { p2->next=p1->next; } free(p1); printf("刪除成功\n"); } else printf("記錄不存在\n"); } elseif(i==3) {while(headPtr!=NULL){p1=headPtr;headPtr=headPtr->next;free(p1);}printf("刪除成功\n"); }return(headPtr);}賬單查找實(shí)現(xiàn)代碼如下:/*4.按num查詢*/APtrnum_search(APtrheadPtr,intnum){APtrcPtr;printf("%3s\t%-10s\t%-8s\t%-10s\t%-10s\t%-10s\n", "No.","date","in_out","amount","kind","remain"); if(headPtr->num==num) printf("%d\t%-10s\t%-5s\t\t%5.2f\t\t%-10s\t%5.2f\n",headPtr->num, headPtr->date,headPtr->in_out,headPtr->amount,headPtr->kind,headPtr->remain); else{cPtr=headPtr;while(cPtr!=NULL&&cPtr->num!=num) {cPtr=cPtr->next; }if(cPtr!=NULL){printf("%d\t%-10s\t%-5s\t\t%5.2f\t\t%-10s\t%5.2f\n",cPtr->num, cPtr->date,cPtr->in_out,cPtr->amount,cPtr->kind,cPtr->remain); returncPtr;}else printf("該條記錄不存在\n");} returncPtr;}/*5.按date查詢*/voiddate_search(APtrheadPtr,chardate[]){APtrcPtr;intm=0;printf("%3s\t%-10s\t%-8s\t%-10s\t%-10s\t%-10s\n", "No.","date","in_out","amount","kind","remain");cPtr=headPtr;while(cPtr!=NULL) { if(strcmp(cPtr->date,date)==0) { printf("%d\t%-10s\t%-5s\t\t%5.2f\t\t%-10s\t%5.2f\n",cPtr->num, cPtr->date,cPtr->in_out,cPtr->amount,cPtr->kind,cPtr->remain);m=m+1; }cPtr=cPtr->next; }if(m==0) { printf("該條記錄不存在\n"); }}賬單排序?yàn)g覽實(shí)現(xiàn)代碼如下:voiddate_sort(APtr*sPtr){APtrpPtr=NULL,cPtr=NULL,t1Ptr=NULL,t2Ptr=NULL;inti,j;for(i=0;i<n-1;i++){pPtr=*sPtr;cPtr=(*sPtr)->next;for(j=0;j<n-1-i;j++){if(strcmp(pPtr->date,cPtr->date)>0&&pPtr==*sPtr){pPtr->next=cPtr->next;cPtr->next=pPtr;t1Ptr=pPtr;pPtr=cPtr;cPtr=t1Ptr; *sPtr=pPtr;}else{if(strcmp(pPtr->date,cPtr->date)>0){t1Ptr->next=cPtr;cPtr->next=pPtr;pPtr->next=t2Ptr;t1Ptr=pPtr;pPtr=cPtr;cPtr=t1Ptr;}}if(cPtr->next!=NULL){t1Ptr=pPtr;pPtr=cPtr;cPtr=cPtr->next;t2Ptr=cPtr->next;}}}}voidamount_sort(APtr*sPtr){APtrpPtr=NULL,cPtr=NULL,t1Ptr=NULL,t2Ptr=NULL;inti,j;for(i=0;i<n-1;i++){pPtr=*sPtr;cPtr=(*sPtr)->next;for(j=0;j<n-1-i;j++){if(pPtr->amount>cPtr->amount&&pPtr==*sPtr){pPtr->next=cPtr->next;cPtr->next=pPtr;t1Ptr=pPtr;pPtr=cPtr;cPtr=t1Ptr;*sPtr=pPtr;}else{if(pPtr->amount>cPtr->amount){t1Ptr->next=cPtr;cPtr->next=pPtr;pPtr->next=t2Ptr;t1Ptr=pPtr;pPtr=cPtr;cPtr=t1Ptr;}}if(cPtr->next!=NULL){t1Ptr=pPtr;pPtr=cPtr;cPtr=cPtr->next;t2Ptr=cPtr->next;}}}}統(tǒng)計(jì)實(shí)現(xiàn)代碼如下:/*9.統(tǒng)計(jì)各類數(shù)據(jù)*/voidStat(APtrheadPtr){ intchoice; charIO[4],kind[30],date[12]; printf("請(qǐng)選擇項(xiàng)目序號(hào):\n"); printf("1總收入和總支出\n" "2各門類總計(jì)統(tǒng)計(jì)\n" "3月度總計(jì)\n" "4各門類多占總量的比例\n");scanf("%d",&choice); switch(choice) { case1:printf("計(jì)算總收入請(qǐng)輸入in,計(jì)算總支出請(qǐng)輸入out\n");scanf("%s",IO);IO_total(headPtr,IO);break; case2:printf("統(tǒng)計(jì)收入輸入in,統(tǒng)計(jì)支出輸入out:");scanf("%s",IO);printf("請(qǐng)輸入要統(tǒng)計(jì)的kind類型:");scanf("%s",kind);kind_total(headPtr,kind,IO);break; case3:printf("統(tǒng)計(jì)收入輸入in,統(tǒng)計(jì)支出輸入out:");scanf("%s",IO);printf("請(qǐng)輸入要統(tǒng)計(jì)的年月,格式****.**:");scanf("%s",date);mon_total(headPtr,date,IO);break; case4:printf("統(tǒng)計(jì)收入輸入in,統(tǒng)計(jì)支出輸入out:");scanf("%s",IO);printf("請(qǐng)輸入要統(tǒng)計(jì)的kind類型:");scanf("%s",kind);proportion(headPtr,kind,IO);break; }}/*各門類總計(jì)統(tǒng)計(jì)*/floatkind_total(APtrheadPtr,charkind[],charIO[]){ FILE*fp; floatsum=0; charstr[20];APtrcPtr=headPtr;while(cPtr!=NULL) { if(strcmp(kind,cPtr->kind)==0&&strcmp(IO,cPtr->in_out)==0) {sum+=cPtr->amount; }cPtr=cPtr->next;}printf("%s類的%s統(tǒng)計(jì)結(jié)果為:%f\n",kind,IO,sum); printf("保存結(jié)果,輸入要保存的文件名:"); scanf("%s",str);if((fp=fopen(str,"a"))==NULL) { printf("文件打不開,無法保存\n"); } else { fprintf(fp,"%s","Theresultis"); fprintf(fp,"%s\t%s\t%f\n",kind,IO,sum); printf("保存成功\n"); } returnsum;}/*總收入總支出*/floatIO_total(APtrheadPtr,charIO[]){ floatsum=0; charstr[20];APtrcPtr=headPtr; FILE*fp;while(cPtr!=NULL) { if(strcmp(cPtr->in_out,IO)==0) { sum+=cPtr->amount; } cPtr=cPtr->next; }printf("%s的結(jié)果為:%f\n",IO,sum); printf("保存結(jié)果,輸入要保存的文件名:"); scanf("%s",str); if((fp=fopen(str,"a"))==NULL) { printf("文件打不開,無法保存\n"); } else { fprintf(fp,"%s","Theresultis"); fprintf(fp,"%s\t%f\n",IO,sum); printf("保存成功\n"); } returnsum;}/*月度開銷*/voidmon_total(APtrheadPtr,chardate[],charIO[]){ FILE*fp; charstr[20];floatsum=0;APtrcPtr=headPtr; while(cPtr!=NULL) { if(strcmp(cPtr->in_

溫馨提示

  • 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)論