- 问题描述
系统应具有下列主要功能:输入记录功能:从键盘输入货物信息:商品代号,商品名称, 数量,价格,所属类别(如家用电器、日用品等)等;修改商品数量、删除记录功能、按商品代号查询、按商品代号排序并显示等功能。
- 设计要求
(1) 使用继承的方法构造至少 3 个类,(即商品类 Goods——虚基类,家用电器类和日 用品类——派生类),另外再设计一个管理类,实现对商品的管理;
(2) 用文本编辑器编辑一个文本文件(总数 20 件以上)包含各类商品信息,程序运行 时进行初始化数据,使用 vector 数组存放对象指针。并能保存数据为磁盘文件。
(3) 编写同名 display() 成员函数既虚函数,用来输出所有商品的信息。要求对“< <”和“>>”运算符进行重载,实现信息的输入输出。
(4) 菜单功能:添加(输入)记录,修改商品数量,浏览商品信息,按商品代号查找, 删除记录
- 需求分析
1、通过c++程序实现商店仓库管理系统,可以正常运行并实现分类等操作。主要运用类和派生函数去实现。
2. 使用面向对象的程序设计进行分析,整个系统涉及两大类可操作,超市管理所用函数、商品。所以系统主要涉及两大类:超市的类、管理类。系统框架就是超市的类和商品类的定义;主函数中定义一个超市对象,循环显示主菜单并根据用户选择调用超市的类的相应方法(成员函数)。
#include <iostream>
#include <fstream>
#include <string.h>
#include <stdio.h>
#include <conio.h>//用getch();
using namespace std;
class Goods
{
public:
Goods()
{
}
int kind;
char name[20];
char Id[20];
float price;
int amount;
Goods * Next;
friend ostream& operator<<(ostream& out,Goods& obj)
{
out<<obj.Id<<obj.name<<obj.amount<<obj.kind;
}
friend istream& operator>>(istream& in,Goods& obj)
{
in>>obj.Id>>obj.name>>obj.amount>>obj.kind;
}
void InputAll()
{
InputName();
InputKind();
InputID();
InputOther();
}
void InputKind()
{
cout<<"\t\t请选择种类:";cin>>kind;
}
void InputName()
{
cout<<"\t\t请输入商品的名称:"; cin>>name;
}
void InputID()
{
cout<<"\t\t请输入商品的编号:"; cin>>Id;
}
void InputBuyprice()
{
cout<<"\t\t请输入商品单价:"; cin>>price;
}
void InputAmount()
{
cout<<"\t\t请输入商品库存:"; cin>>amount;
}
void InputOther()
{
cout<<"\t\t请输入商品价格:"; cin>>price;
cout<<"\t\t请输入存货数量:"; cin>>amount;
}
void ReadFile(istream & in)
{
in>>name>>kind>>Id>>price>>amount;
}
void Show()
{
cout<<"商品名: "<<name<<endl<<"种类:"<<kind<<endl<<"编号: "<<Id<<endl<<"价格 "<<price<<endl<<"商品库存: "<<amount<<endl<<endl<<endl;
}
};
class Goodsmanager : public Goods
{
public:
Goodsmanager();
~Goodsmanager();
void showMenu(int n);
void Find();
void Save();
void ModifyItem();
void RemoveItem();
void Swap(Goods *,Goods *);
void Sort();
void delgoods();
//void Chack();
int ListCount();
void Disp