C语言课程设计报告__个人消费管理系统

  • 格式:doc
  • 大小:706.50 KB
  • 文档页数:34

下载文档原格式

  / 34
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

1 需求分析 (1)

1.1问题描述 (1)

1.2输入数据要求 (1)

1.3输出数据要求 (1)

1.4开发环境和工具 (1)

1.5成员分工 (1)

2总体设计 (2)

2.1总体设计思路 (2)

2.2模块结构图 (2)

2.3模块说明 (3)

3 详细设计 (4)

3.1数据类型定义 (5)

3.2打开模块实现 (6)

3.3更新模块实现 (6)

3.4统计模块实现 (7)

4测试结果及分析 (12)

5 总结 (17)

参考文献 (18)

附录 (19)

1 需求分析

1.1问题描述

随着社会经济的发展,大学生已经成为这个社会上一个很重要的团体,而他们的消费情况也越来越多的被更多的人关注,大学生自己也应当管理好自己的消费内容,让自己的消费更加合理化,提高自己生活的质量。在这种情况下,就需要一个软消费表信息:编号,时间,类别,品名,单价,数量,金额对学生每天的消费情况作一个较为详细的统计,该系统可以实现由计算机代替人工执行一些复杂而且较为繁琐的操作,从而使大学生们能够更为便捷地管理自己的消费,也为其他的一些调查研究提供了方便。

1.2 输入数据要求

可录入消费者当天的消费情况,消费表信息包括:编号,时间,类别,品名,单价,数量,金额

消费信息存放在文件中,以编号的先后顺序存放

1.3 输出数据要求

打开:显示文件中的所有消费记录,提供分页显示

保存:将消费表的更新结果存入文件

更新:可插入、删除、修改各消费记录

查找:按时间,类别、品名查找消费记录

排序:按时间,类别,金额

统计:求各类别消费品的总金额,求各月的消费总金额,求各年消费总金额1.4 开发环境和工具

开发环境:Windows 2000

开发工具:Visual C++ 6.0

1.5 成员分工

刘倩钰:主函数模块,保存模块,排序模块

刘冬梅:打开模块,更新模块,数据统计模块

2总体设计

2.1 总体设计思路

1. 设计思路

个人消费系统管理包含的操作有:打开、保存、更新、查找、排序和统计。在程序开始运行的时候从文件加载已有数据,并输出可以进行的操作提供给用户,

1、打开:显示文件中的所有消费记录,通过取模运算提供分页显示功能

2、保存:以wb 模式打开文件,将修改的内容写入文件

3、更新:可插入、删除、修改各消费记录

4、查找:按时间,类别、品名查找消费记录

5、排序:按时间,类别,金额

6、统计:分别按类别、月、年统计消费品的总金额

2. 数据存储

为了操作的方便,用typedef 自定义了一些数据类型,其中包含一个长度为MAX 的数组,用来存放从文件中读取的数据。

2.2 模块结构图

根据需求将系统划分为六个功能模块,函数之间的调用关系如图2.1所示。

图2.1 个人消费系统的模块结构图

Calledit:在主函数的控制下,调用各个模块

1)ShowRec:输出已存在的记录。

2)SaveRec:保存更新的内容。

3)UpdateRec:按一定的方式更新记录。

这个模块下包含三个子模块插入:Insert

删除:DeleteByNum

修改:Modify

4)FindRec:按一定的方式查找记录。

这个模块下也包含三个子模块按日期查找:FindBytime

按类型查找:FindByType

按名称查找:FindByName

5)SortRec:按一定的方式查找记录。

这个模块下也包含三个子模块按日期查找:SortBytime

按类型查找:SortByType

按名称查找:Sort BySum

6)ShowTotal: 显示各种统计的结果

2.3 模块说明

(以从上至下,从左至右的顺序说明)

2.3.1:打开模块:

自定义函数:ShowRec( )

函数功能:输出已存在的历史记录

无参函数:无参数

2.3.2:更新模块:

自定义函数:UpdateRec( )

函数功能: 可对输入数据实现插入,删除,修改操作。

无参函数:void类型,无返回值。调用Insert()函数,Delete()函数和Modify()

2.3.2.1插入模块:自定义函数:Insert()

函数功能:实现插入新的信息并保存到记录中,其中插入的数据最后金额可以自己运算出来,插入的记录保存在尾部。

无参函数:返回值为int 类型

2.3.2.2删除模块:自定义函数;RemoveByNum(int num)

函数功能:对所选信息按编号删除,删除过后,后面记录到编号将全部减1,记录的编号即下标。

输入参数:int类型,返回值是int类型。num--int类型,表示define.h文件中定义的类型Rec_Con中数组record[]的下标,删除过后,后面记录到编号将全部减1,记录的编号即下标。后面的记录全部向前移动一个距离。

2.3.2.3修改模块:自定义修改函数:Modify()

函数功能:按名称修改记录,先判断要查找的名称所对应的记录是否存在,不存在则直接返回。

无参函数:返回值为int型

2.3.3:统计模块:

函数原型:ShowTotal( )

函数功能:显示统计结果

无参函数:void 类型,无返回值。

2.3.3.1 按类型统计:ShowType( )

函数功能:按类型显示统计结果

无参函数; void 类型,无返回值。

2.3.3.2按月显示统计结果:

函数原型:ShowMonth()

函数功能:忽略了年,按月显示统计结果

无参函数:void 类型,无返回值。

2.3.3.3按年显示统计结果:

函数原型:ShowYear()

函数功能:按年显示统计结果