c++程序设计 超市存包系统

在大中型超市门口一般都放置有很多存放包的箱子,顾客可以将不能带入超市的物品暂存在里面,购物结束后在取回。顾客使用箱子的整个流程为:按“存”按钮——“找到空箱子,产生密码”(系统完成)——“打印密码,打开箱子”(系统完成)——“取密码纸存包,并关闭箱子,入超市购物”;“购物结束”——“输入密码”——“找到对应的箱子并打开”(系统完成)——“取包”。现要求设计程序模拟以上系统功能,并且操作简单、界面清晰、灵活、实用、方便等。

(当空箱子被顾客申请得到时,系统自动生成6位密码,此密码不能与正在使用的任何一个箱子的密码相同。)

已经写完第三类了........让我好好歇会

#include<iostream>
#include<iomanip>
#include<stdlib.h>
#include<time.h>
using namespace std;
int prepas[21]={0};        //定义数组下标1~20为箱子编号 存储各个箱子密码
int bag[21]={0};            //定义标记数组 值为1表示箱子已满 值为0表示箱子为空
class mima              //密码类
{
    private:
        int password;    //密码
    public:
    mima()          //密码类构造函数
    {
        srand((int)time(0));        //生成随机数种子
        password=rand()%100000+900000;  //随机生成密码
    }
    void start();                //初始界面
    int getpassword();          //获取密码信息
    int findbag();             //寻找可以存包的箱子
    void remake();              //密码重置
    void print();               //打印箱子
    bool issame();             //判断密码是否相同
    void show();                //显示密码
    int  paking();               //存包
    void takeout();             //取包
};


void mima::start()               //定义开始界面
{
   cout<<endl<<endl<<endl<<endl<<endl;
   cout<<"            尊敬的用户您好!!!"<<endl;
   cout<<"---------------------------------------------"<<endl;
   cout<<"          青岛农业大学物品管理系统为您服务"<<endl;
   cout<<"-----------------------------------------------"<<endl;
   cout<<"                1-存包                         "<<endl;
   cout<<"                2-取包                         "<<endl;
   cout<<"                0-退出                         "<<endl;
   cout<<"-----------------------------------------------"<<endl<<endl;
   cout<<"请输入要进行的操作的序号:"<<endl;
   cout<<endl<<endl;
}

int mima::getpassword()     //获取密码函数
{
    return password;
}

int  mima::findbag()            //类外定义寻找存包箱子
{
    for(int i=1;i<=20;i++)
    {
        if(prepas[i]==0)
        {
            return i;             //返回空箱子编号
        }
    }
    return 0;                   //如果没有找到那么箱子已满,返回0
}

void mima::print()         //打印箱子的状态
{
    for(int i=1;i<=4;i++)
    {
        string s;
        cout<<"-----"<<"     "<<"-----"<<"     "<<"-----"<<"     "<<"-----"<<"     "<<"-----"<<"     "<<endl;
        s=bag[5*i-4]?"满":"空";            //如果bag[i]不为0,那么标记为满,反之标记为空
        cout<<"|"<<s<<"|"<<"      ";
        s=bag[5*i-3]?"满":"空";
        cout<<"|"<<s<<"|"<<"      ";
        s=bag[5*i-2]?"满":"空";
        cout<<"|"<<s<<"|"<<"      ";
        s=bag[5*i-1]?"满":"空";
        cout<<"|"<<s<<"|"<<"      ";
        s=bag[5*i]?"满":"空";
        cout<<"|"<<s<<"|"<<"      "<<endl;
        cout<<"-----"<<"     "<<"-----"<<"     "<<"-----"<<"     "<<"-----"<<"     "<<"-----"<<"     "<<endl;
        cout<<setw(2)<<setfill('0')<<(i-1)*5+1<<"号 "<<"     "<<setw(2)<<setfill('0')<<(i-1)*5+2<<"号 "<<"      ";
        cout<<setw(2)<<setfill('0')<<(i-1)*5+3<<"号 "<<"     "<<setw(2)<<setfill('0')<<(i-1)*5+4<<"号 "<<"     "<<setw(2)<<setfill('0')<<(i-1)*5+5<<"号 "<<"     "<<endl;
        cout<<endl<<endl;
    }
}

bool mima::issame()              //类外定义判断密码相同的函数
{
    for(int i=1;i<=20;i++)
    {
        if(bag[i]==1||prepas[i]==password) //如果箱子存了东西或者或者密码和之前的密码相同,返回0
        {
            return 0;           //如果密码和之前的密码相同,那么返回0
        }
    }
    return 1;             //如果没有和之前按相同的密码,返回1
}

void mima::remake()               //类外定义密码重置函数
{
    srand((int)time(0));          //初始化随机数种子
    password=rand()%900000+100000; //随机生成密码
}

void mima::show()        //类外定义显示密码函数
{
    cout<<"您的密码是"<<password<<endl;
}

int  mima::paking()         //类外定义存包函数
{
    if(findbag())          //如果有空
    {
        cout<<"您的箱子号是:"<<findbag()<<endl;
        int k=findbag();          //将找到的箱子号赋给k
        prepas[k]=password;    //将此箱子出密码初始化
        if(issame())             //如果密码和之前的相同那么就重新随机一个
        {
            remake();
        }
        else
        {
            bag[k]=1;                //将此箱子标记为满
            show();              //显示密码
        }
    }
    else
    {
        cout<<"箱子已满,请耐心等待"<<endl;
        return 1;
    }
}

void mima::takeout()
{
    cout<<"请输入您的密码:"<<endl;
    int k=0;
    cin>>k;
    for(int i=1;i<=20;i++)
    {
        if(prepas[i]!=0&&prepas[i]==k)    //如果第i号箱子密码为0(箱子为空)那么就跳过,如果和之前的匹配返回1
        {
            prepas[i]=0;                  //将取出包的箱子密码置为0
            bag[i]=0;                      //将取出包的箱子标记置为0
            cout<<"箱子已打开,请拿好您的随身物品,谢谢光临!!!"<<endl;
            return;
        }
    }
    cout<<"您输入的密码错误!!!"<<endl;
    cout<<"输入1重新输入,输入0退出"<<endl;
    int  order;           //定义指令数  0表示退出  1表示重新输入
    cin>>order;            //输入order
    switch(order)
    {
        case 0:
            break;           //order为0退出
        case 1:
            takeout();
            break;   //order为1重新输入
        default:                     //其他情况
            cout<<"您输入的指令格式不正确,请重新输入"<<endl;
            takeout();
            break;
    }
}

int main()
{
    int caozuo;          //定义操作数对象
    cout<<"            尊敬的用户您好!!!"<<endl;
    cout<<"---------------------------------------------"<<endl;
    cout<<"          青岛农业大学物品管理系统为您服务"<<endl;
    cout<<"-----------------------------------------------"<<endl;
    cout<<"                1-存包                         "<<endl;
    cout<<"                2-取包                         "<<endl;
    cout<<"                0-退出                         "<<endl;
    cout<<"-----------------------------------------------"<<endl<<endl;
    cout<<"请输入要进行的操作的序号:"<<endl<<endl<<endl;
    while(cin>>caozuo)
    {
        mima a;
        switch(caozuo)
        {
           case 0:             //输入0退出
             break;
           case 1:
             a.paking(); 
             break;
           case 2:
             a.takeout();
             break;
           default:
             cout<<"您输入的操作数无效,请重新输入"<<endl;
             break;
        }
        a.print();
        a.start();
    }
}
欢迎指教!!!

 

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
网上超市购物管理系统,具体功能如下: 1、商品基本信息 1)商品代码,商品名称,商品价格,商品库存。 2)设计约定:可以假定超市有 N 种商品,在系统启动时将这些商品信息加载到商品库中。 2、顾客信息 1)普通顾客属性:ID(顾客代码)(随机生成或流水号) 2)普通会员:ID(会员代码),会员姓名,会员电话,会员积分。 3)高级会员:ID(会员代号),会员姓名,会员电话,会员积分,副卡 ID。 3、购物管理 1)为每一个普通顾客生成临时顾客代码。 2)普通会员购买商品时,可享受 9.8 折,普通顾客在单次购物满 1000 元,添加个人基本信息后,可成为普通会员。 3)高级会员购买商品时,可享受 9.5 折,普通顾客在单次购物满 2000 元,添加个人基本信息后,或普通会员单次购物满 1000 元可成为高级会员。普通会员和高级会员可查询 1 年内的购物详单,会员购物积分按照 1 元 1 分计。 4)每次购物后,输出购物清单。包括顾客代号(会员代码)、商品的名称、代号、单价、折扣、数量、价格以及合计价格、购买时间。 4、店铺管理 1)实现商品信息的添加、修改、删除、查询的功。可查询库存少于一定数量的商品。 2)实现会员资料的查询、修改、删除;实现会员整理的功能,对于 1 年内无购物的会员,进行自动删除。 3)可以按照时间区间统计,包括:销售总额;分类统计商品的销售情况;统计对会员的让利情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值