超市结账系统c++

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>        
#include<stdlib.h>
#include <fstream> 
#include <algorithm>
#include<iomanip>
#include <string.h>
#include <windows.h>
#include<iostream>
using namespace  std;

int flag1=0;
int flag2=0;
int flag3=0;        
int t=0;
int i;
int j;
int m;
int n=0;
int z;
int s;
int b;
string cx1;
string cx2;
string cx3;
string cx4;
string n1;
string n2;


struct Good 
{
    string name1;                  
    string num;                     
    string type;                     
    double price;                    
}a[1000];


class G
{
    public:
    void Goodcate()                        
        {
            printf("\t1水果类\n");
            printf("\t2生活用品类\n");
            printf(" \t3饮品类\n");
            printf("\t4食物类\n");
        }
    virtual void Goodinfo()=0;
};


class G1:public G
{
    public:
    void Goodinfo()                        
        {

    cout << "cherry" << " " << "price=" << "98.00"<<endl ;
    cout << "orange" << " " << "price=" << "3.50"<<endl;
    cout << "banana" << " " << "price=" << "3.00"<<endl;
    cout << "apple" << " " << "price=" << "4.40"<<endl;
    cout << "pear" << " " << "price=" << "3.25"<<endl;
    cout << "grape" << " " << "price=" << "4.36"<<endl;
    cout << "cong" << " " << "price=" << "1.26"<<endl;
    cout << "suan" << " " << "price=" << "2.00"<<endl;
    cout << "pot" << " " << "price=" << "100.50"<<endl;
    cout << "bowl" << " " << "price=" << "19.00"<<endl;
    cout << "spon" << " " << "price=" << "25.00"<<endl;
    cout << "salver" << " " << "price=" << "90.00"<<endl;
    cout << "coke" << " " << "price=" << "3.00" <<endl;
    cout << "cocktail" << " " << "price=" << "2.00"<<endl ;
    cout << "sprit" << " " << "price=" << "8.00" <<endl;
    cout << "juice" << " " << "price=" << "3.00" <<endl;
    cout << "chipspotato" << " " << "price=" << "6.00"<<endl;
    cout << "cake" << " " << "price=" << "16.00" <<endl;
    cout << "biscuit" << " " << "price=" << "5.66"<<endl;
    cout << "pie" << " " << "price=" << "26.80"<<endl ;    
 
        }
};


void Input()                        
{
    cout<<"\n---------------------------------------------------请录入商品信息-------------------------------------------------------\n\n";
    cout<<"请输入您要录入的商品数量:";
    cin>>n;
    cout<<endl;
    cout<<"请依次输入“商品类型”、“商品名称”、“商品编号”、“价格”\n\n";
    
    for(s=0;s<n;s++)
    {
        cout<<"请输入商品类型:"<<endl;   
        cin>>a[s].type ;                                                
        cout<<"请输入商品名称:"<<endl;                                          
        cin>>a[s].name1;
        cout<<"请输入商品编号:"<<endl;                                                   
        cin>>a[s].num;   
        cout<<"请输入商品价格:"<<endl;                                                   
        cin>>a[s].price;
    }

}


void Modify()                         
{
    cout <<"\n----------------------------------------------------修改商品信息--------------------------------------------------------\n";
    cout<<"请输入您想要修改的商品的商品编号:"; 
    cin>>n1;
    cout<<"\n该商品信息如下:"<<endl; 
    for(i=0;i<=n;i++)
    {
        if(n1==a[i].num)
        {
            cout<<"原商品类型:"<<a[i].type<<endl;
            cout<<"原商品名:"<<a[i].name1<<endl;                 
            cout<<"原商品编号:"<<a[i].num<<endl;
            cout<<"原商品价格:"<<a[i].price<<endl;         
            m=i;
        }                   
    }
    cout<<"修改后的商品类型:";
    cin>>a[m].type;
    cout<<"\n修改后的商品名:";
    cin>>a[m].name1;
    cout<<"修改后的商品编号:";
    cin>>a[m].num;
    cout<<"修改后的商品价格:";
    cin>>a[m].price;
     cout<<"\n★★★★★★★★★★★★★★★                       修改成功!                           ★★★★★★★★★★★★★★★\n\n";
}


void Delete()                             
{
    cout <<"\n----------------------------------------------------删除商品信息--------------------------------------------------------\n";
    cout<<"\n请输入要删除商品的商品编号:";
    cin>>n2;
    cout<<"\n该商品信息如下:"<<endl;
    for(i=0;i<=n;i++)
    {
        if(n2==a[i].num)
        {
            cout<<"商品类型:"<<a[i].type<<endl;
            cout<<"商品名:"<<a[i].name1<<endl;                
            cout<<"商品编号:"<<a[i].num<<endl;
            cout<<"商品价格:"<<a[i].price<<endl; 
            cout<<endl;                           
            m=i;
        }                
    }
    cout<<"确定删除?"<<endl;
    cout<<"确定请输入1"<<"        "<<"取消请输入除1外任意键返回主菜单\n\n";
    cout<<"请输入:" ;
    cin>>b; 
    if(b==1)
    {
    for(i=0;i<n;i++)
    {
        if(n2==a[i].num)
        {
               a[i].name1=a[i+1].name1;                
             a[i].num=a[i+1].num;
             a[i].type=a[i+1].type;
             a[i].price=a[i+1].price;
             n--;
        }
       }               
       cout<<"\n\n删除成功!\n\n"; 
       cout<<"输入任意键返回主菜单";
   }
}
 
       char r_name[30]="";
       char r_pwd[10]="";
    char on_name[30];
    char on_pwd[10];
//用户注册系统
void regist()
{
    //清屏 
    system("pause");
    system("cls");
    printf("\n\n\t\t\t欢迎使用超市结账系统\n\n");
    while(1)
    {
        //输入用户名
        printf("\t\t请输入用户名(不能大于十个字符):");
        scanf("%s",r_name);
        //判断
        if(strlen(r_name)<=10)
        {
            while(1)
            {
                printf("\n\t\t请输入密码(密码长度为六位):");
                scanf("%s",r_pwd);
                //判断密码
                if(strlen(r_pwd)==6)
                {
                    printf("\n\n\t\t注册成功\n\n");
                    break;
                 } 
                 else
                 {
                     printf("\n\t\t密码长度不规范,请重新输入\n");
                 }
            }
            break;
         } 
         else
         {
             printf("\n\t\t用户名长度不规范,请重新输入\n");
         }
    }
}
//判断是否注册
int judge()
{
    if(strcmp(r_name,"")==0&&strcmp(r_pwd,"")==0)
    {
        printf("\n\n\t\t您尚未注册,请先注册!\n\n");
        return 0;
    }
    else
    {
        return 1;
    }
 } 
 //用户登录
 void dl()
 {
     int i;
     system("pause");
     system("cls");
     printf("\n\n\t\t\t欢迎使用超市结账系统\n\n");
     //三次验证
     for(i=1;i<=3;i++)
     {
         printf("\t\t请输入用户名:");
         scanf("%s",on_name);
         printf("\n\t\t请输入密码:");
         scanf("%s",on_pwd);
         if(strcmp(r_name,on_name)==0&&strcmp(r_pwd,on_pwd)==0)
         {
             printf("\n\n\t\t登陆成功,欢迎使用超市结账系统\n\n");
             break;
         }
         else
         {
         printf("\n\n\t\t登陆失败,请重新登陆,您还有%d次机会\n\n",3-i);    
         }
      } 
  } 
  
  
int main(void)
{    int id;
      while(1)
      {
          system("pause");
          system("cls");
          printf("\n\n\t\t超市结账系统\n\n");
          printf("\t\t\t1:注册\n");
          printf("\t\t\t2:登录\n");
          printf("\t\t\t0:退出\n\n");
          //输入编号
          printf("\t\t请选择功能编号:"); 
          scanf("%d",&id);
          
          switch(id)
          {
              case 1:regist();break;
              case 2:
                  if(judge()==1)
                  {
                      dl();
                  }
                  break;
                  case 0:exit(1);break;
                  defaule:
                      printf("\n\t\t您输入的编码有误,请重新输入!\n");
          }
    G*gg;
    G1 g1;
    gg=&g1;
    cout<<"\n-------------------------------------------------欢迎进入超市结算系统------------------------------------------------"; 
    cout<<"\n\n                                              欢迎进入超市结算系统                    ";
    cout<<"\n                                                          \n";                        
    cout<<"\n                                                                \n";
    cout<<"\n                                                                \n";
    cout<<"\n                                                 ===点击进入系统                       \n";
    cout<<"\n                                                               \n";
    cout<<"\n                                                                 \n\n\n\n\n\n\n\n\n";
    cout<<"                                              超市购物系统\n";
    cout<<"                                            请选择您的身份\n";
    cout<<"                            管理员                                                  顾客";
    int qq;
    cin>>qq;
    if(qq==1)
    {
            printf("\t身份:管理员\n");
            printf("\t1.商品分类管理\n");
            printf(" \t2.商品信息管理\n");
            printf("\t3.录入信息管理\n");
            printf("\t4.修改信息管理\n");
            printf("\t5.删除信息管理\n");
            printf("\t6.结算窗口\n");
            int aa;
            cin>>aa;
            switch(aa)
                {
                    case 1:
                    gg->Goodcate();
                    break;
                    case 2:
                    gg->Goodinfo();
                    break;
                    case 3: 
                    Input(); 
                    break;
                    case 4:
                    Modify();
                    break;
                    case 5:
                    Delete();
                    break;
                    case 6:
                    break;
            }
    }
    if(qq==2)
    {
            printf("\t身份:顾客\n");
            printf("\t1.商品信息管理\n");
            printf(" \t2.购物车\n");
            printf("\t3.结算窗口\n");
            printf("\t4.积分积累\n");
            int bb;
            cin>>bb;
            switch(bb)
                {
                    case 1:
                    gg->Goodcate();
                    break;
                    case 2: 
                    Input(); 
                    break;
                    case 3:
                    break;
            }
            
    }
    int d = 1;
    int m = 1;
    int w = 0;
    int a = 0;
    int b = 0;
    int c = 0;
    int q = 0;
    int r;
    float e = 0.0;
    float f = 0.0;
    float g = 0.0;
    float h = 0.0;
    
    puts("欢迎进入超市结账系统");
    for (r = 1; r < 100; r++)
        putchar('*');
    putchar('\n');
that:
    d = 1;
    g = 0;
    printf("输入“0”开始结账\n");
    do {
        e = g;
        printf(" 第%d件商品多少钱?", d++);
        scanf("%f", &f);
        g = e + f;
        puts("按1继续");
        scanf("%d", &m);
    } while (m != 0);
    printf("本次共购买:%d 件商品;\n一共:%.2f 元\n", d - 1, g);
    
    int da = 0;
    int svip = 0;
    int nvip;
    int zk = 8;
    int xsvip;
    float dz = 1.0;
    
    puts("是否是为会员?");
    puts("如果是请输入0;不是请输入1");
    printf("请输入您的答案");
    scanf("%d", &da);
    if (da < 1)
    {
        printf("请输入您的会员卡号:");
        scanf("%d", &svip);
        switch (svip)
        {
        case 3838438:printf(" svip 客户今日折扣 %d 折\n", zk); dz = 0.8; break;
        case 55555555:printf("svip 客户今日折扣 %d 折\n", zk); dz = 0.8; break;
        case 66666666:printf("svip 客户今日折扣 %d 折\n", zk); dz = 0.8; break;
        case 88888888:printf("svip 客户今日折扣 %d 折\n", zk); dz = 0.8; break;
        case 99999999:printf("svip 客户今日折扣 %d 折\n", zk); dz = 0.8; break;
        }
    }
    if (da >= 1)
    {
        printf("是否办理会员卡?今日消费可打 %d 折\n", zk);
        printf("办理请输入 0 ;不办请输入 1\n");
         scanf("%d", &nvip);
        switch (nvip)
        {
        case 1: 
            dz = 1;
             break;
        case 0:
            printf("请创建一个会员账号:");
            scanf("%d", &xsvip);
            printf("基于本账号为您打%d折\n", zk);
            dz = 0.8;
            break;
        }
    }
    g = dz * g;
    printf("本次共购买:%d 件商品;\n一共:%.2f 元\n", d - 1, g);
    float ok = 0.0;
 
    do {
        printf("支付金额为  元\n");
        scanf("%f", &h);
        printf("应收:%.2f 元;\n实收:%.2f 元;\n找零:%.2f 元。\n", g, h + ok, ok + h - g);
        w = ok + h - g;
        if (h + ok < g)
        {
            ok = h;
            puts("钱不够");
            w = 1;
        }
        else w = 3;
    } while (w< 2);
    int j = (h - g + ok) / 100;
    int k = 0;
    if (j >= 1)
    {
        printf("找您 %d 张 壹佰元\n", j);
    }
    k = (h - g + ok) - 100 * j;
    if (k > 50)
    {
        puts("1 张 伍十元");
        k = k - 50;
    }
    if (k >= 20)
    {
        int ko = k / 20;
        switch (ko)
        {
        case 1:
        puts("1 张 贰拾元"); 
        k -= 20; 
         break;
        case 2:
        puts("2 张 贰拾元");
         k -= 40;
          break;
        }
    }
    if (k >= 10)
    {
        puts("1 张 拾元");
        k = k - 10;
    }
    if (k >= 5)
    {
        printf("1 张 伍元\n");
        k = k - 5;
    }
    if (k >= 1)
    {
        printf("%d 张/枚 壹元\n", k);
    }
    int l = h - g + ok;
    float mn = h - g + ok;
    int n = (mn - (float)l) * 100;
    if (n >= 10)
    {
        printf("%d 张壹角\n", n / 10);
    }
    printf("%d 张 壹分\n", n % 10);
    q++;
    printf("结账已完成,第%d位顾客\n", q);
    for (r = 1; r < 100; r++)
        putchar('*');
    putchar('\n');
    goto that;
    
    return 0;
    }
}

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值