数据结构物流信息管理系统设计Revised on November 25, 2020目 录摘要...................................................1 1设计内容及要求...........................................................................1 内容描述..............................................................................1 基本要求..............................................................................1 2详细设计....................................................................................1 概要设计..............................................................................1 功能模块详细设计..................................................................1 程序流程图...........................................................................4 3源代码 .....................................................................................5 4程序结果....................................................................................9 5总结...........................................................................................12 6参考文献 (12)数据结构物流信息管理系统设计 【最新资料,WORD 文档,可编辑修改】摘要物流信息管理系统是利用单链表实现信息管理,进而掌握C语言中的结构体,链表,指针,函数(系统函数,自定义函数)等C语言知识。
本文通过利用模块化程序设计思想,使用单链表和结构体等编写出的创建,删除,查询等功能的物流信息管理系统。
通过完成这个程序设计让我们熟悉并掌握c语言中使用结构体,单链表,指针,函数,和模块化设计思想。
关键词结构体,链表,指针,函数1设计内容及要求内容描述对客户的基本信息进行存储,利用取货号来查询顾客信息,核对信息后方可取货。
基本要求1.采用一定的存储结构进行客户信息的存储;2.对客户的信息可以进行修改、删除、查询;2详细设计概要设计本系统用到的主要数据结构为数组和文件。
一个数组对应一个客户,里面用3个字符串分别存储着用户的客户号、姓名和电话号码。
然后将数组写入文件,查询时读取文件,提取相应信息。
功能模块详细设计本程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了取货人的取货号、身份证、姓名、电话号码,其中身份证用了字符型数组进行定义,然后定义了客户取货链表,每添加一个取货人,先分配内存,再添加取货人的信息,之后将将其指针指向删除取货人的下一个取货人,修改信息时,先找到该去人,选择修改的内容,再进行修改。
void create(Linklist &h){Linklist s,t;int j=1;char x;h=(Listnode *)malloc(sizeof(Listnode));h->next=NULL;t=h;while(j){s=(Listnode*)malloc(sizeof(Listnode));printf("顾客取货号为%d\n",i);s->=i;printf("请输入身份证号码:");scanf("%c",&x);scanf("%s",s->;printf("\n");printf("请输入姓名:");scanf("%c",&x);scanf("%s",s->;printf("\n");printf("请输入联系号码:");scanf("%c",&x);scanf("%s",s->;printf("\n");s->next=NULL;t->next=s;t=s;printf("全部输完,请输入0,否则输入1...\n");scanf("%d",&j);printf("\n");i++;}t->next=NULL;}该功能主要实现顾客信息的存储,s作为数据存储节点,把顾客姓名,身份证,电话号码等信息存储进去。
i作为游标,定位该节点位置方便数据查找。
void change(Linklist&h,int m){int a,j=1;float n;Linklist t=h;printf("Change customer's Identity: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){case 1:printf("Please enter the Identity!");scanf("%s",t->;break;case 2:printf("Please enter the Name!");scanf("%s",t->;break;case 3:printf("Please enter the Tel!\n");scanf("%f",&n);break;}printf("修改成功!\n");}该功能主要实现顾客信息的修改,输入所需要修改的选项,然后可以根据选项修改所对应的信息,然后修改完成。
void Listdelete(Linklist&h,int m){int j=1;Linklist q=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");}该功能主要实现顾客信息的删除,通过删除节点来删除节点中说包含的信息,删除节点既可实现目标。
void search(Linklist &h,int m){int n=1,j;Linklist p=h->next;while(n<m&&p->next!=NULL){p=p->next;n++;}printf("消费号为%d\n",m);printf("身份证为%s\n",p->;printf("消费者姓名为%s\n",p->;printf("电话号码为%s\n",p->;}该功能主要实现顾客信息的查找,通过查找节点所对应的游标位置既可找到该节点,查找该节点可调出该节点所存储的信息,达到查找目的。
程序流程图物流信息管理系统因具备以下功能有流程图表示,如下图1)主函数流程图Creat:该函数是用来录入顾客信息,使得用户可以输入姓名、电话号码、身份证这三种取货信息。
Change:该函数是用来修改顾客信息,使用户可以修改姓名、电话号码、身份证这三种取货信息。
Listdelete:该函数用来删除链表中的顾客信息。
Searc h:该函数是用来查找顾客所属的取货信息。
3源代码#include<>#include<>#include<>#include<>typedef struct Datatype{int m;char Identity[18];char Name[20];char Tel[18];}Datatype;.\n");scanf("%d",&j);printf("\n");i++;}t->next=NULL;}//修改void change(Linklist&h,int m){int a,j=1;float n;Linklist t=h;printf("Change customer's Identity: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){case 1:printf("Please enter the Identity!");scanf("%s",t->;break;case 2:printf("Please enter the Name!");scanf("%s",t->;break;case 3:printf("Please enter the Tel!\n");scanf("%f",&n);break;}printf("修改成功!\n");}//删除void Listdelete(Linklist&h,int m){int j=1;Linklist q=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");}//查找void search(Linklist &h,int m){ int n=1,j;Linklist p=h->next;while(n<m&&p->next!=NULL) {p=p->next;n++;}printf("消费号为%d\n",m);printf("身份证为%s\n",p->;printf("消费者姓名为%s\n",p->; printf("电话号码为%s\n",p->; }int main(){int j=1;Linklist h;while(j){printf("创立顾客取货信息,请选择1\n"); printf("修改顾客取货信息,请选择2\n"); printf("删除顾客取货信息,请选择3\n"); printf("查询顾客取货信息,请选择4\n"); scanf("%d",&j);switch(j){case 0:break;case 1:create(h);break;case 2:printf("请输入修改的位置:");scanf("%d",&j);change(h,j);break;case 3:printf("请输入删除的位置:");scanf("%d",&j);Listdelete(h,j);break;case 4:printf("请输入顾客取货号:");scanf("%d",&j);search(h,j);break;default:printf("输入错误。