家庭财务小管家.docx
课程设计说明书学院、系:专.业:学生姓名:学号:设计总目:家庭财务小管家起迄日期:指导教师:1设计目的本课程设计是采纳C语言,在VC平台下设计年历显示系统,该系统运行在MS-DoS吩咐行模式下。本课程设计为学生供应了一个既动手又动脑,独汇实践的机会,将课本上的理论学问和实际有机的结合起来,熬炼学生的分析解决实际问题的实力。提高学生适应实际,实践编程的实力。D进一步巩固和复习C程序设计的基础学问;2)培育学生结构化程序、模块化程序设计的方法和实力;3)了解软件的编制过程与各环节的详细内容;0提高学生程序调试技巧、软件设计实力和代码规范化等素养;提高学生分析问题、解决问题以与实际运用实力。2任务概述个人小管家应用系统给家庭供应了-个管理个人财务的产台,主要用于对家庭成员收入、支出进行添加、查询、删除、修改以与打印的操作,使得家庭财务收支状况一目了然。主要功能包括:< >主菜单。主要包括收入管理、支出管理和退出;< 2>添加收入记录;< 3>查泡收入记录;< 4>删除收入记录;< 5>修改收入记录;< 6>打印收入记录;< 7>添加支出记录;< 8>查询支出记录;< 9)删除支出记录;< 0)修改支出记录;(I1.)打印支出记录;< 12)退出系统。3模块划分家庭财务小管家返回上圾蟋改支出显示支出告询支出删除支出添加支出4主要函数说明与其N-S图1、主函数main()Switch(choice)1.ncomc()zhichu()1.bngji()Qui()defau1.t:错误2、增力口函数Add)输入待加入的家庭成员收支状况从该文件读出数据并显示;退出H来确定所要加入的位置向文件输入前面家庭成员收支数据并显示向文件输出待输入的家庭成员收支数据并&.示向文件输出位置后面家庭成员收支数据并显示关闭文件3、删除函数De1.)打开文件显示读出的数据关闭文件N=I输入待删除的家庭成员信息F将第j+1个成员的数据移到第j个关闭文件4、修改函数XiUgaij)打开文件输入须要修改家庭成员的信息显不须要修改家庭成员磔重新号X各项褚息向文件输入新信息并显示关闭文件一5、查询函数ChaXUri_()打开文件一输入须嘤查询家庭成员的信息一显示须要杳询家庭成员信息关闭文件6、统计函数TOngj1.o打开文件统计全部家庭成员的收入并显示统计全部家庭成员的支出并显示统计全部家庭成员的(收入一支出)并显示关闭文件5程序运行糜与其结果火解使用季期财务小尊8tt*n之匕,作计住入你的信Ib2收入界面:图2月家口财善小本!得如收入2 a*收入3 三1.收入f1.MHkA5我收入O.«a±-«14eAH3添加操作:图3(以收入为例)修皿入B±-*除依人三*IA显承人强入逢算1H名裱三H整IM班备建工员否(YZX)长存“信息4杳询操作:图4(以收入为例)声使用IUa却,小*率=1÷fi*:,技日喇台育P赅三wyIt4技a注餐ao.*s±-入你的亳人森有的名字It三tt«><H«|:1G0309枚A1.WWOOM,185>修改操作:图5(以支出为例)PiaX叶“J2WMT9e-使用裁曜引詈小智穿0依名字修改授B1.B卷款返同上一一入你的隹界,1演人馋刑的6字救二:如*H09:I03101±:1000各在,WW*W*<.6删除操作:图6(以收入为例)0Mm3'aSF务广"犹逢使用寄。财务小寄”'射障收人三*<5t星承收入««±«J1.A雄眼请"人热曲林名李四nK-4e¾*B."iUNfi1.YX?7支出界面:图7Sxxas»8统计界面:图8Ba入'S曳出1B受攵,跑月上一S入I_6课程设计心得通过本此的课程设计,让我们更娴熟地驾驭了C语言程序设计教程的学问,熟识了一个管理系统的运用和操作,熟识如何采纳DeVC+作为编译环境,使程序胜利的编译和运行,能够运用C语言创建基本表和编辑信息,增加信息,删除信息,修改信息,杳找信息和显示信息。通过对结构体,编辑,增加,删除,修改,查找,显示模块的连接,生成能操作运行的管理系统。在这次课程设计的过程中,由于对学问驾驭不熟识,特殊是施表、指针和文件的运用不娴熟,是自己在编写代码的时候遇到了很大的困难,最终通过上网查找资料并请教学长解决了问题,但自身还是有许多不足的地方!通过这次课程设计,是自己相识到了基础学问的重要性,在平常的学习中要把基础的内容完全理解融会贯穿,并且应当多加练习,提高自己敲写代码的速度和精确性。通过这次课程设计,增加了我对编程的宠好和欲望。总之,这次课程设计使我受益匪浅!附录:源代码#inc1.udc<stdio.h>#inc1.ude<std1.ib.h>#inc1.ude<stnng.h>structDatacharname20;charriqi(8;f1.oatmoney;charbeizhu(50;;struct1.iststructDatainfo;struct1.ist*next;);struct1.ist*Inhead=NU1.1.;struct1.ist*Intai1.=NU1.1.;struct1.ist*zhichuhead=NU1.1.;struct1.ist*zhichutai1.=NU1.1.;struct1.ist*temp=NU1.1.;voidchaxun_income();voidchaxun_zhichu();voidxiugaijncome();voidxiugai-zhichu();voidSaveJncomeO/保存支出文件FI1.E*fp;文件指针fp=fopen("D:家庭财务管理.txt","w");struct1.ist*p三Inhead;whi1.e(p1=NU1.1.)fwrite(p->info,sizeof(structData),1,fp);p=p->next;fc1.ose(fp);voidSave_zhichu()保存支出文件FI1.E*fp;fp=fopen(D家庭财务管理支出.txt"Jw");打开文件struct1.ist*p=zhichuhead;whi1.e(p!=NU1.1.)fwrite(&p->info,sizeof(structData),1,fp);p=p->ncxt;fc1.ose(fp);voidOpen()FI1.E*fp;fp=fopen(D家庭财务管理txt”,T');/打开文件if(fp!=NU1.1.)structDataIinshi;whi1.e(fread(1.inshi,sizeof(structData),1,fp)=1)temp=(struct1.ist*)ma1.1.oc(sizeof(struct1.ist);temp->info=1.inshi;tcmp->next=NU1.1.;if(Inhead=NU1.1.)Inhead=temp;Intai1.=temp;e1.seIntai1.->next=temp;Intai1.=temp;fc1.ose(fp);voidMenu()主菜单system("c1.s'j;Printf("#欢迎运用家庭财务小管家#n");printf("=n");Printfr1:收入操作n");Printf(”2:支出操作n”);Printfr3:统计操作n");Printf("0:退出n");voidOpenzhichuO打开支出文件FI1.E*fp;fp=fopen("D:家庭财务管理支出.txt","f');if(fp!=NU1.1.)structDataIinshi;whi1.e(fread(&1.inshi,sizeof(structData),1,fp)=1)(temp=(struct1.ist*)ma1.1.oc(sizeof(struct1.ist);temp->info=1.inshi;temp->next=NU1.1.;if(zhichuhead=NU1.1.)zhichuhead=temp;Zhichutai1.=temp;e1.sezhichutai1.->ncxt=temp;Zhichutai1.=temp;fc1.osc(fp);voidmingzi0按姓名查询charchazhao20;Printfr请输入查询的名字名gets(chazhao);struct1.ist*p=Inhead;whi1.e(pI=NU1.1.)if(strcmpp->info.name,chazhao)=0)Printfr姓名:")jputs(p->info.name);printf(',日期:")jputs(p->info.riqi);Printfr收入:")jprintf("%.4fn",p->info.money);Printfr备注:");puts(p->info.beizhu);system("PAUSE");p=p->next;if(Inhead!=NU1.1.)charpanduan;Printf("是否接着查询(YN)");panduan=getchar();ff1.ush(stdin);if(panduan="Y,panduan='y')chaxun_income();voidmingzi-zhichu()charchazhao20);Printf(“请输入杳询的名字”);gets(chazhao);struct1.ist*p=zhichuhead;whi1.e(p!=NU1.1.)if(strcmp(p->info.name,chazhao)=0)Printfr姓名:");PUtS(P->info.name);Prindr11期:");puts(p->info.riqi);Printf("支出:"hprintf("%.4fn",p->info.money);Printn"备注:");PUtS(P->info.bcizhu);system("PAUSE");p三p->next;if(zhichuhead!=NU1.1.)charpanduan;Printf(”是否接着杳询(YN)")