版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、沈阳商品航天大学北方科技学院 课课 程程 设设 计计 任任 务务 书书 课程设计题目 库存管理程序设计库存管理程序设计 教 研 室 计算机教研室 专业 班级 学号 课程设计时间: 年 月 日至 年 月 日 课程设计的内容及要求: 主要内容主要内容 设计一个程序管理库存商品,主要实现的功能如下: 1、添加、修改、删除库存商品信息,商品信息包括:编号、名称、 类别、数量、产地等; 2、进货或售出商品后,相应的库存商品数量应该有所改变; 3、当某种商品库存少于一定数量时,应该提醒进货; 4、可以按商品名称模糊查询商品信息。 基本要求基本要求 1、系统采用 C 程序设计语言实现; 2、独立完成系统的设
2、计、编码和调试,通过指导教师当场验收; 3、交出完整的课程设计报告。 指导教师 史 俊 年 月 日 沈阳商品航天大学北方科技学院 课课 程程 设设 计计 成成 绩绩 评评 定定 单单 课 程 名 称 C C 语言综合训练语言综合训练 课程设计题目 库存管理程序设计库存管理程序设计 专业 班级 学号 答辩日期 年 月 日 指导教师(答辩组)评语: 课程设计成绩 指导教师(答辩组)签字 年 月 日 库存管理程序设计 目录 摘摘 要要 .2 2 1 1绪论绪论 .2 2 2.2. 系统分析系统分析 .3 3 2.1 功能需求 .3 2.2 数据需求 .3 2.3 性能需求 .3 3.3. 总体设计总
3、体设计 .3 3 3.1 功能模块设计 .3 3.2 系统设计方案 .4 4.4. 详细设计详细设计 .5 5 4.1 商品信息管理模块 .5 4.2 商品查询管理模块 .9 5.5. 调试与测试调试与测试 .1010 5.1 调试 .10 5.2 测试 .10 6.6. 结论结论 .1111 结束语结束语 .1111 参考文献参考文献 .1111 附录附录 1 1用户手册用户手册 .1212 附录附录 2 2源程序源程序 .1414 摘摘 要要 库存管理系统是厂家、商城、商场等的管理商品信息不可缺少的部分,利 用这个系统,可以更好地管理商品的信息。 本系统使用 C 语言开发,实现商品信息库的
4、新建,查询商品信息,修改商 品信息,可对商品的出售进货有数量的变化,当数量不足时做提醒。 本文从分析课题的题目背景、题目意义、题目要求等出发,分别从需求分 析、总体设计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程, 最后对系统的完成情况进行了总结。 关键词:库存;商品信息;数量变化; 1 1绪论绪论 随着时代的进步,社会的发展,人们的生活水平逐渐提高,平时购物的种 类越来越多,商场出售商品的种类也越来越多,各种商品的库存量在每天的销 售与进货过程中会发生不断的变化,管理起来也越来越繁琐。发库存管理系统, 可使管理商品信息变得更加简单,节省人力物力,降低成本。库存管理系统, 能实现商
5、场对商品的添加,查询,修改,删除等功能,对商品的数量进行管理, 满足商场的需求。 随着社会的发展,社会生活水平不断提高,外出出行的人们也越来越多, 伴随而来的是民航部门对商品管理和订票业务更加繁重的问题。开发商品售票 管理系统,使得国家民航部门对出行人员的信息和商品的管理问题得到了改善。 商品售票管理程序,能实现民航部门对商品信息的添加、查找、修改和删除等 功能,方便了民航部门的管理,满足了民航部门的需求。 根据课程设计任务书要求,本系统开发主要完成以下功能和性能。 1、添加、修改、删除库存商品信息,商品信息包括:编号、名称、 类别、数量、产地等; 2、进货或售出商品后,相应的库存商品数量应该
6、有所改变; 3、当某种商品库存少于一定数量时,应该提醒进货; 4、可以按商品名称模糊查询商品信息 2.2. 系统分析系统分析 2.12.1 功能需求功能需求 本系统主要是库存商品进行管理的系统。 该系统需要有添加,删除商品信息,查询商品信息,货少提醒等。 2.22.2 数据需求数据需求 需要管理的商品信息包括:商品号、商品名称、商品类别、数量和产地。 2.32.3 性能需求性能需求 安全性:本系统在设计,开发,运行各环节,都贯彻了安全性的原则。 可靠性:遵循安全性原理,来提高本系统的可靠性。 稳定性:本系统根据需要可以定义全局变量,可以使用结构体以及链表, 来确保本系统的稳定性。 响应速度;本
7、系统因应用了链表,理论上可以提高查找的速度,整体的响 应速度也会得到了提升。 3.3. 总体设计总体设计 3.13.1 功能模块设计功能模块设计 根据分析整个系统主要划分为 4 个模块,分别执行对于功能。商品信息管 理实现商品编号、名称、类别、数量、产地等的查询、添加、修改、删除等功 能。出售和进货管理可对商品在商品有数量变化时,对应变化,当商品数量少 于一定数量时,提醒数量不够。 功能模块图如图 1 所示。 库存管理系统 商品信息管理进货出售管理 商品 信息 查询 商品 信息 添加 商品 信息 删除 商品 信息 修改 图图 1 1 功能模块图功能模块图 (1)商品信息管理子模块 该模块是对商
8、品编号、名称、类别、数量、产地等信息的增加、删除和修 改。 (2)出售进货管理子模块 该模块是对商品的出售进货时,数量的随之变化,当数量少于一定数值时, 提醒数量不足。 3.23.2 系统设计方案系统设计方案 (1) 数据结构设计 typedef struct per char id10, 定义编号 name10, 定义商品名称 leibie10, 定义商品类别 chandi10;定义商品产地 int num;定义商品数量 struct per *next; per; (2) 菜单设计 本系统中的菜单有以下几种:。 1. 一级菜单:即主菜单。其中包括:1.新建;2.查询;3.修删;4.售出或
9、进货;5.退出。 2.二级菜单 a:新建菜单:包括:1、新建信息库;2、添加商品;3、返回。 b:查询菜单:包括:1、查看信息库;2、查找商品号;3、返回。 c:修删菜单:包括:1、修改商品信息;2、删除商品信息;3 返回。 d:售出或进货菜单:包括 1、售出;2、进货;3、返回。 (3) 函数设计 void menu(); 主菜单 void xinjian_menu(); 新建菜单 void chaozhao_menu(); 查找菜单 void xiugai_menu(); 修删菜单 per *cj(); 新建信息库 void print(per *head); 输出商品信息 void ch
10、azhao(per * head); 查找商品信息 per *sc(per *head); 删除商品信息 per *charu(per *head); 添加商品信息 per *xiugai(per *head); 修改商品信息 per *dp(per *head); 售出或进货 4.4. 详细设计详细设计 4.14.1 商品信息管理模块商品信息管理模块 (1)添加商品模块 先建立商品信息,定义整型变量 i 和 n 以及指针变量 p1 和 p2,在开辟新 的结点,使结点为空,输入商品编号,执行 n+,当 p1-number 不为 0 时,继 续往下输入商品信息否则 p2-next=p1。继续执行
11、 p2=p1,p2-next=null。返 回后可继续此输入,可循环重复,否则回到主函数。具体实现程序流程如图 2。 开始 开始 整型变量i,n 指针变量p1,p2 整型变量i,n 指针变量p1,p2 Head=null Head=null 开辟新结点 开辟新结点 输入商品 号 输入商品 号 n+ n+ !strcmp(p1- name,N0) !strcmp(p1- name,N0) 输入剩下的 商品信息 输入剩下的 商品信息 N=1 N=1 Head=p1 Head=p1 P2=p1 P2=p1 P2-next=null P2-next=null 输入是否 继续 输入是否 继续 i=1 i
12、=1 Return head Return head 结束 结束 Y N N Y N Y 图图 2 2 商品信息添加流程图商品信息添加流程图 (2)删除商品模块 定义整型变量 i,指针变量 p1 和 p2,输入商品号 i,判断是否有此商品(i, p1-id) != 0 p1 = p1-next, 在匹配与输入相同的商品,使(i, p1-id) = 0,则删除成功回到主函数。具 体实现程序流程如图 3 开始 开始 整型变量i 指针变量p1,p2 整型变量i 指针变量p1,p2 输入商品 号 输入商品 号 i, p1-id) != 0 p1 = p1-next p2 = p1;p1 = p1-ne
13、xt 输出删除成功 输出删除成功 图图 3 3 商品信息删除流程图商品信息删除流程图 (3)修改商品模块 定义字符型变量 na、整型变量 na1、指针变量 p1,使 p1=head,如果! Head 则信息库为空,否则输入要修改的商品,如果!P1 则商品不存在,否则进 入后不修改,按-返回,否则继续输入商品信息然后可按-号结束,返 回目录。具体实现程序流程如图 4 开始 开始 字符型变量na 整型变量na1 指针变量p1 字符型变量na 整型变量na1 指针变量p1 输入商品 号 输入商品 号 !p1 !p1 按-结束 按-结束 Return head Return head 结束 结束 Y
14、输出此商品不存 在! 输出此商品不存 在! N 输入修改商品 的信息 输入修改商品 的信息 p1=head p1=head !Head !Head Y N 图图 4 4 商品信息修改流程图商品信息修改流程图 4.24.2 商品查询管理模块商品查询管理模块 建立输出函数,定义指针 p,p1,p1=head。当 head 等于空,输出“该信息 库为空!” ,返回主函数。当 head 不等于空,输出信息库信息,再判断 p- numnext p1=p1-next return return 结束 结束 N Y P-num3 输出数量太少 请进货 N Y 图图 5 5 商品查询流程图商品查询流程图 5.
15、5. 调试调试与测试与测试 5.15.1 调试调试 调试是系统开发的一个重要的步骤。调试可分为 2 个步骤,先是运行编写 好程序找到问题,然后再解决并改正问题。 本系统在调试时,发现在判断商品数量提醒时,有时出现错误,在反复查 找后发现,在前面没有判断该商品是否存在,在改正后,程序正确运行。 5.25.2 测试测试 系统测试是系统开发的一个重要阶段,是系统保证质量的关键。如果在测 试中不认真检查,在后期维护过程中将会非常麻烦。 本系统测试数据过程如下。 先进入运行程序 输入“1” ,进入新建菜单,再输入“1”进入新建信息库。 请输入用第个 1 商品信息: 商品号:1 商品名称:三星 商品类别:
16、电子产品 数量:2 产地: 是否继续输入:(1)是 (2)否 输入“2” 。 返回到主函数。 输入“2” ,进入查看菜单。再输入“1” ,进入查看信息库,屏幕输出 1 三星 电子产品 2 1 沈阳 数量太少请进货 返回到主菜单。 输入“4” ,进入售出或进货菜单。输入“2” ,按提示输入商品号“1” , 按提示依次输入 数量:5 屏幕输出 进货成功! 返回到主菜单。 输入“2” ,进入查看菜单。再输入“1” ,进入查看信息库,屏幕输出 1 三星 电子产品 2 1 沈阳 返回到主菜单。 输入“5” ,进入退出程序。屏幕输出 BYE BYE! 退出程序。 多次运行程序后,发现各个菜单功能都可执行,
17、在输入错误商品号时,给 出该商品不存在的提示,因此,该程序无错误可正确执行。 6.6. 结论结论 本次课程设计,根据任务书要求,实现了添加、修改、删除库存商品信息, 商品信息包括:编号、名称、类别、数量、产地等,进货或售出商品后,相应 的库存商品数量应该有所改变,当某种商品库存少于一定数量时,应该提醒进 货,可以按商品名称查询商品信息,可满足商场对系统的需求。但有部分功能 还不太完善,如只可新建一次信息库,再次创建时,会将上个信息库覆盖,且 不能保存数据。 结束语结束语 通过这次的课程设计实验,让我了解了我的一些方面的不足,也提高了我 的学习能力,在通过查找资料来完成实验时,使我的知识更加的丰
18、富,培养了 我的学习兴趣。今后我要更加努力来学习。 参考文献参考文献 1 严蔚敏,吴伟国.数据结构(C 语言版).:清华大学出版社,2002.9 2潭浩强.C 语言程序设计(第三版).:清华大学出版社,2005 附录附录 1 1用户手册用户手册 (1)首先打开程序,初始页面,如图 6。 图图 6 6 登录界面登录界面 输入“1”进入新建菜单,如图 7。 图图 7 7 新建页面新建页面 主界面中输入“2”进入查询界面,如图 8 图图 8 8 查询页面查询页面 主界面中输入“3”进入订票页面,如图 9 图图 9 9 修改或删除页面修改或删除页面 主界面中输入“4”进入订票页面,如图 10 图图 1
19、010 进货或出售页面进货或出售页面 附录附录 2 2源程序源程序 主要模块源代码清单: #include #include #include #define LEN sizeof(struct per) #define PRESS_ANYKEY P(请输入任意键继续);getchar();getchar(); #define P printf typedef struct per char id10, name10, leibie10, chandi10; int num; struct per *next; per; void menu(); void xinjian_menu(); vo
20、id 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 *head); per *charu(per *head); per *xiugai(per *head); void menu() P(tt*n); P(tt* 库存信息管理系统 *n); P(tt* 1、新建 *n); P(tt* 2、查询 *n); P(tt* 3、修删 *n); P(tt*
21、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(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_
22、menu() P(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; do menu(); P(请输入序号:); scanf(%d, switch (i) case 1: xinjian_menu(); P(请输入序号:); scanf(%d, switch (i) case 1: link = cj(); continue; case 2: link = charu(link); print(link);
23、PRESS_ANYKEY continue; case 3: break; continue; case 2: chazhao_menu(); P(请输入序号:); scanf(%d, switch (i) case 1: print(link); PRESS_ANYKEY continue; case 2: chazhao(link); case 3: break; continue; case 3: xiugai_menu(); P(请输入产品编号:); scanf(%d, switch (i) case 1: link = xiugai(link); print(link); PRESS
24、_ANYKEY continue; case 2: link = sc(link); print(link); continue; case 3: break; continue; case 4: link = dp(link); continue; case 5: P(BYE BYE!n); PRESS_ANYKEY break; while (1); per *cj() int i, n = 0; per *head = NULL; per *p1 = head, *p2 = head; do p1 = (per *)malloc(sizeof(per); P(请输入用第个%d 商品信息n
25、, +n); P(商品号:); scanf(%s, if (!strcmp(p1-id, 0) break; P(商品名称:); scanf(%s, P(商品类别:); scanf(%s, P(数量:); scanf(%d, P(产地:); scanf(%s, if (n = 1) head = p1; else p2-next = p1; p2 = p1; p2-next = NULL; printf(是否继续输入:(1)是 (2)否n); scanf(%d, while (i = 1); return head; per *charu(per *head) per *p0, *p1; p1
26、 = head; p0 = (per *)malloc(sizeof(per); p0-next = NULL; P(商品号:); scanf(%s, P(商品名称:); scanf(%s, P(商品类别:); scanf(%s, P(数量:); scanf(%d, P(产地:); scanf(%s, if (!head) head = p0; return head; while (p1-next) p1 = p1-next; p1-next = p0; return head; void print(per *head) per *p; p = head; if (!head) P(tt
27、该信息库为空!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) char j5; per *p1; p1 = head; P(请输入要查询的名称:); scanf(%s, if (p1 != NULL) while (p1) if (strcmp(j, p1-name) = 0) P(%st%st%st%dt%stn, p1-id, p1-n
28、ame, 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 head; P(请输入要修改商品号:); scanf(%s, P(如果不修改,请输入“-”)n); while (p1) if (!strcmp(na, p1-id) break; p1 = p1-next; if (!p1) P(tt 此商品不存在!n); return head; P(商品名称:); scanf(%s, if (strcmp(na, -) strcpy(p1-name, na); P(商品类别:); scanf(%s, if (strcmp(na, -) strcpy(p1-leibie, na); P(数量:); scanf(%d, if (strcmp(na, -) p1-num=na1; P(产地:); scanf(%s, if (strcmp(na, -) strcpy(p1-chandi, na); return head; per *sc(per *head) char i5; per *
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电能表基础知识
- 四川省绵阳市江油市2026届第二学期综合练习(三模)初三语文试题含解析
- 包头天和酸性废水回用及磷化生产线升级技术改造项目环境影响报告表
- 江苏省宜兴市达标名校2025-2026学年初三毕业考试语文试题含解析
- 绍兴市六所名校2025-2026学年初三下学期开学质检英语试题含解析
- 2026年云南省昭通市昭阳区达标名校初三4月份模拟考试英语试题含解析
- 毕节市重点中学2026届初三下学期尖子生英语试题含解析
- 河南省驻马店市泌阳县重点达标名校2026届初三第一次联考英语试题试卷含解析
- 产后疲劳缓解方法
- 教学方法创新的课堂表达技巧
- 2026海洋出版社限公司面向社会公开招聘工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 2026年医院年度经济运营分析报告
- 2026广东中山市神湾镇神湾社区居民委员会招聘1人考试参考题库及答案解析
- 2026西藏林芝巴宜区人民检察院司法警务辅助人员招聘3人笔试备考题库及答案解析
- 档案数字化项目立项申请书
- (正式版)DB51∕T 2787-2021 《研学旅行实践活动设计规范》
- 2026年温州永嘉县国有企业面向社会公开招聘工作人员12人笔试参考题库及答案解析
- 2026四川海大橡胶集团有限公司主业子公司第一次社会招聘49人笔试备考题库及答案解析
- 2026年六安职业技术学院单招职业适应性测试题库含答案详解(能力提升)
- 2026年南京信息职业技术学院单招职业适应性测试题库带答案详解(b卷)
- 2026湖南省卫生健康委直属事业单位招聘185人笔试模拟试题及答案解析
评论
0/150
提交评论