欢迎来到天天文库
浏览记录
ID:13815032
大小:604.00 KB
页数:22页
时间:2018-07-24
《人个账单管理系统数据结构课程设计--毕业设计.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、沈阳航空航天大学课程设计报告课程设计名称:数据结构课程设计课程设计题目:个人账簿管理系统沈阳航空航天大学课程设计报告目录沈阳航空航天大学I1课程设计介绍11.1课程设计内容11.2课程设计要求12课程设计原理22.1课设题目粗略分析22.2原理图介绍22.2.1功能模块图22.2.2流程图分析33数据结构分析73.1存储结构73.2算法描述74.1调试过程164.2程序执行过程16参考文献1920沈阳航空航天大学课程设计报告1课程设计介绍1.1课程设计内容个人账簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费,水电费,医
2、疗费,储蓄等。进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。1.2课程设计要求1.采用链表结构管理收支情况,并能够保存到文件中;2.完成对每月的开支排序,以及完成系统查询功能;3.独立完成系统的设计,编码和调试;4.系统利用C语言实现;5.按照课程设计规范书写课程设计报告。20沈阳航空航天大学课程设计报告2课程设计原理2.1课设题目粗略分析根据课设题目要求,拟将整体程序分为五大模块。以下是五个模块的大体分析:1.账簿信息输入:该模块中,以带头结点的链表为账单信息的存储结构,输入各项开支
3、的数据。2.账簿信息排序:该模块中,将针对每月的消费总额进行从小到大的顺序进行排序。3.账簿信息查询:该模块中,将输入或已排序账单进行按所输入的日期进行查询并将查询结果打印至屏幕,供人阅读。4.账单信息更改:进入该模块,进行信息的更改或添加。5.账单信息保存:该模块将账单信息以文本文档保存到磁盘中。2.2原理图介绍2.2.1功能模块图图2.1功能模块图20沈阳航空航天大学课程设计报告2.2.2流程图分析1.账单建立时调用jianli()函数,而在在jianli()中调用tianjia()函数;账单的头结点的申请工作已在主函数中完成,所以在整个建立账单
4、的过程中核心内容是:将新的账单信息链接到已存在的账单后面;tianjia()函数流程图如图2.2所示。图2.2账单信息添加函数流程图2.在对账单信息进行排序的过程中,采用的方法是:首先将账单中支出最大和最小的两个结点寻找出来并按从小到大的顺序连接到一个新申请的头结点上;再将原函数的各结点插入到新的链表中,最终新的链表就成为了排序后的新账单。paixu()函数流程图如图2.3所示。20沈阳航空航天大学课程设计报告图2.3排序函数流程图1.进入账单信息查询部分,程序根据输入的日期进行逐一比较,若存在该日期的账单信息,程序输出相应的账单信息,若不存在该日期
5、的账单信息,系统提示用户还未录入该日期的账单信息。账单查询函数流程图如图2.4所示。20沈阳航空航天大学课程设计报告图2.4查询函数流程图1.进入账单更改部分,程序将用户输入的需更改的账单日期与已存在的账单日期进行逐步比对,对日期完全相同的账单信息进行更改,若不存在该日期的账单信息,程序提示用户是否马上进行添加。流程图如图2.5所示。图2.5账单信息更改流程图20沈阳航空航天大学课程设计报告1.进入账单保存部分,用户对建立的账单以文本文档的形式保存到磁盘中,账单信息保存函数流程图如图2.6所示。图2.6保存账单信息函数流程图20沈阳航空航天大学课程设
6、计报告3数据结构分析3.1存储结构主要存储结构:带头结点的单向链表存储结构。typedefstructMYBILL//链表结点结构{longdate;//日期信息longfood;//食品消费longfangzu;//房租费用longjiaoyu;//子女教育费longshuidian;//水电费longyiliao;//医疗费longchuxu;//储蓄longpay;//总支出longincome;//总收入structMYBILL*next;//指向下一结点的指针}MYBILL,bill;3.2算法描述1.建立单向链表,用来存储账单信息:首先分
7、别输入将要建立账单的年份及月份,年份的合理范围定为所有正整数,当年份输入为非合理数字时结束对账单的录入;月份的合理范围为1至12,当输入不属于该范围的月份数据时,程序会重新进行年份和月份的录入;录入日期数据后,进行其余信息的录入。void*tianjia(MYBILL*head)//向原链表添加新的链表结点{inti,j;//定义年份和月份变量MYBILL*p,*tail;//定义结构体类型指针p=head;//将指针p初始化为headwhile(p->next!=NULL)//判断账单链表是否为仅含空头结点的链表20沈阳航空航天大学课程设计报告{p
8、=p->next;//将指针p向后移动一个单位}printf("t输入您要建立账单的年份,当输入非正数
此文档下载收益归作者所有