1、 要求在设计的过程中,建立清晰的类层次;在系统的设计中,至少要用到面向对象的一种机制。二、进度安排:第3天: 查找资料,熟悉小型超市管理系统的设计原理,给出设计总体方案;第46天: 各函数的详细设计;第712天: 程序调试;第1314天:写课程设计报告。三、主要参考文献:1c+语言程序设计(第四版)郑莉 董渊 何江舟 编著 指导教师签字: 年 月 日 摘 要11概 述22 设计方案简述32.1 设计内容2.2 设计目的与要求2.3 系统分析与设计3 详细设计123.1 系统总体设计3.2 源程序代码134 运行结果285设计体会32摘 要当代社会中伴随着计算机技术在各行各业日益广泛和深入的应用
2、,超市对货品于职员的管理不在像过去一样靠手工去做,在一些超市管理中也开始信息化。信息化的管理可以为超市节省大量人力物力,提高其运行效率,从而为顾客提供更好的服务,实现超市的业务提升。本系统就是为了适应这种要求而设计的。集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护起来非常方便。大大减少了超市的人力和物力。本系统大致要做到以下几点:(1)操作简便,节省大量人力;(2) 可以方便的进行货品管理,安全、高效;(3)可以迅速计算销售额和所买卖货品;(4)可以迅速查到所需信息,便于管理1 概 述1.1任务:超市管理系统对职员商品信息进行高效简洁的管理,使之能正常高效的进行售卖活动。系统充
3、分考虑到超市管理系统对货物资料进行登记并处理。考虑到进货、退货、库存预警、年月日销售额结算等多种特殊情况,同时可将相关资料进行有效处理。1.2目标:(2)可以方便的进行货品管理,安全、高效;可以迅速查到所需信息,便于管理。2.设计方案简述2.1设计内容设计一个简单的超市管理系统。2.2设计目的与要求 2.2.1设计目的达到熟练掌握C+语言的基本知识和技能;基本掌握面向对象程序设计的基本思路和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2.2.2 设计要求2.3 系统分析与设计 2.3.1主要知识点 1)类,类内包含构造函数、成员函数、私有数据成员和某些输入输出函数; 2
4、)运算符重载,定义一个重载运算符的函数,在需要执行被重载的运算符是,系统自动调用该函数;3)继承与派生:1.基类即父类,被继承的已有类;2.派生类即子类,新建立的类;3.这些类的定义和声明同类; 4.虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。2.3.2关键技术1)程序共有四个头文件和四个源文件。头文件Supermarket,包含增加Add,出售Sale和查询Search三个公有成员函数;源文件Supermarket,增加函数,出售函数和查询函数的功能相似,选择功能,输出商品类型列表。头文件Goods,在这个头文件中有四个类,
5、一个基类和三个派生类。基类Goods中设置增加AddGoods,出售SaleGoods,显示函数virtual ShowMe。同时定义统一的出售函数Sale。保护成员包括,商品名称name,商品数量number和商品分类的数量count。 派生类,日常用品类DailyGoods,食物Food和家电ElectricalAppliance,除了自身的无参构造函数,均从基类中继承增加AddGoods,出售SaleGoods,显示函数virtual ShowMe,并根据课题要求加入运算符重载函数istream operator (istream &in,DailyGoods &d)。同时借助函数Inp
6、ut_file和函数Save_file将商品信息输出并保存到文件中。 源文件Goods,实现各函数功能。 头文件diaplay,保存了小系统的基本页面和选择页面。登录界面Loading,功能选择界面SelectMenu,商品功能列表GoodList和结束页面End。 源文件display,进行头文件的各项函数的功能实现。 头文件file,是关于文件的存储,打开和关闭的功能。 源文件main,实现功能的汇总和实现方式。2)部分函数的实现/Supermaket*Add函数int Supermarket:Add() int Good_num; system(cls); GoodList(); /调用
7、GoodList()函数语言 coutGood_num; return Good_num;*Sale函数Sale()tt您要出售什么类型的商品?*Search函数Search()tt您想要查询什么类型的商品?/Goodsvoid Goods:Sale()/统一定义商品出售函数功能模块 int flag=0; string goods_name; int goods_number;商品名称:goods_name;出售数量:goods_number; for(int i=0;icount;i+) /count 在Goods.h中定义的保护成员 if(namei=goods_name) if(num
8、berigoods_number) flag=1; coutendlttendl;ttt ! 货存不足! else numberi-=goods_number;出售成功! if(flag=0) getchar(); cout请输入要增加日常用品的信息namecount;商品数量:numbercount;i+) if(namei=namecount)/判断该物品是否已经存在 numberi+=numbercount; flag=0; if(flag) count+;/用于新增物品 添加商品成功!void Food:AddGoods()/增加食品请输入需要增加的食品信息商品名称:i+) if(na
9、mei=namecount)/判断该物品是否存在 numberi += numbercount; if(flag)商品数量:保质期:SaveTimecount; /用于新增物品ttt 添加商品成功!void ElectricalAppliance:AddGoods()/增加家电 请输入要增加的家电的信息 cout cin颜色:colorcount;/用于新增物品 tt*tt ! 添加商品成功! *SaleGoods函数SaleGoods()/出售日常用品 请输入要出售的日常用品信息 Sale();/调用基类Goods里的Sale()函数 SaleGoods()/出售食品请输入要出售的食品信息
10、/调用基类Goods里的Sale函数SaleGoods() /卖出家电请输入要出售的家电信息*ShowMe函数ShowMe() /显示日常用品 超市商品管理系统*日常用品区 现有日常用品类商品库存: 【i+1】日常用品名称:setiosflags(ios:left)setw(15)namei;现存数量:numberi个 -ShowMe() /显示食品信息 超市商品管理系统*食品区 现有食品类商品库存:食品名称: /执行由有参数指定区域内的动作setw(4)setw(8)千克 / setw( n ) 设域宽为n个字符保质期:setw(3)SaveTimei天 -ShowMe() /显示家电信息
11、超市商品管理系统*家电区 现有家电类商品库存:家电名称:setw(6)台colori -*文件的输入和保存函数Input_file(ostream&outfile)/将DailyGoods类商品信息打印到文件中 outfile outfile【 void DailyGoods:Save_file(ostream&Write_DailyGoods)/用于将DailyGoods商品信息单独保存到文件中 Write_DailyGoodscount Write_DailyGoodsnameioutfile)/将Food类商品信息打印到文件中 Write_Food)/用于将Food商品信息保存到文件中 Write_Food Write_Food Input_file(ostream&outfile)/将ElectricalAppliance类商品信息打印到文件中 现有家电类(ElectricalAppliance)商品库存: outfileWrite_ElectricalAppliance)/用于将ElectricalAppliance商品信息保存到文件中 Write_ElectricalAppliance Write_ElectricalAppliance/Display函数void SelectMenu()/实现商品操作的列表 超 市 商 品 管 理 系 统 t 可操作选项: