仓库管理系统c语言程序设计报告_第1页
仓库管理系统c语言程序设计报告_第2页
仓库管理系统c语言程序设计报告_第3页
仓库管理系统c语言程序设计报告_第4页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

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

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

3、数量。三、概要设计系统功能模块图进入系统物数修删插统数数退品据改除入计据据出信按特特物指文文系息序定定品定件件统输输物物信品输载入出品品息牌入入的的物磁信信品盘息息的数量四、详细设计.精品文档1、结构的定义 :数组结构体一共有两个:链表结构体一共有一个:struct information/物品信息机构struct information/ 物品信息机构int Artnumber;int Artnumber;char goodsname20;char goodsname20;float unitprice;float unitprice;int quantity;int quantity;ch

4、ar brand20;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)、具体流程图如下图所示:开始判断是否已满if(goods.Num=未满,继续已满,结束Printf () scanfbreak是否要继续输入 if (yn=0)是,继续 while( 1)否,退出 break结束链表开始.While (1)循环是精品文档菜单,选择输入数据函数head=()malloc(); 建立一个空节点 head 并分配内存temp=()malloc() 建立新节点 temp 并分配内存t,printf(); 输入物品的信息,存入新节点Temp->next=h

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

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

9、到,删除 for()ifai-1=aigoods.Num- ; 结构体数目减一结束链表开始定义两个指向结构体的指针pf=search(goodsnum);pb=pf->next;输入要删除的货物货号 scanf()查找指定货物pf=Search( goodsname)是是否找到指定否货物输出“未找到指定删除 pf->next=pb->货物”next;free(pb).结束精品文档2.5 在指定位置插入一个物品的信息( 1)流程图前插for(j=goods.Num;j>i-1;j-)goods.dataj=goods.dataj-1; 该货物及以后货物后移一位数组开始输入

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

11、t=NULLelsetemp->next=pb ;指定元素为头节点指定元素为最后一temp->next=pb->next;pf->next=temp;后第一个元素,插入个节点,插入pb->next=temp;结束.2.6 统计指定品牌的库存数量(1) 流程图数组开始输入要统计的品牌名 scanf()for(i=0;i<goods.Num;i+)循环求和Sun+=quantityif(i=goods.Num)i=-1;判断是否找到品牌的物品 i!=-1?是printf("%dn",sum);输出求得的和结束链表开始精品文档Printf (“

12、为找到该品牌”).精品文档struct information *p;P=head->next;输入指定品牌明Scanf(“ %s” ,name)P!=NULL是如果是同一品牌, 求和 sum=sum+data输出和结束2.7、基本数据文件输入磁盘将输入的数据存储到磁盘保持。数组开始用 fopen()打开一个特定文件,返回值是否为 0创立这个文件用 fwrite ()讲数据写入文件.精品文档Fclose( fp)关闭文件结束链表开始struct information *p;用 fopen()打开一个特定文件,返回值是否为 0建立是这个文件否打开文件,并使p=head->next;

13、p!=NULLfclose(fp);并用 while()fwrite()否进行循环输入.精品文档结束2.8、数据文件载入从磁盘文件中讲已经保存了的数据读取到内存中,为以后的数据处理做准备。数组开始用 fopen()打开一个特定文件, 返回值是否是输出“该文件不能被打开”是为 0goods.Num=100判断该文件是否已满打印“存储空间否已满,不能再存入”用 fread()将文件读取出来Feof(fp )=0?判断文件是否结束是Goods.Num+Goods.num=100?.打印“文件不能打开”精品文档是输出 ”存储空间已满,不能再存储”用 freadj() 将文件读取出Fclose(fp)结

14、束链表开始FILE * fp;struct information * p;用 fopen()打开一个特定文件,返回值是否为 0P=()malloc() 为 p 分配内存用 fread()将文件读取出来.精品文档否F? 判 断eof(fp)=0文件未结束是p->next=head->next;head->next=p;P=()malloc();用 fread(0,讲文件读取出来Free(p);Fclose(fp)结束五、 测试结果及存在的问题1、调试运行,选择第一项进行数据输入:.精品文档2、按序输出:(1)、按物品价格降序输出(2)、按库存数量升序输出.精品文档3、修改指定物品的信息4、删除指定物品的信息.精品文档5、在指定物品前或后插入一个物品的信息(1)前插(2)、后插.精品文档6、求指定品牌的物品数量.精品文档不足:修改指定物品的信息和删除指定物品的信息时,如果有相同货号的物品,则无法一次性修改和删除。改进:预想循环查找、修改、删除,直到找不到指定货物为止。六、课程设计心得体会第一次做这个长度的程序设计,对我好处很多,在编写程序的过程中,清楚的找出了自身的不足, 以

温馨提示

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

评论

0/150

提交评论