ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:329.58KB ,
资源ID:12921995      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-12921995.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++商品管理系统实验报告.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C++商品管理系统实验报告.docx

1、C+商品管理系统实验报告面向对象程序设计实训报告题目: 模拟超市商品管理系统 专 业: 班 级: 学 号: 小组成员: 年 月 日1 课程设计目的12 程序要求与简介13 系统分析23.1系统流程图23.2主要类说明34 测试运行的结果45 心得体会66 程序代码清单6一、课程设计目的通过设计一个较为简单的商场库存货物管理系统,进一步熟悉C+中类的概念、类的封装、继承的实现方式。了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程,加深对C+的理解与Visual C+环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。二、程序要求与简介设计并实现超市进销存管

2、理系统,假设超市有三个货架,分别放有日常用品、食品和家电。本题要求完成以下内容:1. 实现描述超市的类。该类中要求包含三个函数:(1) 增加商品的函数(说明:能增加新的商品,也能增加已有商品的数量)。(2) 销售函数,按照商品名称销售(要求:当商品现有数量少于卖出数量时,商品不能继续卖出,并有相关信息显示)。(3) 按照商品名称查询商品基本情况的函数。(查询结果包括基本属性和现有数量)。2. 定义商品类作为基类,要求包含:商品编号,名称,商品现有数量,以及输出函数(可定义为虚函数)。3. 从商品类中派生日用品类,食品类,家电类。其中,食品类商品拥有保质期属性,家电类商品拥有颜色属性(其他属性可

3、根据实际情况自行定义)。由输出函数来具体显示各类商品的名称、基本属性和现有数量。4. 设计简单的菜单界面,实现上述所要求的各种功能。即根据菜单界面的选择,对每一种商品都可以添加、售出和查询各类商品。5. 程序应采用多文件结构。6. (选做)重载输入“”操作符,使得可以通过cin直接读入上述商品对象的值。分工:商品基类,三个派生类,主函数三、系统分析1.系统流程图2.程序分析使用面向对象的程序设计进行分析,整个系统涉及两大类可操作,超市所用函数、商品。所以系统主要涉及两大类:超市的类、商品类。系统框架就是超市的类和商品类的定义;主函数中定义一个超市对象,循环显示主菜单并根据用户选择调用超市的类的

4、相应方法(成员函数)。考虑系统操作的商品信息具有不确定性,所以考虑使用链表保存、处理商品信息。超市类包含:所有商品信息的一个不带头结点的链表及可以对商品信息进行增加,销售,查询操作的相关模块为成员函数。所有商品都具有的公共信息及操作可以使用超市类进行描述。由于系统具有3类商品且3类商品信息数据,操作基本相同,所以可以为他们创立相同的类,并且采用继承和派生。四、测试运行结果1.超市商品管理系统界面2.商品增加3.商品查询4.自动生成5.商品销售五、心得体会通过学生的分组设计,使学生能够基本掌握C+程序设计的方法,并且在此基础上掌握类的构造方法,明确类中构造函数、成员函数的建立以及调用,灵活运用派

5、生与继承。此外,并且,结合C+中,字符串函数的编译系统给定的库函数,采用一定的逻辑编译,实现题目中要求的各项要求,达到基本实验目的,提高自己的C+语言使用水平。六、程序代码清单#include #include / setw()右对齐函数#include using namespace std;class ShangPin /商品类private: char name10; int count;public: ShangPin(char* s_name,int s_count) strcpy(name,s_name); count=s_count; char* getName() return

6、 name; int getCount() return count; void setCount(int a) count=a; void print() coutsetw(10)namesetw(10)count; ;class YongPin : public ShangPin /日用品类public: YongPin(char* s_name=NONE,int s_count=0):ShangPin(s_name,s_count); void print() ShangPin:print(); coutendl; ;class ShiPin:public ShangPin /食品类pr

7、ivate: int year; int moon; int day;public: ShiPin(char* s_name=NONE,int s_count=0,int a=0,int b=0,int c=0):ShangPin(s_name,s_count) year=a;moon=b;day=c; int getYear() return year; int getMoon() return moon; int getDay() return day; void print() ShangPin:print(); coutsetw(10)yearsetw(3)moonsetw(3)day

8、endl; ;class DianQi:public ShangPin /电器类private: char colour10;public: DianQi(char* s_name=NONE,int count=0,char* s_colour=NONE):ShangPin(s_name,count) strcpy(colour,s_colour); char* gateColour() return colour; void print() ShangPin:print(); coutsetw(30)colourendl; ;int str(char* s1,char* s2) /判断字符串

9、内容是否相同 while(*s1=*s2) if(*s1=0) return 1; s1+; s2+; return 0;int main() YongPin yp10; /申请10组用日品类型的空间 ShiPin sp10; DianQi dq10; int a,b=1,i,count; char name10; while(1) cout*欢迎来到超市商品管理系统!*endl; cout* 1:增加 *endl; cout* 2:销售 *endl; cout* 3:查询 *endl; cout* 4:随机 *endl; cout* 0:退出 *endl; cout*endl; couta;

10、 switch(a) case 0: return 1; /退出程序 case 1: /增加 cout请输入增加商品种类endl; cout1:日用品endl2:食品endl3:电器a; switch(a) case 1: /增加日用品 cout请按格式输入:日用品名称 增加数量namecount; b=1; for(i=0;str(ypi.getName(),name)=0&i10;i+) /str(ypi.getName(),name)=0名称是否不一样 if(str(ypi.getName(),NONE) /str(ypi.getName(),NONE)名称不存在 ypi=YongPin

11、(name,count); b=0; break; if(i=10) cout空间已满,无法存储,;break; if(b) ypi.setCount(ypi.getCount()+count); coutsetw(10) 名称setw(10)数量setw(15)保质期setw(15)颜色endl; ypi.print(); break; case 2: /增加食品 cout请按格式输入:食品名称 增加数量 保质期(年 月 日)namecountyearmoonday; b=1; for(i=0;str(spi.getName(),NONE)=0&i10;i+) if(str(spi.getN

12、ame(),name)&day=spi.getDay()&year=spi.getYear()&moon=spi.getMoon() spi.setCount(spi.getCount()+count); b=0; break; if(i=10) cout空间已满,无法存储,;break; if(b) spi=ShiPin(name,count,year,moon,day); coutsetw(10) 名称setw(10)数量setw(15)保质期setw(15)颜色endl; spi.print(); break; case 3: /增加电器 cout请按格式输入:电器名称 增加数量 颜色n

13、amecountcolour; b=1; for(i=0;str(dqi.getName(),NONE)=0&i10;i+) if(str(dqi.getName(),name)&str(dqi.gateColour(),colour) dqi.setCount(dqi.getCount()+count); b=0; break; if(i=10) cout空间已满,无法存储,;break; if(b) dqi=DianQi(name,count,colour); coutsetw(10) 名称setw(10)数量setw(15)保质期setw(15)颜色endl; dqi.print();

14、break; break; case 2: /卖出 cout请输入卖出商品种类endl1:日用品endl2:食品endl3:电器a; switch(a) case 1: /卖出日用品 cout请按格式输入:日用品名称 卖出数量namecount; b=1; for(i=0;str(ypi.getName(),name)=0&i10;i+) if(str(ypi.getName(),NONE) cout无此商品出售,; b=0; break; if(b) if(ypi.getCount()-count)0) coutypi.getName()还有ypi.getCount()件,不够出售,; br

15、eak; ypi.setCount(ypi.getCount()-count); coutsetw(10) 名称setw(10)数量setw(15)保质期setw(15)颜色endl; ypi.print(); break; case 2: /卖出食品 cout请按格式输入:食品名称 卖出数量 保质期(年 月 日)namecountyearmoonday; b=1; for(i=0;str(spi.getName(),NONE)=0&i10;i+) if(str(spi.getName(),name)&day=spi.getDay()&year=spi.getYear()&moon=spi.g

16、etMoon() if(spi.getCount()-count)0) coutspi.getName()还有spi.getCount()件,不够出售,; b=0; break; spi.setCount(spi.getCount()-count); b=0; coutsetw(10) 名称setw(10)数量setw(15)保质期setw(15)颜色endl; spi.print(); break; if(b) cout无此商品出售,; break; case 3: /卖出电器 cout请按格式输入:电器名称 卖出数量 颜色namecountcolour; b=1; for(i=0;str(

17、dqi.getName(),NONE)=0&i10;i+) if(str(dqi.getName(),name)&str(dqi.gateColour(),colour) if(dqi.getCount()-count)0) coutdqi.getName()还有dqi.getCount()件,不够出售,; b=0; break; dqi.setCount(dqi.getCount()-count); b=0; coutsetw(10) 名称setw(10)数量setw(15)保质期setw(15)颜色endl; dqi.print(); break; if(b) cout无此商品出售,; b

18、reak; break; case 3: /查询 cout 请选择查询商品种类endl1:日用品endl2:食品endl3:电器endl4:全部(a); switch(a) case 1: /查询日用品 cout日用品:endlsetw(10)名称setw(10)数量endlendl; for(i=0;str(ypi.getName(),NONE)=0&i10;i+) ypi.print(); break; case 2: /查询食品 cout 食品:endlsetw(10)名称setw(10)数量setw(15)保质期endlendl; for(i=0;str(spi.getName(),N

19、ONE)=0&i10;i+) spi.print(); break; case 3: /查询电器 cout 电器:endlsetw(10)名称setw(10)数量setw(30)颜色endlendl; for(i=0;str(dqi.getName(),NONE)=0&i10;i+) dqi.print(); break; case 4: /查询全部 coutsetw(10) 名称setw(10)数量setw(15)保质期setw(15)颜色endlendl; for(i=0;str(ypi.getName(),NONE)=0&i10;i+) ypi.print(); for(i=0;str(

20、spi.getName(),NONE)=0&i10;i+) spi.print(); for(i=0;str(dqi.getName(),NONE)=0&i10;i+) dqi.print(); break; break; case 4: /添加测试数据 yp0=YongPin(桌子,5); yp1=YongPin(椅子,10); yp2=YongPin(簸箕,20); yp3=YongPin(扫帚,30); yp4=YongPin(水壶,15); sp0=ShiPin(牛奶,10,2011,5,12); sp1=ShiPin(牛奶,20,2011,5,13); sp2=ShiPin(面包,25,2011,7,1); sp3=ShiPin(饼干,15,2011,8,1); sp4=ShiPin(矿泉水,30,2011,6,1); dq0=DianQi(随身听,5,black); dq1=DianQi(随身听,3,red); dq2=DianQi(MP3,10,black); dq3=DianQi(MP3,5,red); dq4=DianQi(MP3,2,green); coutendlendl数据已添加,; cout请输入任意数字返回a;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2