個(gè)人財(cái)務(wù)管最新理軟件用戶手冊_第1頁
個(gè)人財(cái)務(wù)管最新理軟件用戶手冊_第2頁
個(gè)人財(cái)務(wù)管最新理軟件用戶手冊_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余29頁可下載查看

下載本文檔

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

文檔簡介

1、個(gè)人財(cái)務(wù)管理軟件報(bào)告目錄一、需求分析 一、需求分析1. 首先個(gè)人的財(cái)務(wù)信息里包括收支日期,收入金額、支出金額還有收入和支 出的目的,還有賬戶余額。 因?yàn)槭前ǘ鄠€(gè)信息所以考慮到用結(jié)構(gòu)體數(shù)組來儲(chǔ)存 這些信息,然后再把這些信息一起儲(chǔ)存到文件中。2. 該軟件需要有六個(gè)功能,首先是登錄功能,必須輸入正確的用戶名和密碼 才能使用軟件。 第二是收支記錄的管理, 該部分包括添加功能, 刪除功能和修改 功能。第三是查詢某天或某月的收支情況。第四是統(tǒng)計(jì)一段時(shí)間的信息。3. 后面的收支功能,查詢功能和統(tǒng)計(jì)功能都是從文件中讀取,讀取后存到結(jié) 構(gòu)體數(shù)組中,然后再進(jìn)行操作,操作完后關(guān)閉文件,以免信息丟失。4. 當(dāng)用戶名

2、和密碼輸入錯(cuò)誤,會(huì)提示你輸入錯(cuò)誤,請重新輸入。5. 如果是操作過程中輸入錯(cuò)誤,會(huì)回到最菜單重新操作。6. 運(yùn)行時(shí)用戶可以根據(jù)提示進(jìn)行操作, 每進(jìn)行一步操作, 就會(huì)有相應(yīng)的提示。二概要分析1. 程序中存儲(chǔ)個(gè)人每天的財(cái)務(wù)信息用的是結(jié)構(gòu)體數(shù)組,其中結(jié)構(gòu)體中包括: 日期(年月日),收入金額,支出金額,收入目的。struct peopleint year;/年份int month;/月份int day;/日期float get;/收入金額float out;/支出金額char motive100;/支出目的char source100;/收入來源float leave;/余額2. 本程序各函數(shù)的結(jié)構(gòu) m

3、ain 函數(shù) 將三天的賬戶信息存儲(chǔ)到文件中;提示用戶輸入用戶名和密碼,輸入正確;進(jìn)入 f7 ();/ 菜單選擇函數(shù)switch () 1. 修改信息;/f2() 函數(shù)2. 添加信息;/f3() 函數(shù)3. 刪除信息;/f4() 函數(shù)4. 查詢信息;/f5() 函數(shù)5. 統(tǒng)計(jì)信息;/f6() 函數(shù)3. 各模塊的調(diào)用關(guān)系第一層: main 函數(shù)第二層: f7 ();第三層: f2() , f3(), f4(), f5(), f6();調(diào)用時(shí)這些函數(shù)都可以通過 f7 ()函數(shù)來互相調(diào)用。比如運(yùn)行完 f2 ()函數(shù)后,可以 調(diào)用 f7 (),然后再調(diào)用 f3()函數(shù)。4. 主函數(shù):添加信息到文件中和執(zhí)行

4、登錄功能。 其他調(diào)用函數(shù)分別執(zhí)行其他五大功能。三詳細(xì)設(shè)計(jì)1、基本數(shù)據(jù)類型操作a) 存儲(chǔ)每天賬戶信息的數(shù)組結(jié)構(gòu)體 struct people int year; int month; int day; float get; float out; char motive100; char source100; float leave;b )控制結(jié)構(gòu)體數(shù)目的 extern N 剛開始運(yùn)行該程序時(shí), N 的初始值為 3,后來如果進(jìn)行添加操作,則N的值就會(huì)加 1,反之如果進(jìn)行刪除操作,則 N 的值就會(huì)減 1。輸入正y進(jìn)入修改函數(shù) f2()3、基本操作的算法描述a) 登錄功能:用戶只有在輸入正確的用戶名和

5、密碼后才能進(jìn)入系統(tǒng)進(jìn)行 操作。for(;)printf("= printf(" 用戶名 :");scanf("%d",&a); /a請輸入用戶名和密碼:表示用戶名n");printf("n");printf(" 密碼 :"); /b表示密碼scanf("%d",&b);printf("n");if(a=10201306&&b=1) / 輸入和條件一致的情況下進(jìn)入 if 語句中printf("= 恭喜輸入正確,登錄成

6、功 !=n");printf(" 該軟件中已存有 2010 年 1 月 1 號(hào)到 3 號(hào)的信息 !n"); else / 輸入和條件不一致就進(jìn)入 else 語句 printf(" 輸入錯(cuò)誤,請重新輸入 !n");b) 主菜單功能:用戶可以自行選擇要進(jìn)行的操作printf("=1:printf("=2:printf("=3:printf("=4:printf("=5: printf(" 請選擇 :");修改信息 =n"); 刪除信息 =n"); 添加信息 =

7、n"); 查詢信息 =n"); 統(tǒng)計(jì)信息 =n"); / 在屏幕上輸出,指示用戶操作scanf("%d",&flag);while( flag != 0)switch(flag)default: printf("/輸入用戶的選項(xiàng)并存在 flag 中此選項(xiàng)不存在,請重新輸入 :n");break;case 1:f2(x,y,z); / break;case 2: f3(x,y,z); break;case 3:f4();break;case 4:f5(x,y,z);break;case 5: f6(x,y,z,x1,y

8、1,z1);進(jìn)入修改函數(shù)/ 進(jìn)入刪除函數(shù)/ 進(jìn)入添加函數(shù)/ 進(jìn)入查詢函數(shù)/ 進(jìn)入統(tǒng)計(jì)函數(shù)break;c) 修改功能:用戶如果覺得存儲(chǔ)的信息有問題,可以在此進(jìn)行修改fp=fopen("f:pan.txt","w+");for(i=0;i<N;i+) fread(&peoi,sizeof(struct people),1,fp); if(x=peoi.year&&y=peoi.month&&z=peoi.day)n=i; / 查看是否有該天的信息存在 break;if(i=N) printf(" 沒有該

9、天信息 !n"); printf(" 請重新選擇 !n"); f7();fread(&peoi,sizeof(struct people),1,fp);/ 先從文件中讀出 printf(" 請輸入新的收入來源 n"); scanf("%s",peon.source); printf(" 請輸入新的收入金額 n" ) ; scanf("%f",&peon.get); printf(" 請輸入新的支出目的 n"); scanf("%s"

10、;,peon.motive);printf(" 請輸入新的支出金額 n"); scanf("%f",&peon.out); peon.leave=peon.get-peon.out;/ 輸入新的信息 for(i=0;i<N;i+) if(fwrite(&peoi,sizeof(struct people),1,fp)!=1) printf(" 無法打開 !n"); exit(0); fclose(fp);/ 把新的信息存儲(chǔ)到文件當(dāng)中,并關(guān)閉文件d) 刪除功能:用戶可以在此刪除不需要的信息 fp=fopen(&qu

11、ot;f:pan.txt","w+");/ 打開文件 for(i=0;i<N;i+) fread(&peoi,sizeof(struct people),1,fp); if(x=peoi.year&&y=peoi.month&&z=peoi.day) n=i; / 查看是否有該天的信息存在 break;if(i=N)printf(" 沒有該天信息 !n"); printf(" 請重新選擇 !n"); for(i=n;i<N;i+ )fscanf(fp,"%s&qu

12、ot;,&peoi);/ 將文件中的信息存到數(shù)組結(jié)構(gòu)體里 strcpy(peoi.source,peoi+1.source);peoi.year=peoi+1.year; peoi.month=peoi+1.month; peoi.day=peoi+1.day; peoi.get=peoi+1.get ; peoi.out=peoi+1.out; strcpy(peoi.motive,peoi+1.motive);peoi.leave=peoi+1.leave; / 用后面的信息覆蓋前面的信息N=N-1;/ 刪除后信息減少一組,所以 N要減 1 for(i=0;i<N;i+) i

13、f(fwrite(&peoi,sizeof(struct people),1,fp)!=1)printf(" 無法打開 !n");exit(0);fclose(fp);/ 將現(xiàn)有信息重新存回到文件中e) 添加功能:用戶可以在此添加新的賬戶信息 fp=fopen("f:pan.txt","rb");/ 先打開文件 fread(&peoi,sizeof(struct people),1,fp);/ 將文件信息存到結(jié)構(gòu)體數(shù)組里 n=N; / 添加到結(jié)構(gòu)體數(shù)組的末尾 printf(" 請輸入新的信息日期: n&quo

14、t;);scanf("%d %d %d",&peon.year,&peon.month,&peon.day);printf(" 請輸入新的信息收入金額和收入來源:n");scanf("%f %s",&peon.get,peon.source);printf(" 請輸入新的信息支出金額和支出目的:n");scanf("%f %s",&peon.out,peon.motive); peon.leave=peon.get-peon.out ; / 輸入新的信息到

15、結(jié)構(gòu)體中N=N+1; / 添加了新的數(shù)據(jù)所以 N 的值加 1 fp=fopen("f:pan.txt","wb");for(i=0;i<N;i+)fwite(&peoi,sizeof(struct people),1,fp);fclose(fp);/ 將新的一組結(jié)構(gòu)體信息寫到文件里f) 查詢功能:用戶可以在此查詢以前存有的賬戶信息 fopen("f:pan.txt","r");for(i=0;i<N;i+)fread(&peoi,sizeof(struct people),1,fp);

16、if(x=peoi.year&&y=peoi.month&&z=peoi.day)n=i; / 查看是否有該天的信息存在 break;if(i=N)printf(" 沒有該天信息 !n");printf(" 請重新選擇 !n");f7();fread(&peon,sizeof(struct people),1,fp);/將數(shù)據(jù)存到結(jié)構(gòu)體數(shù)組中printf(" 收入來源 收入金額 支出目的支出金額 余額 n");printf("%5s ",peon.source);printf

17、("%3f ",peon.get);printf("%5s ",peon.motive); printf("%5f ",peon.out); printf("%3f ",peon.leave);/ 輸出您要查詢的該天信息 fclose(fp); / 關(guān)閉文件防止信息丟失g) 統(tǒng)計(jì)功能:用戶可以在此統(tǒng)計(jì)一段時(shí)間內(nèi)的收入金額和支出金額 for(i=0;i<N;i+) fread(&peoi,sizeof(struct people),1,fp); if(x=peoi.year&&y=peo

18、i.month&&z=peoi.day)n=i; / 查看是否有該天的信息存在 break;if(i=N)printf(" 沒有該天信息 !n"); printf(" 請重新選擇 !n"); for(i=0;i<N;i+) fread(&peoi,sizeof(struct people),1,fp); if(x1=peoi.year&&y1=peoi.month&&z1=peoi.day)m=i; / 查看是否有該天的信息存在 break;if(i=N)printf(" 沒有該天信

19、息 !n"); printf(" 請重新選擇 !n"); 如果存在該段時(shí)間信息,那么統(tǒng)計(jì)收入金額: if(n<m) for(i=n,sum=0;i<=m;i+) sum+=peoi.get; printf("%f",sum); fclose(fp); break;else for(i=m,sum=0;i<=n;i+) sum+=peoi.get; printf("%f",sum); fclose(fp); break;如果統(tǒng)計(jì)支出金額,只需將 peoi.get 改為 peoi.out 就行。3 、各函數(shù)的調(diào)

20、用關(guān)系圖main函數(shù)f7()函數(shù)f2()函數(shù)f3()函數(shù)f4()函數(shù)f5()函數(shù)f6()函數(shù)f7()函數(shù)四調(diào)試分析1. 開始時(shí)沒有將 N 定義為全局變量, 導(dǎo)致在添加函數(shù)中 N+1 后,其他函數(shù)中 的 N 卻沒有改變,導(dǎo)致最后查詢的信息不完整。2. 開始時(shí)沒有將主菜單單獨(dú)存到一個(gè)函數(shù)里面,這樣就無法一次運(yùn)行多個(gè)功 能,最后將主菜單單獨(dú)存到一個(gè)函數(shù)里以后, 就可以在運(yùn)行完一個(gè)功能之后, 重 新選擇,這樣就可以在一次調(diào)試中,運(yùn)行所有的功能模塊,減少了很多麻煩。3. 第一次調(diào)試運(yùn)行時(shí),文件中沒有存儲(chǔ)任何的信息,所以每次進(jìn)入都必須先 要輸入一定量的數(shù)據(jù), 然后才能進(jìn)行下面的操作, 后來加以改善, 先在

21、文件中存 儲(chǔ)幾天的賬戶信息,這樣在運(yùn)行時(shí)就可以直接進(jìn)行查詢,修改,刪除等操作了。4. 第一次檢查時(shí),由于對(duì)文件的操作不是很熟練,發(fā)現(xiàn)了添加的數(shù)據(jù)并沒有 存儲(chǔ)到文件之中,最后經(jīng)過修正,加入了一個(gè) fwrite 將信息寫到了文件里。 五用戶手冊1 、本程序的運(yùn)行環(huán)境為 DOS 操作系統(tǒng),執(zhí)行文件為 f1.dsw ;2、進(jìn)入演示程序后,即顯示對(duì)話形式的提示操作過程, 如:請輸入用戶名和密碼,輸入正確后便進(jìn)入菜單選擇請輸入你的選項(xiàng),輸入選項(xiàng)后,如果選項(xiàng)不存在,會(huì)提示你選項(xiàng)不存在,請重新選擇。輸入正確選項(xiàng)后,便會(huì)提示你輸入日期。如果進(jìn)入的是修改函數(shù),就會(huì)繼續(xù)提示你輸入新的信息; 如果進(jìn)入的時(shí)添加函數(shù),

22、會(huì)讓你輸入新的賬戶信息; 如果進(jìn)入的是刪除函數(shù),再刪除完后會(huì)提示你刪除成功;如果進(jìn)入的時(shí)查詢函數(shù), 會(huì)輸出你要查詢的當(dāng)天賬戶信息; 如果進(jìn)入的統(tǒng)計(jì)函數(shù), 會(huì)提示你選擇將要統(tǒng)計(jì) 的信息。3、如果用戶不小心進(jìn)錯(cuò)了功能,可以輸入 0 來返回主菜單,重新選擇。 4、進(jìn)行完上面的操作之后,會(huì)提示用戶是否繼續(xù)運(yùn)行該程序來進(jìn)行其他的功能 操作按n 或 N'鍵 stop 或其它鍵繼續(xù)六測試數(shù)據(jù)= 請輸入用戶名和密碼: =用戶名: 10201306密碼:1恭喜輸入正確,登錄成功!1: 修改信息 2: 刪除信息 3: 添加信息 4: 查詢信息 5: 統(tǒng)計(jì)信息a) 請選擇: 1 請輸入您要修改得日期: 20

23、10 1 10. 返回主菜單1. 修改該天信息 請選擇 1 舊的信息為: 2010 1 1 1000.000000 收入 1 100.000000 支出 1 請輸入新的信息:收入金額 1100 收入來源 aaa 支出金額 200 支 出目的 bbb 。修改成功!新的信息為 2010 1 1 1100.000000 aaa 200.0000000 bbbb) 請選擇: 2 請輸入您要?jiǎng)h除的日期: 2010 1 10. 返回主菜單1. 刪除該天信息 請選擇: 1 舊的信息為: 2010 1 1 1000.000000 收入 1 100.000000 支出 1 2010 1 2 2000.00000

24、0 收入 2 200.000000 支出 22010 1 3 3000.000000收入3 300.000000支出c)請選擇:刪除成功!新的信息為: 2010 1 2 2000.0000002010 1 3 3000.000000是否繼續(xù) y/npress any key to continue請選擇: 30. 返回主菜單1. 添加一天的賬戶信息收入收入2 200.0000003 300.000000支出支出舊的信息為 :2010 1 1 1000.000000收入1 100.000000支出2010 1 2 2000.000000收入2 200.000000支出2010 1 3 3000.

25、000000收入3 300.000000支出請輸入新的信息: 2010 1 4 4000收入 4 400 支出 4添加成功!新的信息為: 2010 1 1 1000.000000收入1 100.000000支出2010 1 2 2000.000000收入2 200.000000支出2010 1 3 3000.000000收入3 300.000000支出2010 1 4 4000.000000收入 4 400.000000支出是否繼續(xù) y/nn press any key to continued)請選擇: 4請輸入您要查詢得日期: 2010 1 10. 返回主菜單1. 查詢該天信息請選擇 12

26、010 1 1 1000.000000 收入 1 100.000000 支出 1是否繼續(xù) y/nn press any key to continuee) 請選擇 : 5請輸入你要統(tǒng)計(jì)的兩個(gè)日期: 2010 1 1 2010 1 30. 返回主菜單1. 統(tǒng)計(jì)該段時(shí)間的收入金額2. 統(tǒng)計(jì)該段時(shí)間的支出金額3. 統(tǒng)計(jì)該段時(shí)間的余額請選擇 1. 6000.0000002. 600.0000003. 5400.000000是否繼續(xù) y/nn press any key to continue七附錄1、源程序函數(shù)清單主函數(shù):f1()修改函數(shù): f2()刪除函數(shù): f3()添加函數(shù): f4()查詢函數(shù):

27、f5()統(tǒng)計(jì)函數(shù): f6()主菜單函數(shù): f7()2、源程序代碼f1.cpp:#include"stdio.h"#include"stdlib.h"#include"string.h"#include"f2.h"#include"f3.h"#include"f4.h"#include"f5.h"#include"f6.h"#include"f7.h"struct people peoSIZE;int N=3;void

28、 main()int i,a,b;char d110=" 收入 1",d210=" 收入 2",d310=" 收入 3",e110=" 支出 1",e210=" 支出 2",e310=" 支出 3"FILE *fp;/* 輸入三天的賬戶信息 */ peo0.year=2010;peo0.month=1;peo0.day=1; strcpy(peo0.source,d1);peo0.get=1000; strcpy(peo0.motive,e1);peo0.out=100;pe

29、o0.leave=peo0.get-peo0.out; peo1.year=2010;peo1.month=1;peo1.day=2; strcpy(peo1.source,d2);peo1.get=2000; strcpy(peo1.motive,e2);peo1.out=200;peo1.leave=peo1.get-peo1.out; peo2.year=2010;peo2.month=1;peo2.day=3; strcpy(peo2.source,d3);peo2.get=3000; strcpy(peo2.motive,e3);peo2.out=300;peo2.leave=peo

30、2.get-peo2.out;/* 把數(shù)據(jù)寫入文件 */fp=fopen("f:pan.txt","w");for(i=0;i<N;i+) if(fwrite(&peoi,sizeof(struct people),1,fp)!=1) printf(" 無法打開 !n");exit(0);fclose(fp);/* 菜單選擇功能 */printf("= 個(gè)人賬戶管理軟件 =n"); printf("= 設(shè)計(jì)人:潘君宇 =n"); printf("n");prin

31、tf("n");printf(" 請登錄: n");for(;) printf("= 請輸入用戶名和密碼: =n"); printf(" 用戶名 :");scanf("%d",&a); printf("n"); printf(" 密碼 :");scanf("%d",&b); printf("n"); if(a=10201306&&b=1) printf("= 恭喜輸入正確,登

32、錄成功 !=n");printf("= 該軟件中已存有 2010年1月1號(hào)到3號(hào)的信息 !=n");f7(); elseprintf(" 輸入錯(cuò)誤,請重新輸入 !n");f2.cpp:#include"stdio.h"#include"stdlib.h"#include"string.h"#include"f2.h"#include"f3.h"#include"f4.h"#include"f5.h"#inc

33、lude"f6.h"#include"f7.h"extern struct people peoSIZE;extern N;void f2(int x,int y,int z)int b,i,n,flag=1;char c;FILE *fp;/* 檢查信息 */ if(fp=fopen("f:pan.txt","r")=NULL)printf(" 無法找到該文件 !n");exit(0);/* 檢查是否有該信息 */ for(i=0;i<N;i+)fread(&peoi,sizeo

34、f(struct people),1,fp);if(x=peoi.year&&y=peoi.month&&z=peoi.day) n=i;break;if(i=N)printf(" 沒有該天信息 !n"); printf(" 請重新選擇 !n"); f7();/* 進(jìn)入修改程序 */for(;) printf("= 請選擇: =n"); printf("=0. 返回主菜單 =n"); printf("=1. 修改該天信息 =n"); printf("=

35、n"); scanf("%d",&b);switch(b)default:printf(" 無此選項(xiàng),請重新輸入: n"); break;case 0: f7();case 1: / 修改收入來源 fp=fopen("f:pan.txt","w+"); fread(&peoi,sizeof(struct people),1,fp); printf(" 舊的信息為: n");printf(" 收入來源收入金額支出目的 支出金額額n");printf(&

36、quot;%5s ",peon.source); printf("%3f ",peon.get);printf("%5s ",peon.motive); printf("%5f ",peon.out);printf("%3f n",peon.leave); fscanf(fp,"%s",&peon);printf(" 請輸入新的收入來源 n"); scanf("%s",peon.source);printf("n");

37、/ 修改收入金額 printf(" 請輸入新的收入金額 n");scanf("%f",&peon.get); printf("n");/ 修改支出目的 printf(" 請輸入新的支出目的 n");scanf("%s",peon.motive); printf("n");/ 修改支出金額printf(" 請輸入新的支出金額 n"); scanf("%f",&peon.out);printf("n");

38、peon.leave=peon.get-peon.out;printf(" 新的的信息為: n");printf(" 收入來源 收入金額 支出目的 支出金額 額n");printf("%5s ",peon.source);printf("%3f ",peon.get);printf("%5s ",peon.motive);printf("%5f ",peon.out);printf("%3f n",peon.leave);for(i=0;i<N;i+

39、) if(fwrite(&peoi,sizeof(struct people),1,fp)!=1) printf(" 無法打開 !n");exit(0);fclose(fp);break;printf(" 是否繼續(xù)? y/nn");scanf("%s",&c);if(c='n'|c='N')exit(0);F3.cpp:#include"stdio.h"#include"stdlib.h"#include"string.h"#i

40、nclude"f2.h"#include"f3.h"#include"f4.h"#include"f5.h"#include"f6.h"#include"f7.h"extern struct people peoSIZE;void f3(int x,int y,int z)int b,i,n,flag=1;extern N;char c;FILE *fp;if(fp=fopen("f:pan.txt","r")=NULL)printf(

41、" 無法找到該文件 !n");exit(0);/* 檢查是否有該信息 */for(i=0;i<N;i+)if(x=peoi.year&&y=peoi.month&&z=peoi.day)n=i;break;if(i=N)printf(" 沒有該天信息 !n");printf(" 請重新選擇 !n");f7();/* 進(jìn)入刪除程序 */for(;)printf("= 請選擇: =n");printf("=0. 返回主菜單 =n"); printf("

42、=1. 刪除該天信息 =n");printf("=n"); scanf("%d",&b);switch(b)default:printf(" 無此選項(xiàng),請重新輸入: n");break;case 0:f7();case 1:fp=fopen("f:pan.txt","w+");printf(" 舊的信息為: n");for(i=0;i<N;i+)printf(" 日期 收入來源 收入金額 支出目的 支出金額余額 n");printf

43、("%d %d %d ",peoi.year,peoi.month,peoi.day);printf("%5s ",peoi.source);printf("%3f ",peoi.get);printf("%5s ",peoi.motive);printf("%5f ",peoi.out);printf("%3f n",peoi.leave);for(i=n;i<N;i+)fscanf(fp,"%s",&peoi); strcpy(peoi.

44、source,peoi+1.source); peoi.year=peoi+1.year; peoi.month=peoi+1.month; peoi.day=peoi+1.day;peoi.get=peoi+1.get; peoi.out=peoi+1.out; strcpy(peoi.motive,peoi+1.motive); peoi.leave=peoi+1.leave;printf(" 刪除成功 !n");N=N-1;for(i=0;i<N;i+)余額n"printf(" 日期 收入來源 收入金額 支出目的 支出金額 printf(&q

45、uot;%2d %2d %2d ",peoi.year,peoi.month,peoi.day); printf("%5s ",peoi.source);printf("%3f ",peoi.get);printf("%5s ",peoi.motive);printf("%5f ",peoi.out);printf("%3f n",peoi.leave);for(i=0;i<N;i+) if(fwrite(&peoi,sizeof(struct people),1,fp)

46、!=1) printf(" 無法打開 !n");exit(0);fclose(fp);break;printf(" 是否繼續(xù)? y/nn");scanf("%s",&c);if(c='n'|c='N')exit(0);f4.cpp:#include"stdio.h" #include"stdlib.h" #include"string.h"#include"f2.h"#include"f3.h"#

47、include"f4.h"#include"f5.h"#include"f6.h"#include"f7.h"extern struct people peoSIZE;extern N;void f4()int i,b,n;char c;FILE *fp;if(fp=fopen("f:pan.txt","a")=NULL)printf(" 無法找到該文件 !n"); exit(0);for(;) printf("=n"); printf

48、("=0. 返回主菜單 =n"); printf("=1. 添加信息 =n"); printf("=n"); scanf("%d",&b);switch(b) default:printf(" 無此選項(xiàng),請重新輸入: n"); break;case 0: f7();case 1:/* 進(jìn)入添加程序 */ fp=fopen("f:pan.txt","rb"); printf(" 舊的信息為: n"); for(i=0;i<N

49、;i+) fread(&peoi,sizeof(struct people),1,fp);printf(" 日期 收入來源 收入金額 支出目的 支出金額 余額 n"); printf("%2d %2d %2d ",peoi.year,peoi.month,peoi.day);printf("%5s",peoi.source);printf("%3f",peoi.get);printf("%5s",peoi.motive);printf("%5f",peoi.out);

50、printf("%3f n=N;n",peoi.leave);printf(" 請輸入新的信息日期: n");scanf("%d %d %d",&peon.year,&peon.month,&peon.day);printf("請輸入新的信息收入金額和收入來源:n");scanf("%f %s",&peon.get,peon.source);printf("請輸入新的信息支出金額和支出目的:n");scanf("%f %s"

51、,&peon.out,peon.motive);peon.leave=peon.get-peon.out;N=N+1;printf("= 現(xiàn)在的信息: =n");for(i=0;i<N;i+)printf(" 日期 收入來源 收入金額 支出目的 支出金額 余額 n"); printf("%2d %2d %2d ",peoi.year,peoi.month,peoi.day);printf("%5s ",peoi.source);printf("%3f ",peoi.get);pri

52、ntf("%5s ",peoi.motive);printf("%5f ",peoi.out);printf("%3f n",peoi.leave);fp=fopen("f:pan.txt","wb");for(i=0;i<N;i+) fwrite(&peoi,sizeof(struct people),1,fp);fclose(fp);break;printf(" 是否繼續(xù) ?y/nn");scanf("%s",&c);if(c=&

53、#39;n'|c='N')exit(0);f5.cpp:#include"stdlib.h"#include"string.h"#include"f2.h"#include"f3.h"#include"f4.h"#include"f5.h"#include"f6.h"#include"f7.h"extern struct people peoSIZE;extern N;void f5(int x,int y,in

54、t z)int b,i,n;char c;FILE *fp;if(fp=fopen("f:pan.txt","r")=NULL)printf(" 無法找到該文件 !n");exit(0);/* 檢查是否有該信息 */for(i=0;i<N;i+)if(x=peoi.year&&y=peoi.month&&z=peoi.day)n=i;break;if(i=N)printf(" 沒有該天信息 !n");printf(" 請重新選擇 !n");f7();/* 進(jìn)

55、入查詢程序 */for(;)printf("printf("=0.printf("=1.請選擇 =n"); 返回主菜單 =n"); 查詢該天信息 =n");printf("n");F-uw/As)七x (-N-uuo=-u-uuo=- iy03-=s%=ueos 、翅黑Kn<=)tu_d>B2E0d-anoEo d- >10luE0 d-=-(O6C一0&= onosEo&=M=u一蠢<蠢輜耳枳星皿耳枳蠢輜<晏sg%42%sg%活aiq -)tu_d -)tu_d -)

56、tu_d ku匸d Mu_d Mu_d-L Seo ocO SB。空eqM=s=c_dmn45 pXd4- L-o-doed 10nls=0NS-U 一 o d03)pea!4§11。七 MSs03-=p%=ueos(nnN"c=-=PQ.Uedutu doTE)七a*山i匚QElp-Ensroo匸-LH6Eq=-lu-u._-q -u 一(N1ula lurx1U_N1UA -urx lu_)94 po>-N U9X QTz-saed -doed lonbs U9X iz.c-opnQu 算 =lr9*-opn_ou 算 izQTDpnQu 算 =lr 寸4-opn

57、Qu 算 izcopnQu 算 izaopnQu 算 =LT6UES7DpnQu 算 =lrq=2s7DpnQu 算 izopls-opnQu 算d.do.9 丄宀Jd4oso_o4printf(" 無法找到該文件 !n");exit(0);/* 檢查是否有該信息 */for(i=0;i<N;i+) if(x=peoi.year&&y=peoi.month&&z=peoi.day) n=i;break;if(i=N)printf(" 沒有該段時(shí)間信息 !n");printf(" 請重新選擇 !n");f7();for(i=0;i<N;i+) if(x1=peoi.year&&y1=peoi.month&&z1=peoi.day) m=i;break;if(i=N)printf(" 沒有該段時(shí)間信息 !n");printf(" 請重新選擇 !n");f7();/* 進(jìn)入統(tǒng)計(jì)程序 */fp=fopen(&q

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論