您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > C++商品管理系统实验报告
北京联合大学信息学院《面向对象程序设计》实训报告题目:模拟超市商品管理系统专业:班级:学号:小组成员:年月日北京联合大学信息学院1目录1课程设计目的……………………………………………12程序要求与简介…………………………………………13系统分析…………………………………………………23.1系统流程图…………………………………………23.2主要类说明…………………………………………34测试运行的结果…………………………………………45心得体会…………………………………………………66程序代码清单……………………………………………6一、课程设计目的通过设计一个较为简单的《商场库存货物管理系统》,进一步熟悉C++中类的概念、类的封装、继承的实现方式。了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程,加深对C++的理解与VisualC++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。二、程序要求与简介设计并实现超市进销存管理系统,假设超市有三个货架,分别放有日常用品、食品和家电。本题要求完成以下内容:1.实现描述超市的类。该类中要求包含三个函数:(1)增加商品的函数(说明:能增加新的商品,也能增加已有商品的数量)。(2)销售函数,按照商品名称销售(要求:当商品现有数量少于卖出数量时,商品不能继续卖出,并有相关信息显示)。(3)按照商品名称查询商品基本情况的函数。(查询结果包括基本属性和现有数量)。2.定义商品类作为基类,要求包含:商品编号,名称,商品现有数量,以及输出函数(可定义为虚函数)。3.从商品类中派生日用品类,食品类,家电类。其中,食品类商品拥有保质期北京联合大学信息学院2属性,家电类商品拥有颜色属性(其他属性可根据实际情况自行定义)。由输出函数来具体显示各类商品的名称、基本属性和现有数量。4.设计简单的菜单界面,实现上述所要求的各种功能。即根据菜单界面的选择,对每一种商品都可以添加、售出和查询各类商品。5.程序应采用多文件结构。6.(选做)重载输入“”操作符,使得可以通过cin直接读入上述商品对象的值。分工:商品基类,三个派生类,主函数三、系统分析1.系统流程图超市商品管理系统增加商品销售商品查询商品退出系统判定判定判定增加已有商品增加未有商品没有可用空间无此商品出售商品数量不足商品成功售出输出商品信息无此商品北京联合大学信息学院32.程序分析使用面向对象的程序设计进行分析,整个系统涉及两大类可操作,超市所用函数、商品。所以系统主要涉及两大类:超市的类、商品类。系统框架就是超市的类和商品类的定义;主函数中定义一个超市对象,循环显示主菜单并根据用户选择调用超市的类的相应方法(成员函数)。考虑系统操作的商品信息具有不确定性,所以考虑使用链表保存、处理商品信息。超市类包含:所有商品信息的一个不带头结点的链表及可以对商品信息进行增加,销售,查询操作的相关模块为成员函数。所有商品都具有的公共信息及操作可以使用超市类进行描述。由于系统具有3类商品且3类商品信息数据,操作基本相同,所以可以为他们创立相同的类,并且采用继承和派生。四、测试运行结果1.超市商品管理系统界面2.商品增加北京联合大学信息学院43.商品查询4.自动生成5.商品销售北京联合大学信息学院5五、心得体会通过学生的分组设计,使学生能够基本掌握C++程序设计的方法,并且在此基础上掌握类的构造方法,明确类中构造函数、成员函数的建立以及调用,灵活运用派生与继承。此外,并且,结合C++中,字符串函数的编译系统给定的库函数,采用一定的逻辑编译,实现题目中要求的各项要求,达到基本实验目的,提高自己的C++语言使用水平。六、程序代码清单#includeiostream#includeiomanip//setw()右对齐函数#includestringusingnamespacestd;classShangPin//商品类{private:charname[10];intcount;public:ShangPin(char*s_name,ints_count){strcpy(name,s_name);count=s_count;}char*getName(){returnname;}北京联合大学信息学院6intgetCount(){returncount;}voidsetCount(inta){count=a;}voidprint(){coutsetw(10)namesetw(10)count;}};classYongPin:publicShangPin//日用品类{public:YongPin(char*s_name=NONE,ints_count=0):ShangPin(s_name,s_count){};voidprint(){ShangPin::print();coutendl;}};classShiPin:publicShangPin//食品类{private:intyear;intmoon;intday;public:ShiPin(char*s_name=NONE,ints_count=0,inta=0,intb=0,intc=0):ShangPin(s_name,s_count){year=a;moon=b;day=c;}intgetYear(){returnyear;}intgetMoon(){returnmoon;}intgetDay(){returnday;}voidprint(){ShangPin::print();coutsetw(10)yearsetw(3)moonsetw(3)dayendl;}};classDianQi:publicShangPin//电器类{private:charcolour[10];public:DianQi(char*s_name=NONE,intcount=0,char*北京联合大学信息学院7s_colour=NONE):ShangPin(s_name,count){strcpy(colour,s_colour);}char*gateColour(){returncolour;}voidprint(){ShangPin::print();coutsetw(30)colourendl;}};intstr(char*s1,char*s2)//判断字符串内容是否相同{while(*s1==*s2){if(*s1=='\0')return1;s1++;s2++;}return0;}intmain(){YongPinyp[10];//申请10组用日品类型的空间ShiPinsp[10];DianQidq[10];inta,b=1,i,count;charname[10];while(1){cout******欢迎来到超市商品管理系统!******endl;cout*1:增加*endl;cout*2:销售*endl;cout*3:查询*endl;cout*4:随机*endl;cout*0:退出*endl;cout*************************************endl;cout请输入您的选择:;cina;switch(a){case0:return1;//退出程序case1://增加cout请输入增加商品种类endl;北京联合大学信息学院8cout1:日用品endl2:食品endl3:电器endl;cina;switch(a){case1://增加日用品cout请按格式输入:日用品名称增加数量endl;cinnamecount;b=1;for(i=0;str(yp[i].getName(),name)==0&&i10;i++)//str(yp[i].getName(),name)==0名称是否不一样{if(str(yp[i].getName(),NONE))//str(yp[i].getName(),NONE)名称不存在{yp[i]=YongPin(name,count);b=0;break;}}if(i==10){cout空间已满,无法存储,;break;}if(b){yp[i].setCount(yp[i].getCount()+count);}coutsetw(10)名称setw(10)数量setw(15)保质期setw(15)颜色endl;yp[i].print();break;case2://增加食品cout请按格式输入:食品名称增加数量保质期(年月日)endl;intyear,moon,day;cinnamecountyearmoonday;b=1;for(i=0;str(sp[i].getName(),NONE)==0&&i10;i++){if(str(sp[i].getName(),name)&&day==sp[i].getDay()&&year==sp[i].getYear()&&moon==sp[i].getMoon()){sp[i].setCount(sp[i].getCount()+count);b=0;break;}}北京联合大学信息学院9if(i==10){cout空间已满,无法存储,;break;}if(b){sp[i]=ShiPin(name,count,year,moon,day);}coutsetw(10)名称setw(10)数量setw(15)保质期setw(15)颜色endl;sp[i].print();break;case3://增加电器cout请按格式输入:电器名称增加数量颜色endl;charcolour[10];cinnamecountcolour;b=1;for(i=0;str(dq[i].getName(),NONE)==0&&i10;i++){if(str(dq[i].getName(),name)&&str(dq[i].gateColour(),colour)){dq[i].setCount(dq[i].getCount()+count);b=0;break;}}if(i==10){cout空间已满,无法存储,;break;}if(b){dq[i]=DianQi(name,count,colour);}coutsetw(10)名称setw(10)数量setw(15)保质期setw(15)颜色endl;dq[i].print();break;}break;case2://卖出cout请输入卖出商品种类endl1:日用品endl2:食品endl3:电器endl;cina;switch(a){case1://卖出日用品cout请按格式输入:日用品名称卖出数量endl;cinnamecount;北京联合大学信息学院10b=1;for(i=0;str(yp[i].getName(),name)==0&&i10;i++){if(str(yp[i].getName(),NONE)){cout无此商品出售,;b=0;break;}}if(b){if((yp[i].getCount()-count)0){coutyp[i].getName()还有yp[i].getCount()件,不够出售,;break;}yp[i].setCount(yp[i].getCount()-count);coutsetw(10)名称setw(10)数量setw(15)保质期setw(15)颜色endl;yp[i].print();}break;case2://卖出食品cout
本文标题:C++商品管理系统实验报告
链接地址:https://www.777doc.com/doc-6526561 .html