C语言个人财务小管家课程设计_第1页
C语言个人财务小管家课程设计_第2页
C语言个人财务小管家课程设计_第3页
C语言个人财务小管家课程设计_第4页
C语言个人财务小管家课程设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、char i n time 1 0;/*收入时间* /个人小管家应用系统给家庭提供了一个管理个人财务得平台,主要用于对家庭成员收 入、支出进行添加、査询、删除、修改以及打印得操作,使得家處财务收支状况一目了然。主要功能包括:(1)主菜单主要包括收入管理、支出管理与退出;(2)添加收入记录;(3)查询收入记录:(4)删除收入记录;(5)修改收入记录;(6)打印收入记录;(7)添加支出记录;(8)查询支出记录:(9)删除支出记录;(10)修改支出记录:(11)打印支出记录;(12)退出系统。#in C lude#in c lude s t d 1 i# i nelude W in c I u d

2、e Vconio、h# i n clu d emath、h #define SIZE 100 typ e def s tr u c t广每一组输入得编号* /long Numher:厂家庭成员编号*/char Name 20;/ *家處成员姓坍7float out;厂家庭成员支出*/0 char OU t t im e lO;厂支出时间*/f toat sum;/ *总 11*/mo n ey;VO id dayinsho u )file P :m 0 ne y Tm:ch a r Da 4 0 , n ext;P rin t f( “请输入您要査询得文件名n );get s (Da):f p

3、=fop e n( D a. rb”);/*只读方式打开二进制文件床/if (fp=NULL)prin tf( 打开文件5失败!按任意键结束! rVRa);e X it0);print f (“文件全部内容如下:nn-):w h lie (frea d ( & T m.size o f(money) 1 , f p )!= (int) N U LL)/*读取文件内容.并判断就是否成功*/ p r i nt f (# # # # # # # # #片# #片# #n”);p r i n t fr、n 成员编号: 1 dn Jm. Num b e r )pr i ntf(” 成员姓名:srV7rm

4、、N a me):pr i ntfr成员收入:%f TCW,Tm、in): p rintf( 收入时间:sn JTm、int i me);printf(# # # # # # # # # # fclose (fp): next=g e t c h e ():/void dayinzh i () file *fp:money Tm;char Da40r next:print f(”请输入您要査询得文件名0gets(D a );fp=fopenD a , Vb);/*只读方式打开二进制文件*/if (f p =NULL)printf ( 打开文件5失败!按任意键结朿! nS Da);p rintf

5、 (“文件全部内容如下:nn );whileffrea d (& T m, s i zeo f (money) ,1* fp)! = (int) NULL) /* 读取文件内容, 并判断就是否成功*/ p rin t f ( ” # # # # # # # # # # # # # # #n3;print f (” n 成员编号j % 1 d n Tm、Number);pr i nt f ( 成员姓名J %sn; Tm. N a me);X p ri n tf L成员支出:f 元11 ” /Tm、out);pr i n tf ( 支出时间: s n , Tm、out t i me):pr i n

6、t f (# # # # # nJ;printf(n n”): f closef f p);n e X t=g e t c h e ();/V 0 idchaxun z hi () /*按编号査询家庭成员财务支信息记录7intresult: / Uasulzr说明査询成功,反之査找失败*/money Tm:厂定义进行操作时得临时结构体变量* /long bianha o be f o r e=0:char Da 40 , n e xt;/ * Da存储家處成员财务信息得文件名,gxt为就是否进行下一次操作得选项/FILE * f p =NULL;/*提示用户输入要查询得文件名*/p rintf

7、n请输入存储数据得文件名,按回车键结束n”gets (Da);厂提示用户输入要査询得家庭成员编号*/begi n :r e S U lt= 0 : sy s t em ( cis”):printf (”请输入要査询得家庭成员编号,按回车键结束rV)s canf (吆Id ” & & a n h a o ):getcha r ():fp=fopen (Da/* rb)/*只读方式打开文件*/if (fp=NULL )print f (An打开文件s失败!按任意键结束!n-Da);exit(O):/ *循环査找与输入编号相匹配得家庭成员财务收支信息记录,如果査找到,则输出结 果*/whi I e(

8、 f e o f (fp)=O)/*没有读到文件得结尾7厂判断广文件内容编if (fr e ad (&TrTh s i zeof( money), 1 fp)! = (int) NULL) 就是否从文件中成功读取数据*/ 1 f (Tm、N u m b e r=b i anh a o) 号与输入编号一致* / if ( befor e !=T m. N u mber)syswmr cls);printf(、査找成功!nn您要査找得家處成员得信息如下: n”print f ( ” # # # # # # # # # #p r int f (n 成员编号 j %ldn:Trru N umbepri

9、n t f (成员姓名:srCTm、Nam e );pr i n tf (成员支出:f 元|1, Tm、out);p rin t f(支出时间:%sn , Tm、outtime):op rin t f (# # # # # # 耳):r esul t =1; / - r e s ultF”说明找到了该家處成员得对应信息/0 b efor e =Tm、N umber;。fc 1 o s e (fp);f (re s ult=0)p r int f (“对不起! n文件中没有该家庭成员所对应得信息An):printfLn 继续?(就是:y/Y,否:n/N) n);next= g etc h e (

10、):p u tcha r ( n * ); s y s t em (c 1 s);i f (next= y I I next= = Y) goto b e g i n:void c haxu n shou ()厂按编号査询家庭成员财务收支信息记录*/int resul t : /* result= 1 T兑明查询成功仮之査找失败*/mone y T m;厂定义进行操作时得临时结构体变量*/long bi a n h ao, b e f o r e=0:cha r Da 4 0 , next:/ *Da存储家庭成员财务信息得文件名,nex t为就是否进行下一次操作得选项*/F I LE *fp=

11、NULL;广提示用户输入要査询得文件名*/print f n请输入存储数据得文件名,按回车键结束。);/ *提示用户输入要査询得家處成员编号/begin:resu 1 t =O;system(* cl s ”):prin t f(请输入要査询得家庭成员编号按回车键结束、nOs canf( %l d &bi a nhao):g etchar C):f p=fo p en (Da, rb):/*只读方式打开文件*/if Cfp=NULL)print f Ln打开文件s失败!按任意键结束! n Da);e xit( 0 ):。厂循环査找与输入编号相匹配得家處成员财务收支信息记录,如果査找到,则输出结

12、果7while C f e0f (fp)= 0 )/*没有读到文件得结尾/ *判断就/*文件内容if (fr e a d (&Tm,s i zeof(m o n e y) 1. fp)!=int) NULL) 是否从文件中成功读取数据*/ if(Tm、Number=b i a n h a o) 编号与输入编号一致*/1 f (befor e !=Tm、Number)system (“cl s ) ;p r in t f(”n査找成功!nn您要査找得家處成员得信息如下:宀printf ( #删# tf# # #;p rintf(n 成员编号j %ldn” Tm、Number);pr i ntf(

13、” 成员姓需:sn”,Tm、Name):p rintf (” 成员收入J % f 元0”,Tm、in):prin t f (收入时间:sn:Tm、intim e );。printf ( # # # # # 片# # # # # # # # # # # # #n ” ); “suit;/*” result= 1 明找到了该家庭成员得对应信息、*/before= T m、Numb er:。fclose f p);i f (resu lt= 0 )system ( c Is*);prin t f (对不起!.文件中没有该家庭成员所对应得信息0 tr);P rintff n 继续?(就是:丫几否:n/

14、N)n);n e X t =g e t che();putcha r Cn* ): s y stem (cis):if (next=* y* I I n ext=Y*) go t o b egi n ;VO id xiu g aizhif)/ *修改家庭成员收支信息记录*/in t i,r e s u I t =0:Io ngmodnum: /*存储要修改得家庭成员序号*/ *输入各项修改后信息*/long n o r N umber;char Name 2 0:float i n;b ch a r i n t ime lO;float out;c h a r outtime 1 O;floa

15、 t sum;money Tm;广世义进行操作时得临时结构体变量*/mone y s SIZE:/ *SI Z E,在she ad、h头文件中世义得常it值为10 0*/int r ecNumb e r;char Da 40. n ext:/*Da存储家處成员收支信息信息得文件 next为就是否进行下一次操作得选项床F I LE *fp:/歼p指针指向存储数据得文件名*/厂输入要进行修改记录得文件名*/printf CAn请输入存储数据得文件名,按回车键结束! 亍);gets (Da);begin:fp= f 0 pe n ( Da,” rb);/ *只读方式打开文件* /if ( f P =

16、NULL)pr i n t f C 11打开文件s失败!按任意键结束!nX Da);exit 0 );print f L请输入您要修改得家庭成员得成员编号门;S C anf ( %ld &mod num);p r intf(您要修改得成员编号就是:%ldnn mod num);0 W hi 1 a (fread (&Trrb s iz e of (m o ne y ) 1 fp) !=i n t )NULL) 容,判断就是否读取成功*/厂读取文件内2 i f ( T m、Numbe r =mod n um) 编号与文件内容得编号一致7/*输入得xprintf (” # # # # # # n”

17、);“P r intf( n 该项内容编号:%Mn Tm. n o ):3 pri n tf (” n 成员编号 j %l d n /Tm、Number);p rintf n 成员姓名:sn JTm、Name):prin t f( n成员支出:7Cn out);pr i ntf* n 支出时间: S n Tm、ou t t im e ):xpr i ntf (# # # #n):result=l;rewind(fp);厂把文件指针指向文件得开头*/if( r e sult=O) printfr您输入得编号不存在,请确认后重新输入:n 5pr i n tf (Un就是否继续?(就是:y几否:n/

18、N) ):n ext=getc h e(): s y st e m (cisif (next =y* I |ne x t=Y * ) g oto b e g in;els e e x i t (0);result=O:。print f C请输入您要修改得该项内容编号:n “;scan f r %lcr .&no);/ *输入要修改记录得各项内容值*/Number=mod num:pr输入姓名,支出,支出时间,输入编号为0时结束! n“);printf ( ”成员姓名:”):SC a nf ( %s N a me);prin tf(成员支出门: scanf (” %f&O ut);P rintf

19、 (“支出时间:):s cf(” %s ,0 u tt i me):s u m= I nout;/*将文件中要修改得信息存入结构体数组*/re C Num b er= 0 :/*循环将文件数据读入结构体数组,如文件中得数据家庭成员内容编号与要修改得家庭成员内容编号不符,则原样写入数 组,如文件中数据得家庭成员内容编号与要修改家庭成员内容编号匹配,则根据输入得各项修改内容重新赋值,即修改,并写入数组*/*读取文件内容whi I e( (fread (&Tm,sizeof(money),l fp)! =int) NULL) 就是否成功*/if(Tm、no! = no)入得内容编号与文件内容编号不一

20、致*/s gcN u mbr、no = Tm、no;srQcNumbQr、Number=Tm Numbe r;strepysrecNumber-. Namer Tm. N a me);sr e c Numb e r 、in=Tm、i n ;strepy (srecNumb e r i n time. Tm in t im e );s E r e c Numbe r 、ou t = Tm、out:strcpys rec Number、outtime. Tm outtime);s recNumber sum=Tm、sum;if (Tm、no =no)入得内容编号与文件内容编号一致*/厂输/输sre

21、cNumb e r. no= no;s re c N u mber Numbe r =Number:s t r cpy (s r e c Number、Name,Nam e )-s Er e c Number. in = jn:s trepy ( s ErecN umberintimejntim e ):s recNumb e r、0 ut=out:st r cpy (s r e cNumber-. out timet o uttime);srecN u mbersum=sum:re s ult= I ;r e c N umber+;fclose (fp);/*将修改后得结构体数组记录写入文件

22、床/f p=fopen (Da /wb*);/*打开文件,原文件内容淸空7if (fp =NULL)pri n t fn打开文件6失败!按任意键结束! n S Da );exit(O);f 0 r (1=0: ir e cNumber;i+)/*采用循环将数据写入文件*/i f (fwrite (&s i ,sizeof (m o n e y), 1, f p)! =1)printfLn写入文件 s失败!按任意键结朿! n JDa);exit(O):f c lose (fp):Q i f (r e sult=l) oprintf(”文件修改成功,已成功保存在用户文件夹n门:-厂询问就是否査瞧修

23、改后得文件*/printf(n就是否査瞧修改后得文件?(就是:y/X否:n/N)”n e X t=ge t che ( ); s y s t em Ccl s ):pu t char (n);i f next=y| I next= Y)/t显示修改后得文件* /fp=fo p en(Dat rb);/*只读方式打开文件* /if fp=NULL)P rintf( n打开文件5失败!按任意键结束!寸,Da):e X it(O);systemf* cis); pr i ntf( n修改后得文件全部内容就是: n “);while (fr e ad (&Tm, si z e of (mon e y

24、), 1. fp)! = (int) NULL)printf (” #删# #nn”hP r intf (” 成员编号:% I d n , T m、N u mber):printf(” 成员姓名:%snr Trru Name):print f (成员支出J %f元n”,Tm. out);p r intf C支出时间 J %s n S Tm、o u tt i me);.printfC # # # t# # # # # n“);Qopr i nt f ( n):fclose(fp):if (r e s ul t =0)prin t f( n您输入得内容编号不存在文件修改失败一 nrV5厂提示就是否

25、进行下一次修改*/p rint f L n就是否继续?(就是:丫九否:n/N)next=getche ( ): s y s tem ( ” cis );i f ( n ext= * y | I next= Y) goto b egi n;void X i ug a i sh o u ()/*修改家庭成员收信息记录* /in t if res u lt=O:long modnum; /*存储要修改得家庭成员序号*/*输入齐项修改后信息/long n o,Number;char N a me 20;f I 0 at in:char i ntime 1 0 :float out;b char out

26、time 1 OJ;flo a t sum;money Tm:/*圧义进行操作时得临时结构体变量* /money sSlZE: 厂SIZE.在shead. h头文件中定义得常量,值为1 00*/i nt recN um b er;char Da E40,n e xt:/*Da存储家庭成员收支信息信息得文件名小e xt为就是否进行下一次操作得选项* /FILE *fp:/*fp指针指向存储数据得文件名*/严输入要进行修改记录得文件名*/pri ntf(n请输入存储数据得文件名,按回车键结束! 亍);ge t sDa);b egin:fp=fopenDa, lb“;/ 只读方式打开文件*/i f

27、( f p=NULL)pr 1 n t fAn打开文件s失败!按任意键结束! nX Da):exit (0):printf (请输入您要修改得家庭成员得成员编号SC a nf(%l d 笃&m o dn u m);printf (您要修改得成员编号就是:ldnn, m o d n u m);/*读取文件广输入得编w h i 1 e(frea d (&T m,s i zeo f (mo n ey) ,ljp) != (int)NULL) 内容,判断就是否读取成功*/0 if(Tm、Number=m o d n um ) 号与文件内容得编号一致*/P rintf(# # # #pr i nt f

28、(” n 该项内容编号:ldn , Tm、no);oprintf(” n 成员编号j % 1 dnVTm、Number);pr i ntf (An成员姓名:5nS Tm、Name);0 printf ( n 成员收入:f 元、“,T m. in);prin t f (” n 收入时间 j %sn, Tm、i n t ime):“printf C # # # # #rrd result=l:r e wind( fp; /*把文件指针指向文件得开头*/i f (re Sul t =0)P rintf C您输入得编号不存在,请确认后重新输入:r);printff n 就是否继续?(就是:y/Y,否:

29、n/N);next= g et c he () j s ys t em( cis ”) p u tcha r ( n):if next=* y I |ne x t =V) goto begin;b e 1 se e X it CO);result=O: printf (请输入您要修改得该项内容编号:n ): scan f C % Id, & no);厂输入要修改记录得各项内容值* /N U mb e r=modnum:prin tf(输入姓名,收入,收入时间,输入编号为0时结束! rVT;printf (”成员姓名):printf (”成员收入:”):S canf( % f J &in);pr

30、in t f C收入时间T):sc a nf %s , i ntime ):sum=i n out;/*将文件中要修改得信息存入结构体数组7recNumbe r = 0 ;/*循环将文件数据读入结构体数组,如文件中得数据家庭成员内容编号与要修改得家庭成员内容编号不符,则原样写入数组,如文件中数据得家庭成员内容编号与要修改家庭成员内容编号匹配,则根据输入得各项修改内容重新赋值,即修改,并写入数组*/*读取文件/*输入得w hile (fre a d (&T msi z eof (mon ey) 1/ p ) != (int) NULL) 内容。就是否成功*/i f (Tm、no! =n o )内

31、容编号与文件内容编号不一致*/sr e cNumber no=Tm、no:S r e c Number、Number二Tm、Number;s t r c py (srec Num b e r、Name,Tm-. Nam e );sr e cNumb e r)、in=Tm in;strep y(sr e cNumber、 i n t im e , T m. intime);sr e c Number, out二Tm、ou t :st r c p y(s recNumbe r 、o u t t i me. Tm、o uttime):s r ecN umber)、s um=Tm-. sum;1 f(

32、Tm. no=no)入得内容编号与文件内容编号一致床/s r ecNum b e r、n o =no:s r e c N u mb e r Num b e r =Numbe r ; strep y (s recNumbe r Namet Name):sfrecNumber in = in;s trcp y ( s re c Numb e r、in t im e jntime);srecNumbe r 、out= o ut:str c py ( $ E r ecNumbe r outt i met outt i m eS recN u rnber sum=sum:0 resul t =2 c N

33、 U mber+;f c I o s e (fp):/*将修改后得结构体数组记录写入文件*/fp=fopen(Da. w b + );/*打开文件,原文件内容淸空*/i f (fp=NU LL)printf ( n打开文件 S失败肢任意键结朿!nDa):exit ( 0 ):for(i=0: i sum= T m sum;re c Numbe r +:fclose(fp):/*将删除后得剩余结构体记录写入文件*/fp= f open(D a , w b + ”);/床读写方式打开文件,原文件内容淸空*/if (fp=NULL)P nntfn记录文件 s失败!按任意键结束!,D a ):exit

34、 (0);for (i=0: i re s u 1 t=0:I 0 ng deln u m:厂存放要输入得要删除家庭成员序号*/mo n ey Tm:/*定义进行操作时得临时结构体变量*/mone y s SIZ E in t recNum b e r;/*原文件中得记录数/char Da 40 ,next;FILE P :/*fp指针指向存储数据得文件名* /printfL n请输入存储数据得文件名,按回车键结束! rT );S etsD a ): begi n:/*以二进制读得方式打开文件*/fp= f op e n(Da/rb):if(fp=NULL)pr 1 n t f( n打开文件

35、%s失败!按任意键结束! n S Da):e X i t(0):严输入要删除得家庭成员序号*/P rintf L请输入要删除得家屉成员编号);scanf&d e Inum);printf(您要删除得编号就是:%ldnd e I n um);Q w h i 1 Q (fread (&Tm,siz e o f (money1/ p )! = ( i nt)NULL)/車从文件中读取数据,就是否读取成功*/if ( T m、N umbe r =delnum)printf(”该项收支记录如下:寸);X p rintf (” # #n);X p r i ntf (该项内容编号:ldn /Tm、no;x

36、printf(成员编号: I dn, Tm Numb er); pr i ntf (成员姓名 J %sn JTm、Na me):爪 p r i nt f (成员支出 J %f 7Cn , Tm、o ut);p nnt f (支出时间:sW7rm、o uttime):X pr i ntf (# # # # #n ”);0 3 result=l;r e W ind (f p ):/事把文件指针重新指向文件得开头*/0 i f (resu 1 t =0) 4 print f (您输入得编号不存在,请确认后重新输入卅);pr i nt f ( n就是否继续删除?(就是:y/Y;否:n/Nf):ne X

37、 t=get c he ();Q sys t em (c 1 s);putch a r (* iV):if ( next=* y I I n ext= * Y) got o begin;/ *询问就是否删除拿/printf(An您确定要删除该记录吗?删除后不可恢复!(就是:y/Y:否m/N)” ):n e X t=getc h e ();pu tchar ( n);i f ( nex t =y I I next=* YJprint rr恭喜!该项纪录已成功删除o An-O;广将文件中信息存入结构体数组*/*与要删除得家庭成员序号相匹配得项不写入数组,循环后数组中即为去掉了要删除记录后得剩余记录

38、*/r ecN u mb e r=0:while ( f read (&Tmsizeof (money) ,ljp) != ( i nt)NU L L)厂从文件中读 取数据就是否读取成功* /if (Tm、Number! = d elnum)s recN u mb e r no=Tm. n o :s E re c N umb er)、N um b er=Tm、Num b e r:strcpy (sfrecNumber Name Tm、Nam e );s E r e cN u mb e r、i n=Tm、i n;strcpy(s recNumber in t i met Tm、in time);

39、S recNumbe r)、out二Tm、ou t :s t rcpyfs recN u mb e r o u t tim已Trru outt i me):s r e c Numbe r sum二Tm、Sum:recNumber+;f c Io s e (fp);厂将删除后得剩余结构体记录写入文件*/*/f p=fope n ( D a, ” w b + ”);/*读写方式打开文件,原文件内容淸空i f (fp=NUL L)pr i ntf Ln记录文件s失败!按任意键结朿! n ”Qa ):ex i t (0):for ( i =0: i (r e cN u m b er: i+)厂用循环将数据写入文件*/if (fwrite (&si ,sizeof (money),ljp)!=l)p rintf (记录文件s失败!按任意键结束! n Da):exit (0);fclose ( f p );厂显示删除财务信息记录后得文件*/oprintf。就是否査瞧删除后剩下得内容、pr i n t f C 门就是否?僦是:y/ Y;否:n/N)On ext=getch e (): system(c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论