仓库管理系统c语言程序设计分析报告.docx
《仓库管理系统c语言程序设计分析报告.docx》由会员分享,可在线阅读,更多相关《仓库管理系统c语言程序设计分析报告.docx(18页珍藏版)》请在冰豆网上搜索。
![仓库管理系统c语言程序设计分析报告.docx](https://file1.bdocx.com/fileroot1/2023-2/1/0c94cf2c-2775-418e-9a6e-9c445477a4c5/0c94cf2c-2775-418e-9a6e-9c445477a4c51.gif)
仓库管理系统c语言程序设计分析报告
仓库管理系统c语言程序设计报告
作者:
日期:
信息科学与工程学院
课程设计报告
级:
通信一班
姓名(学号):
实验项目名称:
C语言程序设计
实验室(中心):
信息科学与工程学院信息技术实验室
指导教师:
李益才
实验完成时间:
2013年6
月_^8
序号
项目
标准
评分
1
系统演示(功能)
(50%
按要求完成系统功能且界面友好容错能力强(45-50)
按要求完成系统功能界面一般有较好的容错能力
(40-44)
基本完成系统功能有一定的容错能力(35-39)
基本完成系统功能(30-34分)
未完成系统功能或他人代做或抄袭(15)
2
课程设计说明书
(50%
课程设计书各项目认真填写,具有清晰的设计思路及软件测试结果分析(45-50)
课程设计书各项目认真填写,具有较为清晰的设计思路并对软件测试结果进行了较为清晰的分析(40-44)
课程设计书各项目认真填写,设计思路正确(35-39)
课程设计书进行为较为认真的填写(30-34)
课程设计书有未完成项或各项填写不属实或他人代做或抄袭(15)
教师签字
总分
一、题目
仓库管理系统
二、功能描述
该系统将输入进系统的仓库中物品的基本信息(包括货号、名称、单价、库存数量、品牌)进行处理,可以进行:
(1)、按物品价格降序输出、按库存数量升序排列。
(2)、修改制定物品的信息。
(3)、删除指定物品的信息。
(4)、在指疋物品刖或后再插入一个物品的信息。
(5)、统计同一种品牌的数量。
三、概要设计
系统功能模块图
进入系统
四、详细设计
统计指定品牌物品的数量
1结构的定义:
数组结构体一共有两个:
链表结构体一共有一个:
structinformation
II物品信息机构
structinformation//物品信息机构
intArtnumber;
intArtnumber;
chargoodsname[20];
chargoodsname[20];
floatunitprice;
floatunitprice;
intquantity;
intquantity;
charbrand[20];
charbrand[20];
};
structinformation*next;
structMainfest
//仓库信息机构
};
structinformation*head;〃头指针
structinformationdata[Number];
intNum;
};
structMainfestgoods;
2、各个函数的具体设计思想及流程图
本系统一共九个函数:
主函数main()是一个死循环,每执行玩一个函数都要输出菜单选择,直到选择退出为止。
2.1仓库物品基本信息输入函数
对物品基本信息进行连续输入,直到所有物品信息都输入完毕,改函数用while循环函数进行连续赋值。
(1)、具体流程图如下图所示:
链表
(2)代码说明
Temp->next=head->nex
t;
数据输入;2、判断是否还要继续输入。
2.2按序输出物品信息
对物品的特定信息进行排序后在输出,可以进行按价格降序输出、按库存数量
升序输出,这两种输出可以自由选择
数组
满足大小关系
进行交换
输出,
链表
开始
选择排序元
按价格降序
按库存数量升
输入sel=1
序sel=2
Sort(sel)
T丿
排序
Outli
2.3修改指定物品的信息
对数据文件中特定信息惊醒修改,可以修改任何信息
链表
定义结构体指针,
*pf=search(),*pb=pf->ne
输入要修改的物
品货号Printf()
判断是否找到该
指定货物
■T-I
修改货物信息
输出未找到该货
Printf()scanf
2.4删除指定货物信息
对磁盘文件中的特定物品信息进行删除
数组
输入指定物品
的信息
if
goods.Num-)
链表
定义两个指向结构体的指针
pf=search(goodsnum)
输入要删除的货物
货号scanf()
查找指定货物Pf=Search
(goodsname
是否找到指定
货物
输出“未找到指
删除pf->next=pb->
定货物”
next;free(pb)
数组
2.5在指定位置插入一个物品的信息
(1)流程图
f
输入指定货物的货号
seanf()
是否找到指定货物
链表
定义三个指针
*pf,*pb,*temp
找到插入位置
Pf=search(goodsnun)
Pb=pf->next
判断是否找到指定
物品
在内存中开辟一个空
temp=()mall())
输入要插入的物品信息
scanf
else
temp->next=pb;
pf->next=temp;
前插
选择前插还是后
If(head==pf)
指定元素为头节点
后第一个元素,插入
后插
If(pb->next==NULL
f二else
-7
指定元素为最后一
temp->next=pb->next
个节点,插入
2.6统计指定品牌的库存数量
⑴流程图
数组
输入要统计的
for(i=0;iSun+=quantity
if(i==goods.Num)
i=-1;
判断是否找到品
牌的物品i!
=-1?
、是
Printf(“为找到该
输出求得的和
品牌”)
链表
structinformation*p;
P=head->next;
输入指定品牌明
Scanf“%S',name)
2・7、基本数据文件输入磁盘
将输入的数据存储到磁盘保持。
数组
用fopen()打开一个特定文件,返回值是
创立这
Fclose
链表
struct
informati
用fopen()打开一个
特定文件,返回值是否
建是立
打开文件,并使
P=head->next;
p!
=NULL
fclos
while()fwrite()
进行循环输入
e(fp)
2・8、数据文件载入
做准备。
数组
用fopen()打开一个特定文件,返回值是否
goods.Num==100
判断该文件是否已满
打印“存储空间
已满,不能再存
入”
用fread()将
文件读取出来
Feof(fp)=0?
判
断文件是否结束
是
Goods.N
Goods
存储空
Fclos
链表
FILE*fp;
structinformation*p;
用fopen()打开一个特定
文件,返回值是否
P=()mallo
c()为p分
fread()
否
-l
Feof(fp)=0?
判
p->next=h
ead->next
fread©Free(p
);
结束
五、测试结果及存在的问题
1、调试运行,选择第一项进行数据输入:
入输盘
键岀信信物物入储的入的聾數序品品插see本蓊醫品文文基聲定位定的数薯定指数数系品本改本本出123456780
息
信量
的数
息息品品
t
货号
2称
2价
h牌
库存数量
t
是否要继缜输入0是:
1否小
2、按序输出:
(1)、按物品价格降序输出
2
请选蒔拒定的选项=關排列
1
(2)、按库存数量升序输出
:
申项列序选排升定專库选套
Z请齢£
仓库物品基本数据
3、修改指定物品的信息
3
请输入要修改的货物的货号:
2
仓库物品基本数据
4、删除指定物品的信息
仓库管理系统
4
请输入要删除的货物的货号:
仓库物品基本数据
„„~~-一
5、在指定物品前或后插入一个物品的信息
(1)前插
Mj|A
请输入指定的货物的货号,t
选
t.
長衽指定贯物
嘉入要插入的货物的悟息:
货号2
名称
单价
2
品牌
2
库存数量
2
bF
:
项列序选排升的庁重定專■巧丄■-IW."■—斗■选饕
仓库物品基本数据
(2)、后插
5
请输入指定的货物的货号;
3
选择稱入位、
1-在消定煎®入
2指定贲物启®入
2
输入要插入的货物的信息:
货号
2
茗称
2
单价
2
品牌
2
库存数量
2
對旨定的选项=
2擔备*蠶卿排列
仓库物品基本数据
货物货号
6、求指定品牌的物品数量
仓库管理系统
入
输盘
犍出信信物物入储
的入的薯数序品品插本蓊警品文文基霑定位定的数曙定指数数系品本改本本出8^ss基退
自3
住量
的数息息品品
123456780
•请输入要统计数量的品牌:
丄
不足:
修改指定物品的信息和删除指定物品的信息时,如果有相同货号的物品,则无法一次性修改和删除。
改进:
预想循环查找、修改、删除,直到找不到指定货物为止。
六、课程设计心得体会
第一次做这个长度的程序设计,对我好处很多,在编写程序的过程中,清楚的找出了自身的不足,以及对课本知识掌握不熟练的地方,并在编程中对课本知识进行了较为充分的复习,包括对数组的运用、函数的调用的理解以及更重要的是原来不熟练的链表、文件的知识有了更深的了解,并能用链表进行程序的编写。
这次编程体验,让我对模块化编程有了了解,并建立了模块化编程的思想,我想这点对我来说尤为重要。
这次的编程,更加强了我对错误的改正能力,也在编程中减少了低级错误的发生,也提高了对VC++编程软件的熟练程度
总之,这次编程虽然遇到了很多困难,但是,让我受益匪浅。