简单的书店系统

#include <iostream>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
using namespace std;

double sum;
int n,countt;
int flag,flag1;
char ch[10];
 FILE *fp;
typedef struct node
{
    char name[10];
    int number;
    double price;
    int count1;
    int kucun;
};
class book
{
private:
     node buf[10010];
public:
    void search1(char a[]);
    void get (int i);
    void show (int i);
};
void book::search1(char a[])
{
    flag1=0;//有没有这本书
    for(int i=0;i<n;i++)
       {
        if(strcmp(buf[i].name,a)==0&&buf[i].kucun>0)
            {
                flag=1;//买没买书
                flag1=1;
                sum+=buf[i].price;
                buf[i].kucun--;
                countt++;
                buf[i].count1++;
                break;
            }
             else if(strcmp(buf[i].name,a)==0&&buf[i].kucun==0)
            {
                flag1=1;
                printf("抱歉,本书已经卖完,请选择购买其他的书\n");
            }
       }
     if(flag1==0)
        {
            printf("没有这本书\n请再次购买时确认\n");
        }
}

void book::show (int i)
{
    cout<<"书《"<<buf[i].name<<"》销售了"<<buf[i].count1<<"本"<<endl;
    fprintf(fp,"书《%s》销售了%d本\n",buf[i].name,buf[i].count1);
}

void book::get(int i)
{
    scanf("%s %d %lf %d",buf[i].name,&buf[i].number,&buf[i].price,&buf[i].kucun);
    buf[i].count1=0;
    fprintf(fp,"\n%s\t%d\t%.2lf\t%d\t\n",buf[i].name,buf[i].number,buf[i].price,buf[i].kucun);
}

int main()
{
    if((fp=fopen("d:bookk.txt","wt"))==NULL)
    {
        printf("不能打开这个文件\n");
        exit(0);
    }
    int kase=1;
    while(1)
    {
      printf("你第%d次买书,欢迎光临\n",kase);
      fprintf(fp,"你第%d次买书,欢迎光临\n",kase++);
      book s;
      sum=0;
      countt=0;
      printf("请输入书店现在书的状况\n");
      scanf("%d",&n);
      if(n<=0)
       {
           int mm;
           printf("您一定搞错了吧,买的书一定要大于0本哦。。\n");
           fprintf(fp,"您一定搞错了吧,买的书一定要大于0本哦。。\n");
           printf("继续购买请按1,放弃购买请按其他键\n");
           scanf("%d",&mm);
           if(mm==1)
           continue;
           else
            break;
       }
      printf("依次输入每本书的名字,书号,价格,库存。\n");
      fprintf(fp,"书名\t书号\t单价\t库存\t\n");
      for(int i=0;i<n;i++)
       {
         s.get(i);
       }
       int t;
       flag=0;
        printf("你想买几次书?\n");
       scanf("%d",&t);
       printf("你想买哪本书\n");
    while(t--)
    {
       scanf("%s",ch);
        s.search1(ch);
         if(flag==0)
           continue;
    }
    if(flag)
    {
       double ava;
       ava=sum/countt;
        printf("每本书的销售情况如下\n");
        fprintf(fp,"每本书的销售情况如下\n");
         for(int i=0;i<n;i++)
           {
              s.show(i);
           }
      printf("总收入:%.2lf\n",sum);
      printf("平均售价:%.2lf\n",ava);
      fprintf(fp,"总收入:%.2lf\n平均售价:%.2lf\n",sum,ava);
    }
    else
     {
        printf("你并没有买书所以:\n");
        printf("总收入:0\n");
        printf("平均售价:0\n\n");
        fprintf(fp,"你并没有买书所以:\n总收入:0\n平均售价:0\n\n");
     }
    int tt;
    printf("继续操作请按1,停止买书请按任意键\n");
    scanf("%d",&tt);
    if(tt!=1)
     {
        printf("欢迎下次光临!!!\n\n\n");
        fprintf(fp,"欢迎下次光临!!!\n\n\n");
         break;
     }
    }
    fclose(fp);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值