2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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è)計(jì)………………………………………

3、……………………………(5)</p><p>  5 具體實(shí)現(xiàn)及運(yùn)行結(jié)果……………………………………………………(6)</p><p>  5.1 創(chuàng)建工程并建立件………………………………………………………(6)</p><p>  5.2 個(gè)人帳薄管理系統(tǒng)的實(shí)現(xiàn)………………………………………………(6)</p><p>  6 結(jié)束語………

4、………………………………………………………………(12)</p><p>  7 參考文獻(xiàn)……………………………………………………………………(13)</p><p>  8 附件:程序代碼…………………………………………………………(11)</p><p>  用C++語言設(shè)計(jì)個(gè)人帳薄管理系統(tǒng)</p><p>  摘 要 本課程設(shè)計(jì)主要涉

5、及個(gè)人帳薄管理系統(tǒng),記錄某人每月的全部收入及各項(xiàng)開支情況,包括食品消費(fèi),房租,子女教育費(fèi)用,水電費(fèi),醫(yī)療費(fèi),儲(chǔ)蓄等。在課程設(shè)計(jì)中,系統(tǒng)開發(fā)平臺(tái)為Windows Vista,程序設(shè)計(jì)語言采用Visual studio 2008,數(shù)據(jù)庫采用MS SQL 2008,程序運(yùn)行平臺(tái)為Windows Vista/7。對(duì)于進(jìn)入系統(tǒng)后可以輸入和修改某月的收支情況,可以對(duì)每月的開支從小到大進(jìn)行排序,可以根據(jù)輸入的月份查詢每月的收支情況。在程序設(shè)計(jì)中,添加

6、了使用說明和幫助事項(xiàng),并且采用了面向?qū)ο筮@種解決問題的方法。程序通過調(diào)試運(yùn)行,初步是想了設(shè)計(jì)目標(biāo),并且經(jīng)過適當(dāng)完善后,將可以應(yīng)用在個(gè)人理財(cái)解決實(shí)際問題。</p><p>  關(guān)鍵詞 程序設(shè)計(jì);C++;跟人帳薄管理系統(tǒng);開支情況</p><p><b>  1 引 言</b></p><p>  本課程設(shè)計(jì)主要解決在個(gè)人帳簿管理系統(tǒng)記錄某人每月

7、的全部收入及各項(xiàng)開支情況,包括食品消費(fèi),房租,子女教育費(fèi)用,水電費(fèi),醫(yī)療費(fèi),儲(chǔ)蓄等。進(jìn)入系統(tǒng)后可以輸入和修改某月的收支情況,可以對(duì)每月的開支從小到大進(jìn)行排序,可以根據(jù)輸入的月份查詢每月的收支情況。</p><p>  當(dāng)今社會(huì),計(jì)算機(jī)科學(xué)已經(jīng)無處不在,人們的生活、學(xué)習(xí)、工作甚至娛樂都不可避免地與計(jì)算機(jī)科學(xué)息息相關(guān)[1]。并且隨著經(jīng)濟(jì)的發(fā)展,理財(cái)成為我們生活中不可缺少的內(nèi)容,理財(cái)?shù)闹匾燥@而易見。個(gè)人帳薄管理系統(tǒng),

8、能夠?yàn)槲覀兗彝ド顐€(gè)人理財(cái)提供諸多方便,使理財(cái)更系統(tǒng),更精確。</p><p>  作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)提供個(gè)人帳薄管理系統(tǒng),既繼承了傳統(tǒng)理財(cái)形式,也克服了人工理財(cái)?shù)脑S多缺點(diǎn),譬如:計(jì)算復(fù)雜,會(huì)時(shí)有錯(cuò)誤,而用計(jì)算機(jī)處理的話這種錯(cuò)誤可以輕易避免;輸入方便,節(jié)省了理財(cái)人的時(shí)間,提高效率和精確度。查詢方便、信息詳細(xì)清晰。便于理財(cái)。</p><p><b>  2 相關(guān)技術(shù)

9、</b></p><p><b>  2.1 C++介紹</b></p><p>  C++語言的主要特點(diǎn)表現(xiàn)在兩個(gè)方面,一是全面兼容C語言,二是支持面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。</p><p>  (1) C++是一個(gè)更好的C,它保持了C語言的優(yōu)點(diǎn),大多數(shù)的C程序代碼略作修改或不作修改就可在C++的集成環(huán)境下調(diào)試和運(yùn)行。這對(duì)于繼承和開

10、發(fā)當(dāng)前已在廣泛的軟件是非常重要的,可以節(jié)省大量的人力和物力。</p><p>  (2) C++是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言它使得程序的各個(gè)模塊的獨(dú)立性更強(qiáng),程序的可讀性和可移植性更強(qiáng),程序代碼的結(jié)構(gòu)更加合理,程序的擴(kuò)充性更強(qiáng)。這對(duì)于設(shè)計(jì)、編制和調(diào)試一些大型的軟件尤為重要。 </p><p>  (3) C++集成環(huán)境不僅支持C++程序的編譯和調(diào)試,而且也支持C程序的編譯和調(diào)試。通常,C+

11、+程序環(huán)境約定:當(dāng)源程序文件的擴(kuò)展名為c.時(shí),則為C程序;而當(dāng)源程序文件的擴(kuò)展名為.cpp時(shí),則為C++程序。</p><p>  (4) C++語句非常簡(jiǎn)練,對(duì)語法限制比較寬松,因此C++語法非常靈活。其優(yōu)點(diǎn)是給用戶編程帶來書寫上的方便。其缺點(diǎn)是由于編譯時(shí)對(duì)語法限制比較寬松,許多邏輯上的錯(cuò)誤不容易發(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ā)工具,代號(hào)“Orcas”,是對(duì)Visual Studio 2005一次及時(shí)、全面的升級(jí)。VS2008引入了250多個(gè)新特性,整合了對(duì)象、關(guān)系型數(shù)據(jù)、XML的訪問方式,語言更加簡(jiǎn)潔。使用Visual Studio 2008可以高效開發(fā)Windo

13、ws應(yīng)用。設(shè)計(jì)器中可以實(shí)時(shí)反映變更,XAML中智能感知功能可以提高開發(fā)效率。同時(shí)Visual Studio 2008支持項(xiàng)目模板、調(diào)試器和部署程序。Visual Studio 2008可以高效開發(fā)Web應(yīng)用,集成了ASP.NET AJAX 1.0,包含ASP.NET AJAX項(xiàng)目模板,它還可以高效開發(fā)Office應(yīng)用和Mobile應(yīng)用。由于Windows Vista于Visual C++ 6.0不兼容,所以我選擇在VS2008運(yùn)行該程序

14、。</p><p>  2. 3 需求分析</p><p>  個(gè)人帳薄管理系統(tǒng)具有良好的性能和實(shí)用的功能,其性能的良好表現(xiàn)為:輸入性強(qiáng)、檢索迅速、查詢方便、可靠性高等,其實(shí)用的功能表現(xiàn)為:由于個(gè)人理財(cái)所要記載的項(xiàng)目比較瑣碎,查詢不方便,容易搞錯(cuò)順序,應(yīng)用該管理系統(tǒng)可以輸入任意每月開支情況,不但不會(huì)輕易犯錯(cuò),而且可以容易修改每月的記錄,包括食品消費(fèi),房租,子女教育費(fèi)用,水電費(fèi),醫(yī)療費(fèi),儲(chǔ)

15、蓄等。節(jié)省時(shí)間和空間,這些優(yōu)點(diǎn)能夠促進(jìn)優(yōu)化家庭及財(cái)政管理,促進(jìn)財(cái)政管理的科技化和現(xiàn)代化。</p><p>  個(gè)人帳薄管理系統(tǒng)可以為用戶提供任意月份的查詢,月份消費(fèi)信息包括食品消費(fèi),房租,子女教育費(fèi)用,水電費(fèi),醫(yī)療費(fèi),儲(chǔ)蓄,具體信息如表2-1所示。</p><p>  表2-1 個(gè)人開支項(xiàng)目信息表</p><p><b>  3 系統(tǒng)流程圖</b&g

16、t;</p><p><b>  4 算法設(shè)計(jì)</b></p><p><b>  4 算法設(shè)計(jì)</b></p><p>  (1)錄入、查詢、修改、刪除數(shù)據(jù)。建立一個(gè)文件,包括某人5個(gè)月的開支情況,對(duì)文件中的信息擴(kuò)充,包括修改,刪除等。所以先確定文件保存路徑,接受鍵盤輸入,像文件內(nèi)寫入內(nèi)容,將dat格式文件轉(zhuǎn)換為tx

17、t文件,查詢用聲明,自定義數(shù)據(jù)類型,然后返回查詢結(jié)果及查詢狀態(tài),繼而對(duì)查詢結(jié)果排序。刪除數(shù)據(jù)時(shí),先調(diào)用打開轉(zhuǎn)換的文本文件。修改數(shù)據(jù)時(shí),要重寫數(shù)據(jù),刪除源文件,重命名中間文件,顯示新的數(shù)據(jù)。</p><p><b>  (2)起泡排序</b></p><p>  起泡排序是每趟把當(dāng)先序列中最小的元素放在開始位置,是交換排序中最簡(jiǎn)單的排序方法,其基本思想是:兩兩比較相鄰記

18、錄的關(guān)鍵碼,如果反序則交換,值到?jīng)]有反序的記錄為止,將整個(gè)待排序的記錄序列分成為有序區(qū)和無序區(qū),初始狀態(tài)有序區(qū)為空,無序區(qū)包括所有待排序的記錄。對(duì)無序去從前向后依次將相鄰記錄的關(guān)鍵碼進(jìn)行比較,若反序則交換,從而使得關(guān)鍵碼曉得記錄向前移,關(guān)鍵碼大的記錄向后移(像水中的氣泡,體積大的先浮上來)。重復(fù)執(zhí)行,之前無序區(qū)中沒有反序的記錄。確定每趟范圍。</p><p>  (3)其基本思想是:先確定文件保存路徑,建立一個(gè)文

19、件,錄入個(gè)人5個(gè)月的開支情況,對(duì)文件中的信息擴(kuò)充,包括修改,刪除等。接受鍵盤輸入,向文件內(nèi)寫入內(nèi)容,將dat格式文件轉(zhuǎn)換為txt文件,然后輸入2進(jìn)行查看,查看所錄入的數(shù)據(jù),如果數(shù)據(jù)有誤,可以輸入3修改數(shù)據(jù),輸入4查詢所有月份的開支情況,系統(tǒng)自動(dòng)啟用氣泡排序?qū)?shù)據(jù)精心兩兩比較,按從小到大的順序排列。</p><p>  5 具體實(shí)現(xiàn)及運(yùn)行結(jié)果</p><p>  5.1 創(chuàng)建工程并建立文件&

20、lt;/p><p> ?。?)啟動(dòng)Visual Studio 2008。(2)新建工程名為“zj” 的Win32控制臺(tái)應(yīng)用程序。</p><p>  (3)建立頭文件“Myinfor.h”,在其中定義圖類myinfor。</p><p> ?。?)建立源文件“myinfor。.cpp”,在其中定義圖類myinfor。的構(gòu)造函數(shù)myinfor。、開支情況輸出輸出函數(shù)Put

21、OutVexInfo。</p><p> ?。?)建立源文件“myinfor Main.cpp”,在其中輸入開支情況及項(xiàng)目信息,通過主函數(shù)調(diào)用其它各函數(shù),實(shí)現(xiàn)個(gè)人帳薄管理系統(tǒng)的設(shè)計(jì)。</p><p>  5.2 個(gè)人帳薄管理系統(tǒng)的實(shí)現(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月份開支情況費(fèi)用排序<

24、/p><p>  圖5-12 7月份開支情況費(fèi)用排序</p><p>  圖5-13 開支情況記錄刪除</p><p>  圖5-14 個(gè)人張博管理系統(tǒng)退出</p><p><b>  6 結(jié)束語</b></p><p>  該進(jìn)程管理工具程序經(jīng)過兩周多時(shí)間的努力,終于編譯調(diào)試成功,達(dá)到了設(shè)計(jì)

25、要求,完成了設(shè)計(jì)目標(biāo)。</p><p>  本課程設(shè)計(jì)主要運(yùn)用數(shù)據(jù)結(jié)構(gòu)知識(shí)和C++程序設(shè)計(jì)完成了一個(gè)個(gè)人帳薄管理系統(tǒng)的開發(fā)。該系統(tǒng)具的主要功能為:記錄某人每月的全部收入及各項(xiàng)開支情況,包括食品消費(fèi),房租,子女教育費(fèi)用,水電費(fèi),醫(yī)療費(fèi),儲(chǔ)蓄等。進(jìn)入系統(tǒng)后可以輸入和修改某月的收支情況,可以對(duì)每月的開支從小到大進(jìn)行排序,可以根據(jù)輸入的月份查詢每月的收支情況。</p><p>  其主要特點(diǎn)為:檢

26、索迅速、查找方便、可靠性高、實(shí)用性強(qiáng)。系統(tǒng)已經(jīng)過調(diào)試運(yùn)行,初步實(shí)現(xiàn)了設(shè)計(jì)目標(biāo)。</p><p>  在這次數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計(jì)中,曾遇到過一些問題,在老師和同學(xué)的幫助下,得到了解決。在此,我衷心感謝指導(dǎo)老師***老師和學(xué)校給予的良好環(huán)境的幫助可以讓我們順利完成這次課程設(shè)計(jì)。同時(shí),也要感謝我的數(shù)據(jù)結(jié)構(gòu)任課老師——***老師,她以詳細(xì)清晰的講解帶著我們完成了數(shù)據(jù)結(jié)構(gòu)(C++版)的學(xué)習(xí)。另外,還要感謝各位同學(xué)對(duì)我的關(guān)懷、

27、幫助,為我提供了良好的設(shè)計(jì)環(huán)境以及各方面的支持。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 李春葆,曾慧,張植民. 數(shù)據(jù)結(jié)構(gòu)程序設(shè)計(jì)題典. 北京:清華大學(xué)出版社,2002</p><p>  [2] 李根強(qiáng),謝月娥. 數(shù)據(jù)結(jié)構(gòu)(C++版)實(shí)習(xí)指導(dǎo). 北京:中國水利水電出版社,2002</p>&l

28、t;p>  [3] 朱建芳. 數(shù)據(jù)結(jié)構(gòu)習(xí)題、實(shí)驗(yàn). 北京:機(jī)械工業(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:個(gè)人帳薄管理系統(tǒng)設(shè)計(jì)源程序清單</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;//食品消費(fèi)</p><p>  int fzfy;//房租費(fèi)用</p><p>  int znjy;//子女教育費(fèi)用</p><p>  int sdfy;//水電費(fèi)用&l

33、t;/p><p>  int ylfy;//醫(yī)療費(fèi)用</p><p>  int cxfy;//儲(chǔ)蓄費(fèi)用</p><p>  int srfy;//收入費(fèi)用</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);//對(duì)查詢據(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…………個(gè)人帳簿管理系統(tǒng)設(shè)計(jì)趙婧制作…………\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("請(qǐng)輸入要進(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記錄月份食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲(chǔ)蓄費(fèi)用本月收入\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記錄月份食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲(chǔ)蓄費(fèi)用本月收入\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記錄月份食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲(chǔ)蓄費(fèi)用本月收入\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請(qǐng)依次輸入數(shù)據(jù)[說明:中間以空格符隔開]:\n(本月月份食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲(chǔ)蓄費(fèi)用收入費(fèi)用)\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) //暫時(shí)只能操作一行文件有待改進(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……………………………………個(gè)人帳簿管理系統(tǒng)……………………………

67、………\n\n",fp2);</p><p>  fputs("記錄月份食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲(chǔ)蓄費(fèi)用本月收入\n",fp2);</p><p>  fputs("----------------------------------------------------------------------- \n",fp2)

68、;</p><p>  printf("\n記錄月份食品消費(fèi)房租費(fèi)用子女費(fèi)用水電費(fèi)用醫(yī)療費(fèi)用儲(chǔ)蓄費(fèi)用本月收入\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("請(qǐng)正確輸入要查詢的月份:");</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]={"記錄月份","食品消費(fèi)","房租費(fèi)用","子女費(fèi)用","水電費(fèi)用&

82、quot;,"醫(yī)療費(fèi)用","儲(chǔ)蓄費(fèi)用","本月收入"};</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等.壓縮文件請(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. 眾賞文庫僅提供信息存儲(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)論