声明:此为大一下的程序设计综合课程设计,用C语言编写。同时也开始加入链表等基础数据结构内容。本文作者认为,学好C语言是学好嵌入式和算法的重要基础。
一、 案例描述
1、总体描述
本系统是一款具有基本家庭财富管理功能的系统,记录用两个结构体数组存储,收入结构体包括收入描述、日期、金额。包括添加,修改,删除,查询等功能。支出结构体包括收入描述、日期、金额。包括添加,修改,删除,查询等功能。
2、基本功能描述
1)登录菜单设计:家庭财富管理系统的登录菜单分为四个功能,分别是 1.账号注册2.账号登录3.账号删除4.退出系统。
2)第二级菜单设计:家庭财富管理系统的第二菜单分为四个功能,分别是1.收入管理2.支出管理3.统计总结余4.返回上一级菜单。
3)第三级菜单设计:家庭财富管理系统的第三菜单分为有四个功能,分别是1.添加2.查询3.删除4.修改5.返回上级菜单。
4)收入添加模块:用户在第二界面输入数字1,进入第三界面(收入管理界面)。用户在第三界面,输入数字1时,则会显示出所要输入的信息,用户只需输入即可,全部输入完毕后会自动保存。
5)收入查询模块:用户在第二界面输入数字1,进入第三界面(收入管理界面)。用户在第三界面,输入数字2时,读取当前用户的收入数据,并打印。
6)收入删除模块:用户在第二界面输入数字1,进入第三界面(收入管理界面)。用户在第三界面,输入数字3时,输入要删除的收入描述。数据删除后,保存数据。
7)支出添加模块:用户在第二界面输入数字2,进入第三界面(支出管理界面)。用户在第三界面,输入数字1时,则会显示出所要输入的信息,用户只需输入即可,全部输入完毕后会自动保存。
8)支出查询模块:用户在第二界面输入数字2,进入第三界面(支出管理界面)。用户在第三界面,输入数字2时,读取当前用户的支出数据,并打印。
9)支出删除模块:用户在第二界面输入数字2,进入第三界面(支出管理界面)。用户在第三界面,输入数字3时,输入要删除的支出描述。数据删除后,保存数据。
10)返回上一级模块:返回上一级菜单。
2、附加功能描述
1)账号注册模块:当用户在主菜单输入数字 1 时,进行账号注册,输入账号与密码,在输入密码时,输入的密码会变成*号,来保护用户隐私。
2)账号登录模块:当用户在主菜单输入数字 2 时,进行账号登录,输入账号与密码,在输入密码时,输入的密码会变成*号,来保护用户隐私。登录后进入第二界面。
3)账号删除模块:当用户在主菜单输入数字 3 时,进行账号删除,输入账号与密码进行确认后,账号删除。
4)退出系统模块:当用户在主菜单输入数字 4 时,保存用户数据,退出系统。
5)统计结余模块:用户在第二界面,输入数3时,统计支出和收入,算出总收入,总支出,总结余并打印。
6)支出修改模块:用户在第二界面输入数字2,进入第三界面(支出管理界面)。用户在第三界面,输入数字4时,输入要修改的支出描述。数据修改后,保存数据。
7)收入修改模块:用户在第二界面输入数字1,进入第三界面(收入管理界面)。用户在第三界面,输入数字4时,输入要修改的收入描述。数据修改后,保存数据。
二、 界面设计
1、主界面(第一界面)
图 1主界面图
2、第二界面
图 2第二界面图
3、第三界面
收入菜单
图 3收入菜单图
支出菜单
图 4支出菜单图
三、 模块化设计方案
- 框架结构描述
- 本系统采用多文件框架(工程)结构
该系统采用多文件编写,每一类功能模块写入一个文件。采用结构体数组User来存储用户信息,包括用户名、密码以及与该用户相关的收入和支出链表的头指针。采用结构体数组IncomeNode来存储当前用户收入信息,包括描述、日期和金额,以及指向下一个收入节点的指针。采用结构体数组ExpenseNode来存储当前用户支出信息,包括描述、日期和金额,以及指向下一个支出节点的指针。采用结构体数组UserNode来存储用户节点,包括一个用户结构体和指向下一个用户节点的指针。所以采用了有参无返回值函数来设计各功能模块。该系统的文件与函数构成如下表所示:
3.1文件与函数构成
文件 |
函数名或其他成分 |
参数和返回值 |
功能 | </