家庭財務(wù)管理系統(tǒng)4_第1頁
家庭財務(wù)管理系統(tǒng)4_第2頁
家庭財務(wù)管理系統(tǒng)4_第3頁
家庭財務(wù)管理系統(tǒng)4_第4頁
家庭財務(wù)管理系統(tǒng)4_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精品目錄1 .課程設(shè)計目的及要求22 .相關(guān)知識23 .設(shè)計方案.23.1 題目內(nèi)容23.2 分析題目要求23.3 流程圖34 .程序代碼實現(xiàn).55 .測試數(shù)據(jù)及運行結(jié)果.136 .課程設(shè)計總結(jié)157 .參考文獻(xiàn)15感謝下載載1 課程設(shè)計目的及要求通過課程設(shè)計,進(jìn)一步鞏固和復(fù)習(xí)C語言程序設(shè)計的基礎(chǔ)知識,了解軟件的編制過程及各環(huán)節(jié)的具體內(nèi)容,掌握結(jié)構(gòu)化程序、模塊化程序設(shè)計方法,提高學(xué)生分析問題,解決問題以及書籍運用能力。2 相關(guān)知識本課程設(shè)“家庭財務(wù)管理系統(tǒng)”就是通過學(xué)習(xí)C程序設(shè)計采用VisualC+作為編譯環(huán)境。本系統(tǒng)的總體思想基于結(jié)構(gòu)化的程序設(shè)計。應(yīng)用高級語言程序設(shè)計中的基本控制結(jié)構(gòu),如循環(huán)

2、和選擇,著重實現(xiàn)管理系統(tǒng)的增、刪、改、查等典型的管理功能。3 .設(shè)計方案3.1 題目內(nèi)容家庭成員可以對其成員編號,姓名以及收入,支出構(gòu)成進(jìn)行增加,刪除,修改等管理操作。家庭成員分為管理員和普通用戶兩類,權(quán)限不同。管理員還要在本系統(tǒng)外事先創(chuàng)建家庭成員信息文件,在文件中保存用戶的序號,姓名,密碼,權(quán)限。用戶必須正確輸入姓名和密碼才能登錄使用本系統(tǒng)。3.2 分析題目要求管理員界面有12個選項可供管理員挑選:1.創(chuàng)建家庭成員財務(wù)信息文件(該文件內(nèi)容為序號,姓名,收入,支出,合計。)并初始化2.添加財務(wù)收支信息記錄;3.刪除財務(wù)收支信息記錄;4.按姓名查詢家庭成員財務(wù)收支信息記錄;5.按家庭成員序號查詢

3、家庭成員財務(wù)信息;6.修改家庭成員收支信息記錄;7.按財務(wù)合計項排序瀏覽;8.增加家庭成員信息;9.刪除家庭成員信息;10.按用戶序號修改家庭成員信息;11.按家庭成員序號排序瀏覽用戶信息12.退出本系統(tǒng)。管理員界面,創(chuàng)建家庭成員財務(wù)信息文件并初始化,修改家庭成員收支信息記錄。3.3 流程圖(1)家庭管理選擇界面iriiEuhuke-O;prints111.1家庭管理選擇界面(2)創(chuàng)建家庭成員財務(wù)信息文件:(3)修改家庭成員收支信息記錄:JLpiincfl"nOpenGle%niMultiplex1.3修改家庭成員收支信息記錄4.程序代碼實現(xiàn)*/(1)/*admin.c:家長管理功能

4、選擇界面,根據(jù)用戶選項調(diào)用相應(yīng)函數(shù)實現(xiàn)系統(tǒng)功能#include"shead.h"/*家庭成員財務(wù)信息頭文件*/#include"creat.c"/*創(chuàng)建家庭成員財務(wù)信息文件*/#include"add.c"/*增加家庭成員財務(wù)信息記錄*/#include"delete.c"/*刪除家庭成員財務(wù)信息記錄*/#include"modnum.c"/*按家庭成員序號修改家庭成員財務(wù)信息*/#include"qname.c"/*按家庭成員姓名查詢家庭成員財務(wù)信息*/#include&q

5、uot;qseatnum.c"/*按家庭成員序號查詢家庭成員財務(wù)信息*/#include"ssum.c"/*按財務(wù)合計項排序瀏覽家庭成員財務(wù)信息*/voidAdmin()intchoice=0;/*存放用戶選項的變量*/*=功能及操作的界面提示=*/while(1)printf("n");printf("|n");printf("|WelcometoFamilyFinancialManagementSystem|n");printf("|n");printf("|n"

6、;);printf("|1.CreatFinancialFile|n");printf("|2.AddRecord()|n");printf("|3.DelRecord()|n");printf("|4.QueryByName()|n");printf("|5.QueryBySeatNum()|n");printf("|6.ModifyByNumber()|n");printf("|7.SortBySum()|n");printf("+n&quo

7、t;);printf("|SystemUserManagement|n");printf("|11.CreatNewUserFile()|n");printf("|12.AddUser()|n");printf("|13.DelUser()|n");printf("|14.ModifyUser()|n");printf("|15.SortByUserNum()|n");printf("+n");printf("|0.EndProgram|n&qu

8、ot;);printf("n");printf("#PleaseInputYourChoose#n");printf("#number17toManagetheFamily'sFinance#n");printf("#number11,12,13,14,15toManagetheSystemUser#n");printf("#number0toExittheSystem#n");printf("n");scanf("%d",&choice)

9、;getchar();/*根據(jù)用戶選項調(diào)用相應(yīng)函數(shù)*/switch(choice)case1:CreatFile();/*創(chuàng)建初始財務(wù)信息文件*/break;case2:AddRecord();/*增加財務(wù)信息記錄*/break;case 3:DelRecord();/*修改財務(wù)信息記錄*/break;case 4:QueryByName();/*按家庭成員姓名查詢財務(wù)信息*/break;case5:QueryBySeatNum();/*按家庭成員序號查詢財務(wù)信息*/break;case 6:ModifyByNumber();/*按家庭成員序號修改財務(wù)信息*/break;case 7:Sort

10、BySum();/*按財務(wù)合計項排序瀏覽財務(wù)信息*/break;case 11:CreatUser();/*創(chuàng)建初始家庭成員信息文件*/break;case 12:AddUser();/*增加家庭成員*/break;case 13:DelUser();/*刪除家庭成員*/break;case 14:ModifyByUserNumber();/*按家庭成員序號修改家庭成員*/break;case 15:SortByUserNum();/*按家庭成員序號排序瀏覽*/break;case0:exit(0);/*退出系統(tǒng)*/default:break;2)/*creat.c:用于創(chuàng)建家庭成員財務(wù)信息文

11、件并初始化*/#include"stdio.h"/*函數(shù)CreatFile*/voidCreatFile()FILE *fp = NULL;/* 定義指向文件的指針*/money TmpS;/* 定義進(jìn)行操作時存放結(jié)構(gòu)體變量的 */char DataFile40 = ""/*存儲員財務(wù)收支信息的文件名 */int count = 1;/* 計算可輸入數(shù)據(jù)的最大范圍 */*輸入存放財務(wù)收支信息的文件名*/printf("npleaseinputnewfilenametostoredata,endwithenter.");printf(&

12、quot;nNotice:Nameoffilecan'texceed8characters.suffixcan'texceed3characters,partofexceedwillbediscarded.n");gets(DataFile);/*如家長沒有輸入,則循環(huán)提示家長輸入*/while(*DataFile=('0')printf("npleaseinputnewfilenametostoredata,endwithenter.");can'tprintf("nNotice:Nameoffilecan

13、9;texceed8characters,suffixexceed3characters.partofexceedwillbediscarded.n");gets(DataFile);/*用二進(jìn)制寫的方式打開文件,即創(chuàng)建文件*/fp=fopen(DataFile,"wb+");/*如果當(dāng)前文件不存在,提示打開文件失敗*/if(fp=NULL)printf("nOpenfile%sfail!Endwithanykey.n",DataFile);perror("Openfilefail");getch();exit(1);/*如

14、果成功打開或創(chuàng)建文件,則提示輸入家庭成員序號、姓名、財務(wù)收支構(gòu)成等相關(guān)信息*/printf("inputnumber,nameandtheincomeandoutcome.numberis0meansinputisend.n");printf("Numberisnotexceed9figures,Nameisnotexceed20characters,rangeofgrade:0.001000.00n");/*循環(huán)從鍵盤上讀取家長輸入的序號、姓名、收入、支出等相關(guān)信息*/while(count<=SIZE)/*輸入序號,如為0則停止輸入*/prin

15、tf("ninput'number=0'meansendinput.n");printf("number=");scanf("%ld",&TmpS.Number);if(TmpS.Number=0)break;/*提示輸入姓名*/printf("name=");scanf("%s",TmpS.Name);/*提示輸入收入*/printf("in=");scanf("%f",&TmpS.in);/*提示輸入支出*/printf

16、("out=");scanf("%f",&TmpS.out);/*用公式自動計算家庭成員財務(wù)合計*/TmpS.sum=TmpS.in-TmpS.out;printf("n");/*如遇無法寫入文件的異常,則加以提示*/if(fwrite(&TmpS,sizeof(money),1,fp)!=1)printf("nwritefile%sfail!Endwithanykeyn",DataFile);perror("Writefilefail");getch();exit(1);cou

17、nt+;/*如果輸入的數(shù)據(jù)量超過最大允許的范圍,則提示數(shù)據(jù)不能錄入*/if(count>SIZE)printf("nsorry,numberofdatacannotexceed%dn",SIZE);fclose(fp);/*在屏幕上顯示初始化后的文件內(nèi)容*/*clrscr();*/printf("Thedatayouinputisstoresuccessful%sinfile.n",DataFile);printf("Contentasfollow:n");/*打開財務(wù)信息文件,如無法打開,則提示*/fp=fopen(DataF

18、ile,"rb");if(fp=NULL)printf("nOpenfile%sfail!Endwithanykeyn",DataFile);perror("Openfilefail");getch();exit(1);printf("nNumbertNametintouttsumn");while(fread(&TmpS,sizeof(money),1,fp)!=(int)NULL)printf("n%ldt%st%4.2ft%4.2ft%4.2fn",TmpS.Number,TmpS

19、.Name,TmpS.in,TmpS.out,TmpS.sum);fclose(fp);(3)/*modnum.c:修改家庭成員收支信息記錄*/#include"stdio.h"voidModifyByNumber()inti,j,k;longmodnum;/*存儲家長輸入的要修改的家庭成員序號*/*輸入各項修改后信息*/longNumber;charName20;floatin;floatout;floatsum;moneyTmpS;/*定義進(jìn)行操作時的臨時結(jié)構(gòu)體變量*/moneysSIZE;/*SIZE,在shead.h頭文件中定義的常量,值為100*/intrecNu

20、mber;charDataFile40="",next;/*DataFile存儲家庭成員收支信息信息的文件名,next為是否進(jìn)行下一次刪除操作的選項*/FILE*fp;/*=fp指針指向存儲數(shù)據(jù)的文件名=*/*提示家長輸入要進(jìn)行修改記錄的文件名*/printf("npleaseinputthenameoffilewheredataisstored,endwithenterkey.n");gets(DataFile);/*提示家長輸入要進(jìn)行修改記錄的文件名*/while(*DataFile=('0')printf("nplease

21、inputthenameoffilewheredataisstored,endwithenterkey.n");gets(DataFile);begin:/*以讀的方式打開文件,如文件不存在,提示錯誤*/fp=fopen(DataFile,"rb");if(fp=NULL)printf("nOpenfile%sfail!Endwithanykeyn",DataFile);perror("Openfilefail");getch();exit(1);printf("pleaseinputtheEmployee'

22、;seatnumwhichyouwillmodify:");scanf("%ld",&modnum);printf("themoneyyouwilldeleteis:%ldn",modnum);/*輸入要修改記錄的各項內(nèi)容值*/Number=modnum;printf("name=");scanf("%s",Name);printf("in=");scanf("%f",&in);printf("out=");scanf("

23、;%f",&out);/*用公式自動計算家庭成員財務(wù)合計*/sum=in-out;/*將文件中要修改的信息存入結(jié)構(gòu)體數(shù)組*/recNumber=0;/*循環(huán)將文件數(shù)據(jù)讀入結(jié)構(gòu)體數(shù)組,如文件中的數(shù)據(jù)家庭成員號和要修改的家庭成員號不符,則原樣寫入數(shù)組,如文件中數(shù)據(jù)的家庭成員號和要修改家庭成員號匹配,則根據(jù)家長輸入的各項修改內(nèi)容重新賦值,即修改,并寫入數(shù)組*/while(fread(&TmpS,sizeof(money),1,fp)!=(int)NULL)if(TmpS.Number!=modnum)srecNumber.Number=TmpS.Number;strcpy(

24、srecNumber.Name,TmpS.Name);srecNumber.in=TmpS.in;srecNumber.out=TmpS.out;srecNumber.sum=TmpS.sum;recNumber+;elsesrecNumber.Number=Number;strcpy(srecNumber.Name,Name);srecNumber.in=in;srecNumber.out=out;srecNumber.sum=sum;recNumber+;fclose(fp);/*將修改后的結(jié)構(gòu)體數(shù)組記錄寫入文件*/fp=fopen(DataFile,"wb+");if

25、(fp=NULL)printf("nSetupfile%sfail!endwithanykey.n",DataFile);perror("Setupfail");getch();exit(1);for(i=0;i<recNumber;i+)if(fwrite(&si,sizeof(money),1,fp)!=1)printf("nWritefile%sfail!endwithanykey.n",DataFile);perror("Writefilefail!");getch();exit(1);fcl

26、ose(fp);/*顯示修改后的文件*/fp=fopen(DataFile,"rb");if(fp=NULL)printf("nOpenfile%sfail!Endwithanykeyn",DataFile);perror("Openfilefail");getch();exit(1);printf("thefileaftermodifyis:n");printf("nNumbertNametintouttsumn");while(fread(&TmpS,sizeof(money),1,

27、fp)!=(int)NULL)if(TmpS.Number!=0)printf("n%ldt%st%4.1ft%4.1ft%4.1fn",TmpS.Number,TmpS.Name,TmpS.in,TmpS.out,TmpS.sum);fclose(fp);/*提示是否進(jìn)行下一次修改*/printf("nGoon?(y/n)");next=getche();putchar('n');if(next='y'|next='Y')gotobegin;5.測試數(shù)據(jù)及運行結(jié)果5.1管理員界面心"LLta匚i

28、lfetLsardSmttir平+國同:Eto廣息面,厚度財姿管理系用品:0口erg-屆lNi>ticn;Hfl>mnFfileennptnMnccdlR<Ghnractftra.fluffixc,ftn*texc占nd3hnrnfitHrahArtofoxceEdwillbeducardsd.ji|1u&nLiiwb甘肥.id,用di<iidtheliicuiie口岫1£“1山|小"心】片uh電劃nsiikipuilLJL片eiid»huibifrluiiu441sxi5拶/d?flyurtiivHdfitr_L=nutvxuvu

29、d29vXirvu,paiy«uf密wU:國常MUMW.網(wǎng)0input . ninnter fendinvut.“ang-iInpuC J ninphcr F*hennendinput.manaending>ut.data w input ent a零 fcillou=in Etow cucceccful calcli*na in f 11».Nane111aultSUHgnq40W.(M31BOB.BBm曬.他40B.O0L30B.0030O.3ierany keyto cantIniLie. 1 . . :., . . :. . 1:.:;:.5.2創(chuàng)建家庭成員財務(wù)信息文件并初始化八"UICtantF白心andGttingsAdrnEistrator博中冢庭財品管if賽犬11MMihunlXbug*1.GreatFinancialFile一iint2.AddFeuoMO)i13.hlRscardO11%QaeryBjHunO1in£»flueryBySoatHumC>1iin*L»HodiFyByMunhBrO1IB,7.釉pt月癖IIE(>1*卜士十in*SV3tenUserFUnaenent11«*11XretlteiflJse

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論