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 + -
显示快捷键?