C++课程设计小型超市管理系统.doc

上传人:xin****828 文档编号:6623047 上传时间:2020-03-01 格式:DOC 页数:38 大小:419KB
返回 下载 相关 举报
C++课程设计小型超市管理系统.doc_第1页
第1页 / 共38页
C++课程设计小型超市管理系统.doc_第2页
第2页 / 共38页
C++课程设计小型超市管理系统.doc_第3页
第3页 / 共38页
点击查看更多>>
资源描述
江 苏 师 范 大 学 科 文 学 院本 科 生 课 程 设 计课 程 名 称: C+课程设计 题 目: 小型超市管理系统 专 业 班 级: 14电信1班 学 生 姓 名: 杨顺顺 学 生 学 号: 148326141 日 期: 2016.12.10 指 导 教 师: 袁博宇 科文学院教务部印制一、课程设计目的、任务和内容要求: 设计一个简单的超市管理系统。1.暂定有三个货架,分别放着日常用品、食品和家电。2.可以实货架商品的增加和出售。3.设计查询功能,可以查找商品的现状。4.不同商品有不同属性:食品类,保质期,家电,颜色。5.重载运算符。设计要求:要求利用面向对象的方法以及C+的编程思想来完成系统的设计; 要求在设计的过程中,建立清晰的类层次; 在系统的设计中,至少要用到面向对象的一种机制。 二、进度安排:第3天: 查找资料,熟悉小型超市管理系统的设计原理,给出设计总体方案;第46天: 各函数的详细设计;第712天: 程序调试;第1314天:写课程设计报告。三、主要参考文献:1c+语言程序设计(第四版)郑莉 董渊 何江舟 编著 指导教师签字: 年 月 日目 录 摘 要11概 述22 设计方案简述32.1 设计内容32.2 设计目的与要求32.3 系统分析与设计33 详细设计123.1 系统总体设计123.2 源程序代码134 运行结果285设计体会32摘 要当代社会中伴随着计算机技术在各行各业日益广泛和深入的应用,超市对货品于职员的管理不在像过去一样靠手工去做,在一些超市管理中也开始信息化。信息化的管理可以为超市节省大量人力物力,提高其运行效率,从而为顾客提供更好的服务,实现超市的业务提升。本系统就是为了适应这种要求而设计的。集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护起来非常方便。大大减少了超市的人力和物力。本系统大致要做到以下几点:(1)操作简便,节省大量人力;(2) 可以方便的进行货品管理,安全、高效;(3)可以迅速计算销售额和所买卖货品;(4)可以迅速查到所需信息,便于管理1 概 述1.1任务:超市管理系统对职员商品信息进行高效简洁的管理,使之能正常高效的进行售卖活动。系统充分考虑到超市管理系统对货物资料进行登记并处理。考虑到进货、退货、库存预警、年月日销售额结算等多种特殊情况,同时可将相关资料进行有效处理。1.2目标:当代社会中伴随着计算机技术在各行各业日益广泛和深入的应用,超市对货品于职员的管理不在像过去一样靠手工去做,在一些超市管理中也开始信息化。信息化的管理可以为超市节省大量人力物力,提高其运行效率,从而为顾客提供更好的服务,实现超市的业务提升。本系统就是为了适应这种要求而设计的。集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护起来非常方便。大大减少了超市的人力和物力。本系统大致要做到以下几点:(1)操作简便,节省大量人力;(2)可以方便的进行货品管理,安全、高效;(3)可以迅速计算销售额和所买卖货品;(4)可以迅速查到所需信息,便于管理。2.设计方案简述2.1设计内容设计一个简单的超市管理系统。1.暂定有三个货架,分别放着日常用品、食品和家电。2.可以实货架商品的增加和出售。3.设计查询功能,可以查找商品的现状。4.不同商品有不同属性:食品类,保质期,家电,颜色。5.重载运算符。2.2设计目的与要求 2.2.1设计目的达到熟练掌握C+语言的基本知识和技能; 基本掌握面向对象程序设计的基本思路和方法; 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2.2.2 设计要求要求利用面向对象的方法以及C+的编程思想来完成系统的设计; 要求在设计的过程中,建立清晰的类层次; 在系统的设计中,至少要用到面向对象的一种机制。2.3系统分析与设计 2.3.1主要知识点 1)类,类内包含构造函数、成员函数、私有数据成员和某些输入输出函数; 2)运算符重载,定义一个重载运算符的函数,在需要执行被重载的运算符是,系统自动调用该函数;3)继承与派生:1.基类即父类,被继承的已有类;2.派生类即子类,新建立的类;3.这些类的定义和声明同类; 4.虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。 2.3.2关键技术1)程序共有四个头文件和四个源文件。头文件Supermarket,包含增加Add,出售Sale和查询Search三个公有成员函数;源文件Supermarket,增加函数,出售函数和查询函数的功能相似,选择功能,输出商品类型列表。头文件Goods,在这个头文件中有四个类,一个基类和三个派生类。基类Goods中设置增加AddGoods,出售SaleGoods,显示函数virtual ShowMe。同时定义统一的出售函数Sale。保护成员包括,商品名称name,商品数量number和商品分类的数量count。 派生类,日常用品类DailyGoods,食物Food和家电ElectricalAppliance,除了自身的无参构造函数,均从基类中继承增加AddGoods,出售SaleGoods,显示函数virtual ShowMe,并根据课题要求加入运算符重载函数istream operator (istream &in,DailyGoods &d)。同时借助函数Input_file和函数Save_file将商品信息输出并保存到文件中。 源文件Goods,实现各函数功能。 头文件diaplay,保存了小系统的基本页面和选择页面。登录界面Loading,功能选择界面SelectMenu,商品功能列表GoodList和结束页面End。 源文件display,进行头文件的各项函数的功能实现。 头文件file,是关于文件的存储,打开和关闭的功能。 源文件main,实现功能的汇总和实现方式。2)部分函数的实现/Supermaket*Add函数int Supermarket:Add()int Good_num;system(cls);GoodList(); /调用GoodList()函数语言coutGood_num;return Good_num;*Sale函数int Supermarket:Sale()int Good_num;system(cls);GoodList(); /调用GoodList()函数语言coutGood_num;return Good_num;*Search函数int Supermarket:Search()int Good_num;system(cls);GoodList(); /调用GoodList()函数语言coutGood_num;return Good_num; /Goods*Sale函数void Goods:Sale()/统一定义商品出售函数功能模块 int flag=0; string goods_name; int goods_number; coutgoods_name; coutgoods_number; for(int i=0;icount;i+) /count 在Goods.h中定义的保护成员 if(namei=goods_name) if(numberigoods_number) flag=1; coutendlttendl; coutttt ! 货存不足!endl; else flag=1; numberi-=goods_number; coutendlttendl; coutttt !出售成功!endl; if(flag=0) getchar();coutendlttendl; coutttt 没有该物品! endl; getchar(); *AddGoods函数void DailyGoods:AddGoods()/增加日常用品 system(cls); int flag=1; ShowMe(); coutendl请输入要增加日常用品的信息endlendl; coutnamecount; coutnumbercount; for(int i=0;icount;i+) if(namei=namecount)/判断该物品是否已经存在 numberi+=numbercount; flag=0; if(flag) count+;/用于新增物品coutendlendlttendl;coutttt ! 添加商品成功!endl; coutttendl; void Food:AddGoods()/增加食品system(cls);int flag=1;ShowMe();coutendl请输入需要增加的食品信息endl;coutnumbercount;for(int i=0;icount;i+)if(namei=namecount)/判断该物品是否存在numberi += numbercount;flag=0;if(flag)coutnumbercount;coutSaveTimecount;count+; /用于新增物品coutendlendlendlttendlendl;coutttt 添加商品成功! endl;coutendlendlendlendl;coutendlttendlendl;void ElectricalAppliance:AddGoods()/增加家电 system(cls); int flag=1; ShowMe(); coutendl请输入要增加的家电的信息endlendl; coutnamecount; for(int i=0;icount;i+) if(namei=namecount)/判断该物品是否已经存在 coutnumbercount; numberi+=numbercount; flag=0; if(flag) coutnumbercount; coutcolorcount; count+;/用于新增物品 coutendlendltt*endl; couttt ! 添加商品成功!!endl; couttt*endl; *SaleGoods函数void DailyGoods:SaleGoods()/出售日常用品 system(cls); ShowMe(); coutendl请输入要出售的日常用品信息endlendl; Sale();/调用基类Goods里的Sale()函数 void Food:SaleGoods()/出售食品system(cls);ShowMe();coutendl请输入要出售的食品信息endlendl;Sale(); /调用基类Goods里的Sale函数void ElectricalAppliance:SaleGoods() /卖出家电system(cls); ShowMe(); coutendl请输入要出售的家电信息endlendl; Sale();/调用基类Goods里的Sale()函数 *ShowMe函数void DailyGoods:ShowMe() /显示日常用品 coutendl 超市商品管理系统*日常用品区 endlendl; coutendl现有日常用品类商品库存:endlendl; for(int i=0;icount;i+) cout 【i+1】日常用品名称:setiosflags(ios:left)setw(15)namei; cout现存数量:numberi个endl; cout -endl; void Food:ShowMe() /显示食品信息 coutendl 超市商品管理系统*食品区 endlendl; coutendl现有食品类商品库存:endlendl; for(int i=0;icount;i+) cout 【i+1】食品名称:setiosflags(ios:left)setw(15)namei; /执行由有参数指定区域内的动作cout现存数量:setw(4)numberisetw(8)千克; / setw( n ) 设域宽为n个字符cout保质期:setw(3)SaveTimei天endl; cout -endl; void ElectricalAppliance:ShowMe() /显示家电信息 coutendl 超市商品管理系统*家电区 endlendl; coutendl现有家电类商品库存:endlendl; for(int i=0;icount;i+) cout 【i+1】家电名称:setiosflags(ios:left)setw(15)namei; cout现存数量:numberisetw(6)台; cout颜色:coloriendl; cout -endl; *文件的输入和保存函数void DailyGoods:Input_file(ostream&outfile)/将DailyGoods类商品信息打印到文件中 outfileendl现有日常用品类商品库存:endlendl; for(int i=0;icount;i+) outfile【i+1】日常用品名称:setiosflags(ios:left)setw(15)namei; outfile现存数量:numberi个endl; outfileendlendlendlendlendl; void DailyGoods:Save_file(ostream&Write_DailyGoods)/用于将DailyGoods商品信息单独保存到文件中 Write_DailyGoodscountendl; for(int i=0;icount;i+) Write_DailyGoodsnamei numberiendl; void Food:Input_file(ostream&outfile)/将Food类商品信息打印到文件中 outfileendl现有食品类商品库存:endlendl; for(int i=0;icount;i+) outfile【i+1】食品名称:setiosflags(ios:left)setw(15)namei; outfile现存数量:setw(4)numberisetw(8)千克; outfile保质期:setw(3)SaveTimei天endl; outfileendlendlendlendlendl; void Food:Save_file(ostream&Write_Food)/用于将Food商品信息保存到文件中 Write_Foodcountendl; for(int i=0;icount;i+) Write_Foodnamei numberi SaveTimeiendl; void ElectricalAppliance: Input_file(ostream&outfile)/将ElectricalAppliance类商品信息打印到文件中 outfileendl现有家电类(ElectricalAppliance)商品库存:endlendl; for(int i=0;icount;i+) outfile【i+1】家电名称:setiosflags(ios:left)setw(15)namei; outfile现存数量:numberisetw(6)台; outfile颜色:coloriendl; outfileendlendlendlendlendl; void ElectricalAppliance:Save_file(ostream&Write_ElectricalAppliance)/用于将ElectricalAppliance商品信息保存到文件中 Write_ElectricalAppliancecountendl; for(int i=0;icount;i+) Write_ElectricalAppliancenamei numberi coloriendl; /Display函数void SelectMenu()/实现商品操作的列表 coutendl 超 市 商 品 管 理 系 统 endlendl; coutt 可操作选项:endlendl; coutendlendl;coutttt 1 增加商品endl; coutttt 2 出售商品endl; coutttt 3 查询商品endl; coutttt endlendl; coutt您要进行的操作是:; void GoodList()/商品类别列表 coutendl 超 市 商 品 管 理 系 统endlendl; coutt 我们提供的商品有:endl; coutendlendl;coutttt 1 日常用品类endl; coutttt 2 食品类endl; coutttt 3 家电类endl; couttt endlendl; 3 详细设计3.1系统总体设计一个简单的超市管理系统增加商品出售商品查询商品日常用品,食品,家电日常用品,食品,家电日常用品,食品,家电3.2源程序代码/Supermarket.h#pragma once /保证头文件只被编译一次#includeusing namespace std;class Supermarket /要求(1)超市类,描述函数Add,Sale,Searchpublic:int Add(); /增加商品函数,可以增加新商品,也可以增加已有商品int Sale(); /按照商品名称卖出商品函数(如果商品现有数量小于卖出数量,则不能继续卖出,并给出提示信息)int Search(); /按照商品类别查询商品情况的函数,查询结果:每类商品中有哪些商品,每种花商品的名称和现有数量int Good_num;/Supermarket.cpp#pragma once #includeGoods.h#includeSupermarket.h#includeDisplay.husing namespace std;/增加商品的函数int Supermarket:Add()int Good_num;system(cls);GoodList(); /调用GoodList()函数语言coutGood_num;return Good_num;/按照商品名称卖出商品的函数int Supermarket:Sale()int Good_num;system(cls);GoodList(); /调用GoodList()函数语言coutGood_num;return Good_num;/按照商品类别查询商品情况的函数int Supermarket:Search()int Good_num;system(cls);GoodList(); /调用GoodList()函数语言coutGood_num;return Good_num; /Goods.h#pragma once #include#include#includeusing namespace std;/商品类Goodsclass Goodspublic:virtual void AddGoods()=0; /增加商品virtual void SaleGoods()=0; /出售商品virtual void ShowMe()=0; /显示商品名称、现有数量、和食品类的保质期、以及家电的颜色void Sale(); /统一定义商品出售函数功能模块protected:string name100; /记录商品名称int number100; /记录商品数量int count; /记录各类商品的各自的商品种数;/派生类:日常用品类DailyGoodsclass DailyGoods:public Goodspublic:DailyGoods(); /无参构造函数void AddGoods(); /增加商品void SaleGoods();/出售商品friend istream operator (istream &in,DailyGoods &d);/对DailyGoods类重载运算符,用于文件中读取日常用品类的信息void ShowMe(); /显示商品属性void Input_file(ostream&outfile); /用于将商品信息输出到文件中void Save_file(ostream&Write_DailyGoods); /用于将商品信息单独保存到文件中;/派生类:食品类Foodclass Food:public Goodspublic:Food(); /无参构造函数void AddGoods(); /增加商品void SaleGoods();/出售商品/friend istream operator (istream &in,Food &f);/对Food类重载运算符,用于文件中读取日常用品类的信息void ShowMe(); /显示商品属性void Input_file(ostream&outfile); /用于将商品信息输出到文件中void Save_file(ostream&Write_Food); /用于将商品信息单独保存到文件中private:int SaveTime100; /保质期;/派生类:家电类ElectricalApplianceclass ElectricalAppliance:public Goodspublic:ElectricalAppliance();/无参构造函数void AddGoods(); /增加商品void SaleGoods(); /出售商品/friend istream operator (istream &in,ElectricalAppliance &e);/对ElectricalAppliance类重载运算符,用于文件中读取日常用品类的信息void ShowMe(); /显示商品属性void Input_file(ostream&outfile); /用于将商品信息输出到文件中void Save_file(ostream&Write_ElectricalAppliance); /用于将商品信息单独保存到文件中private:string color100; /颜色属性;/Goods.cpp#pragma once #includeGoods.h #includeSupermarket.h #includeDisplay.h #include #include using namespace std; void Goods:Sale()/统一定义商品出售函数功能模块 int flag=0; string goods_name; int goods_number; coutgoods_name; coutgoods_number; for(int i=0;icount;i+) /count 在Goods.h中定义的保护成员 if(namei=goods_name) if(numberigoods_number) flag=1; coutendlttendl; coutttt ! 货存不足!endl; else flag=1; numberi-=goods_number; coutendlttendl; coutttt !出售成功!endl; if(flag=0) getchar();coutendlttendl; coutttt 没有该物品! endl; /日常用品类函数定义DailyGoods:DailyGoods()/类外定义构造函数,初始化货存日常用品信息 count=4; name0=台灯;number0=76; name1=毛巾;number1=68; name2=杯子;number2=53; name3=水壶;number3=48; void DailyGoods:AddGoods()/增加日常用品 system(cls); int flag=1; ShowMe(); coutendl请输入要增加日常用品的信息endlendl; coutnamecount; coutnumbercount; for(int i=0;icount;i+) if(namei=namecount)/判断该物品是否已经存在 numberi+=numbercount; flag=0; if(flag) count+;/用于新增物品coutendlendlttendl;coutttt ! 添加商品成功!endl; coutttendl; void DailyGoods:SaleGoods() system(cls); ShowMe(); coutendl请输入要出售的日常用品信息endlendl; Sale();/调用基类Goods里的Sale()函数 void DailyGoods:ShowMe() coutendl 超市商品管理系统*日常用品区 endlendl; coutendl现有日常用品类商品库存:endlendl; for(int i=0;icount;i+) cout 【i+1】日常用品名称:setiosflags(ios:left)setw(15)namei; cout现存数量:numberi个endl; cout -endl; void DailyGoods:Input_file(ostream&outfile)/将DailyGoods类商品信息打印到文件中 outfileendl现有日常用品类商品库存:endlendl; for(int i=0;icount;i+) outfile【i+1】日常用品名称:setiosflags(ios:left)setw(15)namei; outfile现存数量:numberi个endl; outfileendlendlendlendlendl; void DailyGoods:Save_file(ostream&Write_DailyGoods)/用于将DailyGoods商品信息单独保存到文件中 Write_DailyGoodscountendl; for(int i=0;icount;i+) Write_DailyGoodsnamei numberiendl; /食品类Food的函数定义Food:Food() /类外定义构造函数,初始化火车食品信息count=6;name0=苹果; number0=360; SaveTime0=15;name1=香蕉; number1=500; SaveTime1=5;name2=李子; number2=450; SaveTime2=2;name3=西瓜; number3=350; SaveTime3=8;name4=杨梅; number4=400; SaveTime4=7;name5=芒果; number5=300; SaveTime5=21;void Food:AddGoods()system(cls);int flag=1;ShowMe();coutendl请输入需要增加的食品信息endl;cout namecount;for(int i=0;icount;i+)if(namei=namecount)/判断该物品是否存在numberi += numbercount;flag=0;if(flag)coutnumbercount;coutSaveTimecount;count+; /用于新增物品coutendlendlendlttendlendl;coutttt 添加商品成功! endl;coutendlendlendlendl;coutendlttendlendl;void Food:SaleGoods()system(cls);ShowMe();coutendl请输入要出售的食品信息endlendl;Sale(); /调用基类Goods里的Sale函数void Food:ShowMe() coutendl 超市商品管理系统*食品区 endlendl; coutendl现有食品类商品库存:endlendl; for(int i=0;icount;i+) cout 【i+1】食品名称:setiosflags(ios:left)setw(15)namei; /执行由有参数指定区域内的动作cout现存数量:setw(4)numberisetw(8)千克; / setw( n ) 设域宽为n个字符cout保质期:setw(3)SaveTimei天endl; cout -endl; void Food:Input_file(ostream&outfile)/将Food类商品信息打印到文件中 outfileendl现有食品类商品库存:endlendl; for(int i=0;icount;i+) outfile【i+1】食品名称:setiosflags(ios:left)setw(15)namei; outfile现存数量:setw(4)numberisetw(8)千克; outfile保质期:setw(3)SaveTimei天endl; outfileendlendlendlendlendl; void Food:Save_file(ostream&Write_Food)/用于将Food商品信息保存到文件中 Write_Foodcountendl; for(int i=0;icount;i+) Write_Foodnamei numberi SaveTimeiendl; /家电类(ElectricalAppliance)的函数定义ElectricalAppliance:ElectricalAppliance()/类外定义构造函数,初始化货存家电信息 count=3; name0=空调 ; number0=123; color0=黑色; name1=冰箱 ; number1=111; color1=白色; name2=电视 ; number2=104; color2=红色; name3=洗衣机;number3=125; color3=蓝色; void ElectricalAppliance:AddGoods()/增加家电 system(cls); int flag=1; ShowMe(); coutendl请输入要增加的家电的信息endlendl; coutnamecount; for(int i=0;icount;i+) if(namei=namecount)/判断该物品是否已经存在
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 中学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!