C++课程设计仓库管理系统报告.docx

上传人:小飞机 文档编号:1937339 上传时间:2022-12-27 格式:DOCX 页数:26 大小:203.12KB
返回 下载 相关 举报
C++课程设计仓库管理系统报告.docx_第1页
第1页 / 共26页
C++课程设计仓库管理系统报告.docx_第2页
第2页 / 共26页
C++课程设计仓库管理系统报告.docx_第3页
第3页 / 共26页
C++课程设计仓库管理系统报告.docx_第4页
第4页 / 共26页
C++课程设计仓库管理系统报告.docx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《C++课程设计仓库管理系统报告.docx》由会员分享,可在线阅读,更多相关《C++课程设计仓库管理系统报告.docx(26页珍藏版)》请在三一办公上搜索。

1、目 录第一章、设计题目1第二章、问题分析22.1问题描述22.2需求分析2第三章、总体设计41、功能分析42、数据抽象43、结构关系4第四章、详细设计6一、头文件定义6二、仓库管理员类6三、仓库货架类6四、电器类6五、管理组合类7六、仓库电器类默认构造函数7七、仓库货架类默认构造函数7八、仓库管理员类默认构造函数8九、仓库管理组合类默认构造函数8第五章、功能测试9一、录入、保存、显示、读取测试:9二、运行界面:13小结14参考文献15致谢15附录:源代码清单16第一章、设计题目 仓库管理程序功能设计:1建立文件(1)存储文件可以使用默认文件名或指定文件名。(2)可以不保存输出记录,但需要确认是

2、否保存输入记录。(3)如果已经有文件,只能在其后追加。(4)新增的记录继续存入原文件中。2文件的存取和显示(1)可以单独存取文件。(2)可以随时显示内存中记录的全部内容。(3)可以直接存取指定文件3删除记录(1)可以按“商品名称”方式删除(报损)并且将记录修改更新。(2)能给出被删除记录的信息。(3)如果库存已经是空的,删除(报损)时应给出提示信息并返回主菜单。(4)如果没有要删除的这个商品信息,输出没有找到的提示信息(5)删除操作仅限于内存,只有执行存记录操作时,才能覆盖原记录。4查询记录(1)可以按“商品名称”、“商品价格”或“商品种类”三种方式查询记录。(2)能给出查询记录的信息。(3)

3、如果查询的信息不存在,输出“没有找到”的信息。5、使用菜单实现功能的正确选择6、测试程序(1)应列出测试大纲对程序进行测试(2)应保证测试用例能测试到程序的各种边缘情况。编写此程序至少要用二个以上的下列面向对象工具:类继承与派生友元函数构造函数虚函数模板文件输入输出通过设计一个较为简单的商场库存货物管理系统,进一步熟悉C+中类的概念、类的封装、继承的实现方式。了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程,加深对C+的理解与Visual C+环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。第二章、问题分析2.1问题描述随着二十一世纪的到来,计算机已

4、成为一块极其活跃的、崇尚发展与创新的领地,并成为我们这一时代决定性的先驱技术。计算机是现代文化不可或缺的级成部分,是现代科学技术发展的先导,并成为世界经济巨量增长的根本引擎。C语言和C+语言是当今世界最流行的两种计算机语言,倍受人们的喜欢。许多著名的系统软件, 如DBASE PLUS、DBASE 都是由C 语言编写的。用C 语言加上一些汇编语言子程序, 就更能显示C 语言的优势了, 像PC- DOS 、WORDSTAR等就是用这种方法编写的。归纳起来C 语言具有如下特点:1、C 语言简洁、紧凑,使用方便、灵活。有32个关键字。2、运算符丰富。共有34种运算符。3、数据结构丰富,具有现代化语言的

5、各种数据结构。 4、具有结构化的控制语句。5、语法限制不太严格,程序设计自由度大。 6、C 语言允许直接访问物理地址,能进位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。 7、生成目标代码质量高,程序执行效率高。 8、用C语言写的程序可移植性好(与汇编语言比)。C+语言是在C语言的基础上扩展而成的,它保留了C语言原有的所有优点,增加了面向对象的机制。所以C+与C完全兼容。C+是对C的扩充,是C的超集。它既可用于结构化程序设计,又可用于面向对象的程序设计,功能强大。C+中加入了面向对对象程序设计。C+的多继承机制能更好地描述对象的属性和行为,它的特点是面向对象程序设计。C+

6、实现了类的封装、数据隐藏、继承及多态,它还支持模板、操作符重载、内联函数定义、预处理、宏、全局静态类变量、嵌套类定义等等,使得其代码容易维护及高度可重用。本课程设计要求的功能如下:1、建立文件:存储文件可以使用默认文件名或指定文件名 可以不保存输出记录,需要确认是否保存输入记录 如果已经有文件,只能在其后追加2、文件存取和显示:可以单独存取文件,可以随时显示内存中记录的全部内容 可以直接存取默认文件或指定文件3、删除记录:可以按“商品名称”方式删除记录并更新内存链表内容4、查询记录:可以按“商品名称”、“商品价格”或“商品种类”三种方式查询记录2.2 需求分析根据题目要求,做出如下的具体分析:

7、一继承是面向对象语言的重要特征之一,它是指从一个或多个基类中继承数据和操作,形成新的派生类的一种机制。该机制自动地为一个类提供来自另一个类的操作和数据,使程序员只需在新类中定义已有类中所没有的成分。在C+中有两种继承:单一继承和多重继承。当一个派生类仅由一个基类派生时,称为单一继承;而当一个派生类由一个以上的基类派生时,称为多重继承。继承不仅简化了程序设计方法,显著提高了软件的重用性,而且还使程序具有一种层次结构,使之变得更容易维护。二类是构成面向对象系统的最基本的单位,是面向对象系统中最基本的概念之一。类是创建对象的模板,以操作、表示和算法的形式完整地定义了一组对象的行为,被认为是一种用户自

8、定义的数据类型,它完整地描述了规范说明和实现。类可以作为面向对象系统的具有特定功能一个模块,可以作为模块划分的一种手段和依据。类还是代码共享的手段。三输入/输出是指程序与计算机的外部设备之间所进行的信息交换。在C+中提供了输入/输出流库。C+的流库是一个较复杂的标准类库,它是用继承的方法建立起来的实用流库,不仅提供了与C语言标准函数类似的各种I/O操作功能,更重要的是使I/O操作具有面向对象的特征,功能更灵活,更强大。四标准模板库STLC+的标准类库STL是C+语言标准库的一个重要组成部分,利用类库来开发的应用软件,有利于减少源程序中的BUG,提高软件的正确性。它通常具有以下的特点:1、通用性

9、2、可扩充性3、概念性与层次性4、灵活性五项目要求与简介此程序是为了更好的处理货物的详细信息。包括货物的货物的入库、出库、查询、统计。并且能够很好的让使用者了解库存货物的有关信息。系统要求能够按编号显示、查找、增加、删除、和保存各类货物的信息。输入和输出货物的有关信息并且对输入保存文件里确定程序至少具备以下功能:查询模块、增加模块、删除模块、货物的有关信息数据存盘等的基本模块。 系统具有“货物的有关信息数据存盘”的功能,所以货物的有关信息数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出货物的有关信息,可以方便用户使用,避免数据重复录入,考虑到系统实现简洁,货物数据文件采用文本文件,

10、货物数据文件名:date.dat。作为一个完整的系统,除了具有增加货物,删除货物的信息模块,还应该具有修改货物相关信息的功能, 所以本系统具备了“商品入库”、“商品出库”、“查询统计”、“商品报损”、“退出系统”,这5个基本功能,就可以以最简捷的方式实现对货物的管理,也就实现了系统的要求。第三章、总体设计1、功能分析使用面向对象的程序设计进行分析,整个系统涉及两大类可操作,仓库、商品。所以系统主要涉及两大类:仓库类、商品类。系统框架就是仓库类和商品类的定义;主函数中定义一个仓库对象,循环显示主菜单并根据用户选择调用仓库类的相应方法(成员函数)。考虑系统操作的货物信息具有不确定性,所以考虑使用链

11、表保存、处理货物信息。仓库类包含:所有货物信息的一个不带头结点的链表及可以对货物信息进行增,改,删除,查询,数量设置,数据存盘等操作的相关模块为成员函数。所有货物都具有的公共信息及操作可以使用仓库类进行描述。由于系统具有3类货物且3类货物信息数据,操作基本相同,所以可以为他们创立相同的类,并且采用继承和派生。2、数据抽象a.仓库管理员类class adminpublic:admin();private:string name;b.仓库货架类class shelfpublic:shelf();private:admin men;/管理员string storeNo;/仓库编号string kin

12、ds;/商品大类string shelfNo;/货架号;3、结构关系3.1主系统块:仓库管理系统商品入库商品报损查询统计退出系统商品出库3.2商品入库块:商品入库商品名称仓库编号商品价格商品数量商品大类货架编号3.3商品出库块:商品出库商品名称仓库编号商品价格商品数量商品大类货架编号3.4查询统计块: 3.5商品报损块:查询统计查询统计输入报损商品名称按大类按价格按名称商品报损成功或不成功3.6退出系统块:退出系统谢谢使用第四章、详细设计一、头文件定义#include #include #include #include #include #include using namespace st

13、d;二、仓库管理员类class adminpublic:admin();private:string name;三、仓库货架类class shelfpublic:shelf();private:admin men;/管理员string storeNo;/仓库编号string kinds;/商品大类string shelfNo;/货架号;四、电器类class elepublic:ele();private:string name;/商品名double price;/价格shelf sh;/所属货架long count;/商品数量;五、管理组合类class manapublic:mana();ch

14、ar first_face();/首页void in_storage();/入库void out_storage();/ 出库void select_ele();/查询void select_name();/按商品名称查询void select_price();/按商品价格查询void select_kind();/按大类查询void call_break();/商品报损private:ele aele;shelf ashelf;admin abs;六、仓库电器类默认构造函数ele:ele():sh()name=xxx;/商品名price=0.0;/价格count=0;/商品数量七、仓库货架类

15、默认构造函数shelf:shelf():men()storeNo=xxx;/仓库编号kinds=xxx;/商品大类shelfNo=xxx;/货架号八、仓库管理员类默认构造函数admin:admin()name=xxx;九、仓库管理组合类默认构造函数mana:mana():aele(),ashelf(),abs()第五章、功能测试一、录入、保存、显示、读取测试:1. 商场库存货物管理系统首页2.商品入库3.商品查询4.按商品名称查询5.按商品价格查询6.按商品大类查询7.商品报损8.商品出库9.退出系统二、运行界面:Microsoft Visual C+ 6.0小结本次C+课程设计,收获还是很多

16、的,从刚刚拿到课程设计题目后,我就先分析这个程序的一些基本的功能,从这些基本功能出发来定下一个程序的大致框架结构,这里面主要包括程序中所设计的类,类与类之间的继承关系以及一些主要的函数的设计思想。比如:删除记录函数、增加记录函数等等。从一开始我就从图书馆借阅了不少的其他相关的c+资料,这些都是很宝贵的参看资料,可以说给我最后顺利的完成程序的编写打下了很扎实的基础。这次的课程设计,是自己独立完成了一个相对比较大的程序,里面用到的面向对象的知识也是比较多的,通过一番实践,很好的总结、强化了之前学习过的知识要点,并且也发现了自己还没好好掌握的知识点,对于没掌握的,我查阅了参考书籍及时补上。感觉代码写

17、到也是后来,状态越好,我感觉是由于自己对于一些基本的知识的比较好的掌握了。有些问题虽然没遇到过,但是通过查阅资料,只要了解了它们的用法,自己就可以很快的模仿下来,不是照抄。这一点我觉得在今后的程序设计中也是蛮重要的,因为我发现要写出好程序,首先应该去学习人家的程序,看懂他们的程序并且转化为自己的。其次才有可能去创新。对于程序的编写,用的时间还是蛮多的,这期间有的是写代码、有的是查阅资料、有的是和同学一起探讨问题。在和同学讨论问题的过程中,我发现了合作带来的效率,彼此自己要善于沟通,让对方了解自己编程的方法和大致的思想,然后大家一起讨论,这样问题会解决的比较快。通过学生的分组设计,使学生能够基本

18、掌握C+程序设计的方法,并且在此基础上掌握类的构造方法,明确类中构造函数、成员函数的建立以及调用,此外,并且,结合C+中,字符串函数的编译系统给定的库函数,采用一定的逻辑编译,实现题目中要求的各项要求,达到基本实验母的,提高自己的C+语言使用水平。最后希望自己今后能有比较多的机会来做一些这样的课程设计,这样一方面锻炼了自己的编程能力,另一方面又使得自己复习巩固了基础的知识。 参考文献面向对象程序设计思想和方法C/C+语言参考手册主要参考文献:1 谭浩强C语言程序设计(第二版)清华大学出版社,2003年2吴文虎程序设计基础 清华大学出版社,2003年3钱启平C语言程序设计基础辅导教程 铁道出版社

19、,2000年4钱能C+程序设计教程 清华大学出版社,1999年5刘斌,王忠面向对象程序设计Visual C + 清华大学出版社,2003年致谢:这次c+的课程设计,得到了陈群贤老师和同学的帮助,在这里表示感谢!附录:源代码清单#include #include #include #include #include #include using namespace std;/仓库管理员类class adminpublic:admin();private:string name;/仓库货架类class shelfpublic:shelf();private:admin men;/管理员string

20、 storeNo;/仓库编号string kinds;/商品大类string shelfNo;/货架号;/electrical classclass elepublic:ele();private:string name;/商品名double price;/价格shelf sh;/所属货架long count;/商品数量;/管理(组合类)class manapublic:mana();char first_face();/首页void in_storage();/入库void out_storage();/ 出库void select_ele();/查询void select_name();/

21、按商品名称查询void select_price();/按商品价格查询void select_kind();/按大类查询void call_break();/商品报损private:ele aele;shelf ashelf;admin abs;/仓库电器类默认构造函数ele:ele():sh()name=xxx;/商品名price=0.0;/价格count=0;/商品数量/仓库货架类默认构造函数shelf:shelf():men()storeNo=xxx;/仓库编号kinds=xxx;/商品大类shelfNo=xxx;/货架号/仓库管理员类默认构造函数admin:admin()name=xx

22、x;/管理组合类默认构造函数mana:mana():aele(),ashelf(),abs()char mana:first_face()system(cls);/系统清屏coutnendlttendltt endltt 商场库存货物管理系统 endltt endltt 1. 商品入库 endltt endltt 2. 商品出库 endltt endltt 3. 查询统计 endltt endltt 4. 商品报损 endltt endltt 5. 退出系统 endltt endltt;coutnntt;return getch();/入库void mana:in_storage()syste

23、m(cls);/系统清屏string name;/商品名double price;/价格string storeNo;/仓库编号string kinds;/商品大类string shelfNo;/货架号long count=0;/商品数量coutn;cout商品入库,请输入相关信息:;coutendlname;coutendlprice;coutendlcount;coutendlstoreNo;coutendlkinds;coutendlshelfNo;ofstream storeFile(store.txt, ios:app);storeFilesetiosflags(ios:left)s

24、etw(20)name setw(15)price setw(10)count setw(10) storeNo setw(20)kinds shelfNoendl;storeFile.close();coutnnt该商品已经入库nnt;system(pause);/系统暂停/ 出库void mana:out_storage()system(cls);/系统清屏string name;/商品名coutendlt商品出库,输入出库商品信息:endl;coutname;ifstream storeFile(store.txt);if(!storeFile)ofstream storeFile1(s

25、tore.txt);storeFile1.close();coutname1price1count1storeNo1kinds1shelfNo1)if(name1=name)flag=true;elsetempFilesetiosflags(ios:left)setw(20)name1 setw(15)price1 setw(10)count1 setw(10)storeNo1 setw(20)kinds1 shelfNo1endl;tempFile.close();storeFile.close();if(!flag)coutnnt该商品仓库没有nnt;system(pause);retur

26、n;ofstream storeFile1(store.txt);ifstream tempFile1(temp.txt);storeFile1tempFile1.rdbuf();storeFile1.close();tempFile1.close();coutnt这些商品已经出库,请仔细复查!nnt;system(pause);/查询void mana:select_ele()while (1)system(cls);coutnendl;coutt=endlt| |endlt| 商 品 查 询 |endlt| |endlt| 1. 按商品名称查询 |endlt| |endlt| 2. 按商品

27、价格查询 |endlt| |endlt| 3. 按大类查询 |endlt| |endlt| 4. 返回 |endlt| |endlt=endl;coutntt;char select=getch();switch(select)case 1:select_name();break;case 2:select_price();break;case 3:select_kind();break;case 4:return;default:break;/按商品名称查询void mana:select_name()system(cls);coutendlt按商品名查询:endl;coutname;str

28、ing name1;/商品名double price1;/价格string storeNo1;/仓库编号string kinds1;/商品大类string shelfNo1;/货架号long count1=0;/商品数量ifstream storeFile(store.txt);if(!storeFile)coutnnt对不起,你的库存为空nnt;system(pause);return;bool flag=false;coutn商品名 价格 商品数量 仓库编号 商品大类 货架号nname1price1count1storeNo1kinds1shelfNo1)if(name1=name)fla

29、g=true;coutsetiosflags(ios:left)setw(15)name1 setw(10)price1 setw(10)count1 setw(10)storeNo1 setw(15)kinds1 shelfNo1endl;storeFile.close();if(!flag)coutnn对不起,库存中没有这个商品;coutnendl;system(pause);/按商品价格查询void mana:select_price()system(cls);coutnt按商品价格查询:endl;coutprice;string name1;/商品名double price1;/价格s

30、tring storeNo1;/仓库编号string kinds1;/商品大类string shelfNo1;/货架号long count1=0;/商品数量ifstream storeFile(store.txt);if(!storeFile)coutnnt对不起,你的库存为空nnt;system(pause);return;bool flag=false;coutn商品名 价格 商品数量 仓库编号 商品大类 货架号nname1price1count1storeNo1kinds1shelfNo1)if(price1=price)flag=true;coutsetiosflags(ios:lef

31、t)setw(15)name1 setw(10)price1 setw(10)count1 setw(10)storeNo1 setw(15)kinds1 shelfNo1endl;storeFile.close();if(!flag)coutnn对不起,库存中无此价格商品;coutnendl;system(pause);/按大类查询void mana:select_kind()system(cls);coutnt按商品大类查询:endl ;coutkinds;string name1;/商品名double price1;/价格string storeNo1;/仓库编号string kinds

32、1;/商品大类string shelfNo1;/货架号long count1=0;/商品数量ifstream storeFile(store.txt);if(!storeFile)coutnnt对不起,你的库存为空nnt;system(pause);return;bool flag=false;coutn商品名 价格 商品数量 仓库编号 商品大类 货架号nname1price1count1storeNo1kinds1shelfNo1)if (kinds1=kinds)flag=true;coutsetiosflags(ios:left)setw(15)name1 setw(10)price1

33、setw(10)count1 setw(10)storeNo1 setw(15)kinds1 shelfNo1endl;storeFile.close();if(!flag)coutnn对不起,库存中没有这类商品;coutnendl;system(pause);/商品报损void mana:call_break()system(cls);string name;/商品名coutnt商品报损,请输入要报损商品信息:endl;coutname;ifstream storeFile(store.txt);if(!storeFile)ofstream storeFile1(store.txt);sto

34、reFile1.close();coutnnt库存为空nnt;system(pause);return;bool flag=false;string name1;/商品名double price1;/价格string kinds1;/商品大类string shelfNo1;/货架号long count1=0;/商品数量ofstream tempFile(temp.txt);string storeNo1;/仓库编号coutnendl;cout 你想报损商品信息如下:;coutnendl;coutn商品名 价格 商品数量 仓库编号 商品大类 货架号nname1price1count1storeN

35、o1kinds1shelfNo1)if(name1=name)flag=true;coutsetiosflags(ios:left)setw(15)name1 setw(10)price1 setw(10)count1 setw(10)storeNo1 setw(15)kinds1 shelfNo1endl;shelfNo1+=(损坏);tempFilesetiosflags(ios:left)setw(20)name1 setw(15)price1 setw(10)count1 setw(10)storeNo1 setw(20)kinds1 shelfNo1endl;tempFile.close();storeFile.close();if(!flag)coutnn对不起,仓库中没有这个商品;cout

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号