课程设计仓库管理系统.docx
《课程设计仓库管理系统.docx》由会员分享,可在线阅读,更多相关《课程设计仓库管理系统.docx(16页珍藏版)》请在冰点文库上搜索。
![课程设计仓库管理系统.docx](https://file1.bingdoc.com/fileroot1/2023-6/8/9158ca8b-630f-4721-92ee-9608cec73750/9158ca8b-630f-4721-92ee-9608cec737501.gif)
课程设计仓库管理系统
摘要
为了方便仓库工作人员的工作,制作仓库管理系统程序来强化仓库管理。
仓储在企业的整个供应链中起着至关重要的作用,如果不能保证正确的进货和库存控制及发货,将会导致管理费用的增加,服务质量难以得到保证,从而影响企业的竞争力。
传统简单、静态的仓储管理已无法保证企业各种资源的高效利用。
如今的仓库作业和库存控制作业已十分复杂化多样化,仅靠人工记忆和手工录入,不但费时费力,而且容易出错,给企业带来巨大损失。
系统可以实现信息多次追加入录、信息显示、删除信息、修改信息、查询信息、价格升序等基本功能,这些功能模块都用函数的形式来实现。
学生信息保存在文件中,需要时可以随时从文件中读取出来。
方便用户随时可查询。
进行仓库管理。
仓库管理系统是通过入库业务、出库业务、仓库调拨、库存调拨和虚仓管理等功能,综合批次管理、物料对应、库存盘点、质检管理、虚仓管理和即时库存管理等功能综合运用的管理系统,有效控制并跟踪仓库业务的物流和成本管理全过程,实现完善的企业仓储信息管理。
该系统可以独立执行库存操作,与其他系统的单据和凭证等结合使用,可提供更为完整全面的企业业务流程和财务管理信息。
关键词:
数据管理,多级审核管理,业务资料联查
第一章系统目标
仓库管理应用程序
系统可以实现信息多次追加入录、信息显示、删除信息、修改信息、查询信息、价格升序等基本功能,这些功能模块都用函数的形式来实现。
学生信息保存在文件中,需要时可以随时从文件中读取出来。
方便用户随时可查询。
进行仓库管理。
第二章系统分析
明确用户的需求,如操作界面需求,系统功能需求,数据的具体流程等。
开始运行时界面如下:
你可以根据所对应的信息提示进行操作便可对其进行数据的记录与查询。
第三章系统设计
第四章系统实现
给出主函数和每个算法的实现代码。
#include
#include
#include
#include
#include
#defineSIZE100
typedefstruct{
charname[10];
charfam[10];
intpay;
intnum;}Store;
typedefstructnode{
Storeelem;
structnode*next;}In;
In*head=NULL;
voidappendInfo();
voidList();
voidmenu(void);
In*Init();
voidStart();
voidInsert();
voidDel();
voidrenew();
voidWsave();
voidRead();
voidSortUp();
voidPreFile();
intmain(){
charselect;
PreFile();
menu();
while((select=toupper(getch()))!
='0'){
system("cls");
switch(select)
{
case'1':
{
Start();system("pause");menu();
break;}
case'2':
{
appendInfo();system("pause");menu();
break;}
case'3':
{
Insert();system("pause");menu();
break;}
case'4':
{
Del();system("pause");menu();
break;}
case'5':
{
renew();system("pause");menu();
break;}
case'6':
{
List();system("pause");menu();
break;}
case'7':
{
SortUp();system("pause");menu();
break;}
case'W':
{
Wsave();
system("pause");
menu();
break;}
case'R':
{
Read();
system("pause");
menu();
break;}
default:
printf("Inputerror!
\n");
system("pause");
menu();
break;}}
return0;}
In*Init(){
In*L;
L=(In*)malloc(sizeof(In));
L->next=NULL;
returnL;}
voidappendInfo(){
inti,j;
In*p,*s;
A1:
printf("请输入要存放的记录数:
");
scanf("%d",&j);
if(j<=0){
printf("Inputerror!
\n");
gotoA1;}
if(head==NULL){
p=Init();
head=p;}
else{
p=head->next;
while(p->next!
=NULL)
p=p->next;}
for(i=0;is=Init();
printf("名称品牌单价数量\n");
scanf("%s",&s->elem.name);
scanf("%s",&s->elem.fam);
scanf("%d",&s->elem.pay);
scanf("%d",&s->elem.num);
p->next=s;
p=s;}}
voidList(){
In*p;
if(head==NULL)
{
printf("Noneofinformationaboutproducts.\n");
return;}
else
p=head->next;
printf("名称品牌单价数量\n");
while(p!
=NULL)
{
printf("%s\t%s\t%d\t%d\n",p->elem.name,p->elem.fam,p->elem.pay,p->elem.num);
p=p->next;}}
voidmenu(){
system("cls");
printf("|--------------------------------------|\n");
printf("|---------------家电仓库管理----------------|\n");
printf("|请输入选项编号|\n");
printf("|--------------------------------------|\n");
printf("|1--数据初始化|\n");
printf("|2--创建数据表|\n");
printf("|3--数据插入|\n");
printf("|4--数据删除|\n");
printf("|5--数据更新|\n");
printf("|6--数据查询|\n");
printf("|7--单价升序|\n");
printf("|w--数据保存|\n");
printf("|r--数据读出|\n");
printf("|0--系统退出(exit)|\n");
printf("|--------------------------------------|\n");
printf("请输入你的选择:
");}
voidStart(){
charcom;
printf("你想清空所有资料吗?
(Y/N):
");
fflush(stdin);
com=getchar();
if(com=='Y'||com=='y'){
printf("已经初始化了、、、\n");
head=NULL;
return;}
elseprintf("资料仍在、、、\n");
return;}
voidInsert(){
In*pi,*p;
charstr[10];
printf("请问要在哪个学生后面插入(输入姓名):
");
fflush(stdin);
gets(str);
pi=Init();
printf("名称品牌单价数量\n");
scanf("%s",&pi->elem.name);
scanf("%s",&pi->elem.fam);
scanf("%d",&pi->elem.pay);
scanf("%d",&pi->elem.num);
if(head==NULL){
printf("前面没有数据,默认接在表头。
\n");
p=Init();
head=p;
p->next=pi;}
else{
p=head->next;
while((strcmp(p->elem.name,str)!
=0)&&p->next!
=NULL)
p=p->next;
if(p->next!
=NULL){
pi->next=p->next;
p->next=pi;}
elsep->next=pi;}}
voidDel(){
In*pi,*p,*s;
charstr[10];
if(head==NULL){
printf("没有商品资料。
\n");
return;}
printf("请输入要删除产品的名称:
");
fflush(stdin);
gets(str);
p=head->next;
while((strcmp(p->elem.name,str)!
=0)&&p->next!
=NULL){
pi=p;
p=p->next;}
if(strcmp(p->elem.name,str)==0){
printf("所删除的记录为:
\n");
printf("%s\t%s\t%d\t%d\n",p->elem.name,p->elem.fam,p->elem.pay,p->elem.num);
if(p==head->next){
s=Init();
head=s;
s->next=p->next;}
else
pi->next=p->next;
free(p);}
elseprintf("找不到相应的商品资料。
\n");}
voidrenew(){
In*pi,*p,*s;
charstr[10];
if(head==NULL){
printf("没有商品资料。
\n");
return;}
List();
printf("请输入要更新产品的名称:
");
fflush(stdin);
gets(str);
p=head->next;
while((strcmp(p->elem.name,str)!
=0)&&p->next!
=NULL){
pi=p;
p=p->next;}
if(strcmp(p->elem.name,str)==0){
printf("所要更新的记录为:
\n");
printf("%s\t%s\t%d\t%d\n",p->elem.name,p->elem.fam,p->elem.pay,p->elem.num);
printf("品牌单价数量\n");
scanf("%s",&p->elem.fam);
scanf("%d",&p->elem.pay);
scanf("%d",&p->elem.num);
printf("更新后的记录为:
\n");
printf("%s\t%s\t%d\t%d\n",p->elem.name,p->elem.fam,p->elem.pay,p->elem.num);}
elseprintf("找不到相应的商品资料。
\n");}
voidWsave(){
FILE*fp;
In*p;
if(head==NULL){
printf("你还未有资料。
");
return;}
if((fp=fopen("store.dat","wb"))==NULL)
printf("Cannotopenfile!
\n");
else{
for(p=head->next;p!
=NULL;p=p->next)
if(fwrite(p,sizeof(In),1,fp)!
=1)
printf("Filewriteerror!
\n");}
printf("\t\t\t保存成功。
\n\n");
fclose(fp);}
voidRead(){
In*p;
FILE*fp;
if(head==NULL){
printf("你还未有资料。
");
return;}
if((fp=fopen("store.dat","rb"))==NULL){
printf("CannotOpen.");
return;}
for(p=head->next;p!
=NULL;p=p->next){
p=Init();
fread(p,sizeof(In),1,fp);
printf("%s\t%s\t%d\t%d\n",p->elem.name,p->elem.fam,p->elem.pay,p->elem.num);}
printf("\n\t\t\t读取成功\n");
fclose(fp);}
voidSortUp(){
In*p1,*p2,*p3;
p3=(In*)malloc(sizeof(In));
if(head==NULL){
printf("没有记录,无法排序。
");
return;}
for(p1=head->next;p1->next!
=NULL;p1=p1->next)
for(p2=p1->next;p2!
=NULL;p2=p2->next)
if(p1->elem.pay>p2->elem.pay){
p3->elem=p1->elem;
p1->elem=p2->elem;
p2->elem=p3->elem;}
printf("\n已经排序好了。
\n");
List();}
voidPreFile(){
intFlag=0;
In*he,*p,*q;
FILE*fp;
if((fp=fopen("store.dat","ab+"))==NULL){
printf("Openfileerror!
\n");
exit(0);}
he=Init();
q=he;
p=Init();
he->next=p;
for(;fread(p,sizeof(In),1,fp)!
=0;p=Init()){
he->next=p;
he=p;
p->next=NULL;
Flag=1;}
if(Flag)
head=q;
elsehead=NULL;
fclose(fp);}
第五章系统测试
模拟一组数据,通过多次运行,测试系统的每一个功能,给出测试运行结果
例如:
1.先输入:
6就会读出原本已保存的文件的记录。
2.按任意键后,就会弹出原有界面。
3.输入:
3后按提示做插入操作。
4.再按任意键后,会弹出原有界面。
5.再输入:
6后界面就变为如下:
6.再输入:
7后界面就变为
7.再输入:
2,即再在后面添加数据。
8.再输入:
6后界面就变为如下:
即添加到了数据后面。
这也已经默认了添加时是接在原有文件的后面。
9.再输入:
w或W时,
10.关闭界面,重新运行时。
输入:
6或R或r时,运行结果为:
第六章参考文献
作者,参考文献名称,出版社,年代
杨升,数据结构,厦门出版社,2009
谭浩强C程序设计清华大学出版社