版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p> 1.引 言…………………………………………………………………………(1)</p><p> 2 相關(guān)技術(shù)……………………………………………………………………(2)</p><p> 2.1 C++介紹……………………………………………………………………(2)</p&g
2、t;<p> 2.2 Visual Studio 2008介紹………………………………………………(2)</p><p> 2.3 需求分析…………………………………………………………………(2)</p><p> 3系統(tǒng)流程圖…………………………………………………………………(4)</p><p> 4 算法設(shè)計………………………………………
3、……………………………(5)</p><p> 5 具體實現(xiàn)及運行結(jié)果……………………………………………………(6)</p><p> 5.1 創(chuàng)建工程并建立件………………………………………………………(6)</p><p> 5.2 個人帳薄管理系統(tǒng)的實現(xiàn)………………………………………………(6)</p><p> 6 結(jié)束語………
4、………………………………………………………………(12)</p><p> 7 參考文獻(xiàn)……………………………………………………………………(13)</p><p> 8 附件:程序代碼…………………………………………………………(11)</p><p> 用C++語言設(shè)計個人帳薄管理系統(tǒng)</p><p> 摘 要 本課程設(shè)計主要涉
5、及個人帳薄管理系統(tǒng),記錄某人每月的全部收入及各項開支情況,包括食品消費,房租,子女教育費用,水電費,醫(yī)療費,儲蓄等。在課程設(shè)計中,系統(tǒng)開發(fā)平臺為Windows Vista,程序設(shè)計語言采用Visual studio 2008,數(shù)據(jù)庫采用MS SQL 2008,程序運行平臺為Windows Vista/7。對于進(jìn)入系統(tǒng)后可以輸入和修改某月的收支情況,可以對每月的開支從小到大進(jìn)行排序,可以根據(jù)輸入的月份查詢每月的收支情況。在程序設(shè)計中,添加
6、了使用說明和幫助事項,并且采用了面向?qū)ο筮@種解決問題的方法。程序通過調(diào)試運行,初步是想了設(shè)計目標(biāo),并且經(jīng)過適當(dāng)完善后,將可以應(yīng)用在個人理財解決實際問題。</p><p> 關(guān)鍵詞 程序設(shè)計;C++;跟人帳薄管理系統(tǒng);開支情況</p><p><b> 1 引 言</b></p><p> 本課程設(shè)計主要解決在個人帳簿管理系統(tǒng)記錄某人每月
7、的全部收入及各項開支情況,包括食品消費,房租,子女教育費用,水電費,醫(yī)療費,儲蓄等。進(jìn)入系統(tǒng)后可以輸入和修改某月的收支情況,可以對每月的開支從小到大進(jìn)行排序,可以根據(jù)輸入的月份查詢每月的收支情況。</p><p> 當(dāng)今社會,計算機科學(xué)已經(jīng)無處不在,人們的生活、學(xué)習(xí)、工作甚至娛樂都不可避免地與計算機科學(xué)息息相關(guān)[1]。并且隨著經(jīng)濟的發(fā)展,理財成為我們生活中不可缺少的內(nèi)容,理財?shù)闹匾燥@而易見。個人帳薄管理系統(tǒng),
8、能夠為我們家庭生活個人理財提供諸多方便,使理財更系統(tǒng),更精確。</p><p> 作為計算機應(yīng)用的一部分,使用計算機提供個人帳薄管理系統(tǒng),既繼承了傳統(tǒng)理財形式,也克服了人工理財?shù)脑S多缺點,譬如:計算復(fù)雜,會時有錯誤,而用計算機處理的話這種錯誤可以輕易避免;輸入方便,節(jié)省了理財人的時間,提高效率和精確度。查詢方便、信息詳細(xì)清晰。便于理財。</p><p><b> 2 相關(guān)技術(shù)
9、</b></p><p><b> 2.1 C++介紹</b></p><p> C++語言的主要特點表現(xiàn)在兩個方面,一是全面兼容C語言,二是支持面向?qū)ο蟮某绦蛟O(shè)計方法。</p><p> (1) C++是一個更好的C,它保持了C語言的優(yōu)點,大多數(shù)的C程序代碼略作修改或不作修改就可在C++的集成環(huán)境下調(diào)試和運行。這對于繼承和開
10、發(fā)當(dāng)前已在廣泛的軟件是非常重要的,可以節(jié)省大量的人力和物力。</p><p> (2) C++是一種面向?qū)ο蟮某绦蛟O(shè)計語言它使得程序的各個模塊的獨立性更強,程序的可讀性和可移植性更強,程序代碼的結(jié)構(gòu)更加合理,程序的擴充性更強。這對于設(shè)計、編制和調(diào)試一些大型的軟件尤為重要。 </p><p> (3) C++集成環(huán)境不僅支持C++程序的編譯和調(diào)試,而且也支持C程序的編譯和調(diào)試。通常,C+
11、+程序環(huán)境約定:當(dāng)源程序文件的擴展名為c.時,則為C程序;而當(dāng)源程序文件的擴展名為.cpp時,則為C++程序。</p><p> (4) C++語句非常簡練,對語法限制比較寬松,因此C++語法非常靈活。其優(yōu)點是給用戶編程帶來書寫上的方便。其缺點是由于編譯時對語法限制比較寬松,許多邏輯上的錯誤不容易發(fā)現(xiàn),給用戶編程增加了難度。</p><p> 2. 2 Visual Studio
12、2008介紹</p><p> Microsoft Visual Studio 2008是面向Windows Vista、Office 2007、Web 2.0的下一代開發(fā)工具,代號“Orcas”,是對Visual Studio 2005一次及時、全面的升級。VS2008引入了250多個新特性,整合了對象、關(guān)系型數(shù)據(jù)、XML的訪問方式,語言更加簡潔。使用Visual Studio 2008可以高效開發(fā)Windo
13、ws應(yīng)用。設(shè)計器中可以實時反映變更,XAML中智能感知功能可以提高開發(fā)效率。同時Visual Studio 2008支持項目模板、調(diào)試器和部署程序。Visual Studio 2008可以高效開發(fā)Web應(yīng)用,集成了ASP.NET AJAX 1.0,包含ASP.NET AJAX項目模板,它還可以高效開發(fā)Office應(yīng)用和Mobile應(yīng)用。由于Windows Vista于Visual C++ 6.0不兼容,所以我選擇在VS2008運行該程序
14、。</p><p> 2. 3 需求分析</p><p> 個人帳薄管理系統(tǒng)具有良好的性能和實用的功能,其性能的良好表現(xiàn)為:輸入性強、檢索迅速、查詢方便、可靠性高等,其實用的功能表現(xiàn)為:由于個人理財所要記載的項目比較瑣碎,查詢不方便,容易搞錯順序,應(yīng)用該管理系統(tǒng)可以輸入任意每月開支情況,不但不會輕易犯錯,而且可以容易修改每月的記錄,包括食品消費,房租,子女教育費用,水電費,醫(yī)療費,儲
15、蓄等。節(jié)省時間和空間,這些優(yōu)點能夠促進(jìn)優(yōu)化家庭及財政管理,促進(jìn)財政管理的科技化和現(xiàn)代化。</p><p> 個人帳薄管理系統(tǒng)可以為用戶提供任意月份的查詢,月份消費信息包括食品消費,房租,子女教育費用,水電費,醫(yī)療費,儲蓄,具體信息如表2-1所示。</p><p> 表2-1 個人開支項目信息表</p><p><b> 3 系統(tǒng)流程圖</b&g
16、t;</p><p><b> 4 算法設(shè)計</b></p><p><b> 4 算法設(shè)計</b></p><p> (1)錄入、查詢、修改、刪除數(shù)據(jù)。建立一個文件,包括某人5個月的開支情況,對文件中的信息擴充,包括修改,刪除等。所以先確定文件保存路徑,接受鍵盤輸入,像文件內(nèi)寫入內(nèi)容,將dat格式文件轉(zhuǎn)換為tx
17、t文件,查詢用聲明,自定義數(shù)據(jù)類型,然后返回查詢結(jié)果及查詢狀態(tài),繼而對查詢結(jié)果排序。刪除數(shù)據(jù)時,先調(diào)用打開轉(zhuǎn)換的文本文件。修改數(shù)據(jù)時,要重寫數(shù)據(jù),刪除源文件,重命名中間文件,顯示新的數(shù)據(jù)。</p><p><b> (2)起泡排序</b></p><p> 起泡排序是每趟把當(dāng)先序列中最小的元素放在開始位置,是交換排序中最簡單的排序方法,其基本思想是:兩兩比較相鄰記
18、錄的關(guān)鍵碼,如果反序則交換,值到?jīng)]有反序的記錄為止,將整個待排序的記錄序列分成為有序區(qū)和無序區(qū),初始狀態(tài)有序區(qū)為空,無序區(qū)包括所有待排序的記錄。對無序去從前向后依次將相鄰記錄的關(guān)鍵碼進(jìn)行比較,若反序則交換,從而使得關(guān)鍵碼曉得記錄向前移,關(guān)鍵碼大的記錄向后移(像水中的氣泡,體積大的先浮上來)。重復(fù)執(zhí)行,之前無序區(qū)中沒有反序的記錄。確定每趟范圍。</p><p> (3)其基本思想是:先確定文件保存路徑,建立一個文
19、件,錄入個人5個月的開支情況,對文件中的信息擴充,包括修改,刪除等。接受鍵盤輸入,向文件內(nèi)寫入內(nèi)容,將dat格式文件轉(zhuǎn)換為txt文件,然后輸入2進(jìn)行查看,查看所錄入的數(shù)據(jù),如果數(shù)據(jù)有誤,可以輸入3修改數(shù)據(jù),輸入4查詢所有月份的開支情況,系統(tǒng)自動啟用氣泡排序?qū)?shù)據(jù)精心兩兩比較,按從小到大的順序排列。</p><p> 5 具體實現(xiàn)及運行結(jié)果</p><p> 5.1 創(chuàng)建工程并建立文件&
20、lt;/p><p> ?。?)啟動Visual Studio 2008。(2)新建工程名為“zj” 的Win32控制臺應(yīng)用程序。</p><p> ?。?)建立頭文件“Myinfor.h”,在其中定義圖類myinfor。</p><p> (4)建立源文件“myinfor。.cpp”,在其中定義圖類myinfor。的構(gòu)造函數(shù)myinfor。、開支情況輸出輸出函數(shù)Put
21、OutVexInfo。</p><p> ?。?)建立源文件“myinfor Main.cpp”,在其中輸入開支情況及項目信息,通過主函數(shù)調(diào)用其它各函數(shù),實現(xiàn)個人帳薄管理系統(tǒng)的設(shè)計。</p><p> 5.2 個人帳薄管理系統(tǒng)的實現(xiàn)</p><p> 圖5-1 系統(tǒng)的初始狀態(tài)</p><p> (1) 如果輸入1,進(jìn)行錄入數(shù)據(jù),并且錄
22、入某人從5—9月的開支情況。</p><p> 圖5-2 開支情況信息錄入(1)</p><p> 圖5-3 5月份開支情況信息錄入</p><p> 圖5-4 6月份開支情況信息錄入</p><p> 圖5-5 7月份開支情況信息錄入</p><p> 圖5-6 8月份開支情況信息錄入</p>
23、<p> 圖5-7 9月份開支情況信息錄入</p><p> (2)查看數(shù)據(jù),輸入2.</p><p> 圖5-8 開支情況信息查詢</p><p> 圖5-9 開支情況信息修改</p><p> 圖5-10 開支情況信息查詢</p><p> 圖5-11 5月份開支情況費用排序<
24、/p><p> 圖5-12 7月份開支情況費用排序</p><p> 圖5-13 開支情況記錄刪除</p><p> 圖5-14 個人張博管理系統(tǒng)退出</p><p><b> 6 結(jié)束語</b></p><p> 該進(jìn)程管理工具程序經(jīng)過兩周多時間的努力,終于編譯調(diào)試成功,達(dá)到了設(shè)計
25、要求,完成了設(shè)計目標(biāo)。</p><p> 本課程設(shè)計主要運用數(shù)據(jù)結(jié)構(gòu)知識和C++程序設(shè)計完成了一個個人帳薄管理系統(tǒng)的開發(fā)。該系統(tǒng)具的主要功能為:記錄某人每月的全部收入及各項開支情況,包括食品消費,房租,子女教育費用,水電費,醫(yī)療費,儲蓄等。進(jìn)入系統(tǒng)后可以輸入和修改某月的收支情況,可以對每月的開支從小到大進(jìn)行排序,可以根據(jù)輸入的月份查詢每月的收支情況。</p><p> 其主要特點為:檢
26、索迅速、查找方便、可靠性高、實用性強。系統(tǒng)已經(jīng)過調(diào)試運行,初步實現(xiàn)了設(shè)計目標(biāo)。</p><p> 在這次數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計中,曾遇到過一些問題,在老師和同學(xué)的幫助下,得到了解決。在此,我衷心感謝指導(dǎo)老師***老師和學(xué)校給予的良好環(huán)境的幫助可以讓我們順利完成這次課程設(shè)計。同時,也要感謝我的數(shù)據(jù)結(jié)構(gòu)任課老師——***老師,她以詳細(xì)清晰的講解帶著我們完成了數(shù)據(jù)結(jié)構(gòu)(C++版)的學(xué)習(xí)。另外,還要感謝各位同學(xué)對我的關(guān)懷、
27、幫助,為我提供了良好的設(shè)計環(huán)境以及各方面的支持。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 李春葆,曾慧,張植民. 數(shù)據(jù)結(jié)構(gòu)程序設(shè)計題典. 北京:清華大學(xué)出版社,2002</p><p> [2] 李根強,謝月娥. 數(shù)據(jù)結(jié)構(gòu)(C++版)實習(xí)指導(dǎo). 北京:中國水利水電出版社,2002</p>&l
28、t;p> [3] 朱建芳. 數(shù)據(jù)結(jié)構(gòu)習(xí)題、實驗. 北京:機械工業(yè)出版社,2006</p><p> [4] 王紅梅,胡明,王濤. 數(shù)據(jù)結(jié)構(gòu)(C++版). 北京:清華大學(xué)出版社,2005</p><p><b> [5]云磊博客</b></p><p> http://hi.baidu.com/%D4%C6%C0%DA/blog/i
29、tem/77b937f338867e56352acca5.html</p><p> 附錄1:個人帳薄管理系統(tǒng)設(shè)計源程序清單</p><p> #include <stdio.h></p><p> #include <stdio.h></p><p> #include <memory.h><
30、;/p><p> #include <windows.h></p><p><b> //文件保存路徑</b></p><p> #define FilePath1 "Myinfor.dat"</p><p> #define FilePath2 "Myinfor.txt&q
31、uot;</p><p><b> //查詢用聲明</b></p><p> #define Status int</p><p> #define OK 1</p><p> #define Error 0</p><p> #define NotFound 2</p>
32、<p> typedef struct {</p><p> int month;//月份</p><p> int spxf;//食品消費</p><p> int fzfy;//房租費用</p><p> int znjy;//子女教育費用</p><p> int sdfy;//水電費用&l
33、t;/p><p> int ylfy;//醫(yī)療費用</p><p> int cxfy;//儲蓄費用</p><p> int srfy;//收入費用</p><p><b> } Infor;</b></p><p> typedef struct {// 查詢用自定義數(shù)據(jù)類型</p
34、><p><b> int no;</b></p><p><b> int data;</b></p><p><b> }pType;</b></p><p> void menu(void); //菜單</p><p> void input
35、(Infor *newI); //接收鍵盤輸入</p><p> void writeinfor(Infor *newI);//向文件內(nèi)寫入內(nèi)容</p><p> void changeFormat(void );//將dat格式文件轉(zhuǎn)換為txt文件</p><p> Status search(Infor *a);//查詢函數(shù)[返回查詢的結(jié)果及查詢的狀態(tài)]&
36、lt;/p><p> void paixu(Infor *a);//對查詢據(jù)結(jié)果排序</p><p> void modify(Infor *a,int mon);//修改數(shù)據(jù)</p><p> void delRecord(int mon);//刪除數(shù)據(jù)</p><p> void main()</p><p>
37、<b> {</b></p><p><b> while(1)</b></p><p><b> {</b></p><p><b> menu();</b></p><p><b> }</b></p>&
38、lt;p><b> }</b></p><p> void menu(void)</p><p><b> {</b></p><p><b> int item;</b></p><p><b> int mon;</b></p&g
39、t;<p><b> Infor *a;</b></p><p> a=(Infor *)malloc(sizeof(Infor));</p><p><b> do{</b></p><p> printf("\n…………個人帳簿管理系統(tǒng)設(shè)計趙婧制作…………\n\n");<
40、/p><p> printf("\t\t1.錄入數(shù)據(jù)。\n");</p><p> printf("\t\t2.查看數(shù)據(jù)。\n");</p><p> printf("\t\t3.修改數(shù)據(jù)。\n");</p><p> printf("\t\t4.查詢數(shù)據(jù)。\n&quo
41、t;);</p><p> printf("\t\t5.排序數(shù)據(jù)。\n");</p><p> printf("\t\t6.刪除數(shù)據(jù)。\n");</p><p> printf("\t\t0.退出系統(tǒng)。\n\n");</p><p> printf("請輸入要進(jìn)行的
42、操作: " );</p><p> scanf("%d",&item);</p><p> }while(item>6 || item<-1);</p><p> switch(item)</p><p> { //退出程序</p><p> case 0
43、: getchar();//保存界面</p><p> getchar();</p><p><b> exit(0);</b></p><p><b> break;</b></p><p><b> //錄入數(shù)據(jù)</b></p><p>
44、case 1: input(a);</p><p> writeinfor(a);</p><p><b> break;</b></p><p><b> //查看數(shù)據(jù)</b></p><p> case 2: changeFormat();</p><p><
45、;b> break;</b></p><p><b> //修改數(shù)據(jù)</b></p><p> case 3: item=search(a);</p><p> mon=a->month;</p><p> if (item!=OK) printf("\n沒有符合條件的記錄!\
46、n"); </p><p><b> else</b></p><p><b> {</b></p><p> printf("\n記錄月份食品消費房租費用子女費用水電費用醫(yī)療費用儲蓄費用本月收入\n");</p><p> printf("-----
47、------------------------------------------------------------------ \n");</p><p> printf("%7d %8d %8d %8d %8d %8d %8d %8d\n",a->month,a->spxf,a->fzfy,a->znjy,a->sdfy,a->ylfy,
48、a->cxfy,a->srfy);</p><p><b> input(a);</b></p><p> modify(a,mon);</p><p><b> }</b></p><p><b> break;</b></p><p&
49、gt;<b> //查詢數(shù)據(jù)</b></p><p> case 4: item=search(a);</p><p> if (item!=OK) printf("\n沒有符合條件的記錄!\n");</p><p><b> else{</b></p><p> pr
50、intf("\n記錄月份食品消費房租費用子女費用水電費用醫(yī)療費用儲蓄費用本月收入\n");</p><p> printf("----------------------------------------------------------------------- \n");</p><p> printf("%7d %8d %8d
51、 %8d %8d %8d %8d %8d\n",a->month,a->spxf,a->fzfy,a->znjy,a->sdfy,a->ylfy,a->cxfy,a->srfy);</p><p><b> } </b></p><p><b> break;</b></p
52、><p><b> //排序數(shù)據(jù)</b></p><p> case 5: item=search(a);</p><p> if (item!=OK) printf("\n沒有符合條件的記錄!\n"); </p><p><b> else</b></p>&
53、lt;p><b> paixu(a);</b></p><p><b> break;</b></p><p><b> //刪除數(shù)據(jù)</b></p><p><b> case 6:</b></p><p> item=search(a)
54、;</p><p> mon=a->month;</p><p> if (item!=OK) printf("\n沒有符合條件的記錄!\n"); </p><p><b> else</b></p><p><b> {</b></p><p&
55、gt; printf("\n記錄月份食品消費房租費用子女費用水電費用醫(yī)療費用儲蓄費用本月收入\n");</p><p> printf("----------------------------------------------------------------------- \n");</p><p> printf("%7d
56、%8d %8d %8d %8d %8d %8d %8d\n",a->month,a->spxf,a->fzfy,a->znjy,a->sdfy,a->ylfy,a->cxfy,a->srfy);</p><p> delRecord(mon);</p><p><b> }</b></p>&
57、lt;p><b> break;</b></p><p><b> }</b></p><p> free(a);//釋放內(nèi)存空間</p><p><b> }</b></p><p> void input(Infor *newI)</p>&l
58、t;p><b> {</b></p><p> printf("\n請依次輸入數(shù)據(jù)[說明:中間以空格符隔開]:\n(本月月份食品消費房租費用子女費用水電費用醫(yī)療費用儲蓄費用收入費用)\n");</p><p> scanf("%d%d%d%d%d%d%d%d",&newI->month,&new
59、I->spxf,&newI->fzfy,&newI->znjy,&newI->sdfy,&newI->ylfy,&newI->cxfy,&newI->srfy);</p><p> fflush(stdin);</p><p><b> }</b></p>&l
60、t;p> void writeinfor(Infor *newI)</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> fp=fopen(FilePath1,"ab+");</p><p> if(fp==
61、NULL)</p><p><b> {</b></p><p> printf("無法創(chuàng)建文件:%s",FilePath1);</p><p><b> exit(0);</b></p><p><b> }</b></p><
62、p> fwrite(newI,sizeof(Infor),1,fp);//這里可以做特別處理可防止存在同一月份有條以上的記錄問題。這里就不寫了。</p><p> fclose(fp);</p><p> printf("數(shù)據(jù)錄入成功!\n");</p><p><b> }</b></p>&l
63、t;p> void changeFormat(void) //暫時只能操作一行文件有待改進(jìn)</p><p><b> {</b></p><p> FILE *fp1,*fp2;</p><p><b> Infor *a;</b></p><p> a=(Infor *)mallo
64、c(sizeof(Infor));</p><p> fp1=fopen(FilePath1,"rb+");</p><p> if(fp1==NULL)</p><p><b> {</b></p><p> printf("無法找到文件:%s\n",FilePath1)
65、;</p><p> return ; //返回主函數(shù)</p><p><b> }</b></p><p> fp2=fopen(FilePath2,"wt+");</p><p> if(fp2==NULL)</p><p><b> {</b&g
66、t;</p><p> printf("無法創(chuàng)建文件:%s\n",FilePath2);</p><p> return ; //返回主函數(shù)</p><p><b> }</b></p><p> fputs(" \n……………………………………個人帳簿管理系統(tǒng)……………………………
67、………\n\n",fp2);</p><p> fputs("記錄月份食品消費房租費用子女費用水電費用醫(yī)療費用儲蓄費用本月收入\n",fp2);</p><p> fputs("----------------------------------------------------------------------- \n",fp2)
68、;</p><p> printf("\n記錄月份食品消費房租費用子女費用水電費用醫(yī)療費用儲蓄費用本月收入\n");</p><p> printf("----------------------------------------------------------------------- \n");</p><p>
69、 rewind(fp1);</p><p> fread(a,sizeof(Infor),1,fp1);</p><p> while(!feof(fp1))//從原文件[.dat]中讀數(shù)據(jù)寫入顯示文件[.txt]中</p><p><b> {</b></p><p> printf("%7d %8
70、d %8d %8d %8d %8d %8d %8d\n",a->month,a->spxf,a->fzfy,a->znjy,a->sdfy,a->ylfy,a->cxfy,a->srfy);</p><p> fprintf(fp2,"%7d %8d %8d %8d %8d %8d %8d %8d\n",a->month,a-&
71、gt;spxf,a->fzfy,a->znjy,a->sdfy,a->ylfy,a->cxfy,a->srfy);</p><p> fread(a,sizeof(Infor),1,fp1);</p><p><b> }</b></p><p> fputs("---------------
72、-------------------------------------------------------- \n",fp2);</p><p> fputs("關(guān)閉本程序繼續(xù)原程序!\n",fp2);</p><p> fclose(fp1);</p><p> fclose(fp2);</p><p&g
73、t; system(FilePath2); //調(diào)用打開轉(zhuǎn)換的文本文件</p><p> remove(FilePath2);//刪除文本文件文件</p><p><b> }</b></p><p> Status search(Infor *a)</p><p><b> {</b>&
74、lt;/p><p> FILE *fp1;</p><p><b> int mon;</b></p><p> int isfound=0;</p><p> printf("請正確輸入要查詢的月份:");</p><p> scanf("%d",&
75、amp;mon);</p><p> fflush(stdin); //清除緩沖區(qū)</p><p> fp1=fopen(FilePath1,"rb+");</p><p> if(fp1==NULL)</p><p><b> {</b></p><p> prin
76、tf("無法找到文件:%s\n",FilePath1);</p><p> return Error; //返回主函數(shù)</p><p><b> }</b></p><p> rewind(fp1);</p><p> fread(a,sizeof(Infor),1,fp1);</p&g
77、t;<p> while(!feof(fp1))//查詢操作</p><p><b> {</b></p><p> if(a->month==mon)</p><p><b> {</b></p><p> isfound=1;
78、 </p><p><b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> isfound=0;
79、</p><p><b> }</b></p><p> fread(a,sizeof(Infor),1,fp1);</p><p><b> }</b></p><p> fclose(fp1);</p><p> if(isfound)</p>&
80、lt;p> return OK;</p><p><b> else</b></p><p> return NotFound;</p><p><b> }</b></p><p> void paixu(Infor *a)</p><p><b>
81、; {</b></p><p> int i=0,j=0,flag=0,t;</p><p> pType px[8]={{0,0}};</p><p> char str[8][10]={"記錄月份","食品消費","房租費用","子女費用","水電費用&
82、quot;,"醫(yī)療費用","儲蓄費用","本月收入"};</p><p> for(;i<8;i++)</p><p> px[i].no=i;</p><p> px[0].data=a->month;</p><p> px[1].data=a->spx
83、f;</p><p> px[2].data=a->fzfy;</p><p> px[3].data=a->znjy;</p><p> px[4].data=a->sdfy;</p><p> px[5].data=a->ylfy;</p><p> px[6].data=a-&g
84、t;cxfy;</p><p> px[7].data=a->srfy;</p><p> for(i=1;i<8;i++)//冒泡排序</p><p><b> {</b></p><p><b> flag=0;</b></p><p> for(j
85、=0;j<8-i;j++)</p><p> if(px[j].data>px[j+1].data)</p><p><b> {</b></p><p> t=px[j].data;</p><p> px[j].data=px[j+1].data;</p><p> px
86、[j+1].data=t;</p><p> t=px[j].no;</p><p> px[j].no=px[j+1].no;</p><p> px[j+1].no=t;</p><p><b> flag=1;</b></p><p><b> }</b>&l
87、t;/p><p><b> //輸出結(jié)果</b></p><p> if(flag==0) break;</p><p><b> }</b></p><p> printf("\n");</p><p> for(i=0;i<8;i++)&l
88、t;/p><p><b> {</b></p><p> printf(" %s",str[px[i].no]);</p><p><b> }</b></p><p> printf("\n-------------------------------------
89、---------------------------------- \n");</p><p> for(i=0;i<8;i++)</p><p><b> {</b></p><p> printf("%8d ",px[i].data);</p><p><b>
90、 }</b></p><p> printf("\n");</p><p><b> }</b></p><p> void modify(Infor *a,int mon)//修改數(shù)據(jù)</p><p><b> {</b></p><p&
91、gt; FILE *fp1,*fp2;</p><p><b> Infor *b;</b></p><p> b=(Infor *)malloc(sizeof(Infor));</p><p> fp1=fopen(FilePath1,"rt");</p><p> fp2=fopen(&
92、quot;temp.dat","wt+");</p><p> rewind(fp1);</p><p> fread(b,sizeof(Infor),1,fp1);</p><p> while (!feof(fp1))//重寫數(shù)據(jù)</p><p><b> {</b></p
93、><p> if(b->month==mon)</p><p><b> {</b></p><p> fwrite(a,sizeof(Infor),1,fp2);//修改數(shù)據(jù)</p><p><b> }</b></p><p><b> else&l
94、t;/b></p><p><b> {</b></p><p> fwrite(b,sizeof(Infor),1,fp2);</p><p><b> }</b></p><p> fread(b,sizeof(Infor),1,fp1);</p><p>
95、<b> }</b></p><p> fclose(fp1);</p><p> fclose(fp2);</p><p> remove(FilePath1); //刪除源文件</p><p> rename("temp.dat",FilePath1);//重命名中間
96、文件</p><p> printf("修改數(shù)據(jù)成功!\n" );</p><p> changeFormat(); //顯示數(shù)據(jù)</p><p><b> }</b></p><p> void delRecord(int mon) //刪除數(shù)據(jù)&l
97、t;/p><p><b> {</b></p><p> FILE *fp1,*fp2;</p><p><b> Infor *b;</b></p><p> b=(Infor *)malloc(sizeof(Infor));</p><p> fp1=fopen(F
98、ilePath1,"rt");</p><p> fp2=fopen("temp.dat","wt+");</p><p> rewind(fp1);</p><p> fread(b,sizeof(Infor),1,fp1);</p><p> while (!feof(f
99、p1)) //重寫數(shù)據(jù)</p><p><b> {</b></p><p> if(b->month!=mon) </p><p> fwrite(b,sizeof(Infor),1,fp2); </p><p> fread(b,sizeof(Infor),1,fp1);</
100、p><p><b> }</b></p><p> fclose(fp1);</p><p> fclose(fp2);</p><p> remove(FilePath1); //刪除源文件</p><p> rename("temp.dat",Fil
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計-個人收支管理系統(tǒng)
- c++語言課程設(shè)計報告--影像管理系統(tǒng)
- c++課程設(shè)計--c++程序設(shè)計語言
- 課程設(shè)計--用c++實現(xiàn)企業(yè)人才管理系統(tǒng)
- c++酒店管理系統(tǒng)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計----用c++語言實現(xiàn)圖書管理系統(tǒng)
- c++酒店管理系統(tǒng)課程設(shè)計
- 銷售管理系統(tǒng)c++課程設(shè)計
- 《c++》課程設(shè)計倉庫管理系統(tǒng)
- c++課程設(shè)計-學(xué)生管理系統(tǒng)
- c++學(xué)生管理系統(tǒng)課程設(shè)計
- c++課程設(shè)計--酒店管理系統(tǒng)
- c++課程設(shè)計——學(xué)生籍貫信息記錄薄
- c語言課程設(shè)計---個人消費管理系統(tǒng)
- c++語言課程設(shè)計報告書--學(xué)生學(xué)籍管理系統(tǒng)
- 《c++語言程序設(shè)計》課程設(shè)計報告
- c++課程設(shè)計--圖書管理系統(tǒng)
- 人事考勤管理系統(tǒng)c++課程設(shè)計
- c++課程設(shè)計-學(xué)生考勤管理系統(tǒng)
- 圖書管理系統(tǒng)c++課程設(shè)計
評論
0/150
提交評論