C语言库存管理系统

上传人:仙*** 文档编号:38142532 上传时间:2021-11-05 格式:DOC 页数:29 大小:1.02MB
收藏 版权申诉 举报 下载
C语言库存管理系统_第1页
第1页 / 共29页
C语言库存管理系统_第2页
第2页 / 共29页
C语言库存管理系统_第3页
第3页 / 共29页
资源描述:

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

1、 沈阳商品航天大学北方科技学院 课课 程程 设设 计计 任任 务务 书书课程设计题目 库存管理程序设计库存管理程序设计 教 研 室 计算机教研室 专业 班级 学号 姓名 课程设计时间: 年 月 日至 年 月 日课程设计的内容及要求:主要内容主要内容设计一个程序管理库存商品,主要实现的功能如下:1、添加、修改、删除库存商品信息,商品信息包括:编号、名称、类别、数量、产地等;2、进货或售出商品后,相应的库存商品数量应该有所改变;3、当某种商品库存少于一定数量时,应该提醒进货;4、可以按商品名称模糊查询商品信息。基本要求基本要求1、系统采用 C 程序设计语言实现;2、独立完成系统的设计、编码和调试,

2、通过指导教师当场验收;3、交出完整的课程设计报告。指导教师 史 俊 年 月 日I沈阳商品航天大学北方科技学院 课课 程程 设设 计计 成成 绩绩 评评 定定 单单课 程 名 称 C C 语言综合训练语言综合训练 课程设计题目 库存管理程序设计库存管理程序设计 专业 班级 学号 姓名 答辩日期 年 月 日指导教师(答辩组)评语:课程设计成绩 指导教师(答辩组)签字 年 月 日II库存管理程序设计目录摘摘 要要 .21绪论绪论 .22. 系统分析系统分析 .32.1 功能需求 .32.2 数据需求.32.3 性能需求 .33. 总体设计总体设计 .33.1 功能模块设计.33.2 系统设计方案.4

3、4. 详细设计详细设计 .54.1 商品信息管理模块.54.2 商品查询管理模块.95. 调试与测试调试与测试 .105.1 调试 .105.2 测试 .106. 结论结论 .11结束语结束语 .11参考文献参考文献 .11附录附录 1用户手册用户手册 .12附录附录 2源程序源程序 .14库存管理程序设计3摘摘 要要库存管理系统是厂家、商城、商场等的管理商品信息不可缺少的部分,利用这个系统,可以更好地管理商品的信息。本系统使用 C 语言开发,实现商品信息库的新建,查询商品信息,修改商品信息,可对商品的出售进货有数量的变化,当数量不足时做提醒。本文从分析课题的题目背景、题目意义、题目要求等出发

4、,分别从需求分析、总体设计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程,最后对系统的完成情况进行了总结。关键词:库存;商品信息;数量变化;1绪论绪论随着时代的进步,社会的发展,人们的生活水平逐渐提高,平时购物的种类越来越多,商场出售商品的种类也越来越多,各种商品的库存量在每天的销售与进货过程中会发生不断的变化,管理起来也越来越繁琐。发库存管理系统,可使管理商品信息变得更加简单,节省人力物力,降低成本。库存管理系统,能实现商场对商品的添加,查询,修改,删除等功能,对商品的数量进行管理,满足商场的需求。随着社会的发展,社会生活水平不断提高,外出出行的人们也越来越多,伴随而来的是民航部门

5、对商品管理和订票业务更加繁重的问题。开发商品售票管理系统,使得国家民航部门对出行人员的信息和商品的管理问题得到了改善。商品售票管理程序,能实现民航部门对商品信息的添加、查找、修改和删除等功能,方便了民航部门的管理,满足了民航部门的需求。根据课程设计任务书要求,本系统开发主要完成以下功能和性能。1、添加、修改、删除库存商品信息,商品信息包括:编号、名称、类别、数量、产地等;2、进货或售出商品后,相应的库存商品数量应该有所改变;3、当某种商品库存少于一定数量时,应该提醒进货;4、可以按商品名称模糊查询商品信息42. 系统分析系统分析2.1 功能需求功能需求本系统主要是库存商品进行管理的系统。该系统

6、需要有添加,删除商品信息,查询商品信息,货少提醒等。2.2 数据需求数据需求需要管理的商品信息包括:商品号、商品名称、商品类别、数量和产地。2.3 性能需求性能需求安全性:本系统在设计,开发,运行各环节,都贯彻了安全性的原则。可靠性:遵循安全性原理,来提高本系统的可靠性。稳定性:本系统根据需要可以定义全局变量,可以使用结构体以及链表,来确保本系统的稳定性。响应速度;本系统因应用了链表,理论上可以提高查找的速度,整体的响应速度也会得到了提升。 3. 总体设计总体设计3.1 功能模块设计功能模块设计根据分析整个系统主要划分为 4 个模块,分别执行对于功能。商品信息管理实现商品编号、名称、类别、数量

7、、产地等的查询、添加、修改、删除等功能。出售和进货管理可对商品在商品有数量变化时,对应变化,当商品数量少于一定数量时,提醒数量不够。功能模块图如图 1 所示。5库存管理系统商品信息管理进货出售管理商品信息查询商品信息添加商品信息删除商品信息修改图图 1 功能模块图功能模块图(1)商品信息管理子模块该模块是对商品编号、名称、类别、数量、产地等信息的增加、删除和修改。(2)出售进货管理子模块该模块是对商品的出售进货时,数量的随之变化,当数量少于一定数值时,提醒数量不足。3.2 系统设计方案系统设计方案(1) 数据结构设计typedef struct per char id10, 定义编号 name

8、10, 定义商品名称 leibie10, 定义商品类别 chandi10;定义商品产地6int num;定义商品数量struct per *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) 函数设计void menu(); 主

9、菜单void xinjian_menu(); 新建菜单void chaozhao_menu(); 查找菜单void xiugai_menu(); 修删菜单per *cj(); 新建信息库void print(per *head); 输出商品信息 void chazhao(per * head); 查找商品信息 per *sc(per *head); 删除商品信息 per *charu(per *head); 添加商品信息 per *xiugai(per *head); 修改商品信息 per *dp(per *head); 售出或进货4. 详细设计详细设计4.1 商品信息管理模块商品信息管理模块

10、(1)添加商品模块先建立商品信息,定义整型变量 i 和 n 以及指针变量 p1 和 p2,在开辟新的结点,使结点为空,输入商品编号,执行 n+,当 p1-number 不为 0 时,继7续往下输入商品信息否则 p2-next=p1。继续执行 p2=p1,p2-next=null。返回后可继续此输入,可循环重复,否则回到主函数。具体实现程序流程如图2。开始开始整型变量i,n指针变量p1,p2整型变量i,n指针变量p1,p2Head=nullHead=null开辟新结点开辟新结点输入商品号输入商品号n+n+!strcmp(p1-name,N0)!strcmp(p1-name,N0)输入剩下的商品信

11、息输入剩下的商品信息N=1N=1Head=p1Head=p1P2=p1P2=p1P2-next=nullP2-next=null输入是否继续输入是否继续i=1i=1Return headReturn head结束结束YNNYNY图图 2 商品信息添加流程图商品信息添加流程图(2)删除商品模块定义整型变量 i,指针变量 p1 和 p2,输入商品号 i,判断是否有此商品(i, p1-id) != 0 & p1-next != NULL),如果有,将 p2 = p1;p1 = p1-next,8在匹配与输入相同的商品,使(i, p1-id) = 0,则删除成功回到主函数。具体实现程序流程如图 3开始

12、开始整型变量i指针变量p1,p2整型变量i指针变量p1,p2输入商品号输入商品号i, p1-id) != 0 & p1-next != NULLi, p1-id) != 0 & p1-next != NULLi, p1-id) = 0i, p1-id) = 0p1 = headp1 = headhead = p1-nexthead = p1-nextp2-next = p1-nextp2-next = p1-nextReturn headReturn head结束结束NY输出此商品不存在!输出此商品不存在!YNp2 = p1;p1 = p1-nextp2 = p1;p1 = p1-next输出

13、删除成功输出删除成功图图 3 商品信息删除流程图商品信息删除流程图(3)修改商品模块定义字符型变量 na、整型变量 na1、指针变量 p1,使 p1=head,如果!Head 则信息库为空,否则输入要修改的商品,如果!P1 则商品不存在,否则进入后不修改,按-返回,否则继续输入商品信息然后可按-号结束,返回目录。具体实现程序流程如图 49开始开始字符型变量na整型变量na1指针变量p1字符型变量na整型变量na1指针变量p1输入商品号输入商品号!p1!p1按-结束按-结束Return headReturn head结束结束Y输出此商品不存在!输出此商品不存在!N输入修改商品的信息输入修改商品的

14、信息p1=headp1=head!Head!HeadYN图图 4 商品信息修改流程图商品信息修改流程图104.2 商品查询管理模块商品查询管理模块建立输出函数,定义指针 p,p1,p1=head。当 head 等于空,输出“该信息库为空!” ,返回主函数。当 head 不等于空,输出信息库信息,再判断 p-numnextp1=p1-nextreturnreturn结束结束NYP-num3输出数量太少请进货NY图图 5 5 商品查询流程图商品查询流程图115. 调试调试与测试与测试5.1 调试调试调试是系统开发的一个重要的步骤。调试可分为 2 个步骤,先是运行编写好程序找到问题,然后再解决并改正

15、问题。本系统在调试时,发现在判断商品数量提醒时,有时出现错误,在反复查找后发现,在前面没有判断该商品是否存在,在改正后,程序正确运行。5.2 测试测试系统测试是系统开发的一个重要阶段,是系统保证质量的关键。如果在测试中不认真检查,在后期维护过程中将会非常麻烦。本系统测试数据过程如下。先进入运行程序输入“1” ,进入新建菜单,再输入“1”进入新建信息库。请输入用第个 1 商品信息:商品号:1商品名称:三星商品类别:电子产品数量:2产地:沈阳是否继续输入:(1)是 (2)否 输入“2” 。返回到主函数。 输入“2” ,进入查看菜单。再输入“1” ,进入查看信息库,屏幕输出 1 三星 电子产品 2

16、1 沈阳 数量太少请进货 返回到主菜单。输入“4” ,进入售出或进货菜单。输入“2” ,按提示输入商品号“1” ,按提示依次输入数量:5屏幕输出 进货成功!12返回到主菜单。输入“2” ,进入查看菜单。再输入“1” ,进入查看信息库,屏幕输出 1 三星 电子产品 2 1 沈阳 返回到主菜单。输入“5” ,进入退出程序。屏幕输出 BYE BYE!退出程序。多次运行程序后,发现各个菜单功能都可执行,在输入错误商品号时,给出该商品不存在的提示,因此,该程序无错误可正确执行。6. 结论结论本次课程设计,根据任务书要求,实现了添加、修改、删除库存商品信息,商品信息包括:编号、名称、类别、数量、产地等,进

17、货或售出商品后,相应的库存商品数量应该有所改变,当某种商品库存少于一定数量时,应该提醒进货,可以按商品名称查询商品信息,可满足商场对系统的需求。但有部分功能还不太完善,如只可新建一次信息库,再次创建时,会将上个信息库覆盖,且不能保存数据。结束语结束语通过这次的课程设计实验,让我了解了我的一些方面的不足,也提高了我的学习能力,在通过查找资料来完成实验时,使我的知识更加的丰富,培养了我的学习兴趣。今后我要更加努力来学习。参考文献参考文献1 严蔚敏,吴伟国.数据结构(C 语言版).北京:清华大学出版社,2002.9 2潭浩强.C 语言程序设计(第三版).北京:清华大学出版社,200513附录附录 1

18、用户手册用户手册(1)首先打开程序,初始页面,如图 6。图图 6 登录界面登录界面输入“1”进入新建菜单,如图 7。14图图 7 新建页面新建页面 主界面中输入“2”进入查询界面,如图 8图图 8 查询页面查询页面主界面中输入“3”进入订票页面,如图 9图图 9 修改或删除页面修改或删除页面主界面中输入“4”进入订票页面,如图 10图图 10 进货或出售页面进货或出售页面15附录附录 2源程序源程序 主要模块源代码清单:#include #include #include #define LEN sizeof(struct per)#define PRESS_ANYKEY P(请输入任意键继续

19、);getchar();getchar();#define P printftypedef struct perchar id10, name10, leibie10, chandi10;int num;struct per *next; per;void menu();void xinjian_menu();void chaozhao_menu();void xiugai_menu();void shou_menu();void print(per *head);void chazhao(per * head);per *dp(per *head);per *cj();per *sc(per

20、 *head);per *charu(per *head);per *xiugai(per *head);void menu()P(tt*n);P(tt* 库存信息管理系统 *n);P(tt* 1、新建 *n);16P(tt* 2、查询 *n);P(tt* 3、修删 *n);P(tt* 4、售出或进货 *n);P(tt* 5、退出 *n);P(tt*n);void xinjian_menu()P(ttn);P(tt 1、新建信息库 n);P(tt 2、添加商品 n);P(tt 3、返回 n);P(ttn);void chazhao_menu()P(ttn);P(tt 1、查看信息库 n);P(

21、tt 2、查找商品号 n);P(tt 3、返回 n);P(ttn);void xiugai_menu()P(ttn);P(tt 1、修改商品信息 n);P(tt 2、删除商品信息 n);P(tt 3、返回 n);P(ttn);void shou_menu()17P(ttn);P(tt 1、出售 n);P(tt 2、进货 n);P(tt 3、返回 n);P(ttn);void main()per *head = NULL;per *link = head;register int i;domenu();P(请输入序号:);scanf(%d, &i);switch (i)case 1:xinjia

22、n_menu();P(请输入序号:);scanf(%d, &i);switch (i)case 1:link = cj();continue;case 2:link = charu(link);print(link); PRESS_ANYKEYcontinue;case 3:break;18continue;case 2:chazhao_menu();P(请输入序号:);scanf(%d, &i);switch (i)case 1:print(link);PRESS_ANYKEYcontinue;case 2:chazhao(link);case 3:break;continue;case 3

23、:xiugai_menu();P(请输入产品编号:);scanf(%d, &i);switch (i)case 1:link = xiugai(link);print(link); PRESS_ANYKEYcontinue;case 2:link = sc(link);print(link);continue;case 3:break;continue;19case 4:link = dp(link);continue;case 5:P(BYE BYE!n);PRESS_ANYKEYbreak; while (1);per *cj()int i, n = 0;per *head = NULL;

24、per *p1 = head, *p2 = head;dop1 = (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;20elsep2-next = p1;p2 = p1;p2-

25、next = NULL;printf(是否继续输入:(1)是 (2)否n);scanf(%d, &i); while (i = 1);return head;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, &p

26、0-chandi);if (!head)head = p0;return head;while (p1-next)p1 = p1-next;p1-next = p0;21return head;void print(per *head)per *p;p = head;if (!head)P(tt 该信息库为空!n);return;P(编号t 名称t 类别t 数量t 产地t 提醒n);while (p)P(%st%st%st%dt%st, p-id, p-name, p-leibie, p-num, p-chandi);if (p-num next;void chazhao(per * head

27、)char j5;per *p1;p1 = head;P(请输入要查询的名称:);scanf(%s, &j);if (p1 != NULL)22while (p1)if (strcmp(j, p1-name) = 0)P(%st%st%st%dt%stn, p1-id, p1-name, p1-leibie, p1-num, p1-chandi);p1 = p1-next;P(编号t 名称t 类别t 数量t 产地n);per *xiugai(per *head)char na5;int na1;per *p1;p1 = head;if (!head)P(tt 该信息库为空!n);return

28、head;P(请输入要修改商品号:);scanf(%s, &na);P(如果不修改,请输入“-”)n);while (p1)if (!strcmp(na, p1-id)break;p1 = p1-next;23if (!p1)P(tt 此商品不存在!n);return head;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

29、, -)p1-num=na1;P(产地:);scanf(%s, &na);if (strcmp(na, -)strcpy(p1-chandi, na);return head;per *sc(per *head)char i5;per *p1, *p2;p1 = p2 = head;if (head = NULL)P(tt 该信息库为空!n);24return(head);P(请输入要删除序号:);scanf(%s, i);while (1)p1 = head;while (strcmp(i, p1-id) != 0 & p1-next != NULL)p2 = p1;p1 = p1-next

30、;if (strcmp(i, p1-id) = 0)if (p1 = head)head = p1-next;else p2-next = p1-next; P(tt 删除成功!n); PRESS_ANYKEY;else P(tt 此产品不存在!n); break;return(head);per *dp(per *head)char na5;int yu1, i;per *p1;p1 = head;shou_menu();P(请输入序号:);scanf(%d, &i);switch (i)25case 1:if (!head)P(tt 该信息库为空!n);return NULL;P(请输入要

31、定的商品号:);scanf(%s, &na);while (p1)if (!strcmp(na, p1-id)break;p1 = p1-next;if (!p1)P(tt 此商品不存在!n);return head;P(请输入要售出商品数量:);scanf(%d, &yu1);if (yu1 num = yu1)p1-num = p1-num - yu1;P(tt 出售成功!n);elseP(商品数量不足);return head;26case 2:if (!head)P(tt 该信息库为空!n);return NULL;P(请输入要定的商品号:);scanf(%s, &na);while (p1)if (!strcmp(na, p1-id)break;p1 = p1-next;if (!p1)P(tt 此商品不存在!n);return head;P(请输入要进货商品数量:);scanf(%d, &yu1);if (yu1 num = p1-num + yu1;P(tt 进货成功!n);return head;2728完成日期:2015 年 4 月 21 日

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