C语言库存管理系统.docx

上传人:b****8 文档编号:23849758 上传时间:2023-05-21 格式:DOCX 页数:29 大小:290.94KB
下载 相关 举报
C语言库存管理系统.docx_第1页
第1页 / 共29页
C语言库存管理系统.docx_第2页
第2页 / 共29页
C语言库存管理系统.docx_第3页
第3页 / 共29页
C语言库存管理系统.docx_第4页
第4页 / 共29页
C语言库存管理系统.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

C语言库存管理系统.docx

《C语言库存管理系统.docx》由会员分享,可在线阅读,更多相关《C语言库存管理系统.docx(29页珍藏版)》请在冰豆网上搜索。

C语言库存管理系统.docx

C语言库存管理系统

 

沈阳商品航天大学北方科技学院

课程设计任务书

课程设计题目库存管理程序设计

教研室计算机教研室专业

班级学号姓名

课程设计时间:

年月日至年月日

课程设计的内容及要求:

主要内容

设计一个程序管理库存商品,主要实现的功能如下:

1、添加、修改、删除库存商品信息,商品信息包括:

编号、名称、类别、数量、产地等;

2、进货或售出商品后,相应的库存商品数量应该有所改变;

3、当某种商品库存少于一定数量时,应该提醒进货;

4、可以按商品名称模糊查询商品信息。

基本要求

1、系统采用C程序设计语言实现;

2、独立完成系统的设计、编码和调试,通过指导教师当场验收;

3、交出完整的课程设计报告。

 

指导教师史俊年月日

沈阳商品航天大学北方科技学院

课程设计成绩评定单

课程名称C语言综合训练

课程设计题目库存管理程序设计

专业班级

学号姓名答辩日期年月日

指导教师(答辩组)评语:

 

课程设计成绩

指导教师(答辩组)签字

年月日

库存管理程序设计

摘要

库存管理系统是厂家、商城、商场等的管理商品信息不可缺少的部分,利用这个系统,可以更好地管理商品的信息。

本系统使用C语言开发,实现商品信息库的新建,查询商品信息,修改商品信息,可对商品的出售进货有数量的变化,当数量不足时做提醒。

本文从分析课题的题目背景、题目意义、题目要求等出发,分别从需求分析、总体设计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程,最后对系统的完成情况进行了总结。

关键词:

库存;商品信息;数量变化;

1.绪论

随着时代的进步,社会的发展,人们的生活水平逐渐提高,平时购物的种类越来越多,商场出售商品的种类也越来越多,各种商品的库存量在每天的销售与进货过程中会发生不断的变化,管理起来也越来越繁琐。

发库存管理系统,可使管理商品信息变得更加简单,节省人力物力,降低成本。

库存管理系统,能实现商场对商品的添加,查询,修改,删除等功能,对商品的数量进行管理,满足商场的需求。

随着社会的发展,社会生活水平不断提高,外出出行的人们也越来越多,伴随而来的是民航部门对商品管理和订票业务更加繁重的问题。

开发商品售票管理系统,使得国家民航部门对出行人员的信息和商品的管理问题得到了改善。

商品售票管理程序,能实现民航部门对商品信息的添加、查找、修改和删除等功能,方便了民航部门的管理,满足了民航部门的需求。

根据课程设计任务书要求,本系统开发主要完成以下功能和性能。

1、添加、修改、删除库存商品信息,商品信息包括:

编号、名称、类别、数量、产地等;

2、进货或售出商品后,相应的库存商品数量应该有所改变;

3、当某种商品库存少于一定数量时,应该提醒进货;

4、可以按商品名称模糊查询商品信息

2.系统分析

2.1功能需求

本系统主要是库存商品进行管理的系统。

该系统需要有添加,删除商品信息,查询商品信息,货少提醒等。

2.2数据需求

需要管理的商品信息包括:

商品号、商品名称、商品类别、数量和产地。

2.3性能需求

安全性:

本系统在设计,开发,运行各环节,都贯彻了安全性的原则。

可靠性:

遵循安全性原理,来提高本系统的可靠性。

稳定性:

本系统根据需要可以定义全局变量,可以使用结构体以及链表,来确保本系统的稳定性。

响应速度;本系统因应用了链表,理论上可以提高查找的速度,整体的响应速度也会得到了提升。

3.总体设计

3.1功能模块设计

根据分析整个系统主要划分为4个模块,分别执行对于功能。

商品信息管理实现商品编号、名称、类别、数量、产地等的查询、添加、修改、删除等功能。

出售和进货管理可对商品在商品有数量变化时,对应变化,当商品数量少于一定数量时,提醒数量不够。

功能模块图如图1所示。

图1功能模块图

(1)商品信息管理子模块

该模块是对商品编号、名称、类别、数量、产地等信息的增加、删除和修改。

(2)出售进货管理子模块

该模块是对商品的出售进货时,数量的随之变化,当数量少于一定数值时,提醒数量不足。

3.2系统设计方案

(1)数据结构设计

typedefstructper

{

charid[10],定义编号

name[10],定义商品名称

leibie[10],定义商品类别

chandi[10];定义商品产地

intnum;定义商品数量

structper*next;

}per;

(2)菜单设计

本系统中的菜单有以下几种:

1.一级菜单:

即主菜单。

其中包括:

1.新建;2.查询;3.修删;4.售出或进货;5.退出。

2.二级菜单

a:

新建菜单:

包括:

1、新建信息库;2、添加商品;3、返回。

b:

查询菜单:

包括:

1、查看信息库;2、查找商品号;3、返回。

c:

修删菜单:

包括:

1、修改商品信息;2、删除商品信息;3返回。

d:

售出或进货菜单:

包括1、售出;2、进货;3、返回。

(3)函数设计

voidmenu();主菜单

voidxinjian_menu();新建菜单

voidchaozhao_menu();查找菜单

voidxiugai_menu();修删菜单

per*cj();新建信息库

voidprint(per*head);输出商品信息

voidchazhao(per*head);查找商品信息

per*sc(per*head);删除商品信息

per*charu(per*head);添加商品信息

per*xiugai(per*head);修改商品信息

per*dp(per*head);售出或进货

4.详细设计

4.1商品信息管理模块

(1)添加商品模块

先建立商品信息,定义整型变量i和n以及指针变量p1和p2,在开辟新的结点,使结点为空,输入商品编号,执行n++,当p1->number不为0时,继续往下输入商品信息否则p2->next=p1。

继续执行p2=p1,p2->next=null。

返回后可继续此输入,可循环重复,否则回到主函数。

具体实现程序流程如图2。

图2商品信息添加流程图

(2)删除商品模块

定义整型变量i,指针变量p1和p2,输入商品号i,判断是否有此商品((i,p1->id)!

=0&&p1->next!

=NULL),如果有,将p2=p1;p1=p1->next,在匹配与输入相同的商品,使(i,p1->id)==0,则删除成功回到主函数。

具体实现程序流程如图3

图3商品信息删除流程图

(3)修改商品模块

定义字符型变量na、整型变量na1、指针变量p1,使p1=head,如果!

Head则信息库为空,否则输入要修改的商品,如果!

P1则商品不存在,否则进入后不修改,按‘-’返回,否则继续输入商品信息然后可按‘-’号结束,返回目录。

具体实现程序流程如图4

图4商品信息修改流程图

 

4.2商品查询管理模块

建立输出函数,定义指针p,p1,p1=head。

当head等于空,输出“该信息库为空”,返回主函数。

当head不等于空,输出信息库信息,再判断p->num<3,如果是则输出“数量太少请进货”返回主函数。

具体实现程序流程如图3。

图5商品查询流程图

5.调试与测试

5.1调试

调试是系统开发的一个重要的步骤。

调试可分为2个步骤,先是运行编写好程序找到问题,然后再解决并改正问题。

本系统在调试时,发现在判断商品数量提醒时,有时出现错误,在反复查找后发现,在前面没有判断该商品是否存在,在改正后,程序正确运行。

5.2测试

系统测试是系统开发的一个重要阶段,是系统保证质量的关键。

如果在测试中不认真检查,在后期维护过程中将会非常麻烦。

本系统测试数据过程如下。

先进入运行程序

输入“1”,进入新建菜单,再输入“1”进入新建信息库。

请输入用第个1商品信息:

商品号:

1

商品名称:

三星

商品类别:

电子产品

数量:

2

产地:

沈阳

是否继续输入:

(1)是

(2)否输入“2”。

返回到主函数。

输入“2”,进入查看菜单。

再输入“1”,进入查看信息库,屏幕输出

1三星电子产品21沈阳数量太少请进货

返回到主菜单。

输入“4”,进入售出或进货菜单。

输入“2”,按提示输入商品号“1”,按提示依次输入

数量:

5

屏幕输出

进货成功

返回到主菜单。

输入“2”,进入查看菜单。

再输入“1”,进入查看信息库,屏幕输出

1三星电子产品21沈阳

返回到主菜单。

输入“5”,进入退出程序。

屏幕输出

BYEBYE

退出程序。

多次运行程序后,发现各个菜单功能都可执行,在输入错误商品号时,给出该商品不存在的提示,因此,该程序无错误可正确执行。

6.结论

本次课程设计,根据任务书要求,实现了添加、修改、删除库存商品信息,商品信息包括:

编号、名称、类别、数量、产地等,进货或售出商品后,相应的库存商品数量应该有所改变,当某种商品库存少于一定数量时,应该提醒进货,可以按商品名称查询商品信息,可满足商场对系统的需求。

但有部分功能还不太完善,如只可新建一次信息库,再次创建时,会将上个信息库覆盖,且不能保存数据。

结束语

通过这次的课程设计实验,让我了解了我的一些方面的不足,也提高了我的学习能力,在通过查找资料来完成实验时,使我的知识更加的丰富,培养了我的学习兴趣。

今后我要更加努力来学习。

参考文献

[1]严蔚敏,吴伟国.数据结构(C语言版).北京:

清华大学出版社,2002.9

[2]潭浩强.C语言程序设计(第三版).北京:

清华大学出版社,2005

 

附录1-用户手册

(1)首先打开程序,初始页面,如图6。

图6登录界面

输入“1”进入新建菜单,如图7。

图7新建页面

主界面中输入“2”进入查询界面,如图8

图8查询页面

主界面中输入“3”进入订票页面,如图9

图9修改或删除页面

主界面中输入“4”进入订票页面,如图10

图10进货或出售页面

 

附录2-源程序

主要模块源代码清单:

#include

#include

#include

#defineLENsizeof(structper)

#definePRESS_ANYKEYP("请输入任意键继续……");getchar();getchar();

#definePprintf

typedefstructper

{

charid[10],name[10],leibie[10],chandi[10];

intnum;

structper*next;

}per;

voidmenu();

voidxinjian_menu();

voidchaozhao_menu();

voidxiugai_menu();

voidshou_menu();

voidprint(per*head);

voidchazhao(per*head);

per*dp(per*head);

per*cj();

per*sc(per*head);

per*charu(per*head);

per*xiugai(per*head);

voidmenu()

{

P("\t\t***************************************\n");

P("\t\t*库存信息管理系统*\n");

P("\t\t*1、新建*\n");

P("\t\t*2、查询*\n");

P("\t\t*3、修删*\n");

P("\t\t*4、售出或进货*\n");

P("\t\t*5、退出*\n");

P("\t\t***************************************\n");

}

voidxinjian_menu()

{

P("\t\t<<<<<<<<<<<<<<新建>>>>>>>>>>>>>>>\n");

P("\t\t1、新建信息库\n");

P("\t\t2、添加商品\n");

P("\t\t3、返回\n");

P("\t\t<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>\n");

}

voidchazhao_menu()

{

P("\t\t<<<<<<<<<<<<<<查看>>>>>>>>>>>>>>>\n");

P("\t\t1、查看信息库\n");

P("\t\t2、查找商品号\n");

P("\t\t3、返回\n");

P("\t\t<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>\n");

}

voidxiugai_menu()

{

P("\t\t<<<<<<<<<<<<修改或删除>>>>>>>>>>>>\n");

P("\t\t1、修改商品信息\n");

P("\t\t2、删除商品信息\n");

P("\t\t3、返回\n");

P("\t\t<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>\n");

}

voidshou_menu()

{

P("\t\t<<<<<<<<<<<<进货或出售>>>>>>>>>>>>\n");

P("\t\t1、出售\n");

P("\t\t2、进货\n");

P("\t\t3、返回\n");

P("\t\t<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>\n");

}

voidmain()

{

per*head=NULL;

per*link=head;

registerinti;

do

{

menu();

P("请输入序号:

");

scanf("%d",&i);

switch(i)

{

case1:

xinjian_menu();

P("请输入序号:

");

scanf("%d",&i);

switch(i)

{

case1:

link=cj();

continue;

case2:

link=charu(link);

print(link);PRESS_ANYKEY

continue;

case3:

break;

}continue;

case2:

chazhao_menu();

P("请输入序号:

");

scanf("%d",&i);

switch(i)

{

case1:

print(link);

PRESS_ANYKEY

continue;

case2:

chazhao(link);

case3:

break;

}continue;

case3:

xiugai_menu();

P("请输入产品编号:

");

scanf("%d",&i);

switch(i)

{

case1:

link=xiugai(link);

print(link);PRESS_ANYKEY

continue;

case2:

link=sc(link);

print(link);

continue;

case3:

break;

}continue;

case4:

link=dp(link);

continue;

case5:

P("BYEBYE!

\n");

PRESS_ANYKEY

}break;

}while

(1);

}

per*cj()

{

inti,n=0;

per*head=NULL;

per*p1=head,*p2=head;

do

{

p1=(per*)malloc(sizeof(per));

P("请输入用第个%d商品信息\n",++n);

P("商品号:

");

scanf("%s",&p1->id);

if(!

strcmp(p1->id,"0"))

break;

P("商品名称:

");

scanf("%s",&p1->name);

P("商品类别:

");

scanf("%s",&p1->leibie);

P("数量:

");

scanf("%d",&p1->num);

P("产地:

");

scanf("%s",&p1->chandi);

if(n==1)

head=p1;

else

p2->next=p1;

p2=p1;

p2->next=NULL;

printf("是否继续输入:

(1)是

(2)否\n");

scanf("%d",&i);

}while(i==1);

returnhead;

}

per*charu(per*head)

{

per*p0,*p1;

p1=head;

p0=(per*)malloc(sizeof(per));

p0->next=NULL;

P("商品号:

");

scanf("%s",&p0->id);

P("商品名称:

");

scanf("%s",&p0->name);

P("商品类别:

");

scanf("%s",&p0->leibie);

P("数量:

");

scanf("%d",&p0->num);

P("产地:

");

scanf("%s",&p0->chandi);

if(!

head)

{

head=p0;

returnhead;

}

while(p1->next)

p1=p1->next;

p1->next=p0;

returnhead;

}

voidprint(per*head)

{

per*p;

p=head;

if(!

head)

{

P("\t\t该信息库为空\n");

return;

}

P("编号\t名称\t类别\t数量\t产地\t提醒\n");

while(p)

{

P("%s\t%s\t%s\t%d\t%s\t",p->id,p->name,p->leibie,p->num,p->chandi);

if(p->num<3)

P("数量太少请进货\n");

else

P("\n");

p=p->next;

}

}

voidchazhao(per*head)

{

charj[5];

per*p1;

p1=head;

P("请输入要查询的名称:

");

scanf("%s",&j);

if(p1!

=NULL)

{

while(p1)

{

if(strcmp(j,p1->name)==0)

{

P("%s\t%s\t%s\t%d\t%s\t\n",p1->id,p1->name,p1->leibie,p1->num,p1->chandi);

}

p1=p1->next;

}

}

P("编号\t名称\t类别\t数量\t产地\n");

}

per*xiugai(per*head)

{

charna[5];

intna1;

per*p1;

p1=head;

if(!

head)

{

P("\t\t该信息库为空\n");

returnhead;

}

P("请输入要修改商品号:

");

scanf("%s",&na);

P("(如果不修改,请输入“-”)\n");

while(p1)

{

if(!

strcmp(na,p1->id))

break;

p1=p1->next;

}

if(!

p1)

{

P("\t\t此商品不存在\n");

returnhead;

}

P("商品名称:

");

scanf("%s",&na);

if(strcmp(na,"-"))

strcpy(p1->name,na);

P("商品类别:

");

scanf("%s",&na);

if(strcmp(na,"-"))

strcpy(p1->leibie,na);

P("数量:

");

scanf("%d",&na1);

if(strcmp(na,"-"))

p1->num=na1;

P("产地:

");

scanf("%s",&na);

if(strcmp(na,"-"))

strcpy(p1->chandi,na);

returnhead;

}

per*sc(per*head)

{

chari[5];

per*p1,*p2;

p1=p2=head;

if(head==NULL)

{

P("\t\t该信息库为空\n");

return(head);

}

P("请输入要删除序号:

");

scanf("%s",i);

while

(1)

{

p1=head;

while(strcmp(i,p1->id)!

=0&&p1->next!

=NULL)

{

p2=p1;

p1=p1->next;

}

if(strcmp(i,p1->id)==0)

{

if(p1==head)

head=p1->next;

elsep2->next=p1->next;P("\t\t删除成功\n");PRESS_ANYKEY;

}

elseP("\t\t此产品不存在\n");break;

}return(head);

}

per*dp(per*head)

{

charna[5];

intyu1,i;

per*p1;

p1=head;

shou_menu();

P("请输入序号:

");

scanf("%d",&i);

switch(i)

{

case1:

{

if

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1