




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档库存物品信息管理1、 设计目的: 利用数据结构课程的相关知识完成一个具有一定难度的综合设计题目,利用C/C+语言进行程序设计,并规范地完成课程设计报告。通过课程设计,巩固和加深对线性表、栈、队列、字符串、树、图、查找、排序等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解决综合性实际问题的基本能力。2、 设计内容和要求 : 、要求物品出库、入库信息管理,浏览、修改物品信息;、物品信息按名称和代码存放,在程序出错时自动返回主页面、可以按物品名称物品代码来查询物品信息,即在主菜单中增加查询功能选项,输入代码或名称即可显示;、可以修改、删除某库存物品信息。二、 运行环境(软、硬件环境)软件环境:Vc6.0编程软件运行平台: Win32 硬 件: 普通个人PC机三、 算法设计的思想1、输入物品信息函数:Add(Link l)基本思想: 根据物品代码(code)来输入物品信息,如果代码已存在,则按ENTER键返回主页面;如果代码不存在,则继续输入物品名称、物品数量、物品等级;若继续输入,就直接输入代码等信息,若返回上一级,就按“0”键,调用main(),返回主界面。 2、物品出库函数:Del(Link l)基本思想: 根据输入的代码或名称,如果不存在该物品,就输出“不存在该物品”;然后输出是用代码出库或者名称出库,在选择操作后,输出该物品对应的信息,若输入“0”,则调用main(),返回主界面。3、查看库存物品信息函数 :Qur(Link l) 基本思想:根据输入的信息判断有无该商品信息,如果没有该信息,则输出“你输入的信息有误”,有该物品,则输出该物品对饮的代码、名称、数量等信息,按enter键返回主界面。4、删除物品信息函数:Del(Link l)基本思想:根据用户键入的选择,如果没有该物品信息,则输出没有改物品;调用该函数Del(Link l),如果存在该物品,则输出该物品及信息已成功修改,然后用户键入任意键返回主界面。5、物品信息修改函数:Modify(Link l) 基本思想:根据用户键入的信息,判断有无该物品,若有,则继续进行。调用输出函数printc(),然后依次键入新的物品信息,在输出物品信息已成功修改然后用户键入任意键返回主界面。四、 算法的流程图开始算法流程:用户进入物品库存管理用户进入物品进库系统用户进入查看物品信息系统用户进入物品信息出库系统用户进入修改物品信息系统用户进入浏览物品信息系统用户退出物品库存管理系统结束五、 源代码/物品库存管理系统 制作人:胡华 张义江 魏尹 尹亮 朱翀 #include#include#include#includeint shoudsave=0;struct item/物品信息定义char code10;/物品编码char name20;/物品名称int num; /商品数量int level;/物品等级item;typedef struct nodestruct item data;struct node * next;Node,*Link;/定义为链表void menu()/页面显示函数system(cls);/清屏函数printf(*物品库存管理*n);printf( n); printf(n 物品入库管理ntn 物品出库管理n);printf(n 浏览库内物品信息ntn 修改物品信息n);printf(n 保存物品信息ntn 退出库存管理n);printf( n);cout*endl;printf(n 请选择操作:);void printstart()printf(-n);void Wrong()/错误处理函数printf(输入错误!n);getchar();getchar();menu(); return;void Nofind()printf(没有找到该物品!n);void printc()/本函数用于输出中文printf( 物品编码 物品名称 物品数量 物品等级n);void printe(Node *p)/输出物品信息函数coutendl data.code data.num data.level;Node *Locate(Link l,char findmess,char nameorcode) /用于定位连接中,符合要求的结点,并返回该指针Node *r;if(strcmp(nameorcode,code)=0)/r=l-next;while(r!=NULL)if(strcmp(r-data.code,findmess)=0)return r;r=r-next;elseif(strcmp(nameorcode,name)=0)/按名称查询r=l-next;while(r!=NULL)if(strcmp(,findmess)=0)return r;r=r-next;return 0;void Add(Link l)/增加物品函数Node *p,*r,*s;char code10;r=l;s=l-next;while(r-next!=NULL)r=r-next;while(l)system(cls);/清屏函数cout请输入商品编码(输入0返回上一级菜单):data.code,code)=0)printf(物品编码为%s的物品已经存在,如果要修改请选择4 修改!n,code);printstart();printc();printe(s);printstart();printf(n);return;s=s-next;p=(Node * )malloc(sizeof(Node);strcpy(p-data.code,code);printf(请输入物品名称:);scanf(%s,);getchar();printf(请输入物品数量:);scanf(%d,&p-data.num);printf(请输入物品等级:);scanf(%d,&p-data.level);p-next=NULL;r-next=p;r=p;shoudsave=1;menu();void Qur(Link l)/查询物品信息函数int sel;char findmess20;Node *p;if(!l-next)printf(n没有信息可查询!n);getchar();getchar();menu(); return;system(cls);/清屏函数printf(n 1按物品编码查询n 2按物品名称查询n);scanf(%d,&sel);if(sel=1)/printf(请输入要查询的编码:n);scanf(%s,findmess);p=Locate(l,findmess,code);if(p)printf(tttt查询结果n);printstart();coutendl;printc();coutendl;printe(p);coutendl;printstart();getchar();getchar();menu();return;elseNofind();elseif(sel=2)/printf(请输入要查找的物品名称:);scanf(%s,findmess);p=Locate(l,findmess,name);if(p) printf(ttt查询结果n); printstart();coutendl; printc();coutendl; printe(p);coutnext)system(cls);/清屏函数printf(n您的仓库为空!n);getchar();getchar();menu();return ;system(cls);/清屏函数printf(n 1按物品编码出仓n 2按物品名称出仓n);scanf(%d,&sel);if(sel=1)printf(请输入要出仓的物品编码:);scanf(%s,findmess);p=Locate(l,findmess,code);if(p)r=l;while(r-next!=p)r=r-next;r-next=p-next;free(p);printf(n该物品已经成功出仓n);shoudsave=1;getchar();getchar();menu();return ;elseNofind();elseif(sel=2)system(cls);/清屏函数printf(请输入要出仓的物品名:);scanf(%s,findmess);p=Locate(l,findmess,name);if(p)r=l;while(r-next!=p)r=r-next;r-next=p-next;free(p);printf(n该物品已经成功出仓!n);shoudsave=1;getchar();getchar();menu();return;elseNofind();elseWrong();void Modify(Link l)/物品信息修改Node *p;char findmess20;if(!l-next)system(cls);/清屏函数printf(n您的库存为空,无需修改!n);getchar();getchar();menu();return;printf(请输入要修改的物品编码:);scanf(%s,findmess);p=Locate(l,findmess,code);if(p)system(cls);/清屏函数printf(请输入新编码(原来的是%s):,p-data.code);scanf(%s,p-data.code);printf(请输入新名称(原来的是%s):,);scanf(%s,);getchar();printf(请输入新的物品数量(原来的是%d):,p-data.num);scanf(%d,&p-data.num);getchar();printf(请输入新的物品等级(原来的是%d):,p-data.level);scanf(%d,&p-data.level);getchar();printf(n修改资料成功!n);shoudsave=1;getchar();menu(); return;elseNofind();getchar();menu();void Disp(Link l)int count=0;Node *p;p=l-next;if(!p)printf(n 没有资料可以显示!n);getchar();getchar();menu(); return;printf(tttt显示结果n);printstart();printc();printf(n);while(p)printe(p);p=p-next;printstart();printf(n);void Save(Link l)/物品信息保存FILE *fp;Node *p;int flag=1,count=0;fp=fopen(c:student,wb);if(fp=NULL)printf(n重新打开文件时错误!n);exit(1);p=l-next;while(p)if(fwrite(p,sizeof(Node),1,fp)=1)p=p-next;count+;elseflag=0;break;if(flag)system(cls);/清屏函数printf(n 文件保存成功.(有%d条记录保存成功.)n,count);shoudsave=0;getchar();getchar();menu();fclose(fp);void main()/主函数menu();Link l;/链表Node *r;int sel;char ch;int count=0;l=(Node * )malloc(sizeof(Node);l-next=NULL;r=l;while(l)scanf(%d,&sel);if(sel=0)if(shoudsave=1)getchar();printf(n 资料已改动,是否将改动的文件保存到文件中(y or n)?n);scanf(%c,&ch);if(ch=y | ch=Y)Save(l);printf(n 已退出系统!n);break;switch(sel)case 1:Add(l);break;/物品进库case 2:Del(l);break;/物品出库case 3:Qur(l);break;/查询物品case 4:Modify(l);break;/修改物品信息case 5:Save(l);break;/保存物品信息default:Wrong();getchar();break;六、 运行结果分析1、截图显示及流程结果分析(用户使用说明):、运行程序进入“物品库存管理系统”主界面:、用户键入1,即选择物品入库管理,随即调用清屏函数system(cls)和Add(l),输入商品信息:、用户键入2,进入出库操作,输入“1”按代码出库:、用户键入4,进入修改物品信息系统:、用户接着键入编码,即进入修改页面:、用户键入3,进入浏览物品信息查询系统:、用户又查看5编码的信息:2、程序创新及思路分析:. 算法简单性:本系统直接通过定义类struct item,并利用几个函数Wrong()、Nofind()、printc()、printe(Node *p)、*Locate(Link l,char findmess,char nameorcode)来对输入的错误和输出做了相应的操作,主要用到了类,链表,串,数组等方面的知识来设计出库、入库、浏览、修改以及退出系统的操作,操作界面简单快捷,用户使用起来方便,安全。. 稳定性:我们充分考虑了程序运行中,用户可能进行的各种错误操作,例如:在选择程序功能时,用户可能输入了不正确的物品代码或物品名称。我们是这样解决的:添加一个判断用户输入的语句:if(),如果用户操作不当,则程序会提示:“该物品不存在!”等字样,提醒用户正确操作,或者根据帮助操作。. 布局的科学化性:主界面进入管理用户操作调用mian()用户键入退出操作用户键入自己所需项目用户执行其他操作用户键入物品信息. 关键码的分布情况:、 struct item struct node、 void Add(Link l)、 void Qur(Link l)、 void Del(Link l)、 void Modify(Link l); 七、 收获总结及体会好早的就开始准备课程设计,从开始的不知所措不知道从何处入手到现在看到一个由自己和小组的同学开发的不能算是成就的小成就有一种成就感,从刚开始被选择到这个专业,开始的排斥到感兴趣,从一点都不懂到现在慢慢的开始入门。虽然,现在的水平还是很低,自己对于专业知识掌握的不够,基础知识还是不很牢固,但是,经过这次的数据结构的课程设计我学到了很多,以前就还是认为是高中的学习思想,自己钻研究什么事情都好办,然后就一味的自己闷头研究,经历了很多弯路。迷茫过,绝望过,找不到学习的方向,现在我明白了,团队的力量,不懂就要问,这个学期的学习,数据结构虽然很多地方知识掌握的还是比较弱,但是最起码让我坚定了自己的信心,杨老师说过一句话如果感觉现在还是学的不怎么样的话现在努力依然来的及。只要付出了就会有回报的。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-河南-河南机械冷加工一级(高级技师)历年参考题库典型考点含答案解析
- 2024并购法律服务合同
- 2025年事业单位工勤技能-河南-河南信号工-机车信号设备维修三级(高级工)历年参考题库典型考点含答案解析
- 2024版代加工合同代加工合同范本
- 2025年事业单位工勤技能-河北-河北兽医防治员五级(初级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江西-江西园林绿化工四级(中级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江苏-江苏汽车驾驶与维修员四级(中级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-江苏-江苏地图绘制员二级(技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西管道工三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-广西-广西客房服务员五级(初级工)历年参考题库典型考点含答案解析
- 2025既有办公建筑体检评价标准
- 煤矿其他从业人员培训课件
- 义警队伍管理制度
- 成长赛道法律专业
- 通信工程施工现场临时用电方案
- 淤泥固化施工方案
- 苏教牛津译林版小学英语六年级上册单词背诵默写本
- 2023年福建中考语文试卷真题及答案解析
- 2024年10月河北保定市市直政府序列事业单位公开选调工作人员45名笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 防水施工组织设计方案
- 智慧车辆管理系统解决方案
评论
0/150
提交评论