十字交叉链表c语言,C语言课程设计报告—十字交叉链表的应用.doc

  • Post author:
  • Post category:其他


C语言课程设计报告—十字交叉链表的应用

PAGE \* MERGEFORMAT 13

华中科技大学计算机科学与技术学院

C语言程序设计课程设计实验报告

题目:水产品养殖信息管理系统

专业: 计算机科学与技术 班级: 计科1003 学号: 姓名: 鲁辰 成绩:

指导老师:卢萍

完成日期: 2011年9月28日

目录

系统概述3

系统功能模块结构3

数据结构设计及用法说明4

程序结构6

各模块功能9

实验结果11

体会13

参考文献13

附录:源代码及头文件报告后

系统概述本系统是一个水产品管理系统,用于存储和管理水产品的信息,系统功能包括:鱼塘、苗种、投苗信息的录入、删除、修改、查找、排序等。整个系统由C语言实现,采用了Windows程序设计调用API函数的方法制作界面,信息在程序中通过十字链表的方式被存储,如果使用保存功能,即存入文件根目录下的相应.dat文件中。本程序中最重要的部分之一是窗体的句柄和窗体中各个控件的句柄,通过发消息给相应的句柄,才能够在特定的位置进行数据的显示和读入,在对树状图及列表进行操作时,也是通过特定函数将消息发给树状图或其子节点和列表的句柄,并且,在对数据进行变更时,本程序是以所选中节点的句柄与链表的句柄进行对比,来判断是否进行操作的。一个信息节点在树状图中所对应的句柄也因此被作为鱼塘(POOL_NODE)、苗种(FISH_NODE)、投苗(FEED_NODE)结构的一部分。数据结构的介绍中有界面中每个控件所对应的句柄名称示意图。本程序另一个重要部分是十字链表的结构,通过使用三级十字链表,将所有的信息系统的组合在一个头节点下。为支持链表,每个节点都数据结构中都有一个指向下一级节点(除投苗信息FEED_NODE外)和一个指向下一个同级节点的指针。

系统功能模块结构水产品养殖信息管理系统由六大功能组成:数据录入模块、数据修改模块、数据插入模块、数据删除模块、数据查询模块、数据统计排序模块。如图F1 所示。

水产品养殖信息管理系统水产品数据文件处理水产品数据录入处理水产品数据修改处理水产品数据查询处理水产品数据统计处理水产品数据排序处理文件导入处理文件存盘处理退出系统处理文件创建处理鱼塘数据录入投苗数据录入苗种数据录入鱼塘数据修改

投苗数据修改

苗种数据修改

按时间查询苗种信息鱼塘数据统计

投苗数据统计

苗种数据统计

按投苗时间按苗种单价按投养数量

主模块一:水产品数据文件处理该模块包括4个子模块,分别是:文件创建处理、文件导入处理、文件存盘处理、退出系统处理。所有信息可被保存在三个文件:pool.dat,fish.dat,feed.dat中,pool.dat用于保存鱼塘节点信息,fish.dat用于保存苗种节点信息,feed.dat用于保存投苗节点信息。在文件写入到新建的链表时,每个节点都会有一个句柄,指向左侧树状图中节点,因为每个节点的句柄都是不同的,所以句柄用于作为该节点的唯一标识。

主模块二:水产品数据录入处理该模块包括3个子模块,分别是:鱼塘数据录入、投苗数据录入、苗种数据录入。在插入下一级节点时,应选中树状图中的上一级节点,例如:要插入苗种信息节点,应选中树状图中的该苗种所对应的鱼塘信息节点,否则不能成功插入。特别注意的是:本程序中所有的输入输出均采用API函数,也就是说,输入每个特定信息的文本框是特定的。

主模块三:水产品数据修改处理该模块包括3个子模块,分别是:鱼塘数据修改、投苗数据修改、苗种数据修改。在修改各模块时,应首先选中左侧树状图中的相应节点,然后,单击相应的修改按钮。若选中的节点与要修改的节点不在同一级,则不能修改成功。

主模块四:水产品数据查询处理该模块包括1个子模块,是:按时间查询苗种信息。使用查询操作时,应先在查询按钮左侧的起始时间和截止时间文本框内按格式(如:2011-01-01)输入,然后单击查询按钮,查询结果便会显示在右下方的列表中。如果日期的输入格式错误,则不能输出正确的查询结果。

5.主模块五:水产品数据统计处理该模块包括3个子模块,分别是:鱼塘数据统计、投苗数据统计、苗种数据统计。当信息节点创建或者载入时,节点信息下方用于显示统计结果的静态文本的示数都会产生变化。

6.主模块六:水产品数据