bighomew.cpp

来自「VC6.0小型图书馆管理程序。建议具有书籍存储与信息检索、借阅者信息存储与检索、」· C++ 代码 · 共 1,009 行 · 第 1/3 页

CPP
1,009
字号
   case 1:Goodsmanagement();break;
   case 2:Caltc();break;
   case 3:Calgoodstc();break;
   case 4:Goodssort();break;
   case 5:Storagemanagement();break;
   case 6:main();break;
   default :break;
  }
 }
}

/*
  Function: Goodsbrowse1()
  Description: 商品浏览(顾客)
  Returns: None
*/
void Goodsbrowse1()
{
 int i,j;
 clrscr();
 printf("**********Good Browse For Quest!**********\n\n");
 printf("No.  ");
 printf("Goods name\t\tWhole Sale Price\tSingle Sale Price\n");         /*显示商品名称、批发价和零售价*/
 printf("-----------------------------------------------------------------------\n");
 for (i=0;i<count;i++)
 {
  printf("%s\t\t",goo[i].name);
  printf("%f\t\t",goo[i].wholesaleprice);
  printf("%f\n",goo[i].singlesaleprice);
 }
 printf("\n");
 printf("Press any key back......\n");
 getch();
}

/*
  Function: Goodsbrowse2()
  Description: 商品浏览(管理员)
  Returns: None
*/
void Goodsbrowse2()
{
 int i,j,page=2;
 clrscr();
 printf("**********Goods Browse For Management!**********\n\n");
 for (i=0;i<count;i++)
 {
  printf("No.  ");              /*显示商品序号、名称、批发价、零售价、库存量、售出量*/
  printf("Goods name\t\t\t\n");
  printf("%d   ",goo[i].serial);
  printf("%s",goo[i].name);
  printf("\n");
  printf("--------------------------------------------------------------------------\n");
  printf("Whole Sale Price       Single Sale Price\n");
  printf("  %f",goo[i].wholesaleprice);
  printf("              %f\n",goo[i].singlesaleprice);
  printf("--------------------------------------------------------------------------\n");
  printf("Inprice                  Inquantity        Outquantity\n");
  printf("%f",goo[i].inprice);
  printf("                  %d",goo[i].inquantity);
  printf("                  %d\n",goo[i].outquantity);
  printf("\n\n\n\n\n\n\n\n");
  if ((i+1)%page==0)                     /*分屏显示,一个窗口显示两个商品信息*/
  {
   printf("Press any key to continue......\n");
   getch();
   clrscr();
   printf("**********Goods Browse For Management!**********\n\n");
  }
 }
 printf("\n");
 printf("Press any key back......\n");
 getch();
}

/*
  Function: Goodschoose()
  Description: 购物过程函数
  Returns: None
*/
void Goodschoose()
{
 int i,j,k,l,b[20],num[20];
 char c;
 float cost[20];
 clrscr();
 printf("**********Shopping!**********\n\n");
 printf("Please input the date: (yy-mm-dd)");
 fflush(stdin);
 gets(buy[buynum+1].date);                             /*顾客输入购物日期*/
 for (k=0;k<20;k++)                                    /*进入循环,以便实现不断选择多件商品*/
 {
  clrscr();
  printf("**********Shopping!**********\n\n");         /*打印商品清单,包括序号和名称*/
  printf("No.  ");
  printf("Goods name\t\t\t   \n");
  printf("-----------------------------------------------------------------------\n");
  for (i=0;i<count;i++)
  {
   printf("%d  ",goo[i].serial);
   for (j=0;j<30;j++) printf("%c",goo[i].name[j]);
   printf("\n");
  }
  printf("\n");
  printf("Choose the goods which you want to buy(Input the goods' serial):");
  printf("\n(Or press 0 to quit!)");
  while (1)                            /*选择商品,输入商品序号*/
  {
   scanf("%d",&b[k]);
   if (b[k]==0) break;                 /*输入0即退出选择状态*/
   else if (b[k]>count)                /*容错处理:输入数字超出商品序号范围则重新输入*/
    printf("Error input!\nPlease re-input:");
   else break;
  }
  if (b[k]==0) break;
  printf("Please input the quantity:");           /*输入购买数量*/
  scanf("%d",&num[k]);
  if (goo[b[k]-1].inquantity-num[k]<0)            /*购买数量若超出库存量范围,自动提示库存量,并提示重新输入*/
  {
   while (1)
   {
    printf("Not enough goods! There is only %d left!\nPlease re-input:\n",goo[b[k]-1].inquantity);
    printf("Please input the quantity:");
    scanf("%d",&num[k]);
    if (goo[b[k]-1].inquantity-num[k]>=0) break;
   }
  }
  goo[b[k]-1].inquantity=goo[b[k]-1].inquantity-num[k];           /*商品的库存量和销售量变化*/
  goo[b[k]-1].outquantity=goo[b[k]-1].outquantity+num[k];
  if (num[k]>=50)                                                 /*根据购买数量自动决定是否按照批发价出售*/
  {
   cost[k]=goo[b[k]-1].wholesaleprice*num[k];
   buy[buynum+1].goo[k].price=goo[b[k]-1].wholesaleprice;
  }
  else
  {
   cost[k]=goo[b[k]-1].singlesaleprice*num[k];
   buy[buynum+1].goo[k].price=goo[b[k]-1].singlesaleprice;
  }
  buy[buynum+1].totalcost+=cost[k];                               /*计算本次购物总消费并赋值*/
  strcpy(buy[buynum+1].goo[k].name,goo[b[k]-1].name);             /*将所购买商品名称传给购买信息中的商品名称*/
  buy[buynum+1].goo[k].num=num[k];                                /*计算本次购物中某一商品的购买数量并赋值*/
  buy[buynum+1].goo[k].cost=cost[k];                              /*计算本次购物中某一商品的消费额并赋值*/
  buy[buynum+1].goonum=k;                                         /*计算本次购物总商品种数并赋值*/
  goo[b[k]-1].acc=goo[b[k]-1].acc+
   (buy[buynum+1].goo[k].price-buy[buynum+1].goo[k].inprice)*buy[buynum+1].goo[k].num;
                                                                  /*计算所购买商品的利润并赋值*/
  goo[b[k]-1].sellnum=goo[b[k]-1].sellnum+buy[buynum+1].goo[k].num;     /*计算所购买商品的购买数量并赋值*/
  goo[b[k]-1].selltur=goo[b[k]-1].selltur+buy[buynum+1].goo[k].cost;    /*计算所购买商品的营业额并赋值*/
 }
 time(NULL);                                                   /*随机数取时间种子*/
 buy[buynum+1].listnum=random(time(NULL));                     /*取随机数并赋值给本次购物的小票编号*/
 clrscr();
 printf("Here is the shopping list:\n\n");     
					 /*打印购物信息,包括小票编号、日期、商品名称,单价、购买数量,消费、总消费*/
 printf("***************************************************************************\n");
 printf("List number: %d\n\n",buy[buynum+1].listnum);
 printf("Date: %s\n",buy[buynum+1].date);
 printf("\n");
 printf("Goods' name\t\tBuy quantity\tPrice\t\tCost\n");
 for (l=0;l<k;l++)
 {
   printf("\n");
   printf("%s",buy[buynum+1].goo[l].name);
   printf("\t\t%d",buy[buynum+1].goo[l].num);
   printf("\t\t%f",buy[buynum+1].goo[l].price);
   printf("\t%f\n",buy[buynum+1].goo[l].cost);
 }
 printf("\n");
 printf("Your total cost is %f\n",buy[buynum+1].totalcost);
 printf("***************************************************************************\n");
 printf("\n");
 printf("Please remenber your list number!\nPress any key back...");
 fflush(stdin);
 getch();
 buynum++;                                       /*购物次数自增1*/ 
}

/*
  Function: Shopinquiry()
  Description: 购买记录查询
  Returns: None
*/
void Shopinquiry()
{
 int num,i,l;
 clrscr();
 printf("**********Shopping Inquiry!**********\n\n");
 printf("Please input your shopping list number:");              /*提示输入购物小票编号*/
 scanf("%d",&num);
 for (i=0;i<=20;i++)
 {
  if (num-buy[i].listnum==0)                                     /*核对小票编号,符合则打印购物信息*/
  {
   printf("Here is the shopping list:\n\n");
   printf("***************************************************************************\n");
   printf("List number: %d\n",buy[i].listnum);
   printf("Date: %s\n",buy[i].date);
   printf("\n");
   printf("Goods' name\t\tBuy quantity\tPrice\t\tCost\n");
   for (l=0;l<buy[i].goonum;l++)
   {
     printf("\n");
     printf("%s",buy[i].goo[l].name);
     printf("\t\t%d",buy[i].goo[l].num);
     printf("\t\t%f",buy[i].goo[l].price);
     printf("\t%f\n",buy[i].goo[l].cost);
   }
   printf("\n");
   printf("Your total cost is %f\n",buy[i].totalcost);
   printf("***************************************************************************\n");
   printf("\n");
   break;
  }
 }
 printf("Inquiry Over!\n");
 fflush(stdin);
 getch();
}

/*
  Function: Undoshopping()
  Description: 退货处理
  Returns: None
*/
void Undoshopping()
{
 char name[50];
 int num,i,j,l,k,m;
 clrscr();
 printf("**********Undo Your Shopping!**********\n\n");
 printf("Please input your shopping list number:");           /*提示输入购物小票编号*/
 scanf("%d",&num);
 for (i=0;i<=20;i++)
 {
  if (num-buy[i].listnum==0)                                  /*核对小票编号,符合则打印购物信息*/
  {
   printf("Here is the shopping list:\n\n");
   printf("***************************************************************************\n");
   printf("List number: %d\n",buy[i].listnum);
   printf("Date: %s\n",buy[i].date);
   printf("\n");
   printf("Goods' name\t\tBuy quantity\tPrice\t\tCost\n");
   for (l=0;l<buy[i].goonum;l++)
   {
     printf("\n");
     printf("%s",buy[i].goo[l].name);
     printf("\t\t%d",buy[i].goo[l].num);
     printf("\t\t%f",buy[i].goo[l].price);
     printf("\t%f\n",buy[i].goo[l].cost);
   }
   printf("\n");
   printf("Your total cost is %f\n",buy[i].totalcost);
   printf("***************************************************************************\n");
   printf("\n\n");
   printf("Choose the goods which you want to Un-shopping:(Input its name) ");        /*提示输入退货商品名称*/
   fflush(stdin);
   gets(name);
   for (j=0;j<=buy[i].goonum;j++)
   {
    if (!strcmp(buy[i].goo[j].name,name))                            /*核对商品名称*/
    {
     printf("Goods: %s is unshopped!\n",buy[i].goo[j].name);
     buy[i].totalcost=buy[i].totalcost-buy[i].goo[j].cost;           /*修改本次购物总消费并赋值*/
     buy[i].goonum--;                                                /*本次购物总商品种数自减1并赋值*/
     for (m=0;m<=count;m++)                                          /*修改本次购物所退商品的一些信息*/
     {
      if (!strcmp(buy[i].goo[j].name,goo[m].name))                   /*由所退商品的名称找到要修改信息的商品*/
      {
       goo[m].inquantity=goo[m].inquantity+buy[i].goo[j].num;        /*修改库存量并赋值*/
       goo[m].outquantity=goo[m].outquantity-buy[i].goo[j].num;      /*修改售出量并赋值*/
       goo[m].acc=goo[m].acc-(buy[i].goo[j].price-buy[i].goo[j].inprice)*buy[i].goo[j].num;     /*修改利润并赋值*/
       goo[m].sellnum=goo[m].sellnum-buy[i].goo[j].num;              /*修改销量并赋值*/
       goo[m].selltur=goo[m].selltur-buy[i].goo[j].cost;             /*修改营业额并赋值*/
      }
     }
     for (k=j;k<=buy[i].goonum;k++)
      buy[i].goo[k]=buy[i].goo[k+1];                                 /*覆盖掉该次购买的商品信息*/
     break;
    }
   }
   break;
  }
 }
 printf("Over!\n");
 fflush(stdin);
 getch();
}

/*
  Function: Goodsmanagement()
  Description: 商品管理
  Returns: None
*/
void Goodsmanagement()
{
 int select4;
 select4=0;
 while (select4!=6)
 {
  clrscr();
  Goodsmanagementmenu();
  select4=Getchoice4();
  switch (select4)                                  /*用户输入选择进入各函数实现菜单功能*/
  {
   case 1:Goodsbrowse2();break;
   case 2:Addgoods();break;
   case 3:Delgoods();break;
   case 4:Searchgoods();break;
   case 5:Modifygoods();break;
   case 6:Mngmode();break;
   default :break;
  }
 }
}

/*
  Function: Addgoods()
  Description: 添加新商品
  Returns: None
*/
void Addgoods()
{
 int j;
 clrscr();
 printf("**********Add New Goods**********\n\n");
 float tmp1;
 fflush(stdin);
 goo[count].serial=count+1;                      /*商品序号自增1*/
 printf("Input Goods' Name:");                   /*用户输入商品名称、零售价、批发价、进货价、进货数量*/
 gets(goo[count].name);
 printf("\nInput single sale price:");
 scanf("%f",&tmp1);
  goo[count].singlesaleprice=tmp1;
 printf("\nInput whole sale price:");
 scanf("%f",&goo[count].wholesaleprice);
 printf("\nInput inprice:");

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?