仓库管理系统c语言程序设计报告.doc

上传人:小** 文档编号:16731947 上传时间:2020-10-22 格式:DOC 页数:23 大小:427.50KB
收藏 版权申诉 举报 下载
仓库管理系统c语言程序设计报告.doc_第1页
第1页 / 共23页
仓库管理系统c语言程序设计报告.doc_第2页
第2页 / 共23页
仓库管理系统c语言程序设计报告.doc_第3页
第3页 / 共23页
资源描述:

《仓库管理系统c语言程序设计报告.doc》由会员分享,可在线阅读,更多相关《仓库管理系统c语言程序设计报告.doc(23页珍藏版)》请在装配图网上搜索。

1、信息科学与工程学院课程设计报告班 级: 通信一班 姓名 (学号): 实验项目名称: c语言程序设计 实验室(中心):信息科学与工程学院信息技术实验室 指 导 教 师 : 李益才 实验完成时间: 2013 年 6 月 28 日序号项目标准评分1系统演示(功能)(50%)按要求完成系统功能且界面友好容错能力强(45-50)按要求完成系统功能界面一般有较好的容错能力(40-44)基本完成系统功能有一定的容错能力(35-39)基本完成系统功能(30-34分)未完成系统功能或他人代做或抄袭(15)2课程设计说明书(50%)课程设计书各项目认真填写,具有清晰的设计思路及软件测试结果分析(45-50)课程设

2、计书各项目认真填写,具有较为清晰的设计思路并对软件测试结果进行了较为清晰的分析(40-44)课程设计书各项目认真填写,设计思路正确(35-39)课程设计书进行为较为认真的填写(30-34)课程设计书有未完成项或各项填写不属实或他人代做或抄袭(15)教师签字总分一、题目 仓库管理系统二、功能描述该系统将输入进系统的仓库中物品的基本信息(包括货号、名称、单价、库存数量、品牌)进行处理,可以进行:(1)、按物品价格降序输出、按库存数量升序排列。(2)、修改制定物品的信息。(3)、删除指定物品的信息。(4)、在指定物品前或后再插入一个物品的信息。(5)、统计同一种品牌的数量。三、概要设计系统功能模块图

3、进入系统 数据按序输出修改特定物品的信息删除特定物品的信息插入物品信息统计指定品牌物品的数量数据文件载入数据文件输入磁盘物品信息输入退出系统4、 详细设计 1、结构的定义: 数组结构体一共有两个: 链表结构体一共有一个:struct information /物品信息机构 struct information /物品信息机构 int Artnumber; int Artnumber; char goodsname20; char goodsname20; float unitprice; float unitprice; int quantity; int quantity; char bra

4、nd20; char brand20; ; struct information *next; struct Mainfest /仓库信息机构 ; struct information *head; /头指针 struct information dataNumber;int Num;struct Mainfest goods; 2、各个函数的具体设计思想及流程图本系统一共九个函数:(1)void inputInformation(); /对仓库中所有物品的基本信息进行输入(2)void outputsort(); /按序输出数据(3)void modifyInformation(); /修改

5、物品信息(4)void deleteInformation(); /删除物品信息(5)void insertInformation();/插入 /插入物品信息(6)void statistics();/ 统计 /统计相同品牌的物品数量(7)void saveInfoToFile(); /文件输入到磁盘(8)void loadInfoFromFile(); /文件磁盘载入(9)void maon(); /主函数 其中第七、八个为文件函数,进行文件的存储和载入。 主函数main()是一个死循环,每执行玩一个函数都要输出菜单选择,直到选择退出为止。2.1仓库物品基本信息输入函数 对物品基本信息进行连

6、续输入,直到所有物品信息都输入完毕,改函数用while循环函数进行连续赋值。 (1)、具 体 流 程 图 如 下 图 所 示: 开始 结束 已满 ,结束break判断是否已满if(goods.Num=Number)未满,继续Printf()scanf()是否要继续输入 if(yn=0)是,继续while(1)否,退出break 链表 开始 菜单,选择输入数据函数head=()malloc();建立一个空节点head并分配内存 temp=()malloc()建立新节点temp并分配内存While(1)循环t,printf();输入物品的信息,存入新节点Temp-next=head-next;He

7、ad-next=temp;判断是否要继续输入if() 是 否 结束(2)代码说明 While语句是把数据输入到内存中,if这里有两个用途:1、用于判断是否还有空间进行数据输入;2、判断是否还要继续输入。2.2按序输出物品信息 对物品的特定信息进行排序后在输出,可以进行按价格降序输出、按库存数量升序输出,这两种输出可以自由选择 数组 开始选择要排序的元素1、2If(2)按数量升序if(1)按价格降序排序 sort()满足大小关系进行交换输出,outlist 结束 链表 开始选择排序元素按价格降序输入sel=1按库存数量升序 sel=2 Sort(sel)排序 Outlist()输出 结束 2.3

8、修改指定物品的信息 对数据文件中特定信息惊醒修改,可以修改任何信息 开始输入指定物品的信息printf()查找指定物品i=search(goodsnum)判断是否找到指定物品找到,对错误信息惊醒修改 结束 链表 开始定义结构体指针,*pf=search(),*pb=pf-next输入要修改的物品货号printf()判断是否找到该指定货物 修改货物信息Printf()scanf()输出未找到该货物 结束2.4删除指定货物信息 对磁盘文件中的特定物品信息进行删除 数组输入指定物品的信息查找指定物品找到,删除for()ai-1=aiif判断是否找到指定物品if()goods.Num-;结构体数目减一

9、 结束 链表 开始定义两个指向结构体的指针pf=search(goodsnum);pb=pf-next; pf=search(goodsnum); pb=pf-next; pf=search(goodsnum); pb=pf-next;输入要删除的货物货号scanf()查找指定货物pf=Search(goodsname)是否找到指定货物 是 否输出“未找到指定货物”删除pf-next=pb-next;free(pb) 结束2.5在指定位置插入一个物品的信息(1)流程图 数组 开始输入指定货物的货号scanf()是否找到指定货物选择前插或者后插if() 前插 后插for(j=goods.Num;

10、ji-1;j-)goods.dataj=goods.dataj-1;该货物及以后货物后移一位for(j=goods.Num;ji;j-)goods.dataj=goods.dataj-1;该货物后每一个元素后移一位插入输入要插入的物品信息 结束 链表 开始定义三个指针*pf,*pb,*temp找到插入位置Pf=search(goodsnum)Pb=pf-next判断是否找到指定物品在内存中开辟一个空节点temp=()malloc(()) 是输入要插入的物品信息scanf(“”,temp-data) 选择前插还是后插 前插 后插If(pb-next=NULLIf(head=pf) else el

11、setemp-next=pb; pf-next=temp;指定元素为头节点后第一个元素,插入temp-next=pb-next;pb-next=temp;指定元素为最后一个节点,插入 结束2.6统计指定品牌的库存数量(1) 流程图 数组 开始 输入要统计的品牌名scanf() for(i=0;inext;输入指定品牌明Scanf(“%s”,name) P!=NULL如果是同一品牌,求和sum=sum+data 是 输出和 结束2.7、基本数据文件输入磁盘将输入的数据存储到磁盘保持。 数组 开始用fopen()打开一个特定文件,返回值是否 为0 创立这个文件用fwrite()讲数据写入文件Fcl

12、ose(fp)关闭文件 结束 链表 开始struct information *p;用fopen()打开一个特定文件,返回值是否 为0 建立这个文件 是打开文件,并使p=head-next; 否 p!=NULL fclose(fp);并用while()fwrite()进行循环输入 否 结束2.8、数据文件载入从磁盘文件中讲已经保存了的数据读取到内存中,为以后的数据处理做准备。 开始 数组 用fopen()打开一个特定文件,返回值是否 为0 是输出“该文件不能被打开”goods.Num=100判断该文件是否已满 是用fread()将文件读取出来打印“存储空间已满,不能再存入” 否Feof(fp)

13、=0?判断文件是否结束Goods.Num+ 是Goods.num=100?输出”存储空间已满,不能再存储” 是 用freadj()将文件读取出来Fclose(fp) 结束 链表 开始FILE * fp;struct information * p;用fopen()打开一个特定文件,返回值是否 为0P=()malloc()为p分配内存打印“文件不能打开”用fread()将文件读取出来Feof(fp)=0?判断文件未结束 否p-next=head-next;head-next=p;P=()malloc(); 是 用fread(0,讲文件读取出来Free(p);Fclose(fp) 结束5、 测试结

14、果及存在的问题1、 调试运行,选择第一项进行数据输入:2、 按序输出:(1) 、按物品价格降序输出(2) 、按库存数量升序输出3、 修改指定物品的信息4、 删除指定物品的信息5、 在指定物品前或后插入一个物品的信息(1)前插(2)、后插6、求指定品牌的物品数量不足:修改指定物品的信息和删除指定物品的信息时,如果有相同货号的物品,则无法一次性修改和删除。改进:预想循环查找、修改、删除,直到找不到指定货物为止。6、 课程设计心得体会 第一次做这个长度的程序设计,对我好处很多,在编写程序的过程中,清楚的找出了自身的不足,以及对课本知识掌握不熟练的地方,并在编程中对课本知识进行了较为充分的复习,包括对数组的运用、函数的调用的理解以及更重要的是原来不熟练的链表、文件的知识有了更深的了解,并能用链表进行程序的编写。 这次编程体验,让我对模块化编程有了了解,并建立了模块化编程的思想,我想这点对我来说尤为重要。 这次的编程,更加强了我对错误的改正能力,也在编程中减少了低级错误的发生,也提高了对vc+编程软件的熟练程度 总之,这次编程虽然遇到了很多困难,但是,让我受益匪浅。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!