. . .. . .
. 专业 专注 .
#include
#include
#include
//日期
struct date
{ int year;
int month;
int day;
};
//订单链表
struct article
{ char name[20];//物品名称
int num1;//物品编号
char produce[20];//产地
char dest[20];//目的地
char mode[20];//配送模式
int num2;//物品数量
float money;//配送金额
struct date deliver;//配送日期
struct article *next;//指向上一次添加的订单
};
struct article *head;//存储订单信息
int Recordcount;//订单数量
//添加订单
void add()
{
system("cls");//清屏
struct article *p=NULL;//新建一个定单节点
p=(struct article*)malloc(sizeof(struct article));//为新建的订单节点分配内存空间
printf("请输入配送年份:");
while(0 == scanf("%d",&p->deliver.year))//输入年份的规范性检查
{
while('\n' != getchar()) { }
printf("输入无效,请重新输入年份:");
}
printf("请输入配送月份:");
while(0 == scanf("%d",&p->deliver.month) || (p->deliver.month<1) || p->deliver.month>12)//输入月份的规范性检查
{
while('\n' != getchar()) { }
printf("输入无效,请重新输入月份:");
}
printf("请输入配送日期:");
scanf("%d",&p->deliver.day);
printf("请输入物品名称:");
scanf("%s",p->name);
printf("请输入物品编号:");
scanf("%d",&p->num1);
printf("请输入物品出厂地:");
scanf("%s",p->produce);
printf("请输入物品配送地:");
scanf("%s",p->dest);
printf("请输入配送方式:");
scanf("%s",p->mode);
printf("请输入配送个数:");
scanf("%d",&p->num2);
printf("请输入配送金额:");
scanf("%f",&p->money);
p->next=head;//将新建的订单加入订单链表
head=p;//链表头指向新添加的定单节点
Recordcount++;//订单数量加一
system("PAUSE");
}
//显示指定订单的详细信息
void myPrint(struct article *p)
{
printf("%s\t",p->name);
printf("%d\t",p->num1);
printf("%s\t",p->produce);
printf("%s\t",p->dest);
printf("%s\t",p->mode);
printf("%d\t",p->num2);
printf("%.2f\t",p->money);
printf("%d-%d-%d\n",p->deliver.year,p->deliver.month,p->deliver.day);
}
//显示所有的订单信息
void show()
{
system("cls");
//遍历订单链表
struct article *p=NULL;
printf("****************************************************************************\n");
printf("名称\t编号\t产地\t目的地\