c++大作业--超市管理系统课程设计报告.doc
《c++大作业--超市管理系统课程设计报告.doc》由会员分享,可在线阅读,更多相关《c++大作业--超市管理系统课程设计报告.doc(25页珍藏版)》请在咨信网上搜索。
超市管理系统的设计与实现 目 录 摘 要 1 第1章 前 言 2 1.1系统前景 2 1.2系统主要功能 2 第2章 需求分析 3 第3章 概要设计 4 3.1 主界面流程图 4 3.2 超市管理模块设计 5 第4章 详细设计 6 4.1主界面流程图 6 4.2清除内存中的商品函数 6 4.3增加商品信息 8 4.4删除商品信息的过程 9 4.5修改商品信息的过程 10 4.6查询商品的过程: 12 4.7统计商品的过程 14 4.8显示商品过程 16 第五章 系统测试 17 第6章 总 结 22 参考文献 22 附 录 23 摘 要 针对用户对超市管理系统要求,本应用软件运用C++语言编写,通过对系统程序的编写,实现了基本的超市商品管理功能,本应用软件中的时钟时间以所在电脑的系统时间为准,用户可在修改商品的界面中修改超市商品信息来对超市进行管理。 超市管理系统主界面通过操作阿拉伯数字实现超市商品的增加、修改、查询、统计、显示所有商品信息等。本系统的实现主要运用了两个类,商品类和超市类。商品类中有商品必要信息,商品代码,商品名称,商品产地,商品价格,商品库存量等。超市类中通过各类函数的实现对商品进行管理。可以增加商品,查询商品,删除商品,显示商品信息,统计商品库存量及价值等。 关键字:商品类 超市管理 函数 指针 第1章 前 言 1.1系统前景 随着社会的发展,超市的数量越来越多,规模越来越大。因此,对超市的科学管理就显得尤为重要。本系统用C++基本实现了超市管理系统的设计。 C++是一个面向对象的程序设计语言,可以让我们更好的掌握面向对象思想解决实际问题的能力。C++拥有强大生命力,几乎可以兼容C语言。C++牵涉概念很多,语法比较复杂,内容十分广泛。比如在C的基础上增加了类等。各种类型函数如构造函数,析构函数等。还有函数是在类内定义还是在类外定义等。总之,C++语言是一门非常实用的语言。 1.2系统主要功能 (1)本系统实现了对超市商品的管理。 (2)本系统可以根据用户输入来调整超市商品信息。 (3)本系统可以直接显示超市所有商品。 (4)本系统的开发语言是当下比较流行的C++语言开发。 第2章 需求分析 本系统为超市管理系统的设计与实现,可供超市管理者对超市商品信息的查询和修改,适用于各种小型超市,有效地提高了工作效率。若查询不符合实际情况,则会提示错误。Enter键确认。 本系统实现以下功能: (1)进入系统后提示适用方法,键入相应数字依次将商品代码(由阿拉伯数字组成)、商品名称、商品产地、商品单价以及库存量等商品信息存入并保存。 (2)键入商品名称,可将要求删除商品调出,并予以删除。 (3)键入相应数字选项,可修改超市商品的所有信息。 (4)键入相应数字选项,可查询需要查询的商品的所有信息。 (5)键入相应数字选项,可显示超市所有商品的所有信息。 (6)键入数字7退出系统。 第3章 概要设计 3.1主界面流程图 设计超市管理系统的主界面, 主界面相应的现实有下列菜单:增加商品、删除商品、修改商品、查询商品、统计商品、显示商品、退出。 超市管理系统 商品类 超市类 查询商品 统计商品 修改商品 增加商品 删除商品 显示商品 找到 是 否 开始 开始 3.1主界面流程图 3.2 超市管理模块设计 (1) 超市初始化模块 类名为Goods和Supermarket,分别定义了商品的名称,代码,产地,单价和库存数量,以及需要在链表里面寻找的指针。 (2)增加商品的函数模块 在文件中写入产品的信息,并且判断商品的单价和库存量是否超标(65535),并且加入链表。 (3)删除商品的函数模块 删除结点已达到删除产品的目的。 (4)修改商品的函数模块 载入商品的全部数据,并且放入内存,并且可以重新写入修改。如果没有找到商品,则返回。 (5)统计商品的函数模块 统计结点数以记录商品的数量,载入所有商品的数量和单价计算商品的总价值。 (6)数据存储的函数模块 将链表的所有数据写入文件,然后关闭文件。 (7)数据读入的函数模块 打开文件,然后将文件中的数据写入内存以备用。 第4章 详细设计 4.1 主界面流程图 设计超市管理系统的主界面,主界面相应的现实有下列菜单:增加商品、删除商品、修改商品、查询商品、统计商品、显示商品、退出。 超市管理系统 商品类 超市类 查询商品 统计商品 修改商品 增加商品 删除商品 显示商品 找到 是 否 开始 结束 4.1主界面流程图 4.2清除内存中的商品函数 在超市管理系统中,商品出售出去,库存中的商品信息必须清除。 类外定义一个函数clear,在函数中定义一个指针p,讲物品goods赋给p,为了使函数能够不断地清除内存中的数据,要使指针移动,首先将p->next赋予goods ,然后删除p中的数据,清空p中的数据,然后将goods赋给p,依次循环,从而实现删除库存中的一个或多个商品。 流程图如图 开始 定义指针 goods赋值p给p 将p的next赋值给goods 删除p中的数据 goods赋值给p 是否有需要删除的商品 结束 YES NO 图4.2清除内存商品流程图 4.3增加商品信息 类外定义一个函数add,首先在函数中定义变量商品代码 num 和商品数量count,都为double类型 ,商品名name和产地address为char类型 ,价格price 为int类型,首先要求用户输入商品信息,依次输入商品的代码、商品名称、商品产地、商品单价,判断单价是否在0~65535之间,如果不在范围内重新输入直到在范围之内再继续向下面执行,输入商品库存量,库存在0~99999之间,如果超出范围重新输入,在范围之内继续执行,保存数据。 开始 定义变量 输入商品代码名称产地 输入商品价格 ( 0~65535 ) 输入商品库存 (0~99999) 保存 No No Yes Yes 图4.3 增加商品流程图 23 4.4删除商品信息的过程 (1)在Supermarket类下定义一个Delete函数作为删除商品信息的函数,然后定义商品名,输入商品信息。 (2)查找要删除的结点(节点中包含所有该商品的信息:商品代码、名称、产地、数量、单价),分别定义两个指针,原商品表信息指针p1和输入的商品信息指针p2,在p1循环的过程中比较输入的商品名与原有的商品名是否一致,如果一致则结束本次循环,否则p2指向p1,使得两指针同化,p1指针接着指向下一指针,这样依次向后查询。 (3)删除结点,如果找到要删除的结点则删除,在这个条件下,如果删除的结点是第一个结点,则继续将指针后移删除第一结点,如果删除的结点是后续结点,则将p2下一指针指向p1下一指针,则删除相应的后续结点。 输出的结果是:找到并删除或者sorry,未找到! 流程图如图4.5 查找要删除的结点 定义指针p1 p2 比较输入商品名和商品表已知商品名是否一致 是否找到结点 继续向后查找 p2=p1;p1=p1->next 是否为第一结点 找到则删除成功 查找后续结点 是 是 是 否 否 否 开始 结束 图4.5 删除商品流程图 4.5修改商品信息的过程 (1)定义各参数变量的类型,然后是输入要查找等待修改的商品名称 (2)查找要修改的结点,定义p1、p2指针,p1为指向goods商品表指针,p2为输入的商品指针,判断p1指针,如果输入的商品名和原有的商品名一致,则结束本次循环,否则,p1和p2指针同化,p1接着指向p1的下一指针。 (3)修改结点,若找到相应的要修改的结点,则p1指向Output函数,接着输出要修改的信息,利用Switch语句来调用相应的修改信息。 (4)创建新商品的结点,把原来要修改的结点删除并重新替换要创建的商品结点。如果找到等待修改的结点则修改,否则保持商品表信息不变。 流程图如图4.6 输入要查的商品名 查找要修改的结点 比较输入商品名和商品表已知商品名是否一致 是否找到第一结点 继续向后查找 p2=p1;p1=p1->next 继续查找后续结点 删除并替换 是 是 否 否 是 否 开始 结束 图4.6 修改商品流程图 4.6查询商品的过程: (1)在Supermarket类下定义一个Query函数作为查询商品信息的函数,输入商品名。 (2)查找要查询的结点(结点中包含所有该商品的信息:商品代码、名称、产地、数量、单价),定义一个原商品表信息指针p1,在p1循环的过程中比较 输入的商品名与原有的商品名是否一致,如果一致则结束本次循环,否则 p1指针接着指向下一指针,这样依次向后查询。 (3)查询结点,如果找到要查询的结点则输出:查询成功并输出其所有信息,若没有找到输出:sorry未找到! 流程图如图4.7 定义指针p1 比较输入商品名和商品表已知商品名是否一致 是否找到商品 继续向后查找 p1=p1->next 是 是 否 否 输入要查询商品的名字 开始 结束 图4.7查询商品流程图 4.7统计商品的过程 (1)是在Supermarket类下定义一个Add_up函数作为统计商品信息的函数,然后定义两个double型变量Amount和Value分别表示要求统计商品的总量和总价值,输入商品名字name。 (2)查找要统计的结点(结点中包含所有该商品的信息:商品代码、名称、产地、数量、单价),定义一个指针p1,原商品表信息指针p1,在p1循环的过程中比较输入的商品名与原有的商品名是否一致,如果一致则结束本次循环,p1指针接着指向下一指针,这样依次向后查询。没找到则输出:sorry,未找到! (3)统计商品,每当找到一个商品后就将Amount与p1所指count相加存入Amount,并将此时p1所指的count与price相乘再加上Value存入Value,循环查找相加,最后分别输出。 流程图如图4.8 开始 查找要统计的结点 定义指针p1 比较输入商品名和商品表已知商品名是否一致 是否找到结点 继续向后查找 p1=p1->next 是 是 否 否 否 Amount+=p1->count; Value+=p1->count*p1->price Value+=p1->count*p1->price 从 当前指针p1 输出 结束 图4.8 统计商品流程图 4.8显示商品过程 (1)是在Supermarket类下定义一个Out函数作为显示商品信息的函数。 (2)将goods的首地址给p1,判断p1是否为空,若空则输出“没有商品”。否则输出该商品所有信息(商品代码、名称、产地、数量、单价)等。 (3)将p1赋给p2,p1->next赋给p1,进入循环,输出下一个商品信息。 流程图如图4.9 定义数据 P=goods 是否有商品 输出该商品信息 指针移向下一个商品 输出没有商品 否 是 开始 图4.9 显示商品流程图 第五章 系统测试 打开软件后见到如图所示的界面正式进入超市管理系统 图5.1 系统主界面 该软件有增加商品、删除商品、修改商品、查询商品、统计商品、显示商品六大功能。 (1)增加商品 选择1 进入商品录入界面 图5.2 新增商品信息界面 依次录入商品代码、商品名称、商品产地、商品单价、商品的库存量并按Y保存,需要注意的是商品单价限制在0~65535,商品的库存量限制在0~99999范围内。 (2)删除商品 图5.3 删除商品界面 首先输入商品的名称,然后选择是Y 或者N。 (3)修改商品 选择3 进入修改商品界面 图5.4 修改商品界面 输入商品的名称,系统会显示商品代码、名称、产地、价格、库存量,然后分别选择1 改商品代码、2改商品名称、3改商品产地、4改商品单价、5 改商品库存量 、7改全部信息。 (4)查询商品 图5.5 查询商品界面 输入商品名称后,系统会显示你所查询的商品信息,有商品的代码、商品的名称、商品的产地、商品的单价和库存量等。 (5)统计商品 图5.6 统计商品界面 选择5后进入统计商品,输入商品名称后,会显示出商品的数量和总价值。 (6)显示所有商品 选择6后 系统会显示所有商品的信息 图5.7 显示所有商品信息界面 第6章 总 结 参考文献: [1]《C++面向对象程序设计》(第一版) 谭浩强 北京:清华大学出版社 2006年1月 [2]《C程序设计 》(第三版) 谭浩强 北京:清华大学出版社2005年7月 附 录 课程分工: 王兵:主界面的设计与实现,商品的显示,程序的整合。 叶大鹏:商品的删除,商品的修改。 韩守飞:清除内存中商品的数据,增加商品,创建商品类节点。 汪磊:查询商品,统计商品数量与价值。 费能超:数据存盘与装入。 系统的测试由五人共同完成。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 作业 超市 管理 系统 课程设计 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【仙人****88】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【仙人****88】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【仙人****88】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【仙人****88】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文