1课程设计报告课程设计名称:C语言课程设计课程设计题目:食品仓库管理系统程序I目录第1章需求分析...................................................11.1社会需求...........................................................................................................11.2题目的内容与要求...........................................................................................1第2章概要设计...................................................2第3章详细设计...................................................33.1主模块...............................................................................................................33.2录入仓库食品信息模块...................................................................................43.3打印仓库食品信息模块...................................................................................53.4添加仓库食品信息模块...................................................................................63.5删除仓库食品信息模块...................................................................................73.6修改食库食品信息模块...................................................................................83.7操作并产生统计报表.......................................................................................93.8处理过期食品并打印其清单.........................................................................103.9查询仓库产品信息模块.................................................................................10第4章调试分析.................................................12第5章使用说明.................................................13参考文献.........................................................15附录(程序清单)..............................................16沈阳航空工业学院课程设计报告第1章需求分析1第1章需求分析1.1社会需求在当今仓库的对库存食品系统化管理的大趋势下,对食品的管理的安全,高效的要求越来越高,所以对管理系统的优化设计也越来越高。某食品仓库需要一个能够管理食品仓库的程序,希望通过此程序能够很好的管理仓库的食品。1.2题目的内容与要求内容:某食品仓库管理程序保存如下——产品编号,产品名称,产地,计量单位,单价,数量,进货日期,保质期,选择一种数据结构保存以上信息,实现以下功能:(1)输入数据,建立库存商品信息。(2)有查询,添加,删除和修改商品信息的功能。(3)以日为单位,对库存商品的产品的入库与出库进行操作,并产生统计报表。(4)根据当天日期统计即将到期的库存商品,进行相应处理,并打印其清单备注。沈阳航空工业学院课程设计报告第2章概要设计2第2章概要设计本程序主要分为九个模块:主模块,录入模块,打印模块,查询模块,添加模块,删除模块,修改模块,操作并产生统计报表模块,处理过期食品并打印清单备注模块。主模块:调用函数,控制程序的运行。录入模块:输入食品信息并保存。打印模块:查看是否录入信息。查询模块:查询所需的食品信息。添加模块:添加要保存的食品信息。删除模块:删除不需要的食品信息。修改模块:修改食品信息。操作并产生统计报表模块:对食品的出入仓库的处理并产生统计表。处理过期食品并打印清单备注模块:对食品的过期处理并打印备注清单。该程序充分的考虑到管理者要求,做到人性化的自动管理。图2.1某食品仓库管理功能沈阳航空工业学院课程设计报告第3章详细设计3第3章详细设计3.1主模块控制整个程序的运行,通过主函数模块分别调用各个模块,实现各项功能。在对程序的预处理时,充分的考虑了用户的需求及习惯,先对食品名称的处理,一般对食品名称比较短,所以我把名称定义大小20的字符串的数组,在价格方面,定义为浮点型的,这样便于用户的操作与计算。在定义产地的数组时,考虑到地名不算长,定义为20大小的字符串数组。进货日期用结构体的形式定义的,这样方便用户的查看。在录入和打印的系统中,用户可以输入食品编号,名称,产地,计量单位,单价,数量,进货日期,保值期,对食品进行详细的说明,并且可以看见食品的详细信息。在查询和删除系统中,用户可以根据具体情况进行查询,删除已有的食品。可以查看到食品的详细的信息,对仓库进行一系列的操作。在修改系统中,用户可以先输入食品的编号后,再按人性化的提示输入修改的信息。这样既节约用户宝贵的时间,又对食品的具体信息非常的了解,对食品的安全储存,使用做出最好的准备,符合国家的本着对人的生命安全储存食品的具体要求,又能在食品的有效期以前处理食品做好准备。而操作并产生统计报表和处理过期产品并打印其清单的系统更是做到了只有想不到的,没有做不到的服务。操作并产生统计报表可以选择入库,出库,产生统计报表的操作,做到一键多能。可以对仓库最近的出库与入库,产生统计报表进行一系列的操作。处理过期产品并打印其清单系统中,可以输入当日的日期,系统自动删除已过期食品,并打印已删除的食品的信息。做到了让管理者省心,放心,让安全食品储存的高效的服务。这个程序根据当今社会的需求而设,能做到高效,安全,人性化的服务。沈阳航空工业学院课程设计报告第3章详细设计43.2录入仓库食品信息模块(1)录入信息模块,函数名为save(pro,n)。(2)save(pro,n)函数不需要传递参数,整型变量i表示存放的是第i条记录,定义了存放临时记录的结构体变量,指针文件变量fp。进入程序时打开文件,对文件操作结束,退出程序时关闭文件。流程图如图3.2所示。开始结束in打开成功?i=0打开文件i=i+1输入食品信息关闭文件NYNY图3.2食品信息录入流程图沈阳航空工业学院课程设计报告第3章详细设计53.3打印仓库食品信息模块打印仓库产品信息函数名为show(),不需要传递参数,也不需要定义任何变量。打开文件,通过循环逐条读取数据,并将数据显示在屏幕上。流程图如图3.3所示.。开始结束打开文件打开成功n=0记录为空i=0ini=i+1关闭文件打印食品信息YNYNYN图3.3仓库食品信息打印流程图沈阳航空工业学院课程设计报告第3章详细设计63.4添加仓库食品信息模块添加仓库食品信息函数为add()。添加仓库食品信息文件,从文件逐条读取数据,并将它们存放在结构体类型的数组中,对数组进行添加,最后将数据存入文件中。添加过程:输入要添加的数量,输入产品信息,每输一组数据,记录数加一。流程图如图3.4所示。开始结束打开文件i=n-ai=i+1关闭文件打开成功?inNYYN输入食品信息图3.4仓库食品信息添加流程图沈阳航空工业学院课程设计报告第3章详细设计73.5删除仓库食品信息模块删除仓库食品信息模块函数为del(number)。将输入的信息与相应的数组成员一一进行比较,找到记录,再将该记录有关的信息全部删除。每删除一组数组,记录数减一。流程图如图3.5所示.。开始结束打开文件Inti=0,j;删除食品信息n=n+1关闭文件in打开成功?编号是否相同YNYYNN图2.5仓库食品信删除息流程图沈阳航空工业学院课程设计报告第3章详细设计83.6修改食库食品信息模块修改仓库食品信息模块函数为change()。流程图如图3.6所示。开始结束打开文件关闭文件跳出i=i+1打开成功?in-1食品编号是否相同i=nNYNNYYYN输入新的食品信息NN图3.6仓库食品信息修改流程图沈阳航空工业学院课程设计报告第3章详细设计93.7产生统计报表操作并产生统计报表的函数为voidoperate()。打开仓库食品信息系统文件,从文件中逐条读取数据,并将它们存放在结构体类型的结构体的数组中,进行入库操作出库操作产生统计报表。流程图如图3.7所示.。开始结束打开文件关闭文件打开成功?a=?调用函数add()判断a的值调用函数del(number)退出调用函数show()输入正确选项NY1234其他图3.7产生统计表流程图沈阳航空工业学院课程设计报告第3章详细设计103.8处理过期食品并打印其清单处理过期仓库食品并打印其清单函数为safecheck()。打开仓库食品信息系统文件,从文件中逐条读取数据,并将它们存放在结构体类型的结构体的数组中,输入当日日期,通过循环找到过期产品,并打印清单。流程图如图3.8.所示。开始结束关闭文件过期处理判断是否过期打开文件打开成功?过期?Printf:无过期产品!NYYN提示:打开文件失败图2.8处理过期食品并打印其清单流程图3.9查询仓库产品信息模块查询仓库食品信息模块函数为query()。流程图如图3.9所示。沈阳航空工业学院课程设计报告第3章详细设计11开始结束打开文件跳出i=i+1i=0打开成功?in编号是否相同?i=n关闭文件NYNNYYNY打印食品信息图3.9查询系统流程图沈阳航空工业学院课程设计报告第4章调试分析12第4章调试分析在上机输入完程序后,出现了几个错误,其中有一些小错误,比如说忘记写分号,在这些错误上双击,找到位置,加上分号。还有就是程序中的有的变量在前面没有定义,只要在前面添加上就可以了。再有就是前后的类型要保持一致,在这块我也犯了个错误。前面是浮点类型,后面却是布尔类型,解决办法就是把前面的改成布尔类型,保持前后一致。还有就是遗忘分号,逗号,解决方法就是,一步一步的把遗忘的分号,逗号补上。忘记定义变量的类型。比如n应该是整型的却忘记申明。解决方法就是在函数内先申明int类型的n..。在寻找食品信息时,出现了死循环的现象。解决方法就是通过一步一步调试适当的改变一些数据。粗心导致很多细节问题,比如该输入英文的括号的,却输成中文的括号,解决方法,把中英文分开。注意细节问题。还有就是把文件建立在C盘,这是一个致命的错误。后来把文件建立在E盘才出现预期的结果。沈阳航空工业学院课程设计报告第5章使用说明13第5章使用说明运行操作及结果:菜单如图,按菜单选择正确的序数进行操作。选择1,2进行录入和打印食品信息。(录入食品信息和打印信息如下图)选择3查询食品信息(查询结果如图)选择4并按回车键,再输入添加的食品种数按回车键确定,添加食品信息(如下图)。沈阳航空工业学院课程设计报告第5章使用说明14选择5删除食品信息。(