数据结构物流信息管理系统方案_第1页
数据结构物流信息管理系统方案_第2页
数据结构物流信息管理系统方案_第3页
数据结构物流信息管理系统方案_第4页
数据结构物流信息管理系统方案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

./.专业整理.学号20142014-2015学年第一学期《数据结构》课程设计报告题目:物流信息管理系统专业:计算机科学与技术______指导成绩:目录摘要11设计内容与要求…………………11.1内容描述……………………11.2基本要求……………………12详细设计…………12.1概要设计……………………12.2功能模块详细设计…………12.3程序流程图…………………43源代码………….54程序结果…………95总结……………….126参考文献…………12.摘要物流信息管理系统是利用单链表实现信息管理,进而掌握C语言中的结构体,链表,指针,函数〔系统函数,自定义函数〕等C语言知识。本文通过利用模块化程序设计思想,使用单链表和结构体等编写出的创建,删除,查询等功能的物流信息管理系统。通过完成这个程序设计让我们熟悉并掌握c语言中使用结构体,单链表,指针,函数,和模块化设计思想。关键词结构体,链表,指针,函数1设计内容与要求1.1内容描述对客户的基本信息进行存储,利用取货号来查询顾客信息,核对信息后方可取货。1.2基本要求1.采用一定的存储结构进行客户信息的存储;2.对客户的信息可以进行修改、删除、查询;2详细设计2.1概要设计本系统用到的主要数据结构为数组和文件。一个数组对应一个客户,里面用3个字符串分别存储着用户的客户号、XX和。然后将数组写入文件,查询时读取文件,提取相应信息。2.2功能模块详细设计本程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了取货人的取货号、XX、XX、,其中XX用了字符型数组进行定义,然后定义了客户取货链表,每添加一个取货人,先分配内存,再添加取货人的信息,之后将链表中最后一个指针指向该新的取货人,删除时,需先找到该取货人前面的取货人,直接将其指针指向删除取货人的下一个取货人,修改信息时,先找到该去人,选择修改的内容,再进行修改。voidcreate<Linklist&h>{Linklists,t;intj=1;charx;h=<Listnode*>malloc<sizeof<Listnode>>;h->next=NULL;t=h;while<j>{s=<Listnode*>malloc<sizeof<Listnode>>;printf<"顾客取货号为%d\n",i>;s->customer.m=i;printf<"请输入XX:">;scanf<"%c",&x>;scanf<"%s",s->customer.Identity>;printf<"\n">;printf<"请输入__">;scanf<"%c",&x>;scanf<"%s",s->customer.Name>;printf<"\n">;printf<"请输入联系:">;scanf<"%c",&x>;scanf<"%s",s->customer.Tel>;printf<"\n">;s->next=NULL;t->next=s;t=s;printf<"全部输完,请输入0,否则输入1...\n">;scanf<"%d",&j>;printf<"\n">;i++;}t->next=NULL;}该功能主要实现顾客信息的存储,s作为数据存储节点,把顾客XX,XX,等信息存储进去。i作为游标,定位该节点位置方便数据查找。voidchange<Linklist&h,intm>{inta,j=1;floatn;Linklistt=h;printf<"Changecustomer'sIdentity:1;Name:2;Tel:3;\n">;scanf<"%d",&a>;printf<"\n">;while<j<m&&t->next!=NULL>{t=t->next;j++;}printf<"OK!\n">;switch<a>{case1:printf<"PleaseentertheIdentity!">;scanf<"%s",t->customer.Identity>;break;case2:printf<"PleaseentertheName!">;scanf<"%s",t->customer.Name>;break;case3:printf<"PleaseentertheTel!\n">;scanf<"%f",&n>;break;}printf<"修改成功!\n">;}该功能主要实现顾客信息的修改,输入所需要修改的选项,然后可以根据选项修改所对应的信息,然后修改完成。voidListdelete<Linklist&h,intm>{intj=1;Linklistq=h,t;if<m==1>{t=h;h=h->next;}else{while<j<m-1&&q->next!=NULL>{q=q->next;j++;}if<q->next!=NULL&&j==m-1>{t=q->next;q->next=t->next;}elseprintf<"位置参数不正确!\n">;}i--;free<t>;printf<"删除成功!\n">;}该功能主要实现顾客信息的删除,通过删除节点来删除节点中说包含的信息,删除节点既可实现目标。voidsearch<Linklist&h,intm>{intn=1,j;Linklistp=h->next;while<n<m&&p->next!=NULL>{p=p->next;n++;}printf<"消费号为%d\n",m>;printf<"XX为%s\n",p->customer.Identity>;printf<"消费者XX为%s\n",p->customer.Name>;printf<"为%s\n",p->customer.Tel>;}该功能主要实现顾客信息的查找,通过查找节点所对应的游标位置既可找到该节点,查找该节点可调出该节点所存储的信息,达到查找目的。2.3程序流程图物流信息管理系统因具备以下功能有流程图表示,如下图物流信息管理系统新建一天取货信息修改取货信息查询取货信息删除取货信息1>主函数流程图swith<j>case1:create<h>;break;调用创建函数case2:printf<"请输入修改的位置:">;scanf<"%d",&j>;调用修改函数change<h,j>;break;case3:printf<"请输入删除的位置:">;scanf<"%d",&j>;Listdelete<h,j>;调用删除函数break;case4:printf<"请输入顾客取货号:">;scanf<"%d",&j>;search<h,j>;调用查找函数break;default:printf<"输入错误。\n">;}Creat:该函数是用来录入顾客信息,使得用户可以输入XX、、XX这三种取货信息。Change:该函数是用来修改顾客信息,使用户可以修改XX、、XX这三种取货信息。Listdelete:该函数用来删除链表中的顾客信息。Search:该函数是用来查找顾客所属的取货信息。3源代码#include<stdio.h>#include<malloc.h>#include<string.h>#include<stdlib.h>typedefstructDatatype{intm;charIdentity[18];charName[20];charTel[18];}Datatype;//链表结点的定义typedefstructListnode{Datatypecustomer;structListnode*next;}Listnode,*Linklist;inti=1;//顾客取货号//创建链表voidcreate<Linklist&h>{Linklists,t;intj=1;charx;h=<Listnode*>malloc<sizeof<Listnode>>;h->next=NULL;t=h;while<j>{s=<Listnode*>malloc<sizeof<Listnode>>;printf<"顾客取货号为%d\n",i>;s->customer.m=i;printf<"请输入XX:">;scanf<"%c",&x>;scanf<"%s",s->customer.Identity>;printf<"\n">;printf<"请输入__">;scanf<"%c",&x>;scanf<"%s",s->customer.Name>;printf<"\n">;printf<"请输入联系:">;scanf<"%c",&x>;scanf<"%s",s->customer.Tel>;printf<"\n">;s->next=NULL;t->next=s;t=s;printf<"全部输完,请输入0,否则输入1...\n">;scanf<"%d",&j>;printf<"\n">;i++;}t->next=NULL;}//修改voidchange<Linklist&h,intm>{inta,j=1;floatn;Linklistt=h;printf<"Changecustomer'sIdentity:1;Name:2;Tel:3;\n">;scanf<"%d",&a>;printf<"\n">;while<j<m&&t->next!=NULL>{t=t->next;j++;}printf<"OK!\n">;switch<a>{case1:printf<"PleaseentertheIdentity!">;scanf<"%s",t->customer.Identity>;break;case2:printf<"PleaseentertheName!">;scanf<"%s",t->customer.Name>;break;case3:printf<"PleaseentertheTel!\n">;scanf<"%f",&n>;break;}printf<"修改成功!\n">;}//删除voidListdelete<Linklist&h,intm>{intj=1;Linklistq=h,t;if<m==1>{t=h;h=h->next;}else{while<j<m-1&&q->next!=NULL>{q=q->next;j++;}if<q->next!=NULL&&j==m-1>{t=q->next;q->next=t->next;}elseprintf<"位置参数不正确!\n">;}i--;free<t>;printf<"删除成功!\n">;}//查找voidsearch<Linklist&h,intm>{intn=1,j;Linklistp=h->next;while<n<m&&p->next!=NULL>{p=p->next;n++;}printf<"消费号为%d\n",m>;printf<"XX为%s\n",p->customer.Identity>;printf<"消费者XX为%s\n",p->customer.Name>;printf<"为%s\n",p->customer.Tel>;}intmain<>{intj=1;Linklisth;while<j>{printf<"创立顾客取货信息,请选择1\n">;printf<"修改顾客取货信息,请选择2\n">;printf<"删除顾客取货信息,请选择3\n">;printf<"查询顾客取货信息,请选择4\n">;scanf<"%d",&j>;switch<j>{case0:break;case1:create<h>;break;case2:printf<"请输入修改的位置:">;scanf<"%d",&j>;change<h,j>;break;case3:printf<"请输入删除的位置:">;scanf<"%d",&j>;Listdelete<h,j>;break;case4:printf<"请输入顾客取货号:">;scanf<"%d",&j>;search<h,j>;break;default:printf<"输入错误。\n">;}}system

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论