毕业论文人个账单管理系统数据结构课程设计.docVIP

  • 10
  • 0
  • 约1.02万字
  • 约 22页
  • 2017-03-31 发布于辽宁
  • 举报

毕业论文人个账单管理系统数据结构课程设计.doc

毕业论文人个账单管理系统数据结构课程设计

沈阳航空航天大学 课 程 设 计 报 告 课程设计名称:数据结构课程设计 课程设计题目:个人账簿管理系统 目 录 沈阳航空航天大学 I 1 课程设计介绍 1 1.1 课程设计内容 1 1.2 课程设计要求 1 2 课程设计原理 2 2.1 课设题目粗略分析 2 2.2 原理图介绍 2 2.2.1 功能模块图 2 2.2.2 流程图分析 3 3 数据结构分析 7 3.1 存储结构 7 3.2 算法描述 7 4.1 调试过程 16 4.2程序执行过程 16 参考文献 19 1 课程设计介绍 1.1 课程设计内容 个人账簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费,水电费,医疗费,储蓄等。进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。 1.2 课程设计要求 采用链表结构管理收支情况,并能够保存到文件中; 完成对每月的开支排序,以及完成系统查询功能; 独立完成系统的设计,编码和调试; 系统利用C语言实现; 按照课程设计规范书写课程设计报告。 2 课程设计原理 2.1 课设题目粗略分析 根据课设题目要求,拟将整体程序分为五大模块。以下是五个模块的大体分析: 账簿信息输入:该模块中,以带头结点的链表为账单信息的存储结构,输入各项开支的数据。 账簿信息排序:该模块中,将针对每月的消费总额进行从小到大的顺序进行排序。 账簿信息查询:该模块中,将输入或已排序账单进行按所输入的日期进行查询并将查询结果打印至屏幕,供人阅读。 账单信息更改:进入该模块,进行信息的更改或添加。 账单信息保存:该模块将账单信息以文本文档保存到磁盘中。 2.2 原理图介绍 2.2.1 功能模块图 图2.1功能模块图 2.2.2 流程图分析 账单建立时调用jianli()函数,而在在jianli()中调用tianjia()函数;账单的头结点的申请工作已在主函数中完成,所以在整个建立账单的过程中核心内容是:将新的账单信息链接到已存在的账单后面;tianjia()函数流程图如图2.2所示。 图2.2账单信息添加函数流程图 在对账单信息进行排序的过程中,采用的方法是:首先将账单中支出最大和最小的两个结点寻找出来并按从小到大的顺序连接到一个新申请的头结点上;再将原函数的各结点插入到新的链表中,最终新的链表就成为了排序后的新账单。paixu()函数流程图如图2.3所示。 图2.3 排序函数流程图 进入账单信息查询部分,程序根据输入的日期进行逐一比较,若存在该日期的账单信息,程序输出相应的账单信息,若不存在该日期的账单信息,系统提示用户还未录入该日期的账单信息。账单查询函数流程图如图2.4所示。 图2.4 查询函数流程图 进入账单更改部分,程序将用户输入的需更改的账单日期与已存在的账单日期进行逐步比对,对日期完全相同的账单信息进行更改,若不存在该日期的账单信息,程序提示用户是否马上进行添加。流程图如图2.5所示。 图2.5 账单信息更改流程图 进入账单保存部分,用户对建立的账单以文本文档的形式保存到磁盘中,账单信息保存函数流程图如图2.6所示。 图2.6 保存账单信息函数流程图 3 数据结构分析 3.1 存储结构 主要存储结构:带头结点的单向链表存储结构。 typedef struct MYBILL //链表结点结构 { long date; //日期信息 long food; //食品消费 long fangzu; //房租费用 long jiaoyu; //子女教育费 long shuidian; //水电费 long yiliao; //医疗费 long chuxu; //储蓄 long pay; //总支出 long income; //总收入 struct MYBILL*next; //指向下一结点的指针 }MYBILL,bill; 3.2 算法描述 1. 建立单向链表,用来存储账单信息:首先分别输入将要建立账单的年份及月份,年份的合理范围定为所有正整数,当年份输入为非合理数字时结束对账单的录入;月份的合理范围为1至12,当输入不属于该

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档