家庭财务管理的系统程序报告_第1页
家庭财务管理的系统程序报告_第2页
家庭财务管理的系统程序报告_第3页
家庭财务管理的系统程序报告_第4页
家庭财务管理的系统程序报告_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、宁波大红鹰学院信息工程学院课程设计报告项目名称:家庭财务管理系统项目组长:沈文项目成员:郑强 邹伟民班级名称:11 信管 4 班专业名称:信息管理与信息系统完成时间 :20125.20.信息工程学院制案例描述1. 、总体描述代码总共 1131 行,通过各种功能模块之间的相互联系,以及各函数、指针等的使 用,基本上实现了家庭财务管理系统的管理,比如对收入的添加、删除、显示、查找、 修改、统计和支出的添加、显示、删除、查找、修改、统计,当然还有错误或输入等的 提示,用户可以很快的得知下一步要做什么,或者做错了什么。根据人们的日常需求, 可以对添加的财务信息进行适当的添加、删除、显示、查找、修改、统

2、计以及保存。每 一项功能用完后, 用户可以根据界面提示进行选择, 如果选择错误, 系统会自动进行提 示用户重新输入。很方便快捷。2、模块描述1)菜单设计:菜单显示共有 4 个功能,分别为: “收入菜单” 、“支出菜单” 、“保存”、 “退出”用户对这些功能模块操作时,系统会根据不同的需求,进行适当的函数调用, 当然 在这个过程中, 我们设置了许多提示语, 可以让用户更加明了程序的过程。 此程序调用函数 主要为:void Open();void OpenandLoad();void income_add();void income_save();void income_show();void i

3、ncome_del();void income_search();void income_xiugai();void income_incr();void income_menu();void income();void menu_Payout();void Payout();void Payout_Add();void Payout_save();void Payout_Show();void Payout_Del();void Payout_Search();void XiuGai_Payout();void Incr_Payout();void Save();void Quit();2)

4、分模块描述: 在添加收入支出前,若是第一次用(即无记录状态)则会显示“管理系统中无记录, 请按任意键进入主菜单。 ”的一个界面收入:用户通过 void income_add() 、void income_save() 、 void income_show() 、 void income_del() 、void income_search() 、 void income_xiugai() 、 void income_incr() 来 实现对收入的添加、保存、显示、删除、查找、修改、统计。当输入有误时会给与提示,当 用户不想添加收入时,可以选择返回主界面。支出:用户通过 void Payout_A

5、dd()、void Payout_save()、void Payout_Show()、 void Payout_Del()、void Payout_Search()、void XiuGai_Payout()、void Incr_Payout(); 来实现对支出的添加、保存、显示、删除、查找、修改、统计。保存:用户通过void Save()来实现是否保存的选择,显得十分人性化。同时在这里也可以进行退出与返回界面的选择。退出:用户通过 void Quit()来实现是否退出的选择,同时也可以再退出和返回界面 之间选择,满足了用户的需要。二、界面描述程序运行的主界面 收入的添加函数 收入的显示函数 收

6、入的删除函数 收入的查找函数 收入的修改函数 收入的统计函数 收入的保存函数 收入的主界面 收入的主调用函数 支出的添加函数 支出的显示函数 支出的删除函数 支出的查找函数 支出的修改函数模块化设计方案1、系统主要函数及功能1】void open();初始界面2】void OpenandLoad();3】void income_add();4】void income_show();5】void income_del();6】void income_search(); 7】void income_xiugai();8】void income_incr();9】void income_save()

7、; 10】void income_menu();11】void income();12】void Payout_Add();13】void Payout_Show();14】void Payout_Del();15】void Payout_Search();16】void XiuGai_Payout();17】void Incr_Payout();18】void Payout_save();19】void Save();20】void Quit(); 支出的统计函数 支出的保存函数 保存函数退出函数2、主函数调用各功能函数流程图四、数据结构描述FILE *fp;/文件指针类型int num=0

8、;/Inhead 是 list 型指针 , 且为空 /Payout 是 list 型指针 ,且为空 /temp 是 list 型指针 ,且为空struct Datachar name20;char year30;char month30;char day30;float money;char detial50; stu100; struct list struct Data info;struct list *next;struct type;struct list *Inhead=NULL; struct list *Payhead=NULL; struct list *temp=NULL;

9、五 算法设计/姓名/年份/月份/日期/金钱/备注/ 读入数据的存放地址/定义变量为 info /next 是 list 型指针1. 添加收入:2.添加支出:3.显示收入:4.显示支出:5.删除收入:开始6. 删除支出:开始7. 查找收入:开始8. 查找支出:开始9. 修改收入:开始10. 修改支出:按姓名?按年份?继续修改?n按年份输入要查找的支输入要查找的结束开始姓名年份备注金钱月份按姓名出人姓名支出年份11. 统计收入:六、程序运行结果1.添加收入:2 添加支出:3.显示收入:双N? 祕0000:WP 0 0 0 SE 沁 咖 週2馳 111 1 112 22222 3 33 33 3 7

10、姓年月日金4.显示支出:5 删除收入:i mm茨迎迸入删除收入的界Ej ; 费以魏豐臺翦册脸 0000002.務年屈册赊;青输入要删除的姓名:SW查到一个数据为汰是否要删除? “崑否继续删除,0F 孜迎进入删除收入的界面;拮输入要删除的方貳聞很6删除支出:欢迎进入删除支出的界面:0000002.1请输入要删除的姓名:备到一个数据为丄是否要删除? S9崑否继续删除;W7.修改收入:oog8 修改支出:输入姓名输入姓名0011111咙年月日金命改改改改改改注修修修修9.查找收入:V加界: + + -*-4- + + + + 勺方我:e -&-13.退出:请输入要查找的收人人的姓名:注件12 冃條2

11、1 日期:31釜钱:123.000000暑转往善键返回: 皇否选择退岀弊的10.查找支出:鲫1| As鑒冃 hr la 芝月 1 2 旌_72 11丄 21?7;N 回 返岀 键退 1意择 注按否11.统计收入:12.统计支出:PH 欢迎进入收入统计界面 总X出_ .n:213-00臓任意键继续r 苗按任意縫返回: 堂否选择退岀?七、总结1、工作时间:2012.5.5 2012.5.202、分工情况:沈文:构建框架,调试修改程序,收入支出的显示郑强:收入支出的修改,统计,退出,保存邹伟民:收入支出的添加,删除,查找,写报告3、心得体会沈文:在构建的时候,思想有点乱,既想把相同项的收入 支出写在

12、同一个函数里,又想分开,后来在采用前一种时,发现 错误很多,很难改,因此采用了分开的形式,调试的时候经常发 现程序中有误,如:char的使用了 %d调试修改也难啊郑强:程序一多,经常性犯错,而且几乎都是同一个错一一程 序直接跳回,后来改回来了,才发现细节决定成败才是真理,以后写 的时候,一定注意邹伟民:程序还好说,但这报告实在有点“难度”又截图,又画框图的,不过在写的过程中,也算是运行了一遍程序,越来越觉得程序太“神奇”了附页(源代码附加注释)#include#include#include #include #include void OpenandLoad();void income_ad

13、d();void income_save();void income_show();void income_del();void income_search();void income_xiugai();void income_incr();void income_menu();void income();void menu_Payout();void Payout();void Payout_Add();void Payout_save();void Payout_Show();void Payout_Del();void Payout_Search();void XiuGai_Payout

14、();void Incr_Payout();void Save();void Quit();FILE *fp;int num=0;struct Datachar name20;char year30;char month30;char day30;float money;char detial50;stu100;struct liststruct Data info;struct list *next;struct type;struct list *Inhead=NULL;struct list *Intail=NULL;struct list *Payhead=NULL;struct li

15、st *Paytail=NULL;struct list *temp=NULL;void Open() system(cls); system(title 家庭财务管理系统 ); system(color 1B); printf(n); printf(n); printf(n); printf(n);if(fp=fopen(Date.bin,rb)=NULL)printf( 管理系统文件不存在 n);if (fp=fopen(Date.bin,wb)=NULL)printf( 建立失败 n);exit(0);elseprintf( 管理系统已建立 n);printf( 按任意键进入主菜单 n)

16、;getch();return;exit(0);fseek(fp,0,2);if (ftell(fp)0)rewind(fp);for (num=0;!feof(fp) & fread(&stunum,sizeof(struct Data),1,fp);num+); printf( 文件导入成功 n);printf( 按任意键返回主菜单 n);getch();return;printf( 文件导入成功 n);printf( 管理系统中无任何纪录 n);printf( 按任意键返回主菜单 n); getch();return;fp=fopen(income.cw,r);if(fp!=NULL)s

17、truct Data linshi;while(fread(&linshi, sizeof(struct Data), 1, fp) = 1) temp=(struct list *)malloc(sizeof(struct list); temp-info=linshi;temp-next = NULL;if(Inhead = NULL)Inhead = temp;Intail = temp;elseIntail-next = temp;Intail = temp; fclose(fp);void OpenandLoad()char choic;system(cls);printf(” 欢迎

18、使用家庭财务管理系统: n);printf(*主菜单 *n);printf(*1-收入 *n);printf(*2-支出 *n);printf(*3-保存 *n)printf(*4-退出 *n)prin tf( n);printf( 请输入功能选项 :n); struct tm *local;time_t t;t=time(NULL);local=localtime(&t);printf(” * * * * * * * * * * * * * * * * * * n); prin tf(I当前时间丨 n);%d 日printf( * * * * * * * * * * * * * * * *

19、* * n); printf(%d 年 %d 月n,local-tm_year+1900,local-tm_mon+1,local-tm_mday);void income_add()printf(OOOOOOOOOO 欢迎进入添加收入界面: OOOOOOOOOOn);char ch;temp=(struct list*)malloc(sizeof(struct list);printf( 请输入收入人姓名: n);fflush(stdin);gets();printf( 请输入收入年份: n);gets(temp-info.year);printf( 请输入收入月

20、份: n);gets(temp-info.month);printf( 请输入收入日期: n);gets(temp-info.day);printf( 请输入收入的金钱 :n);scanf(%f,&temp-info.money);fflush(stdin);printf( 请输入收入备注: n);gets(temp-info.detial); temp-next=NULL;if(Inhead=NULL)Inhead=temp;Intail=temp;elseIntail-next=temp;Intail=temp;printf( 是否继续添加 y/nn);fflush(stdin);scan

21、f(%c,&ch);if(ch=y)income_add();elseOpenandLoad();income_save();void income_save()system(cls);fp=fopen(income.cw,w);struct list *p =Inhead; while(p != NULL) fwrite(&p-info, sizeof(struct Data), 1, fp);p = p-next;fclose(fp);void income_show()printf(* *n);printf(*printf(* * *n);struct list *p =Inhead;w

22、hile(p != NULL)* *欢迎进入显示收入的界面: * * *n);* *printf( 姓名: %sn,); printf( 年份 : %sn,p-info.year);printf( 月份 : %sn,p-info.month); printf( 日期: %sn,p-info.day);printf( 金钱 : %fn,p-info.money); printf( 备注: %sn,p-info.detial);p = p-next;printf( 请按任意键返回: n); fflush(stdin);Quit();void income_del()print

23、f(欢迎进入删除支出的界面:printf(n);n);printf(n);int i;printf( 请输入要删除的方式: n);printf(” 1按姓名删除 n); printf(” 2按年份删除 n); scanf(%d,&i);if(i=1)printf( 请输入要删除的姓名: n);fflush(stdin);char del20;gets(del);while(l nhead!=NULL & strcmp(l nhead-info.n ame,del)=O)printf(查到一个数据为 %s,I);printf( 是否要删除? y/nn);char c

24、h;scanf(%c,&ch);if(ch=y)struct list *teeth=Inhead;Inhead=Inhead-next;free(teeth);else break;if(Inhead!=NULL)struct list *p = Inhead;struct list *p1 = Inhead-next;while(p1!=NULL)while(strcmp(,del)=0)printf( 查到里面节点一个数据为 %s,); printf( 是否要删除? y/n);char ch;scanf(%c,&ch); if(ch=y)s

25、truct list *teeth=p1; p1=p1-next; p-next = p1; free(teeth);elsebreak;if(p1=NULL)break; if(p1=NULL)break; p=p-next; p1=p1-next;elseprintf( 请输入要删除的年份: n); fflush(stdin);char del20;gets(del);while(Inhead!=NULL & strcmp(Inhead-info.year,del)=0)printf( 查到一个数据为 %s,Inhead-info.year);printf( 是否要删除? y/nn);ch

26、ar ch; scanf(%c,&ch);if(ch=y)struct list *teeth=Inhead;Inhead=Inhead-next; free(teeth);else break; if(Inhead!=NULL)struct list *p = Inhead;struct list *p1 = Inhead-next; while(p1!=NULL) while(strcmp(p1-info.year,del)=0) printf( 查到里面节点一个数据为 %s,p1-info.year); printf( 是否要删除? y/n);char ch; scanf(%c,&ch)

27、;if(ch=y)struct list *teeth=p1;p1=p1-next;p-next = p1;free(teeth);elsebreak;if(p1=NULL)break;if(p1=NULL)break;p=p-next;p1=p1-next;printf( 是否继续删除: y/nn); fflush(stdin);char ch;scanf(%c,&ch);if(ch=y)income_del();printf( 请按任意键返回: n); fflush(stdin);Quit();void income_search()printf(+n);printf(+ printf(+

28、 char find20;欢迎进入收入查找的界面: +n);+n);int i;printf(-n);1.按姓名查找 n);2.按年份查找 n);if(i=1)printf( 请输入要查找的收入人的姓名 :n); fflush(stdin);gets(find);struct list *p =Inhead; while(p != NULL)if(strcmp(find,) = 0)printf( 姓名: %sn,); printf( 年份 : %sn,p-info.year); printf( 月份 : %sn,p-info.month); pri

29、ntf( 日期 : %sn,p-info.day); printf( 金钱 : %fn,p-info.money); printf( 备注 : %sn,p-info.detial);p = p-next;elseprintf( 请输入要查找的收入的年份 :n); fflush(stdin);gets(find);struct list *p =Inhead;while(p != NULL)if(strcmp(find,p-info.year) = 0)printf( 姓名: %sn,); printf( 年份 : %sn,p-info.year);printf( 月份 :

30、 %sn,p-info.month); printf( 日期 : %sn,p-info.day);printf( 金钱 : %fn,p-info.money); printf( 备注 : %sn,p-info.detial);p = p-next;printf( 请按任意键返回: n);fflush(stdin);Quit();void income_xiugai()printf(” mmm n);printf(“ mmm欢迎进入修改支出的界面:n“);printf(” mmm n);int i;int j;float A;float B;float t;char ch20;printf(1.

31、 按姓名修改n);printf(2. 按备注修改n);getchar();scanf(%d,&i);if(i=1)struct list* p;p=Inhead;printf( 请输入姓名 n);scanf(%s,ch);while(p!=NULL&strcmp(I,ch)=0)printf( 姓名: %sn,);printf( 年份: %sn,p-info.year);printf( 月份: %sn,p-info.month);printf( 日期: %sn,p-info.day);printf( 金钱: %fn,p-info.money)

32、;printf( 备注: %sn,p-info.detial);p=p-next;printf(1. 修改姓名 n);printf(2. 修改年份 n);printf(3. 修改月份 n);printf(4. 修改日期 n);printf(5. 修改金钱 n);printf(6. 修改备注 n);scanf(%d,&j);switch(j)case 1:printf( 请输入姓名 n);scanf(%s,&ch); strcpy(I,ch);break;case 2:printf( 请输入年份 n);scanf(%s,&ch);strcpy(Inhead-info

33、.year,ch); break;case 3:printf( 请输入月份 n); scanf(%s,&ch); strcpy(Inhead-info.month,ch); break;case 4:printf( 请输入年日期 n); scanf(%s,&ch); strcpy(Inhead-info.day,ch); break;case 5:printf( 请输入金额 n);scanf(%f,&A);B=t;t=A;break;case 6:printf( 请输入备注 n); scanf(%s,&ch); strcpy(Inhead-info.detial,ch); break;defa

34、ult:printf( 您输入有误,请重新输入: n);elsestruct list* p;p=Inhead;printf( 请输入备注信息 n);scanf(%sn,ch);while(p!=NULL&strcmp(Inhead-info.detial,ch)=0) printf( 姓名: %sn,);printf( 年份 : %sn,p-info.year);printf( 月份 : %sn,p-info.month);printf( 日期: %sn,p-info.day);printf( 金钱 : %fn,p-info.money);printf( 备注: %sn

35、,p-info.detial);printf(1. 修改姓名 n);printf(2. 修改年份 n);printf(3. 修改月份 n);printf(4. 修改日期 n);printf(5. 修改金钱 n);printf(6. 修改备注 n);scanf(%d,&j);switch(j)case 1:printf( 请输入姓名 n); scanf(%s,&ch); strcpy(I,ch); break;case 2:printf( 请输入年份 n); scanf(%s,&ch); strcpy(Inhead-info.year,ch); break;case

36、 3:printf( 请输入月份 n); scanf(%s,&ch); strcpy(Inhead-info.month,ch); break;case 4:printf( 请输入年日期 n); scanf(%s,&ch); strcpy(Inhead-info.day,ch); break;case 5:printf( 请输入金额 n); scanf(%f,&A); B=t; t=A; break;case 6:printf( 请输入备注 n); scanf(%s,&ch); strcpy(Inhead-info.detial,ch); break;default:printf( 您输入有误

37、,请重新输入: n); n);printf( 请按任意键返回: fflush(stdin);Quit();void income_menu() system(cls); int ch;printf(*A_A*),(*A_A*)n);printf(* AAAAAn);欢迎进入收入界面(*A_A*)”(杯_人*)”AAAAA *printf(1. 添加)n);printf( (2. 显示)n);3.删除)4. 查找)5. 修改)6. 统计)7.返 回)printf( (n);printf( (n);printf( (n);printf( (n);printf( (n);printf(n);scan

38、f(%d,&ch); if(ch=1)income_add();if(ch=2)income_show();if(ch=3)income_del();if(ch=4)income_search();if(ch=5)income_xiugai();if(ch=6)income_incr();if(ch=7)OpenandLoad();void income()system(cls); int In_ch; while(1)income_menu();printf( 请输入收入的选择 ); scanf(%d,&In_ch);fflush(stdin); if(In_ch = 0)break; sw

39、itch(In_ch)case 4: income_search();break;void Payout_menu() system(cls); int ch; printf(%_1.添加n);n);printf(2. 显示3.删除4.查找5.修改6.统计7.返回);printf( 请输入支出年份: n);gets(temp-info.year);printf( 请输入支出月份: n);gets(temp-info.month);printf( 请输入支出日期: n);gets(temp-info.day);printf( 请输入支出的金钱 :n);scanf(%f,&temp-info.money);fflush(stdin);printf( 请输入支出备注: n);gets(temp-info.detial); temp-next=NULL;if(Payhead=NULL)Payhead=temp;Paytail=temp;elsePaytail-next=temp;Paytail=temp;printf( 是否继续添加 y/nn); fflush(stdin);scanf(%c,&ch);if(ch=y)Payout_Add();el

温馨提示

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

最新文档

评论

0/150

提交评论