这个不知道为什么不能有排序的功能,虽然可以正常运行。
这个不知道咋改,改了好几次,都不行
这是最新的
这个全部值变为零了
代码全部:
代码全部:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 3
struct flower
{
int num; //编号
char name[20]; //鲜花名称
char kind[20]; //种类
int price; //价格
int amount; //销售数量
char man[20]; //销售人员
};struct flower f[80];
int count=N;
void sort(); //定义排序函数
void number_serch(); //定义按编号查询鲜花信息函数
void number_delete(); //定义按编号删除鲜花信息函数
int menu()
{
int a;
printf("------------鲜花销售信息系统------------\n");
printf("\n");
printf("| 1.录入鲜花销售信息 |\n");
printf("| 2.显示鲜花销售信息 |\n");
printf("| 3.按照销售数量从高到低排序 |\n");
printf("| 4.按编号查询某一鲜花销售信息 |\n");
printf("| 5.按编号删除鲜花信息 |\n");
printf("| 7.退出程序 |\n");
printf("---------------------------------------\n");
printf("请选择1到7:");
scanf("%d",&a);
return a;
}
struct flower flo[10]; //定义输入鲜花信息子函数
void in_record()
{
int i;
for(i=0;i<count;i++)
{
printf("input %d num:\n",i+1);
scanf("%d",&flo[i].num);
printf("input %d name:\n",i+1);
scanf("%s",flo[i].name);
printf("input %d kind:\n",i+1);
scanf("%s",flo[i].kind);
printf("input %d price:\n",i+1);
scanf("%d",&flo[i].price);
printf("input %d amount:\n",i+1);
scanf("%d",&flo[i].amount);
printf("input %d man:\n",i+1);
scanf("%s",flo[i].man);
}
}
void out_record() //定义鲜花输出子函数
{
int i;
printf("编号\t鲜花名称\t种类\t价格\t销售数量\t销售人员\n");
for(i=0;i<count;i++)
{
printf("%d\t",flo[i].num);
printf("%s\t\t",flo[i].name);
printf("%s\t",flo[i].kind);
printf("%d\t",flo[i].price);
printf("%d\t\t",flo[i].amount);
printf("%s\t",flo[i].man);
printf("\n");
}
}
void sort() //按销售数量从高到低排序
{
struct flower temp;
int i,j;
for(i=0;i<count;i++)
for(j=0;j<count-1;j++)
if(f[j].amount>f[j+1].amount)
{
temp=f[j];
f[j]=f[j+1];
f[j+1]=temp;
}
printf("编号\t鲜花名称\t种类\t价格\t销售数量\t销售人员\n");
for(i=0;i<count;i++)
{
printf("%d\t%s\t\t%s\t%d\t%d\t\t%s\n",f[i].num,f[i].name,f[i].kind,f[i].price,f[i].amount,f[i].man);
printf("\n");
}
}
void number_serch() //按编号查询某一鲜花信息
{
int i;
int num1;
printf("请输入编号:");
scanf("%d",&num1);
for(i=0;i<count;i++)
{
if(num1==flo[i].num)
printf("编号:%d\n鲜花名称:%s\n种类:%s\n价格:%d\n销售数量:%d\n销售人员:%s\n",flo[i].num,flo[i].name,flo[i].kind,flo[i].price,flo[i].amount,flo[i].man);
printf("\n");
}
}
void number_delete() //按编号删除鲜花信息函数
{
int i,k,num1;
printf("请输入删除鲜花的编号:");
scanf("%d",&num1);
for(i=0;i<count;i++)
if(num1==f[i].num)
k=i;
for(i=k;i<count;i++)
{
f[i].num=f[i+1].num;
strcpy(f[i].name,f[i+1].name);
strcpy(f[i].kind,f[i+1].kind);
f[i].price=f[i+1].price;
f[i].amount=f[i+1].amount;
strcpy(f[i].man,f[i+1].man);
}
count--;
printf("删除成功,请选择2查看结果:\n");
}
void main() //主函数
{
int choice;
while(1)
{
choice=menu();
switch(choice)
{
case 1:in_record();
break;
case 2:out_record();
break;
case 3:sort();
break;
case 4:number_serch();
break;
case 5:number_delete();
break;
case 7:exit(0);
}
}
}