#include
#include
#include #include
#include
#include
#define MAX 20
#define PRINT1 printf("---------------------------------------------------------\n")
#define PRINT2 printf("商品号--商品名称--商品种类--销售价格--生产日期(年-月-日)--保质期\n")
#define PRINT3 printf("%4d%8s%8s%8d%8d-%2d-%2d%4d\n",goods[i].num,goods[i].name,goods[i].kind,goods[i].out_price,goods[i].pro_time.year,goods[i].pro_time.month,goods[i].pro_time.day,goods[i].save_day)
int sum;
struct date
{
int year;
int month;
int day;
};
struct goods_type /*定义结构体*/
{
int num;
char name[10];
char kind[10];
int amount;
int in_price;
int out_price;
struct date pro_time;
int save_day;
int profit;
}goods[MAX];
Save_Message(int sum); /*函数声明*/
void Inquire_message(void);
void Inquire_goodskind(void);
void Inquire_goodsname(void);
int Read_Message(void);
void Renew_Messahe(void);
void Revise_Message(void);
void Delete_Message(void);
void Insert_Message();
void Show_Message(void);
int Input_Message(void);
void Count_Message();
long Count_Profit();
long Count_Amount();
void Sort_amount(void);
void Sort_Message(void);
void Sort_Message(void)
{
int choice;
do
{
clrscr();
printf("\n\n\n *******商品信息排行********\n\n");
printf(" 1:按库存量排行\n\n");
printf(" 0:返回主菜单\n\n");
printf(" 请选择(0-1): ");
scanf("%d",&choice);
switch(choice)
{
case 1:Sort_amount();break;
case 0:break;
}
}while(choice!=0);
}
void Sort_amount(void) /*库存量排序*/
{
struct goods_type *p,*q[MAX];
int i,j,k;
clrscr();
printf(" 库存排行");
PRINT1;
printf("\n\n排名 商品号 商品名称 商品类别 库存量\n\n");
p=goods;
for(i=0;i
q[i]=p++;
for(i=0;i
{
k=i;
for(j=i+1;j
if(q[k]->amountamount)
k=j;
if(k!=i)
{
p=q[i];
q[i]=q[k];
q[k]=p;
}
}
for(i=0;i
{
printf(" %d ",i+1);
printf(" %d ",q[i]->num);
printf(" %s ",q[i]->name);
printf(" %s ",q[i]->kind);
printf(" %d \n ",q[i]->amount);
}
bioskey(0);
}
long Count_Amount() /*统计库存量*/
{
int i,j=0,choice,count_num,Amount;
char inquire_name[10];
clrscr();
printf("\n 请输入想要统计的商品号: ");
scanf("%d",&count_num);
for
(i=0;i
if(goods[i].num==count_num)
{
Amount=goods[i].amount;
printf("-------------------------");
printf(" 商品号