家庭财务管理系统报告.docx
- 文档编号:20114083
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:11
- 大小:144.72KB
家庭财务管理系统报告.docx
《家庭财务管理系统报告.docx》由会员分享,可在线阅读,更多相关《家庭财务管理系统报告.docx(11页珍藏版)》请在冰豆网上搜索。
家庭财务管理系统报告
《程序设计基础》
课程设计报告
题目家庭财务管理系统设计
专业班级
学号
姓名
指导老师
完成时间
目录
1设计要求3
2系统设计3
2.1设计思路3
2.2系统功能模块3
2.3系统流程图3
2.4算法设计与描述3
3关键程序代码3
4程序运行结果3
5总结3
参考文献3
1设计要求
主要功能包括:
1)信息录入:
输入家庭成员的编号、姓名、月份、年份、收入、支出信息,条数不限。
2)信息查找:
用户输入编号查找,有对应信息则显示,没有则输出“没有找到相应记录”。
3)信息修改:
可以实现对家庭成员“姓名、月份、年份、收入、支出”信息的修改。
4)信息删除:
用户输入编号,有对应信息则询问“是否删除”,没有则显示“没有记录!
”
5)信息统计:
统计用户记录的总信息数目。
2系统设计
2.1设计思路
1)菜单选择模块完成用户命令的接收,此模块是家庭财务管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择而调用其他模块实现相应的功能;
2)信息输入模块完成必要信息的录入和保存;
3)统计模块是对输入信息的处理,是一种必要的辅助模块;
4)输出模块包括:
1不输出信息,读入文件中;
2输出信息,不读入文件。
其中输出的信息有:
编号、姓名、月份、年份、收入、支出;
5)文件读入模块是为了满足客户需要,为了储存信息,方便使用;
6)信息查询模块完成对各信息的查询,查询时应输入成员编号进行查询。
2.2系统功能模块
2.3系统流程图
1.向用户展示主界面。
2.用户按0-5选择功能。
3.选择1,进入录入信息模块,记录家庭成员信息.收支情况。
记录完毕,判断是否继续,是,就继续录入,直到用户退出录入信息模块;否则直接返回主界面。
4.选择2,进入查找信息模块,输入要查询的信息的编号,判断是否有记录,是,就显示该编号的信息,然后返回主界面;否则直接返回主界面。
5.选择3,进入删除信息模块,输入要删除的信息的编号,判断是否删除,是,就输出删除信息,然后返回主界面;否则直接返回主界面。
6.选择4,进入修改信息模块,输入要修改的信息的编号,判断是否修改,是,就重新录入信息,然后返回主界面;否则直接返回主界面。
7.选择5,进入统计信息模块,显示录入的信息条数,然后返回主界面。
8.选择0,退出程序。
2.4算法设计与描述
录入模块为用户提供信息录入功能,在此功能下用户可以录入家庭成员的收支信息,并且,录入的信息会被保存在一个名为“家庭财务管理系统”的文件中,方便用户查找,修改信息。
用户从主界面选择1后程序功能实现:
打开文件fp=fopen("家庭财务管理系统","ab+"),读取文件中的信息,fread(&member[m],LEN,1,fp)==1,直到文件结尾while(!
feof(fp)),统计已录入的信息数目m++,如果m!
=0,则以相应格式显示已录入信息,并询问用户是否录入信息,如果m==0,仅询问用户是否录入信息strcmp(ch,"Y")==0||strcmp(ch,"y")==0,用户输入y或Y,开始录入信息,否则就返回主菜单,录入完成后,向文件中写入信息fwrite(&member[m],LEN,1,fp)!
=1,保存,并重新判断用户是否继续录入信息,直到用户选择不录入信息,退出此功能模块。
当用户从主界面选择5后程序功能实现:
打开文件fp=fopen("家庭财务管理系统","ab+"),读取文件中的信息,fread(&member[m],LEN,1,fp)==1,直到文件结尾while(!
feof(fp)),统计已录入的信息数目m++,并显示已录入信息数目。
3关键程序代码
voidin()//录入家庭成员信息
{
inti,m=0;
charch[2];
FILE*fp;
if((fp=fopen("家庭财务管理系统","ab+"))==NULL)
{
printf("不能打开文件!
\n");
return;
}
while(!
feof(fp))
{
if(fread(&member[m],LEN,1,fp)==1)
m++;//统计当前记录条数
}
fclose(fp);
if(m==0)
printf("没有找到!
\n");
else
{
show();//调用show函数,显示原有信息
}
if((fp=fopen("家庭财务管理系统","wb"))==NULL)
{
printf("不能打开文件!
\n");
return;
}
for(i=0;i fwrite(&member[i],LEN,1,fp);//向指定的磁盘文件写入信息 printf("是否输入? (y/n): "); scanf("%s",ch); while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)//判断是否要录入新信息 { printf("编号: "); scanf("%d",&member[m].num);//输入家庭成员编号 for(i=0;i if(member[i].num==member[m].num) { printf("该记录已经存在,按任意键继续! "); getch(); fclose(fp); return; } printf("家庭成员姓名: "); scanf("%s",member[m].name);//输入家庭成员姓名 printf("请输入月份: "); scanf("%d",&member[m].month);//输入月份 printf("请输入年份: "); scanf("%d",&member[m].year);//输入年份 printf("请输入收入: "); scanf("%f",&member[m].income);//输入收入 printf("请输入支出: "); scanf("%f",&member[m].output);//输入支出 member[m].total=member[m].income-member[m].output;//汇总 if(fwrite(&member[m],LEN,1,fp)! =1)//将新录入的信息写入指定的磁盘文件 { printf("不能保存! "); getch(); } else { printf("%s已经保存! \n",member[m].name); m++; } printf("是否继续? (y/n): "); scanf("%s",ch); } fclose(fp); printf("OK! \n"); } voidshow() { FILE*fp; inti,m=0; fp=fopen("家庭财务管理系统","ab+"); while(! feof(fp)) { if(fread(&member[m],LEN,1,fp)==1) m++; } fclose(fp); printf("编号成员月份年分收入支出总金额\t\n"); for(i=0;i { printf(FORMAT,DATA); } } voidtotal()//统计 { FILE*fp; intm=0; if((fp=fopen("家庭财务管理系统","ab+"))==NULL) { printf("不能打开记录! \n"); return; } while(! feof(fp)) if(fread(&member[m],LEN,1,fp)==1) m++;//统计记录个数 if(m==0) { printf("没有记录! \n"); fclose(fp); return; } printf("一共有%d条记录! \n",m);//将统计的个数输出 fclose(fp); } 4程序运行结果 1)录入家庭成员信息如图: 2)统计家庭成员信息如图: 5总结 通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。 在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。 参考文献 [1]谭浩强著,C程序设计(第三版),北京: 清华大学出版社,2007
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 家庭 财务管理 系统 报告