版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 学 号: 2009131334课 程 设 计题 目物品库存管理学 院计算机与信息工程学院专 业计算机科学与技术班 级2009级计算机科学与技术三班学生姓名尹亮指导教师杨 永 斌2010年12月25日重庆工商大学课程设计成绩评定表学院:计算机与信息工程 班级: 09级计算机三班 学生姓名: 尹亮 学号:2009131334项目分值优秀(100x90)良好(90x80)中等(80x70)及格(70x60)不及格(x60)评分参考标准参考标准参考标准参考标准参考标准学习态度15学习态度认真,科学作风严谨,严格保证设计时间并按任务书中规定的进度开展各项工作学习态度比较认真,科学作风良好,能按期圆满完
2、成任务书规定的任务学习态度尚好,遵守组织纪律,基本保证设计时间,按期完成各项工作学习态度尚可,能遵守组织纪律,能按期完成任务学习马虎,纪律涣散,工作作风不严谨,不能保证设计时间和进度技术水平与实际能力25设计合理、理论分析与计算正确,实验数据准确,有很强的实际动手能力、经济分析能力和计算机应用能力,文献查阅能力强、引用合理、调查调研非常合理、可信设计合理、理论分析与计算正确,实验数据比较准确,有较强的实际动手能力、经济分析能力和计算机应用能力,文献引用、调查调研比较合理、可信设计合理,理论分析与计算基本正确,实验数据比较准确,有一定的实际动手能力,主要文献引用、调查调研比较可信设计基本合理,理
3、论分析与计算无大错,实验数据无大错设计不合理,理论分析与计算有原则错误,实验数据不可靠,实际动手能力差,文献引用、调查调研有较大的问题创新10有重大改进或独特见解,有一定实用价值有较大改进或新颖的见解,实用性尚可有一定改进或新的见解有一定见解观念陈旧论文(计算书、图纸)撰写质量50结构严谨,逻辑性强,层次清晰,语言准确,文字流畅,完全符合规范化要求,书写工整或用计算机打印成文;图纸非常工整、清晰结构合理,符合逻辑,文章层次分明,语言准确,文字流畅,符合规范化要求,书写工整或用计算机打印成文;图纸工整、清晰结构合理,层次较为分明,文理通顺,基本达到规范化要求,书写比较工整;图纸比较工整、清晰结构
4、基本合理,逻辑基本清楚,文字尚通顺,勉强达到规范化要求;图纸比较工整内容空泛,结构混乱,文字表达不清,错别字较多,达不到规范化要求;图纸不工整或不清晰指导教师评定成绩:指导教师签名: 年 月 日程设计任务书学生姓名: 尹亮 专业班级:09级计算机三班指导教师: 杨永斌 工作单位:计算机与信息工程学院题 目: 物品库存管理已知技术参数和设计要求:1、增加函数,完成库存物品的管理功能。2、将所有的函数与相应的数据封装到类中,并改写主程序,使程序简化。3、可自行增加程序的功能。4、设计测试主程序,在主程序中完成测试。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1
5、、设计的题目要求达到一定工作量,并具有一定的深度和难度,程序代码不得少于300行。2、对设计问题进行分析研究,运用所学知识,确定设计思路及方案,并有相应文档产生。3、要求设计的软件能够正确运行,达到题目要求。4、编写出课程设计说明书(并附程序源代码),以电子文档方式上交教师批阅。设计说明书要求见附件。5、课设总结时间安排:正确理解所设计的题目并进行问题抽象,确定设计方案 2天编代码 3天调试和测试 2天编写设计说明书 2天系统验收及成绩评定 1天指导教师签名: 年 月 日教研室主任签名: 年 月 日数据结构课程设计设计说明书库存物品信息管理作者:尹亮指导教师:杨永斌一、题目:物品库存管理1、
6、设计目的: 利用数据结构课程的相关知识完成一个具有一定难度的综合设计题目,利用c/c+语言进行程序设计,并规范地完成课程设计报告。通过课程设计,巩固和加深对线性表、栈、队列、字符串、树、图、查找、排序等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解决综合性实际问题的基本能力。2、 设计内容和要求 : 、要求物品出库、入库信息管理,浏览、修改物品信息;、物品信息按名称和代码存放,在程序出错时自动返回主页面、可以按物品名称物品代码来查询物品信息,即在主菜单中增加查询功能选项,输入代码或名称即可显示;、可以修改、删
7、除某库存物品信息。二、 运行环境(软、硬件环境)软件环境:vc6.0编程软件运行平台: win32 硬 件: 普通个人pc机三、 算法设计的思想1、输入物品信息函数:add(link l)基本思想: 根据物品代码(code)来输入物品信息,如果代码已存在,则按enter键返回主页面;如果代码不存在,则继续输入物品名称、物品数量、物品等级;若继续输入,就直接输入代码等信息,若返回上一级,就按“0”键,调用main(),返回主界面。 2、物品出库函数:del(link l)基本思想: 根据输入的代码或名称,如果不存在该物品,就输出“不存在该物品”;然后输出是用代码出库或者名称出库,在选择操作后,输
8、出该物品对应的信息,若输入“0”,则调用main(),返回主界面。3、查看库存物品信息函数 :qur(link l) 基本思想:根据输入的信息判断有无该商品信息,如果没有该信息,则输出“你输入的信息有误”,有该物品,则输出该物品对饮的代码、名称、数量等信息,按enter键返回主界面。4、删除物品信息函数:del(link l)基本思想:根据用户键入的选择,如果没有该物品信息,则输出没有改物品;调用该函数del(link l),如果存在该物品,则输出该物品及信息已成功修改,然后用户键入任意键返回主界面。5、物品信息修改函数:modify(link l) 基本思想:根据用户键入的信息,判断有无该物
9、品,若有,则继续进行。调用输出函数printc(),然后依次键入新的物品信息,在输出物品信息已成功修改然后用户键入任意键返回主界面。四、 算法的流程图开始算法流程:用户进入物品库存管理用户进入物品进库系统用户进入查看物品信息系统用户进入物品信息出库系统用户进入修改物品信息系统用户进入浏览物品信息系统用户退出物品库存管理系统结束五、 源代码/物品库存管理系统 制作人:胡华 张义江 魏尹 尹亮 朱翀 #include#include#include#includeint shoudsave=0;struct item/物品信息定义char code10;/物品编码char name20;/物品名称
10、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
11、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 nameorc
12、ode) /用于定位连接中,符合要求的结点,并返回该指针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
13、;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(请输
14、入物品名称:);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);/清
15、屏函数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(请输入要查找的物品名称:);
16、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
17、,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-nex
18、t;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(
19、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);g
20、etchar();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
21、);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
22、();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;switc
23、h(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”按代码出库:、
24、用户键入4,进入修改物品信息系统:、用户接着键入编码,即进入修改页面:、用户键入3,进入浏览物品信息查询系统:、用户又查看5编码的信息:2、程序创新及思路分析:. 算法简单性:本系统直接通过定义类struct item,并利用几个函数wrong()、nofind()、printc()、printe(node *p)、*locate(link l,char findmess,char nameorcode)来对输入的错误和输出做了相应的操作,主要用到了类,链表,串,数组等方面的知识来设计出库、入库、浏览、修改以及退出系统的操作,操作界面简单快捷,用户使用起来方便,安全。. 稳定性:我们充分考虑了
25、程序运行中,用户可能进行的各种错误操作,例如:在选择程序功能时,用户可能输入了不正确的物品代码或物品名称。我们是这样解决的:添加一个判断用户输入的语句:if(),如果用户操作不当,则程序会提示:“该物品不存在!”等字样,提醒用户正确操作,或者根据帮助操作。. 布局的科学化性:主界面进入管理用户操作调用mian()用户键入退出操作用户键入自己所需项目用户执行其他操作用户键入物品信息. 关键码的分布情况:、 struct item struct node、 void add(link l)、 void qur(link l)、 void del(link l)、 void modify(link
26、l); 七、 收获总结及体会好早的就开始准备课程设计,从开始的不知所措不知道从何处入手到现在看到一个由自己和小组的同学开发的不能算是成就的小成就有一种成就感,从刚开始被选择到这个专业,开始的排斥到感兴趣,从一点都不懂到现在慢慢的开始入门。虽然,现在的水平还是很低,自己对于专业知识掌握的不够,基础知识还是不很牢固,但是,经过这次的数据结构的课程设计我学到了很多,以前就还是认为是高中的学习思想,自己钻研究什么事情都好办,然后就一味的自己闷头研究,经历了很多弯路。迷茫过,绝望过,找不到学习的方向,现在我明白了,团队的力量,不懂就要问,这个学期的学习,数据结构虽然很多地方知识掌握的还是比较弱,但是最起码让我坚定了自
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 33516-2017LZG型鼓形齿式联轴器》(2026年)深度解析
- 临时支架设计与检算技术
- 网络安全渗透测试与防护 课件17.Metasploit 框架之专用扫描模块
- 医疗数据安全治理框架与实践
- 医疗数据安全技术路线的共识机制评估
- 医疗数据安全成熟度:区块链能力图谱
- 胸痛病人分诊流程图课件
- 医疗数据安全区块链智能预警系统
- 安徽省潜山市第二中学2026届高二上数学期末达标检测模拟试题含解析
- 胆道疾病解剖课件
- 人工智能与创业智慧(北京林业大学)学习通网课章节测试答案
- 浪浪山小妖怪开学第一课课件
- 五金厂生产部工时统计制度
- 研磨钻石的专业知识培训课件
- 以青春之名赴时代之约-高中爱国主题班会-2025-2026高中主题班会
- 2025年传达学习医疗机构重大事故隐患判定清单会议记录
- 桂林学院《新时代中国特色社会主义与实践》2024-2025学年第一学期期末试卷
- 企业无违规经营声明范本模版
- 2025年医疗器械直调申请表
- 道桥模拟考试题与答案
- 2025至2030中国家用燃气报警器市场现状发展分析及发展战略规划报告
评论
0/150
提交评论