资源描述
唐山学院课程设计
一 引言
1.设计要求
程序结构合理、算法准确、语法正确,并生成可执行文件。
2.系统概述
本课程设计“家庭财务管理系统”就是通过学习《C程序设计》采用Visual C++作为编译环境,是程序编译和运行的。本系统的总体思想基于结构化的程序设计。应用高级语言程序设计中的基本控制结构,如循环和选择,着重实现管理系统的增、删、改、查等典型的管理功能由于主要实现的是管理系统的增、删、改、查等典型功能。
3. 开发与设计的总体思想
家庭财务管理对于每一个家庭来说有着重要的意义,随着科技的发达,财务的管理由原先的手写账本发展到现今的电脑系统输入并统计,不仅大大减少了时间与精力,也是财务管理更系统化,便捷化,清晰化,减少金钱上的缺失。 C语言是国内外广泛使用的一种计算机语言,学会使用C语言进行程序设计是计算机工作者的一项基本功。对于我们大学生来说,学习这样一门“C程序设计教程”更是必要的。程序设计是一门实践性很强的课程,既要掌握概念,又要动手编译,还要上机调试运行,通过这一次的课程设计我们从实践中更进一步的学习和了解C语言,
二 总体设计
1.需求分析
现在的家庭,不少的的账目都是随手拿来张纸记录,就算是用记事本来记录也会因为各种原因出现字迹混淆的现象,长时间后再查阅,会发现不知道当时记了什么,随手用纸张来记录,不易于管理,东一张西一张容易造成遗漏、丢失数据等现象导致统计数据错误,去银行存取后的打印单不能及时的记录管理,会泄漏帐号和现有金额,形成安全隐患,不经过记录,卡折同时使用也会使得账目不清楚对家里资产的预估形成误差,有时候支出收入过多,大量数据的计算,错误常会伴随而来,使得账目错误,导致投资理财的失误。
2.功能分析
家庭财务系统主要对家庭的各项财务收支管理进行在计算机上的信息存储和处理,从而简化用户的工作量。本报告设计的家庭财务管理系统主要是负责给家庭成员提供了一个在Windows操作系统上运行的管理平台,家庭财务管理者可以对其成员编号、姓名以及收入、支出构成进行增加、删除、修改,查找等管理操作,还可以对全家庭财务合计排序浏览。
3.系统功能结构图
开始
打开文件,载入信息
用户菜单界面
1
添加记录
2
查询记录
3
删除记录
4
显示记录
5
统计信息
0
退出
保存
结束
4.流程图
4.1查找信息
4.1.1录入信息
开始
是否找到记录
是
显示记录
结束
录入信息
否
4.1.2查找信息
输入年月
开始
输入编号
是否找到记录
是
显示记录信息
结束
按任意键返回菜单页
否
4.1.3删除信息
4.1.4修改信息
开始
输入编号
是否找到记录
是
重新录入信息
结束
按任意键返回菜单页
否
4.1.5统计信息
开始
是否存在记录
是
显示一共有几条记录
结束
按任意键返回主菜单
否
三 详细设计
1.主要的算法描述
1.1录入信息模块
家庭成员财务信息的录入
struct financial //定义家庭成员信息
{
int num; //编号
char name[15]; //家庭成员姓名
int month; //月份
int year; //年份
float income; //收入
float output; //支出
float total; //总金额
1.2查找信息模块
在菜单界面选择“2查找信息”选项,界面会让你选择所查找的信息的编号,确认后,系统会进行查询,如果有就显示该条记录。
printf("请输入编号:");
scanf("%d",&snum);
for(i=0;i<m;i++)
if(snum == member[i].num)
{
printf("已经找到该记录,是否显示?(y/n)");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
printf("编号 成员 月份 年份 收入 支出 总金额\t\n");
printf(FFORMAT,DATA);
break;
}
else
return;
}
if(i==m)
printf("没有找到相应的记录!\n");
}
1.3删除信息模块
选择删除选项后,界面会让使用者输入要删除信息的编号,并根据输入的编号显示该条记录,并且为了防止意外删除而有提示是否删除,经使用者再三确认后便删除该记录。
printf("请输入编号:");
scanf("%d",&snum);
for(i=0;i<m;i++)
if(snum==member[i].num)
break;
if(i==m)
{
printf("没有找到!");
return;
}
printf("已经找到该记录,是否删除?(y/n)");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) //判断是否要进行删除
{
for(j=i;j<m;j++)
member[j] = member[j+1]; //将后一个记录移到前一个记录的位置
m--; //记录的总个数减1
printf("成功删除!\n");
1.4修改信息模块
信息的修改
printf("请输入要修改的记录信息的编号!\n");
scanf("%d",&snum);
for(i=0;i<m;i++)
if(snum==member[i].num) //检索记录中是否有要修改的信息
{
printf("已经找到该记录,是否修改?(y/n)\n");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
printf("家庭成员姓名:");
scanf("%s",member[i].name); //输入家庭成员姓名
printf("请输入月份:");
scanf("%d",&member[i].month); //输入月份
printf("请输入年份:");
scanf("%d",&member[i].year); //输入年份
printf("请输入收入:");
scanf("%f",&member[i].income); //输入收入
printf("请输入支出:");
scanf("%f",&member[i].output); //输入支出
member[i].total=member[i].income - member[i].output; //汇总
printf("保存成功!");
}
1.5统计信息模块
在界面选择“5统计信息”后,屏幕上会把每条记录依次显示出来,并把总收入和总支出及目前余额也统计并显示出来。
printf("请输入编号:");
scanf("%d",&snum);
for(i=0;i<m;i++)
if(snum == member[i].num)
{
printf("已经找到该记录,是否显示?(y/n)");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
printf("编号 成员 月份 年份 收入 支出 总金额\t\n");
printf(FFORMAT,DATA);
break;
}
else
return;
}
if(i==m)
printf("没有找到相应的记录!\n");
2.菜单界面
{
system("cls");
printf("|-------------------------------------------------|\n");
printf("|--------------------家庭财务信息系统-------------|\n");
printf("| 0. 退出 |\n");
printf("| 1. 录入信息 |\n");
printf("| 2. 查找信息 |\n");
printf("| 3. 删除信息 |\n");
printf("| 4. 修改信息 |\n");
printf("| 5. 统计信息 |\n");
printf("|-------------------------------------------------|\n");
printf("选择(0-5):");
}
四 调试与测试
1.
2.程序运行结果
2.1菜单界面
2.2录入信息
2.3查找信息
2.4删除信息
2.5修改信息
2.6统计信息
五 总结
随着科学技术发展的日新日异,当今计算机应用在是生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机技术十分重要的。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。经过本学期C语言课程设计实践学习,使我对c语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它。在这次进行的课程设计中,也遇到了一些问题,比如程序运行不了,课程设计说明书不会写等等,但是有同小组的小伙伴一起想办法,也是很快就解决了这些问题。
参考文献
[1] 谭浩强,张基温.C语言程序设计教程(第3版)[M].北京:高等教育出版社,2006[2] 吕凤煮.C语言基础教程——基础理论与案例[M].北京:清华大学出版社,2005[3] 黄明,梁旭,万洪莉.C语言课程设计[M].北京:电子工业出版社,2006[4] 郭宁,郑小玲.管理信息系统[M].北京:人民邮电出版社,2006[5] 赵池龙,杨林,陈伟.实用软件工程[M].北京:电子工业出版社
展开阅读全文