c语言课设仓库管理系统_第1页
c语言课设仓库管理系统_第2页
c语言课设仓库管理系统_第3页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、高级语言程序设计课程设计题 目:小型仓库管理系统班 级:学生学号:学生姓名:同组成员:指导老师:提交时间:成 绩:华南农业大学信息学院需求分析 系统概述:本系统用于小型仓库的信息管理,可实现仓库物品信息的增加、删除、 查询、显示功能,以及仓库的入库信息记录、出库信息记录、查询指定 物品的信息及出入库记录、显示紧缺物品信息的功能,此外还有密码功 能,可保护仓库信息的安全性。 系统运行环境: 本系统方便简捷,对系统的软、硬件要求不高,在任何系统环境下都能 很好的运行。 功能需求描述:本系统分为两大块,分别为系统管理和出入库管理。其中,系统管理包 括增加物品信息、删除物品信息、查询物品信息、显示物品

2、信息、设置 仓库密码五个功能;出入库管理包括物品出库、物品入库、库存物品查 询、显示紧缺物品四个功能。以下对各功能作一些介绍:a. 增加物品信息:新增一条物品信息,包括编号、名称、警界库存量。b. 删除物品信息:可通过物品编号或名称删除该物品的信息,物品数为0 时方可删除。c. 查询物品信息:可通过物品编号或名称来查询指定物品的信息,并显 示出来d. 显示物品信息: 该功能可以显示所有库存物品的信息, 包括物品编号 名称、警戒库存量、当前库存数。e. 设置仓库密码:为保护仓库数据不被随意窜改,本系统要求仓库管理 员设置密码,成功后可随意更改。f. 物品入库:通过物品编号或名称可实现该指定物品的

3、入库操作,记录 下该物品的入库信息,包括物品编号、入库物品数量、物品单价、提 供商、采购员五个信息。g. 物品出库:通过物品编号或名称可实现该指定物品的出库操作,记录 下该物品的出库信息,包括物品编号、出库物品数量、提货原因、提 货员四个信息。 如果申请的提货数量超过当前库存数时, 则操作失败h. 库存物品查询:通过物品编号或名称可查找该指定物品的信息,包括 编号、名称、警戒库存量、当前库存数五个信息,以及该物品所有的 入库与出库信息。i. 显示紧缺物品:可以显示出所有库存数低于警戒库存量的物品信息包 括物品编号、名称、警戒库存量、当前库存数五个信息点。【、总体设计总体开发思想:a. 系统使用

4、C语言编译,意在复习之前学习的C语言程序设计,并对以 后所学之数据结构知识作初步的认识和预习。b. 采用的主要数据结构是链表。本系统采用链表来储存一整个文件中的数据,然后通过插入结点与删除结点的方法来进行数据的更改,最后把链表内容覆盖文件原有的数据,实现数据的更改。c. 数据存贮方式包括链表、文件两种,其中链表主要用于需要更改文件 中数据时的数据暂存,实现把局部的数据进行更改的作用。文件主要 用来永久性的数据存储,以及数据的提取与写入。系统模块结构图:说明:本仓库管理系统有密码验证成功后登录,进入主菜单。在主菜单 中可实现个功能模块选择,功能模块主要有两个,一个是系统管理模块, 一个是出入库管

5、理模块。而主功能模块下又有各自的详细功能:系统管 理模块包含增加、删除、查询、显示物品信息和更改密码的功能;出入 库管理模块包含物品出库、入库,库存物品信息查询和紧缺物品信息列 表显示的功能。模块设计:密码登录系统主菜单出入库指令1增加物品信息返回指令1物品出库返回指令2删除物品信息返回指令2物品入库指令3 .查询物品信息返冋指令4 . 显示物品信息 返回 *指令 3 ( zizrrr 库存物 品信息返回查询指令5 k更改密码返回指令4f显示紧缺物品信息返回上层返回主菜单*指令5返回上返回主菜单下面对上面的流程图做详细介绍:1 密码登陆模块: 为保护仓库信息安全,本系统使用密码验证登陆。首次使

6、用本系统需要设置 密码,以后凭密码登录。密码为字符型,可以使用数字加字母、标点符号组 成。当输入两次一致的初始密码后,进入系统。2 主菜单模块:主菜单包括 4个功能键: 1系统管理、 2出入库管理、 3帮助、4退出。 进入主菜单后,根据面板上的数字指令进行操作(详细面板见后)。若输入 错误指令如:0, a, +,等字符,则系统不做任何处理,直到输入正确的指令 后,系统根据指令运行。3 系统管理菜单模块:在主菜单按指令 1 后会进入系统管理菜单,她包括 6 个功能键:增加物品、 删除物品、查询物品、显示物品、更改密码。同样,若在这时输入错误指令, 系统不会做任何处理。 输入正确指令后, 进入相应

7、的功能中, 按 6 可以返回 主菜单a. 增加物品信息:新增一条物品信息, 包括编号、名称、警界库存量。若增加的物品信息中, 发现仓库内物品的两个信息: 编号或者名称一样的话, 会打印出仓库内相 同物品的信息, 并报告保存失败。 在保存成功或保存失败后, 我们都可以 按ENTER键进行继续增加的操作,也可以按任意键结束物品的增加。增 加的物品信息会以编号为准进行升序排序,使信息有序。 注意,在输入信息时如果输入的数据有误, 如编号、警戒库存量用字母写 入,则会提示数据有误,允许在当前页面重新输入数据。b. 删除物品信息:可通过物品编号或名称删除物品的信息, 物品数为 0时可删除。 进入此功 能

8、后,我们首先选择删除方式: 1 编号或者 2 名称,若输入 3,则返回系 统管理菜单。 若按其他键则系统不做任何处理。 当选择删除的物品中库存 值为 0 时,系统会提示是否删除。选 Y 则删除,选 N 不删除。操作过后 会返回系统管理菜单。在输入信息时如果输入的数据有误, 如编号用字母写入, 则会提示数据有 误,允许在当前页面重新输入数据。c. 查询物品信息: 可通过物品编号或名称来查询指定物品的信息, 并显示出来。 同样,进入 此功能后,我们首先选择查询方式: 1 编号或者 2 名称,若输入 3,则返 回系统管理菜单。 输出的物品信息包括物品编号、 名称、警戒库存量和当 前库存量。在输入信息

9、时如果输入的数据有误, 如编号用字母写入, 则会提示数据有 误,允许在当前页面重新输入数据。d. 显示物品信息: 该功能可以一列表形式显示所有库存物品的信息, 包括物 品编号、名称、警戒库存量、当前库存数。e. 设置仓库密码: 进入此功能后, 我们需要输入两个相同的新密码, 密码格 式有数字、字母和标点符号组成,长度在 20 个字符以内。若输入的两个 新密码不一致, 则返回系统管理菜单。 若密码一致则会打印出新密码, 提 示提示使用者记住,然后返回。4. 出入库管理菜单模块:在主菜单按指令 2 后会进入系统管理菜单,她包括 5 个功能键:物品出库、 物品入库、库存物品查询、显示紧缺物品信息。同

10、样,若在这时输入错误指 令,系统不会做任何处理。输入正确指令后,进入相应的功能中。按 5 可返 回主菜单。a. 物品入库: 若仓库中无物品信息,则返回库存管理菜单。否则: 通过物品编号或名称进行指定物品的入库操作。 其中,按 1 通过编号入库, 按 2 通过名称入库, 按 3 可返回库存管理菜单, 输入其他错误的指令则系 统不作处理。开始入库操作后,输入相应的信息,包括物品编号、入库物 品数量、物品单价、提供商、采购员,系统会找出相匹配的物品信息进行 出库操作。 若存在该物品, 系统会记录下该物品的入库信息, 成功后返回 库存管理菜单,否则也会返回。 注意,在输入信息时如果输入的数据有误,如编

11、号、入库数、单价用字母 写入,则会提示数据有误,允许在当前页面重新输入数据。b. 物品出库: 若仓库中无物品信息,则返回库存管理菜单。否则: 通过物品编号或名称进行指定物品的出库操作。 其中,按 1 通过编号出库, 按 2 通过名称出库, 按 3 可返回库存管理菜单, 输入其他错误的指令则系 统不作处理。开始出入库操作后,输入相应的信息,包括物品编号、出库 物品数量、提货原因、提货员四个信息。 如果存在该物品并且申请的提货 数量在合理范围内时, 则操作成功, 系统会记录下该物品的出库信息并返 回,否则如出库数超过当前库存数,会失败并返回。 注意,在输入信息时如果输入的数据有误,如编号、出库数用

12、字母写入, 则会提示数据有误,允许在当前页面重新输入新数据。c. 库存物品查询: 若仓库中无物品信息,则返回库存管理菜单。否则: 通过物品编号或名称可查找该指定物品的信息。 其中,按 1 通过编号查询, 按 2 通过名称查询, 按 3 可返回库存管理菜单, 输入其他错误的指令则系 统不作处理。当找到匹配的物品信息时,打印物品信息包括编号、名称、 警戒库存量、当前库存数五个信息,以及该物品所有的入库与出库信息。 若物品无出库活入库信息,系统也会打印出提示。 在输入信息时如果输入的数据有误, 如编号用字母写入, 则会提示数据有 误,允许在重新输入新编号。d. 显示紧缺物品:此功能可以显示出所有库存

13、数低于警戒库存量的物品信息,包括物品编 号、名称、警戒库存量、当前库存数五个信息点,以列表的形式打印出来, 按任意键后返回库存管理菜单。5. 其他模块:主菜单上有另外两个功能键:帮助、退出。a. 帮助:在主菜单上按指令3可显示帮助信息,里面详细介绍本系统的功能、使用 方法,以及注意事项。有此可以帮助使用者更好的使用本软件, 驾驭本软 件。按任意键可以返回主菜单。b. 退出:在主菜单上按指令4可以安全的退出系统,并且显示退出页面,图见后。界面设计:界面的布局(可以采用截图)及使用操作;1. 首先进入的是首次使用系统的初密码设置功能(如图):首次使用本系统需要设置密码,密码为字符型,由数字、字母、

14、标点符号组 成。M EAKD! Debue'k200330740409S 少波,您II未设貫密码,为保护您的信息安全请设貫密码!请输入您的密码;-密码不一致,重新输入(直到输入连个一致的密码为止)当输入两次一致的初始密码后,进入系统环 E: KD I Ikbu认20(3830740409董少浊 已沱您还未设置密码,为保护您的信息安全,请设置密码!诸输入您的密码;huangwhaobo请再次输入密码=huangshaab 您输入的两液空码不一致,请重新输入! 倩输入密码;huanjshaobo 倩再次输入密码;huangshaobo2. 接下来是主菜单在这里输入1、2、3、4,可以进入相

15、应的功能中。1*系统管理2.库存管理您的密码:huan岂shaob ci已设員! 按任意键进入主菜单.I田丨田田I4.退 出II I” II | II 11 IE _ll II iLiiiiilii11 iriirII HI II II II II H II II II M H IIIIICIIII91 IIIIIIIIIIir请输入您的指令;按3进入帮助系统页面:您好,欢迎使用本小型仓库管理系统,本系统作者沟华南农业大学信息学屍 软件学院计算机科学与技术4既黄少波同学,这是他的初作,使用过程中若发现一 些不携完善的地方,喩指出、交汛联系电话便用本仓库系貌,请您技照系统的提示进行操作,这样能便

16、您更好的进行操 祚和驾驭車软件!最后,感谢您使用本软件,祝您工作顺利,生活愉快!按任意键返回.按4退出系统:3. 系统管理在主菜单按1请进入系统管理菜单按1为增加物品功能(输入示例数据,可以一条条的增加物品信息)增加完毕后返回按2为删除物品信息功能(已输入示例数据)选择丫,或N,这里选N按3进入物品查询功能(已输入示例数据)按4进入显示物品功能按5更改密码(若输入的两个新密码不一致则返回系统管理菜单)按6返回主菜单4. 出入库管理在主菜单按2进入库存管理菜单賦 EAKD! D ebuSV200S30740409®te. »e日回田1物品出库3 .库存查询*2 物品入库4.紧

17、缺物品5 返回上层II II_it_II IINNIl ir IINII li IL M II li IL l IIli ir ilIIIli ir nr按2进行物品入库操作(已输入示例数据)数据有误,返回数据无误,成功后返回按1进行物品出库操作成功按3进入库存查询查询结果:按4显示紧缺物品信息以上详细操作可以参照模块设计部分数据结构设计:主要定义了一个结构体:物品信息结构体。如下面代码:struct wupinxinxi 物品结构体int bia nhaoji ngjiekuc un lia ng,kuc un;char min gche ng20;struct wup inxinxi *n

18、 ext;/ 定义结构体包含 bianhao,mingchengjingjiekucunliang,kucun四个成员,建立单向链表结点的类型源代码中,在几个函数中使用到了构体类型指针变量,入增加物品中(代码如下):struct wup inxinxi *head=NULL;struct wupinxinxi *p0,*p1,*p2; 定义结构体类型指针变量此外所有的函数中都用到了结构体指针,用来进行文件的各种操作,包 括创建、清空、追加信息等。三、详细设计1模块功能:本系统有两大功能模块,系统管理及出入库管理。a. 系统管理可实现仓库物品信息的增加、删除、查询、显示功能和密码更改功能。b.

19、出入库管理包括仓库的入库信息记录、出库信息记录、查询指定物品的信息及出入库记录、显示紧缺物品信息的功能。c. 此外还有帮助、退出功能。帮助功能详细介绍本系统的功能、使用方法, 以及注意事项。2. 主要函数:主要有三大函数:主干函数 void zhuhanshu();系统管理函数void xitongguanli()和库存管理函数 void kucunguanli()。其中主函数ma in ()调用主干函数;系统管理函数调用子函数有:void zengjiawupin()/ 增加物品信息函数void shanchuwupin()/ 删除物品信息函数void chaxunwupin()/ 查询物品

20、信息函数 void xianshiwupin()/ 显示物品信息函数 void genggaimima()/ 更改密码函数 库存管理函数调用的子函数有:void chuku()/ 物品出库函数void ruku()/ 物品入库函数void kucunchaxun()/ 查询库存信息函数void xianshijinque()/ 显示紧缺物品函数 此外还有其他函数:int tongjiwupin()/ 统计物品个数函数int tongjichuku()/ 统计出库个数函数int tongjiruku()/ 统计入库个数函 void tuichu()/ 退出画面 void zhucaidan()/

21、 显示主菜单 void bangzhu()/ 帮助系统函数 void denglu()/ 验证密码函数 在这里展现一些函数参数及其含义:FILE *fp;定义结构体指针 struct wupinxinxi *head=NU L L ; /定义头位空 struct wupinxinxi *p0,*p1,*p2;/ 定义结构体类型指针变量 char xuanze=13;创建变量为ENTER键值,用于后面的按键功能 int bianhao1=0,hao=0,jing=0,cun=0,chukushu=0,n=0,k=0,flag=0,i;charmingcheng120='0',mi

22、ng20='0',shang20='0',yuanyin100='0',tihuoy uan20='0'/ 定义变量(一定长度)3. 主要程序清单:a.这是系统主菜单的代码:void xito nggua nli() 系统管理函数char xua nze;创建变量,用来储存键值void zengjiawupin();void shanchuwupin();void chaxunwupin();void xianshiwupin();void gen ggaimima(); 声明函数xit on ggua nlicaida n();

23、 调用菜单函数 xuanze=getch();for(;xuanze!='1'&&xuanze!='2'&&xuanze!='3'&&xuanze!='4'&&xuanze!='5'& & xua nze!='6')判断:键值是否有效xuanze=getch(); switch(xua nze)选择功能函数case '1':zengjiawupin();break;/ 进入增加物品功能 case '

24、;2':shanchuwupin();break; /进入删除物品功能 case '3':chaxunwupin();break; / 进入查询物品功能 case '4':xianshiwupin();break; /进入显示物品功能 case '5':genggaimima();break; /更改密码功能 case '6':zhuhanshu();break; /返回主函数功能 b. 这是统计物品信息条数函数的代码:int tongjiwupin()/ 统计物品个数函数FILE *fp;定义结构体指针int bianh

25、ao=0,kucun=0,jingjiekucunliang=0,n;char mingcheng20='0',tigongshang20='0'/ 定义变量 fp=fopen("wupinxinxi.dat","r");/ 打开文件 for (n=0;!feof(fp);n+)/ 计算信息条数fscanf(fp,"%d %s %d %d",&bianhao,mingcheng,&jingjiekucunliang,&kucun); n-;fclose(fp);/ 关闭文件 re

26、turn (n);/返回信息条数c. 这个事很重要的一个: 库存物品信息查询, 输出包括物品信息积极所有的 出入库信息:void kucu nchaxu n()查询库存信息函数FILE *fp;/定义结构体变量int bianhao=0,hao=0,jing=0,cun=0,rukushu=0,chukushu=0,flag=0,k=0,n=0,i,count =0;/定义变量float danjia=0;charmingcheng20='0',ming20='0',shang20='0',caigouyuan20='0',ti

27、gongshang20='0',yuanyin100='0',tihuoyuan20='0'char xua nze;创建变量,用来储存键值 system("cls");if(fp=fopen("wupinxinxi.dat","r")=NULL)/ 判断文件是否存在 ,若不存在 则新建printf("nnnnnnnnn 当前仓库无 物品信息 !nn 请按任意键返回库存管理菜 单");getch(); kucunguanli(); k=tongjiwupin();/

28、统计物品信息条数if(k=O)若无物品,则返回主函数当前仓库无请按任意键返回主菜单 ");请输入查库方式 (按 3 可返回库存1.通过编号入库2.通过名称入 printf("nnnnnnnnn 物品信息 !nn getch(); zhuhanshu();elsesystem("cls");printf("nn管理菜单 ):n 库");xuanze=getch();for(;xuanze!='1'&&xuanze!='2'&&xuanze!='3')xuan

29、ze=getch();if (xua nze='1')通过物品编号查询printf("n请输入物品编号 :");scanf("%d",&bianhao);for(;bianhao=0;)判断数据是否有误(编号不能为0或者字符), 若有误则重输scanf("%s",mingcheng);printf("n输入错误 ,请重新输入 !");printf("n请输入物品编号 :");scanf("%d",&bianhao);if (xua nze=&#

30、39;2')通过物品名称查询请输入物品名称 :");printf("n scanf("%s",mingcheng);if (xua nze='3')返回库存管理菜单 kucunguanli();system("cls");fp=fopen("wupinxinxi.dat","r");/ 打开文件 for(i=0;i<k;i+)/ 逐条读取物品信息 ,寻找匹配信息 fscanf(fp,"%d%s%d%d",&hao,ming,&ji

31、ng,&cun); if(bianhao=hao|!strcmp(mingcheng,ming)printf("nn物品编号为:d£称为:s警戒库存量为: %d 当前库存量为: %dnn",hao,ming,jing,cun);/ 找到匹配信息打 印flag=1;/ 标记fclose(fp);/ 关闭文件if(flag=0)/ 若找不到匹配信息则返回库存管理菜单printf("nnn不存在该物品 !请按任意键返回库存管理菜单 ");getch(); kucunguanli();if(fp=fopen("ruku.dat&quo

32、t;,"r")=NULL)/ 判断文件是否存在 ,若不存在则 新建fp=fopen("ruku.dat","w");fclose(fp);k=tongjiruku();/ 统计入库信息条数 if(k=0)/ 无入库信息printf("此物品尚无入库信息 !");elsefp=fopen("ruku.dat","r");/ 打开文件 for(i=0;i<k;i+)/ 逐条寻找匹配的入库信息 ,找到则打印出来 fscanf(fp,"%d%s%d%f%s%s&quo

33、t;,&hao,ming,&rukushu,&danjia,shang,caigouyua n);if(bianhao=hao|!strcmp(mingcheng,ming)printf("第%3d次入库:入库数:d单价:.2f,提供商:%s采购员:%sn",+count,rukushu,danjia,shang,caigouyuan);flag=1;/ 标记fclose(fp);if(flag=O)没有匹配的入库信息printf("此物品尚无入库信息 !"); printf("n");flag=O;初始化变量

34、count=O;/ 初始化变量 if(fp=fopen("chuku.dat","r")=NULL)/ 判断文件是否存在 ,若不存在 则新建fp=fopen("chuku.dat","w");fclose(fp);k=tongjichuku();统计出库信息条数if(k=O)没有出库信息printf("此物品尚无出库信息 !"); elsefp=fopen("chuku.dat","r");/ 打开文件 for(i=0;i<k;i+)逐条寻找匹配的出库信息,找到则打印出来 fscanf(fp,"%d%s%d%s%s",&hao,ming,&chukushu,yuanyin,tihuoyuan); if(bianhao=hao)printf("第

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论