c语言大作业物流配送系统程序文件.docx

上传人:b****2 文档编号:525433 上传时间:2023-04-29 格式:DOCX 页数:14 大小:16.67KB
下载 相关 举报
c语言大作业物流配送系统程序文件.docx_第1页
第1页 / 共14页
c语言大作业物流配送系统程序文件.docx_第2页
第2页 / 共14页
c语言大作业物流配送系统程序文件.docx_第3页
第3页 / 共14页
c语言大作业物流配送系统程序文件.docx_第4页
第4页 / 共14页
c语言大作业物流配送系统程序文件.docx_第5页
第5页 / 共14页
c语言大作业物流配送系统程序文件.docx_第6页
第6页 / 共14页
c语言大作业物流配送系统程序文件.docx_第7页
第7页 / 共14页
c语言大作业物流配送系统程序文件.docx_第8页
第8页 / 共14页
c语言大作业物流配送系统程序文件.docx_第9页
第9页 / 共14页
c语言大作业物流配送系统程序文件.docx_第10页
第10页 / 共14页
c语言大作业物流配送系统程序文件.docx_第11页
第11页 / 共14页
c语言大作业物流配送系统程序文件.docx_第12页
第12页 / 共14页
c语言大作业物流配送系统程序文件.docx_第13页
第13页 / 共14页
c语言大作业物流配送系统程序文件.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言大作业物流配送系统程序文件.docx

《c语言大作业物流配送系统程序文件.docx》由会员分享,可在线阅读,更多相关《c语言大作业物流配送系统程序文件.docx(14页珍藏版)》请在冰点文库上搜索。

c语言大作业物流配送系统程序文件.docx

c语言大作业物流配送系统程序文件

#include

#include

#include

//日期

structdate

{intyear;

intmonth;

intday;

};

//订单链表

structarticle

{charname[20];//物品名称

intnum1;//物品编号

charproduce[20];//产地

chardest[20];//目的地

charmode[20];//配送模式

intnum2;//物品数量

floatmoney;//配送金额

structdatedeliver;//配送日期

structarticle*next;//指向上一次添加的订单

};

structarticle*head;//存储订单信息

intRecordcount;//订单数量

//添加订单

voidadd()

{

system("cls");//清屏

structarticle*p=NULL;//新建一个定单节点

p=(structarticle*)malloc(sizeof(structarticle));//为新建的订单节点分配内存空间

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");

}

//显示指定订单的详细信息

voidmyPrint(structarticle*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);

}

//显示所有的订单信息

voidshow()

{

system("cls");

//遍历订单链表

structarticle*p=NULL;

printf("****************************************************************************\n");

printf("名称\t编号\t产地\t目的地\t模式\t数量\t金额\t日期\n");

for(p=head;p!

=NULL;p=p->next)

{

myPrint(p);

}

printf("****************************************************************************\n");

}

//查找订单

voidsearch()

{

system("cls");

charnamesea[30];//名称

inttype;//编号

intchoice;

structarticle*p=NULL;

printf("1按姓名查找\n2按编号查找\n");

printf("请输入你的选择:

");

//scanf("%d",&choice);

while(0==scanf("%d",&choice)||(choice!

=1&&choice!

=2))//输入选择的规范性检查

{

while('\n'!

=getchar()){}

printf("输入无效,请重新选择:

");

}

if(choice==1)//按物品名称查找订单

{

printf("请输入物品名称:

");

scanf("%s",namesea);

for(p=head;p!

=NULL;p=p->next)

if(strcmp(p->name,namesea)==0)//找到订单,输出其详细信息

{

printf("****************************************************************************\n");

printf("名称\t编号\t产地\t目的地\t模式\t数量\t金额\t日期\n");

myPrint(p);

printf("****************************************************************************\n");

}

}

else//按物品编号查找订单

{

printf("请输入物品编号\n");

scanf("%d",&type);

for(p=head;p!

=NULL;p=p->next)

if(p->num1==type)//找到订单,输出其详细信息

{

printf("****************************************************************************\n");

printf("名称\t编号\t产地\t目的地\t模式\t数量\t金额\t日期\n");

myPrint(p);

printf("****************************************************************************\n");

}

}

system("PAUSE");

}

//根据物品名称修改对应订单信息

voidchange()

{

charname[30];

system("cls");

structarticle*p=NULL;

printf("请输入要更改物品的名称:

\n");

scanf("%s",name);

//遍历订单链表,找到对应的订单

for(p=head;p!

=NULL;p=p->next)

if(strcmp(p->name,name)==0)//找到对应的订单,重新输入其信息

{

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);

}

system("pause");

}

//根据物品名称和配送金额删除对应订单信息

voiddelete_rec()

{

system("cls");

charname[20];

floatmoney;

intchoice;

structarticle*p=NULL,*q=NULL;

p=head;

q=head;

printf("请输入要删除的物品名称:

");

scanf("%s",name);

printf("请输入金额:

");

scanf("%f",&money);

for(;q!

=NULL;q=q->next)

{

if((head->money==money)&&(strcmp(head->name,name)==0))//要删除的订单为订单列表中的第一个订单

{

printf("****************************************************************************\n");

printf("名称\t编号\t产地\t目的地\t模式\t数量\t金额\t日期\n");

myPrint(q);

printf("****************************************************************************\n");

printf("确认删除?

\n1是\n2否\n");

//scanf("%d",&choice);

while(0==scanf("%d",&choice)||(choice!

=1&&choice!

=2))//输入选择的规范性检查

{

while('\n'!

=getchar()){}

printf("输入无效,请重新选择:

");

}

if(choice==1)//删除

{

head=q->next;

Recordcount--;

}

elsebreak;//取消删除

}

else//要删除的订单不是订单列表中的第一个订单

{

if((q->money==money)&&(strcmp(q->name,name)==0))//找到对应的订单进行删除

{

printf("****************************************************************************\n");

printf("名称\t编号\t产地\t目的地\t模式\t数量\t金额\t日期\n");

myPrint(q);

printf("****************************************************************************\n");

printf("确认删除?

\n1是\n2否\n");

//scanf("%d",&choice);

while(0==scanf("%d",&choice)||(choice!

=1&&choice!

=2))//输入选择的规范性检查

{

while('\n'!

=getchar()){}

printf("输入无效,请重新选择:

");

}

if(choice==1)//删除

{

p->next=q->next;

Recordcount--;

}

elsebreak;//取消删除

}

}

}

}

//存储订单链表到文件

voidlogistic()

{

charch;

charfile_head[]="****************************************************************************\n名称\t编号\t产地\t目的地\t模式\t数量\t金额\t日期\n";

charfile_tail[]="****************************************************************************\n";

FILE*fp;

if((fp=fopen(".\\record.txt"/*filename*/,"w"))==NULL)

{

printf("无法打开文件\n");

exit(0);

}

fputs(file_head,fp);//写入文件头

structarticle*p=NULL;

for(p=head;p!

=NULL;p=p->next)//遍历订单链表,将各个订单信息逐次写入文件

{

fputs(p->name,fp);

fprintf(fp,"\t%d\t",p->num1);

fputs(p->produce,fp);

fprintf(fp,"\t","");

fputs(p->dest,fp);

fprintf(fp,"\t","");

fputs(p->mode,fp);

fprintf(fp,"\t%d\t",p->num2);

fprintf(fp,"%.2f\t",p->money);

fprintf(fp,"%d-%d-%d\n",p->deliver.year,p->deliver.month,p->deliver.day);

}

fputs(file_tail,fp);

rewind(fp);

fclose(fp);

printf("所有订单信息已经存入ecord.txt文件中!

\n");

}

//打印主菜单

voidmenu()

{

system("cls");

printf("************************************\n");

printf("欢迎使用物流配送管理系统\n");

printf("************************************\n");

printf("1:

添加记录\n");

printf("2:

显示记录\n");

printf("3:

存储记录\n");

printf("4:

查询记录\n");

printf("5:

更改记录\n");

printf("6:

删除记录\n");

printf("7:

退出\n");

}

voidmain()

{intn,b=1,s;

structarticle*head=NULL;

voidadd();

voidshow();

voidlogistic();

voidsearch();

voidchange();

voiddelete_rec();

voidmenu();

while(b==1)

{

menu();

printf("请输入您的选择:

\n");

while(0==scanf("%d",&n))

{

while('\n'!

=getchar()){}

printf("输入无效,请重新输入!

\n");

}

switch(n)//系统功能调用

{

case1:

add();break;

case2:

show();break;

case3:

logistic();break;

case4:

search();break;

case5:

change();break;

case6:

delete_rec();break;

case7:

exit(0);break;

default:

printf("error\n");

}

printf("是否返回主菜单?

0是1否\n");

while(0==scanf("%d",&s)||(s!

=0&&s!

=1))

{

while('\n'!

=getchar()){}

printf("输入无效!

\n");

}

b=b+s;

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2