家庭财务管理系统程序报告
y 2. 添加支出:
开始
姓名 年份 月份 日期 金钱 备注
n
继续添加收入?
显示主界面
结束
y 3. 显示收入:
开始
姓名 年份 月份 日期 金钱 备注
n
继续添加支出?
显示主界面
结束
开始
姓名 年份 月份 日期 金钱 备注
显示主界面
结束 4. 显示支出:
开始
姓名 年份 月份 日期 金钱 备注
显示主界面
5.删除收入: 6.删除支出: 7.修改收入:
8.修改支出: 9.查找收入:
10.查找支出:
11.统计收入: 12.统计支出: 13.退出:
七、总结
1、工作时间:
2012.5.5——2012.5.20
2、分工情况:
沈文:构建框架,调试修改程序,收入支出的显示 郑强:收入支出的修改,统计,退出,保存 邹伟民:收入支出的添加,删除,查找,写报告
姓名 年份
月份
日期
金钱
备注
y 继续查找? n
结束
8. 查找支出:
开始
按姓名?按月份?
按姓名
输入要查找的支 出人姓名
按月份
输入要查找的 支出月份
姓名 年份
月份
日期
金钱
备注
y 继续查找? n
结束
9. 修改收入:
开始
按姓名?按备注?
按姓名
输入要查找的收 入人姓名
按备注
输入要查找的 收入备注
姓名 年份
宁波大红鹰学院
信息工程学院
课 程 设 计 报 告
项目名称: 项目组长: 项目成员: 班级名称: 专业名称: 完成时间:
家庭财务管理系统 沈文
郑强 邹伟民 11 信管 4 班 信息管理与信息系统 2012.5.20.
信息工程学院制
一、 案例描述
1.、总体描述
代码总共 1131 行,通过各种功能模块之间的相互联系,以及各函数、指针等的使 用,基本上实现了家庭财务管理系统的管理,比如对收入的添加、删除、显示、查找、 修改、统计和支出的添加、显示、删除、查找、修改、统计,当然还有错误或输入等的 提示,用户可以很快的得知下一步要做什么,或者做错了什么。根据人们的日常需求, 可以对添加的财务信息进行适当的添加、删除、显示、查找、修改、统计以及保存。每 一项功能用完后,用户可以根据界面提示进行选择,如果选择错误,系统会自动进行提 示用户重新输入。很方便快捷。 2、模块描述
1)菜单设计:菜单显示共有 4 个功能,分别为:“收入菜单”、“支出菜单”、“保存”、 “退出”用户对这些功能模块操作时,系统会根据不同的需求,进行适当的函数调用,当然 在这个过程中,我们设置了许多提示语,可以让用户更加明了程序的过程。此程序调用函数 主要为:
void Open(); void OpenandLoad(); void income_add(); 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(); void Incr_Payout(); void Save(); void Quit(); 2)分模块描述: 在添加收入支出前,若是第一次用(即无记录状态)则会显示“管理系统中无记录, 请按任意键进入主菜单。”的一个界面 收入:用户通过 void income_add()、void income_save()、void income_show()、 void income_del()、void income_search()、void income_xiugai()、void income_incr()来 实现对收入的添加、保存、显示、删除、查找、修改、统计。当输入有误时会给与提示,当 用户不想添加收入时,可以选择返回主界面。
5. 删除收入:
结束
开始
按姓名?按年份?
按姓名 已找到要删除的收入 数据
是否删除?
按年份
主界面
已删除
结束
6. 删除支出:
开始
按姓名?按月份?
按姓名 已找到要删除的支出 数据
是否删除?
按月份
主界面
已删除
结束
7. 查找收入:
开始
按姓名?按年份?
按姓名
输入要查找的收 入人姓名
按年份
输入要查找的 收入年份
8】void income_incr(); 收入的统计函数
9】void income_save(); 收入的保存函数
10】void income_menu(); 收入的主界面
11】void income();
收入的主调用函数
12】void Payout_Add(); 支出的添加函数
13】void Payout_Show(); 支出的显示函数
支出的统计函数 支出的保存函数 保存函数 退出函数
2、主函数调用各功能函数流程图
文
件
导
入
成
主
功
管
理
系
统
中
开
无
任
始
何
界
记
录
按
任
意
返
回
面
主
菜
单
续
收入 支出 保存 退出
保 存 信 息
结束
四、 数据结构描述
FILE *fp;
int num=0;
struct Data {
char name[20]; char year[30]; char month[30]; char day[30]; float money; char detial[50]; }stu[100]; struct list { struct Data info; struct list *next; struct type; }; struct list *Inhead=NULL; struct list *Payhead=NULL; struct list *temp=NULL;
月份
日期
金钱
备注
y 继续修改? n
结束
10. 修改支出:
开始
按姓名?按年份?
按姓名
输入要查找的支 出人姓名
按年份
输入要查找的 支出年份
姓名 年份
月份
日期
金钱
备注
y 继续修改? n
结束
11. 统计收入: 开始
输出总收入
结束 12. 统计支出:
开始
输出总支出
结束
六 、程序运行结果 1.添加收入:
2.添加支出: 3.显示收入: 4.显示支出:
邹伟民:程序还好说,但这报告实在有点“难度”又截图,又 画框图的,不过在写的过程中,也算是运行了一遍程序,越来越觉得
程序太“神奇”了
附页(源代码附加注释)
#include<stdio.h> #include<stdlib.h> #include <string.h> #include <conio.h> #include <time.h> void OpenandLoad(); void income_add(); 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(); void Incr_Payout(); void Save(); void Quit(); FILE *fp; int num=0; struct Data {
支出:用户通过 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()来实现是否退出的选择,同时也可以再退出和返回界面 之间选择,满足了用户的需要。
二、 界面描述
三、 模块化设计方案
1、系统主要函数及功能
1】void open();初始界面
char name[20]; char year[30]; char month[30]; char day[30]; float money; char detial[50]; }stu[100]; struct list { struct Data info;
struct list *next; struct type; }; struct list *Inhead=NULL; struct list *Intail=NULL; struct list *Payhead=NULL; struct list *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) {