《高级语言程序设计》课程设计题目:班级:学生学号:学生姓名:同组成员:指导老师:提交时间:成绩:华南农业大学信息学院小型仓库管理系统一、需求分析⑴系统概述:本系统用于小型仓库的信息管理,可实现仓库物品信息的增加、删除、查询、显示功能,以及仓库的入库信息记录、出库信息记录、查询指定物品的信息及出入库记录、显示紧缺物品信息的功能,此外还有密码功能,可保护仓库信息的安全性。⑵系统运行环境:本系统方便简捷,对系统的软、硬件要求不高,在任何系统环境下都能很好的运行。⑶功能需求描述:本系统分为两大块,分别为系统管理和出入库管理。其中,系统管理包括增加物品信息、删除物品信息、查询物品信息、显示物品信息、设置仓库密码五个功能;出入库管理包括物品出库、物品入库、库存物品查询、显示紧缺物品四个功能。以下对各功能作一些介绍:a.增加物品信息:新增一条物品信息,包括编号、名称、警界库存量。b.删除物品信息:可通过物品编号或名称删除该物品的信息,物品数为0时方可删除。c.查询物品信息:可通过物品编号或名称来查询指定物品的信息,并显示出来d.显示物品信息:该功能可以显示所有库存物品的信息,包括物品编号、名称、警戒库存量、当前库存数。e.设置仓库密码:为保护仓库数据不被随意窜改,本系统要求仓库管理员设置密码,成功后可随意更改。f.物品入库:通过物品编号或名称可实现该指定物品的入库操作,记录下该物品的入库信息,包括物品编号、入库物品数量、物品单价、提供商、采购员五个信息。g.物品出库:通过物品编号或名称可实现该指定物品的出库操作,记录下该物品的出库信息,包括物品编号、出库物品数量、提货原因、提货员四个信息。如果申请的提货数量超过当前库存数时,则操作失败。h.库存物品查询:通过物品编号或名称可查找该指定物品的信息,包括编号、名称、警戒库存量、当前库存数五个信息,以及该物品所有的入库与出库信息。i.显示紧缺物品:可以显示出所有库存数低于警戒库存量的物品信息包括物品编号、名称、警戒库存量、当前库存数五个信息点。二、总体设计⑴总体开发思想:a.系统使用C语言编译,意在复习之前学习的C语言程序设计,并对以后所学之数据结构知识作初步的认识和预习。b.采用的主要数据结构是链表。本系统采用链表来储存一整个文件中的数据,然后通过插入结点与删除结点的方法来进行数据的更改,最后把链表内容覆盖文件原有的数据,实现数据的更改。c.数据存贮方式包括链表、文件两种,其中链表主要用于需要更改文件中数据时的数据暂存,实现把局部的数据进行更改的作用。文件主要用来永久性的数据存储,以及数据的提取与写入。⑵系统模块结构图:说明:本仓库管理系统有密码验证成功后登录,进入主菜单。在主菜单中可实现个功能模块选择,功能模块主要有两个,一个是系统管理模块,一个是出入库管理模块。而主功能模块下又有各自的详细功能:系统管理模块包含增加、删除、查询、显示物品信息和更改密码的功能;出入库管理模块包含物品出库、入库,库存物品信息查询和紧缺物品信息列表显示的功能。增加物品删除物品显示物品更改密码查询物品紧缺物品库存查询物品出库物品入库⑶模块设计:指令1返回指令1返回指令2返回指令2返回指令3返回指令3返回指令4返回指令5返回指令4返回指令6返回主菜单指令5返回主菜单密码登录主菜单系统管理菜单增加物品信息删除物品信息库存物品信息查询物品入库物品出库查询物品信息显示紧缺物品信息更改密码显示物品信息出入库管理菜单返回上层返回上层下面对上面的流程图做详细介绍:1.密码登陆模块:为保护仓库信息安全,本系统使用密码验证登陆。首次使用本系统需要设置密码,以后凭密码登录。密码为字符型,可以使用数字加字母、标点符号组成。当输入两次一致的初始密码后,进入系统。2.主菜单模块:主菜单包括4个功能键:1系统管理、2出入库管理、3帮助、4退出。进入主菜单后,根据面板上的数字指令进行操作(详细面板见后)。若输入错误指令如:0,a,+,等字符,则系统不做任何处理,直到输入正确的指令后,系统根据指令运行。3.系统管理菜单模块:在主菜单按指令1后会进入系统管理菜单,她包括6个功能键:增加物品、删除物品、查询物品、显示物品、更改密码。同样,若在这时输入错误指令,系统不会做任何处理。输入正确指令后,进入相应的功能中,按6可以返回主菜单a.增加物品信息:新增一条物品信息,包括编号、名称、警界库存量。若增加的物品信息中,发现仓库内物品的两个信息:编号或者名称一样的话,会打印出仓库内相同物品的信息,并报告保存失败。在保存成功或保存失败后,我们都可以按ENTER键进行继续增加的操作,也可以按任意键结束物品的增加。增加的物品信息会以编号为准进行升序排序,使信息有序。注意,在输入信息时如果输入的数据有误,如编号、警戒库存量用字母写入,则会提示数据有误,允许在当前页面重新输入数据。b.删除物品信息:可通过物品编号或名称删除物品的信息,物品数为0时可删除。进入此功能后,我们首先选择删除方式:1编号或者2名称,若输入3,则返回系统管理菜单。若按其他键则系统不做任何处理。当选择删除的物品中库存值为0时,系统会提示是否删除。选Y则删除,选N不删除。操作过后会返回系统管理菜单。在输入信息时如果输入的数据有误,如编号用字母写入,则会提示数据有误,允许在当前页面重新输入数据。c.查询物品信息:可通过物品编号或名称来查询指定物品的信息,并显示出来。同样,进入此功能后,我们首先选择查询方式:1编号或者2名称,若输入3,则返回系统管理菜单。输出的物品信息包括物品编号、名称、警戒库存量和当前库存量。在输入信息时如果输入的数据有误,如编号用字母写入,则会提示数据有误,允许在当前页面重新输入数据。d.显示物品信息:该功能可以一列表形式显示所有库存物品的信息,包括物品编号、名称、警戒库存量、当前库存数。e.设置仓库密码:进入此功能后,我们需要输入两个相同的新密码,密码格式有数字、字母和标点符号组成,长度在20个字符以内。若输入的两个新密码不一致,则返回系统管理菜单。若密码一致则会打印出新密码,提示提示使用者记住,然后返回。4.出入库管理菜单模块:在主菜单按指令2后会进入系统管理菜单,她包括5个功能键:物品出库、物品入库、库存物品查询、显示紧缺物品信息。同样,若在这时输入错误指令,系统不会做任何处理。输入正确指令后,进入相应的功能中。按5可返回主菜单。a.物品入库:若仓库中无物品信息,则返回库存管理菜单。否则:通过物品编号或名称进行指定物品的入库操作。其中,按1通过编号入库,按2通过名称入库,按3可返回库存管理菜单,输入其他错误的指令则系统不作处理。开始入库操作后,输入相应的信息,包括物品编号、入库物品数量、物品单价、提供商、采购员,系统会找出相匹配的物品信息进行出库操作。若存在该物品,系统会记录下该物品的入库信息,成功后返回库存管理菜单,否则也会返回。注意,在输入信息时如果输入的数据有误,如编号、入库数、单价用字母写入,则会提示数据有误,允许在当前页面重新输入数据。b.物品出库:若仓库中无物品信息,则返回库存管理菜单。否则:通过物品编号或名称进行指定物品的出库操作。其中,按1通过编号出库,按2通过名称出库,按3可返回库存管理菜单,输入其他错误的指令则系统不作处理。开始出入库操作后,输入相应的信息,包括物品编号、出库物品数量、提货原因、提货员四个信息。如果存在该物品并且申请的提货数量在合理范围内时,则操作成功,系统会记录下该物品的出库信息并返回,否则如出库数超过当前库存数,会失败并返回。注意,在输入信息时如果输入的数据有误,如编号、出库数用字母写入,则会提示数据有误,允许在当前页面重新输入新数据。c.库存物品查询:若仓库中无物品信息,则返回库存管理菜单。否则:通过物品编号或名称可查找该指定物品的信息。其中,按1通过编号查询,按2通过名称查询,按3可返回库存管理菜单,输入其他错误的指令则系统不作处理。当找到匹配的物品信息时,打印物品信息包括编号、名称、警戒库存量、当前库存数五个信息,以及该物品所有的入库与出库信息。若物品无出库活入库信息,系统也会打印出提示。在输入信息时如果输入的数据有误,如编号用字母写入,则会提示数据有误,允许在重新输入新编号。d.显示紧缺物品:此功能可以显示出所有库存数低于警戒库存量的物品信息,包括物品编号、名称、警戒库存量、当前库存数五个信息点,以列表的形式打印出来,按任意键后返回库存管理菜单。5.其他模块:主菜单上有另外两个功能键:帮助、退出。a.帮助:在主菜单上按指令3可显示帮助信息,里面详细介绍本系统的功能、使用方法,以及注意事项。有此可以帮助使用者更好的使用本软件,驾驭本软件。按任意键可以返回主菜单。b.退出:在主菜单上按指令4可以安全的退出系统,并且显示退出页面,图见后。⑷界面设计:界面的布局(可以采用截图)及使用操作;1.首先进入的是首次使用系统的初密码设置功能(如图):首次使用本系统需要设置密码,密码为字符型,由数字、字母、标点符号组成。密码不一致,重新输入(直到输入连个一致的密码为止)当输入两次一致的初始密码后,进入系统。2.接下来是主菜单在这里输入1、2、3、4,可以进入相应的功能中。按3进入帮助系统页面:按4退出系统:3.系统管理在主菜单按1请进入系统管理菜单按1为增加物品功能(输入示例数据,可以一条条的增加物品信息)增加完毕后返回按2为删除物品信息功能(已输入示例数据)选择Y,或N,这里选N按3进入物品查询功能(已输入示例数据)按4进入显示物品功能按5更改密码(若输入的两个新密码不一致则返回系统管理菜单)按6返回主菜单。4.出入库管理在主菜单按2进入库存管理菜单按2进行物品入库操作(已输入示例数据)数据有误,返回数据无误,成功后返回。按1进行物品出库操作成功按3进入库存查询查询结果:按4显示紧缺物品信息以上详细操作可以参照模块设计部分。⑸数据结构设计:主要定义了一个结构体:物品信息结构体。如下面代码:structwupinxinxi//物品结构体{intbianhao,jingjiekucunliang,kucun;charmingcheng[20];structwupinxinxi*next;};//定义结构体包含bianhao,mingcheng,jingjiekucunliang,kucun四个成员,建立单向链表结点的类型源代码中,在几个函数中使用到了构体类型指针变量,入增加物品中(代码如下):structwupinxinxi*head=NULL;structwupinxinxi*p0,*p1,*p2;//定义结构体类型指针变量此外所有的函数中都用到了结构体指针,用来进行文件的各种操作,包括创建、清空、追加信息等。三、详细设计1.模块功能:本系统有两大功能模块,系统管理及出入库管理。a.系统管理可实现仓库物品信息的增加、删除、查询、显示功能和密码更改功能。b.出入库管理包括仓库的入库信息记录、出库信息记录、查询指定物品的信息及出入库记录、显示紧缺物品信息的功能。c.此外还有帮助、退出功能。帮助功能详细介绍本系统的功能、使用方法,以及注意事项。2.主要函数:主要有三大函数:主干函数voidzhuhanshu();系统管理函数voidxitongguanli()和库存管理函数voidkucunguanli()。其中主函数main()调用主干函数;系统管理函数调用子函数有:voidzengjiawupin()//增加物品信息函数voidshanchuwupin()//删除物品信息函数voidchaxunwupin()//查询物品信息函数voidxianshiwupin()//显示物品信息函数voidgenggaimima()//更改密码函数库存管理函数调用的子函数有:voidchuku()//物品出库函数voidruku()//物品入库函数voidkucunchaxun()//查询库存信息函数voidxianshijinque()//显示紧缺物品函数此外还有其他函数:inttongjiwupin()//统计物品个数函数inttongjich