1、C语言个人财务小管家课程设计个人小管家应用系统给家庭提供了一个管理个人财务得平台,主要用于对家庭成员收入、支出进行添加、查询、删除、修改以及打印得操作,使得家庭财务收支状况一目了然。主要功能包括:(1)主菜单.主要包括收入管理、支出管理与退出;(2)添加收入记录;(3)查询收入记录;(4)删除收入记录;(5)修改收入记录;(6)打印收入记录;(7)添加支出记录;(8)查询支出记录;(9)删除支出记录;(10)修改支出记录;(11)打印支出记录;(12)退出系统。inludestdio、h#inludeinlconio、#cluemath、h#defineSIZE10typdef trtlg n
2、; /*每一组输入得编号/ long umr; /*家庭成员编号/ char N20; 家庭成员姓名*/ fo n; /家庭成员收入 char itie0; /收入时间 float out; /*家庭成员支出/char ouim10; /*支出时间*/ loatsum; 总计/moey;/-vid dayinsho() ILEf; neTm; chr Da4,ext; rinf(请输入您要查询得文件名n); get(Da); pfopn(a,”rb”); 只读方式打开二进制文件*/ if (fp=LL) prinf(”n打开文件%失败!按任意键结束!n,D); it(0); print(文件全
3、部内容如下:n); wile(frea(,sizef(money),f)!=(int)LL) /*读取文件内容,并判断就是否成功/ rnt(#n”); rnf(n成员编号:dn”,Tm、Nume); prtf(成员姓名:%sn,Tm、Nme); prtf(成员收入:f元n,m、in); rintf(收入时间:s,m、intme);printf(#n”); pinf(nn); fclose(fp);nextgce(); /-void dayinzh() FIE fp; money Tm; c Da40,ext; prnf(请输入您要查询得文件名n”); gets(D); fp=fopen(D,r
4、b); /只读方式打开二进制文件 if(f=NULL) printf(n打开文件s失败!按任意键结束!n”,Da); eit(); pitf(文件全部内容如下:”); while(frea(m,szeo(money),1,fp)!=(it)NULL) /*读取文件内容,并判断就是否成功/ rinf(”#); print(”n成员编号:%n”,T、Number); prnt(成员姓名:sn”,T、Nme);ritf(成员支出:%f元”,Tm、out); prtf(支出时间:,Tm、outme);prnt(#n); printf(nn”); close(p);nt=gth(); /-d cauhi
5、() /按编号查询家庭成员财务支信息记录*/ int resul;* result=1说明查询成功,反之查找失败 */ one m; /*定义进行操作时得临时结构体变量 long bianha,bee0; ca a40,xt; Da存储家庭成员财务信息得文件名,next为就是否进行下一次操作得选项*/ FIL *=NLL; /提示用户输入要查询得文件名/ itf( 请输入存储数据得文件名,按回车键结束。”); gets(Da); /*提示用户输入要查询得家庭成员编号/begi: rslt=;syem(cls); pinf(”请输入要查询得家庭成员编号,按回车键结束.n); canf(%ld,b
6、ia); getcha(); ffpn(D,”rb); /只读方式打开文件/ if (fp=NL) rn(n打开文件 s 失败!按任意键结束!n,Da); exit(0); 循环查找与输入编号相匹配得家庭成员财务收支信息记录,如果查找到,则输出结果*/ whie(o(fp)=0) /没有读到文件得结尾*/ i(frad(Tm,f(money),1,fp)!(int)NULL) /*判断就是否从文件中成功读取数据/ (T、Nr=banho) /*文件内容编号与输入编号一致/ if(befor!=m、Nmber) syste(ls”);pritf(”n查找成功!nn您要查找得家庭成员得信息如下:”
7、); print(”#n); pint(n成员编号:%ldn,m、umbe); prin(成员姓名:sn,Tm、a); prtf(成员支出:f元n”,T、out); rin(支出时间:%sn,T、outtime);prin(#n); esul=1;* ult1”说明找到了该家庭成员得对应信息、*/ efor=T、umber; fcoe(p); i (relt0) stem(”ls”); pint(对不起!n文件中没有该家庭成员所对应得信息.n”); pritf(n继续?(就是:/Y,否:n/); next=etce(); ptcha();sem(cs); f(next=next=Y) goto
8、gn;/-vihaxushou() /*按编号查询家庭成员财务收支信息记录/ in rsu;/ rsult说明查询成功,反之查找失败*/ mone m; /*定义进行操作时得临时结构体变量/ logbiao,fe=0; cha Da4,next; Da存储家庭成员财务信息得文件名,nex为就是否进行下一次操作得选项/ FLE fpULL; /*提示用户输入要查询得文件名/ prit(”n 请输入存储数据得文件名,按回车键结束。n”); gs(); *提示用户输入要查询得家庭成员编号*/bgn: resu=0;system(”cl”); prinf(请输入要查询得家庭成员编号,按回车键结束.n)
9、; canf(%l”,&binhao); etchar(); p=foen(Da,rb”); /只读方式打开文件/ if (fp=L) prin(n打开文件 s 失败!按任意键结束!n,Da); xit(); /*循环查找与输入编号相匹配得家庭成员财务收支信息记录,如果查找到,则输出结果*/ hile(ef(fp)=) /没有读到文件得结尾*/ if(fra(Tm,szeof(mny),1,fp)!=(int)NLL) 判断就是否从文件中成功读取数据/ f (、Number=bho) *文件内容编号与输入编号一致/ f(befor!T、Nbr) sst(c);pinf(n查找成功!n您要查找得
10、家庭成员得信息如下:n”); printf(#n”); rintf(成员编号:%ld,m、Number); pntf(”成员姓名:%sn”,T、Nam); rintf(”成员收入:元,Tm、in); prinf(收入时间:%sn,Tm、inti);printf(#n); reslt=;/result=”说明找到了该家庭成员得对应信息、/ before=m、Numbr; fclose(p); f (reslt=) system(ls”); prinf(”对不起!n文件中没有该家庭成员所对应得信息。); rintf(”n继续?(就是: y/Y,否:n/N)n”); nx=gche(); putch
11、a(n);sstem(cls”); if(next=yext=Y) goo egi;/-vid xiuaizhi() *修改家庭成员收支信息记录/ in i,rsl0; lg modnum;/存储要修改得家庭成员序号/ 输入各项修改后信息/ ogn,umber; char Nae; float i;ch nime10; floatout; hr outtie0; floa sum; money T; /*定义进行操作时得临时结构体变量/ mone sSIZE; *SIE,在shad、h头文件中定义得常量,值为10 */ intecNumbr; char Da40,ext; /Da存储家庭成员收
12、支信息信息得文件名,ext为就是否进行下一次操作得选项* FLE *fp; *f指针指向存储数据得文件名/ /*输入要进行修改记录得文件名 ritf(n请输入存储数据得文件名,按回车键结束!n); gets(Da);begin: fp=pe(a,”rb);只读方式打开文件 if(=NULL) prnf(”打开文件 s 失败!按任意键结束!n”,Da); exit(); print(”请输入您要修改得家庭成员得成员编号:); anf(”%l,onum); intf(您要修改得成员编号就是:%ldnn,mdum);hie(fread(&Tm,izof(mne),1,fp)!=(i)NULL) /*
13、读取文件内容,判断就是否读取成功/f(m、Numbe=modum) /输入得编号与文件内容得编号一致*/ pritf(”#n”); intf(n该项内容编号:ld,Tm、n); pritf( 成员编号:ln,T、Number); rintf(n 成员姓名:s,Tm、Na); prinf(” 成员支出:f元n,Tm、out); prntf(”n 支出时间:n,Tm、ouim); prntf(#n); result=1; rewind(fp);/*把文件指针指向文件得开头*/if(sult0)printf(您输入得编号不存在,请确认后重新输入:”); prtf(n就是否继续?(就是:y/Y,否:n
14、N)); ext=getce();sst(”cs”); putchr(); if (nx=y|net=Y) oto bn; els x(0); result=0;print(”请输入您要修改得该项内容编号:n); scn(ld”,no); 输入要修改记录得各项内容值*Number=modnum;pntf(输入姓名,支出,支出时间,输入编号为0时结束!); printf(”成员姓名:”); scnf(%s,Nme); pitf(”成员支出:);scanf(”%f”,&ot); pintf(支出时间:); canf(”%s,ottme); sm=n-out; /将文件中要修改得信息存入结构体数组/
15、 reNumer; /循环将文件数据读入结构体数组, 如文件中得数据家庭成员内容编号与要修改得家庭成员内容编号不符,则原样写入数组, 如文件中数据得家庭成员内容编号与要修改家庭成员内容编号匹配, 则根据输入得各项修改内容重新赋值,即修改,并写入数组/ whie((fread(&Tm,sizeof(money),1,fp))!=(int)NULL) *读取文件内容.就是否成功* if(T、no!=o) *输入得内容编号与文件内容编号不一致/ recmber、n=、no; srecNumber、Number=Tm、Nube; strcy(srecNumber、Name, Tm、Nme); srNu
16、mb、in=Tm、i;strcpy(srecNumbr、itime, Tm、inim); seNumbe、ou=m、out;strcpy(seumber、ottime, Tm、outtime); recNumber、sum=Tm、sum; if(T、n=no) /输入得内容编号与文件内容编号一致/ srecNumb、no=; sreNmber、Nube=Number; tcp(srumber、Name,Nam); srNumber、inin;trcpy(recumber、intime,intim); srecNumbr、utout;stcpy(scNuber、utime,ottie); sre
17、cNmber、su=sum; reult=; rumber+; fclose(fp); /将修改后得结构体数组记录写入文件*/ p=fopen(,b+); /打开文件,原文件内容清空*/ if (f=UL) prif(n打开文件%s失败!按任意键结束!”,D); xit(0); f(i=0;ircNumber;i+) /采用循环将数据写入文件/ f(fwrite(&s,sizeof(mny),1,p)!=1) pinf(n写入文件s失败!按任意键结束!,Da); exit(0); flose(fp);f(rsult=1) pritf(文件修改成功,已成功保存在用户文件夹);/*询问就是否查瞧修
18、改后得文件/ printf(n就是否查瞧修改后得文件?(就是:y/Y,否:N)”); nt=geche();sem(cl); puchar(n);i (next=y|net=Y) /*显示修改后得文件/ p=foen(Da,b”); /只读方式打开文件 if (fp=NULL) intf(”n打开文件s失败!按任意键结束!n,D); it(0); system(”cls);prntf(”n修改后得文件全部内容就是:); while(frad(T,siof(mon),1,fp)!=(int)NULL) printf(”#nn”); intf(” 成员编号:%,、Nmber); printf(”
19、成员姓名:%sn,Tm、ame); print( 成员支出:%元n,T、out); pintf(支出时间:s”,T、ottme); printf(”#n);prnt(”n”); fclose(fp);if(rul=0) pif(您输入得内容编号不存在.文件修改失败。n);/*提示就是否进行下一次修改 rit(”n就是否继续?(就是:y/Y,否:n/N)); next=getche();ytem(”cls); putcr(n); (ext=y|next=Y) o egi; /-vi xugsh() /修改家庭成员收信息记录* it i,reslt=0; longmodnum;/存储要修改得家庭成
20、员序号*/ /输入各项修改后信息* no,umber; c me20; fat in; cr ntime1; float ;char outtime0; flo s; oney Tm; /定义进行操作时得临时结构体变量* moeysIZE; /*SIE,在shead、头文件中定义得常量,值为0 / ntrecumer; chara40,nxt; /Da存储家庭成员收支信息信息得文件名,t为就是否进行下一次操作得选项 FILE *p; /fp指针指向存储数据得文件名/ /*输入要进行修改记录得文件名/ prtf(n请输入存储数据得文件名,按回车键结束!n); ges(Da);egin: fpfopen(Da,r);只读方式打开文件/ f(p=ULL) pnf(n打开文件 失败!按任意键结束!”,Da); exit(0); printf(请输入您要修改得家
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1