公司产品管理说明书.doc_第1页
公司产品管理说明书.doc_第2页
公司产品管理说明书.doc_第3页
公司产品管理说明书.doc_第4页
公司产品管理说明书.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实践教学实践教学 兰州理工大学兰州理工大学 计算机与通信学院 2013 年春季学期 C C 程序设计程序设计 课程设计课程设计 题 目 公司产品管理系统 专业班级 信息与计算科学 1 班 姓 名 蔡彦辉 学 号 12540132 指导教师 滕永晨 成 绩 前前 言言 近年来 随着生产规模的不断扩大 生产的产品的种类和数量也相应的增加 有关产品的各种信息量也成倍增加 面对着庞大的信息量 传统的人工方式管理 会导致公司管理上的混乱 人力与物力过多浪费 管理费用的增加 从而使管理 人员的负担过重 影响整个公司产品管理系统的运作和控制管理 因此 必须制 定一套合理 有效 规范和实用的产品管理系统 对产品资料进行集中统一的管 理 系统开发的总的设计目标是实现产品的系统化 规范化和自动化 实现对产 品资料的集中统一的管理 加大对产品的管理和调配 大大提高出货和进货的效 率 对商品的情况做到了如指掌 实现产品经济化 人性化管理 I 摘摘 要要 本 公司产品管理系统 系统以菜单方式工作 编写存放有产品信息 包 含产品名称 产品编号 生产厂家 单价 生产日期 过期日期等 并可对这些 信息进行增加和修改 可按产品名或按编号查找此产品信息 建立存放产品信息 的文件 产品信息有产品名称 产品编号等 并可对产品信息进行浏览 本管理 系统采用 C 语言实现 开发环境为 VC 可以运行在操作系统 windows98 及以上皆 可 关键词 出库 入库 查询 清单导出 II 目录目录 前 言 I 摘 要 II 目录 III 一 需求分析 1 二 总体设计 2 1 程序总统设计 2 2 数据结构 2 三 详细设计 3 1 产品入库模块 3 2 产品出库模块 3 3 产品查询模块 4 4 产品清单导出模块 8 四 系统测试 10 1 产品入库测试 10 2 产品出库测试 11 3 产品查询测试 12 4 产品清单导出测试 13 设计总结 14 参考文献 15 致 谢 16 附录 源代码 17 0 一 需求分析一 需求分析 由于产品的种类和数量的增加 公司的规模的扩大 使得产品的信息管理工 作繁重 而且手工管理效率极低 急需一个软件系统解决这些问题 为了跟上时 代潮流 规范管理 提高公司的管理水平和管理效率 为企业职工和学生提供方 便 快捷 准确的产品的入仓和储藏服务 开发一个产品信息管理系统 本系统对产品的信息进行合理的管理 让公司的管理人员便于查阅产品的信 息 对产品的名称 数量 规格 编号 生产日期和过期日期更加便于了解 1 二 总体设计二 总体设计 1 程序总体设计 本公司产品管理系统包含了 产品信息的输入 产品信息的输出 产品信息 的导出 产品信息查询 显示所有产品信息 退出系统等模块 总体结构如图 2 1 所示 主函数 产品入库模块 产品出库模块 产品查询模块 产品库存输出模块 产品清单导出模块 图 2 1 总体设计 2 数据结构 数据项名称数据项系统表示数据类型数据长度 货物编号 name number 整型 10 货物名称 name max 字符型 5 货物数量 counter 整型 1000 2 3 3 详细设计详细设计 1 产品入库模块 dlnode input dlnode L 定义入库函数 dlnode in head head in dlnode malloc sizeof dlnode 分配空间 head L printf n 请输入货物数据 n printf 编号 scanf d printf 名称 scanf s printf 数量 scanf d if L next NULL 如果只有头节点 把刚输入的 in 节点 L next in 跟在头节点后面 L prior in in next L in prior L ifempty ifempty 加 1 else 如果当前 L 的下一个节点不是头节点 while L L next head 如果输入的数大于 L number 则插到 L 的前面 if L numbernumber in next L in prior L prior L prior next in L prior in ifempty ifempty 加 1 return head 输入的编号比其它编号都小 则插到最后个节点 并首尾相连 head prior next in in prior head prior head prior in in next head ifempty ifempty 加 1 return head 3 2 出库模块 图 3 1 出库结构 dlnode output dlnode L 出库的函数 int y dlnode head L if ifempty 0 检测是否有货物输入 printf 没有货物输入系统 n getchar getchar return head while 1 printf n printf 1 按编号出库 n printf 2 按名称出库 n printf 0 返回上一层 n printf n printf 选择 0 2 scanf d switch y case 1 outnum L break 调用按编号出库函数 case 2 outname L break 调用按名称出库函数 case 0 return L 出 库 按 编 号 按 名 称 4 default printf enter error Please input 0 2 getchar getchar printf n n dlnode outnum dlnode L 按编号出库函数 int num dlnode head L printf 请输入出库货物的编号 scanf d while L L next head 如果找到就删除节点 if L number num L prior next L next L next prior L prior ifempty ifempty 减 1 printf 编号为 d 的货物成功出库 num getchar getchar return head printf 没有此编号的货物 请查看是否还有货物 n n getchar getchar return head dlnode outname dlnode L 按名称出库函数 char na 32 dlnode head L printf 请输入出库货物的名称 scanf s while L L next head 如果找到就删除节点 if strcmp L name na 0 L prior next L next L next prior L prior ifempty ifempty 减 1 printf 名称为 s 的货物成功出库 na getchar getchar 5 return head printf 没有此名称的货物 请查看是否还有货物 n n getchar getchar return head 3 产品查询模块 图 3 2 产品查询模块 void searchnum dlnode L 按编号查找的函数 int num flag 0 flag 为是否找到的标志 dlnode head L if ifempty 0 printf 没有货物被输入 n getchar getchar return printf 输入你要查找的货物编号 n scanf d while L L next head if L number num 按 编 号 按 名 称 产 品 查 询 6 flag 1 flag 为 1 时表示找到 printf 找到指定编号货物 n printf n 编号 d n L number printf 名称 s n L name printf 数量 d n n L counter if flag 0 flag 为 0 时表示没有找到 printf 没有找到指定编号货物 请查看是否还有货物 n getchar getchar void searchname dlnode L 按名称查找的函数 int flag 0 flag 为是否找到的标志 char na 32 dlnode head L if ifempty 0 printf 没有货物被输入 n getchar getchar return printf 输入你要查找的货物名称 n scanf s while L L next head if strcmp L name na 0 flag 1 flag 为 1 时表示找到 printf 找到指定名称货物 n printf n 编号 d n L number printf 名称 s n L name printf 数量 d n n L counter if flag 0 flag 为 0 时表示没有找到 printf 没有找到指定编号货物 请查看是否还有货物 n n getchar getchar 7 4 产品清单导出模块 void display dlnode L 显示货物清单 dlnode head L if ifempty 0 printf 没有货物可显示 n getchar getchar return L L next do printf n 编号 d n L number printf 名称 s n L name printf 数量 d n n L counter while L L next head getchar getchar void print dlnode L dlnode head L L L next char filename max FILE out if ifempty 0 printf 没有货物可输出 n getchar getchar return printf 请输入文件名称 scanf s filename if out fopen filename w NULL printf 打开文件失败 n getchar getchar return 8 do fprintf out 编号 d n 名称 s n 数量 d n n L number L name L counter while L L next head printf 输出成功 n getchar getchar fclose out 9 四 系统测试四 系统测试 1 产品入库测试 测试产品编号 20130705 测试产品名称 钢笔 数量 200 图 4 1 产品入库测试 10 2 产品出库测试 图 4 2 按编号出库 图 4 3 按名称出库 11 3 产品查询测试 图 4 4 按编号查询 图 4 5 按产品名称查询 12 4 产品清单导出测试 图 4 6 产品清单导出 图 4 7 导出的清单 13 设计总结设计总结 这一个星期的上机实践学习 可以说得是苦多于甜 但学到了很多很多的的 东西 同时不仅巩固了以前所学过的知识 我认为要学好 C 语言这门课程 不仅 要认真阅读课本知识 更重要的是要通过上机实践增强和巩固 C 语言知识 经过 这个星期的上机实践学习 我对 C 语言有了更进一步的认识和了解 要想学好它 要重在实践 要通过不断的上机操作才能更好地学习它 通过实践 我也发现我 的好多不足之处 首先是自己在指法上还不行 经常按错字母 通过学习也有所 改进 再有对 C 语言的一些标准库函数不太了解 还有对函数调用的正确使用不 够熟悉 还有对 C 语言中经常出现的错误也不了解 通过实践 使我在这几个方 面的认识有所提高 通过课程设计的学习 我认识到学好计算机要重视实践操作 不仅仅是学习 C 语言 还有其它的语言 以及其它的计算机方面的知识都要重在实践 所以后 在学习过程中 我会更加注视实践操作 让自己更好的学习计算机 在这个过程中 我们回顾了很多以前的东西 也发现了很多的问题 以前都 没遇见过的 收获很大 在对不同的功能代码是不一定可以完整的执行的 不过 大概都是一样的 只有一些小的细节 看着自己做的系统 自己就会又欣慰又难过 欣慰的是自己终于把它做出来 了 而且 做的还好 难过的是自己知道还有很多的不足 但是 由于认识的有 限 无法去完善 方知 这条路还很长 要坚持走下去 14 参考文献参考文献 1 严蔚敏 吴伟民 数据结构 C 语言版 北京 清华大学出版社 2007 2 张长海 C 语言程设计 M 北京 高等教育出版社 2006 3 陈建新 李志敏 数据结构实验指导与课程设计教程 北京 科学出版社 2010 4 吴玉蓉 李劲 数据结构 C 语言版 北京 中国水利水电出版社 2008 5 谭浩强 C 语言程设计 北京 清华大学出版社 2005 6 王为青 刘变红 C 语言高级编程及实例剖析 北京 人民邮电出版社 2007 15 致致 谢谢 首先要感谢滕永晨老师 在您的指导下 我们不断改进 不断完善 并且快 速完成此次的任务 其次我要感谢我的合作伙伴 因为没有他 我一个人也不 可能在这么短时间内完成此次的课设任务 再者要感谢学校的支持 我从学校的 图书馆那儿得到了很大的帮助 很多知识点以前并不是很了解 通过查询相关资 料 我掌握了一些以前并不知晓的知识 得到了很大的提升 并在这段时间里大 大的提升了自己的实践能力 将以前书本上学到的东西全部用到了实践上 能力 得到了极大的提高 16 附录 源代码附录 源代码 include include include include define max 32 int ifempty 0 标志 判断链表是无否为空 typedef struct dnode 定义双向链表结构体 int number 货物编号 char name max 货物名称 int counter 货物数量 struct dnode prior next 定义两指针 分别指向其前驱和后继 dlnode dlnode create dlnode L dlnode input dlnode L dlnode output dlnode L dlnode outnum dlnode L dlnode outname dlnode L dlnode current dlnode L void search dlnode L void print dlnode L void searchnum dlnode L void searchname dlnode L void display dlnode L void main int x dlnode L if L dlnode malloc sizeof dlnode 分配空间 printf n exit 1 create L 调用函数 创建头节点 while 1 17 主菜单 printf n printf 1 货物出库和入库 n printf 2 查找货物表 n printf 3 显示仓库货物表 n printf 4 输出到文件 n printf 0 退出 n printf n printf 选择 0 3 scanf d switch x case 2 search L break 调用查找函数 case 1 current L break 调用入库出库函数 case 3 display L break 调用显示输出函数 case 4 print L break 调用打印函数 case 0 printf n bye see you n getchar getchar exit 0 退出程序 default printf n Enter erreor please input 0 4 getchar getchar dlnode create dlnode L 创建链表头节点 printf 欢迎使用我的仓库管理系统 getchar ifempty 0 初始化头节点的值 L next NULL L prior NULL L number L counter 0 strcpy L name return L void search dlnode L 查找的主要菜单 int y 18 if ifempty 0 printf 没有输入货物 n getchar getchar return else while 1 printf n printf 1 按编号查询 n printf 2 按货物名称查询 n printf 0 返回上一层 n printf n printf 选择 0 2 scanf d switch y case 1 searchnum L break 调用按编号查找的函数 case 2 searchname L break 调用按名称查找的函数 case 0 return 返回 default printf enter error Please input 0 2 n n getchar getchar printf n n void searchnum dlnode L 按编号查找的函数 int num flag 0 flag 为是否找到的标志 dlnode head L if ifempty 0 printf 没有货物被输入 n getchar getchar return 19 printf 输入你要查找的货物编号 n scanf d while L L next head if L number num flag 1 flag 为 1 时表示找到 printf 找到指定编号货物 n printf n 编号 d n L number printf 名称 s n L name printf 数量 d n n L counter if flag 0 flag 为 0 时表示没有找到 printf 没有找到指定编号货物 请查看是否还有货物 n getchar getchar void searchname dlnode L 按名称查找的函数 int flag 0 flag 为是否找到的标志 char na 32 dlnode head L if ifempty 0 printf 没有货物被输入 n getchar getchar return printf 输入你要查找的货物名称 n scanf s while L L next head if strcmp L name na 0 flag 1 flag 为 1 时表示找到 printf 找到指定名称货物 n printf n 编号 d n L number printf 名称 s n L name printf 数量 d n n L counter 20 if flag 0 flag 为 0 时表示没有找到 printf 没有找到指定编号货物 请查看是否还有货物 n n getchar getchar dlnode current dlnode L 货物出库入库函数 int y while 1 printf n printf 1 货物入库 n printf 2 货物出库 n printf 0 返回上一层 n printf n printf 选择 0 2 scanf d switch y case 1 input L break 调用入库函数 case 2 output L break 调用出库函数 case 0 return L 返回上一层 default printf enter error Please input 0 2 getchar getchar printf n n dlnode input dlnode L 定义入库函数 dlnode in head head in dlnode malloc sizeof dlnode 分配空间 head L 21 printf n 请输入货物数据 n printf 编号 scanf d printf 名称 scanf s printf 数量 scanf d if L next NULL 如果只有头节点 把刚输入的 in 节点 L next in 跟在头节点后面 L prior in in next L in prior L ifempty ifempty 加 1 else 如果当前 L 的下一个节点不是头节点 while L L next head 如果输入的数大于 L number 则插到 L 的前面 if L numbernumber in next L in prior L prior L prior next in L prior in ifempty ifempty 加 1 return head 输入的编号比其它编号都小 则插到最后个节点 并首尾相连 head prior next in in prior head prior head prior in in next head ifempty ifempty 加 1 return head dlnode output dlnode L 出库的函数 22 int y dlnode head L if ifempty 0 检测是否有货物输入 printf 没有货物输入系统 n getchar getchar return head while 1 printf n printf 1 按编号出库 n printf 2 按名称出库 n printf 0 返回上一层 n printf n printf 选择 0 2 scanf d switch y case 1 outnum L break 调用按编号出库函数 case 2 outname L break 调用按名称出库函数 case 0 return L default printf enter error Please input 0 2 getchar getchar printf n n dlnode outnum dlnode L 按编号出库函数 int num dlnode head L printf 请输入出库货物的编号 scanf d while L L next head 如果找到就删除节点 if L number num 23 L prior next L next L

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论