数据结构物流信息管理系统设计.docx

上传人:b****5 文档编号:7193925 上传时间:2023-01-21 格式:DOCX 页数:16 大小:246.16KB
下载 相关 举报
数据结构物流信息管理系统设计.docx_第1页
第1页 / 共16页
数据结构物流信息管理系统设计.docx_第2页
第2页 / 共16页
数据结构物流信息管理系统设计.docx_第3页
第3页 / 共16页
数据结构物流信息管理系统设计.docx_第4页
第4页 / 共16页
数据结构物流信息管理系统设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数据结构物流信息管理系统设计.docx

《数据结构物流信息管理系统设计.docx》由会员分享,可在线阅读,更多相关《数据结构物流信息管理系统设计.docx(16页珍藏版)》请在冰豆网上搜索。

数据结构物流信息管理系统设计.docx

数据结构物流信息管理系统设计

 

 

【最新资料,WORD文档,可编辑修改】

 

摘要...................................................1

1设计内容及要求…………………………………………………………………1

1.1内容描述……………………………………………………………………1

1.2基本要求……………………………………………………………………1

2详细设计…………………………………………………………………………1

2.1概要设计……………………………………………………………………1

2.2功能模块详细设计…………………………………………………………1

2.3程序流程图…………………………………………………………………4

3源代码………………………………………………………………………….5

4程序结果…………………………………………………………………………9

5总结……………………………………………………………………………….12

6参考文献…………………………………………………………………………12

 

摘要

物流信息管理系统是利用单链表实现信息管理,进而掌握C语言中的结构体,链表,指针,函数(系统函数,自定义函数)等C语言知识。

本文通过利用模块化程序设计思想,使用单链表和结构体等编写出的创建,删除,查询等功能的物流信息管理系统。

通过完成这个程序设计让我们熟悉并掌握c语言中使用结构体,单链表,指针,函数,和模块化设计思想。

关键词结构体,链表,指针,函数

 

1设计内容及要求

1.1内容描述

对客户的基本信息进行存储,利用取货号来查询顾客信息,核对信息后方可取货。

1.2基本要求

1.采用一定的存储结构进行客户信息的存储;

2.对客户的信息可以进行修改、删除、查询;

2详细设计

2.1概要设计

本系统用到的主要数据结构为数组和文件。

一个数组对应一个客户,里面用3个字符串分别存储着用户的客户号、姓名和电话号码。

然后将数组写入文件,查询时读取文件,提取相应信息。

2.2功能模块详细设计

本程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了取货人的取货号、身份证、姓名、电话号码,其中身份证用了字符型数组进行定义,然后定义了客户取货链表,每添加一个取货人,先分配内存,再添加取货人的信息,之后将链表中最后一个指针指向该新的取货人,删除时,需先找到该取货人前面的取货人,直接将其指针指向删除取货人的下一个取货人,修改信息时,先找到该去人,选择修改的内容,再进行修改。

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("请输入身份证号码:

");

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作为数据存储节点,把顾客姓名,身份证,电话号码等信息存储进去。

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(jnext!

=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(jnext!

=NULL)

{

q=q->next;

j++;

}

if(q->next!

=NULL&&j==m-1)

{

t=q->next;

q->next=t->next;

}

else

printf("位置参数不正确!

\n");

}

i--;

free(t);

printf("删除成功!

\n");

}

该功能主要实现顾客信息的删除,通过删除节点来删除节点中说包含的信息,删除节点既可实现目标。

voidsearch(Linklist&h,intm){

intn=1,j;

Linklistp=h->next;

while(nnext!

=NULL)

{

p=p->next;

n++;

}

 

printf("消费号为%d\n",m);

printf("身份证为%s\n",p->customer.Identity);

printf("消费者姓名为%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:

该函数是用来录入顾客信息,使得用户可以输入姓名、电话号码、身份证这三种取货信息。

Change:

该函数是用来修改顾客信息,使用户可以修改姓名、电话号码、身份证这三种取货信息。

Listdelete:

该函数用来删除链表中的顾客信息。

Search:

该函数是用来查找顾客所属的取货信息。

 

3源代码

#include

#include

#include

#include

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("请输入身份证号码:

");

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(jnext!

=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(jnext!

=NULL)

{

q=q->next;

j++;

}

if(q->next!

=NULL&&j==m-1)

{

t=q->next;

q->next=t->next;

}

else

printf("位置参数不正确!

\n");

}

i--;

free(t);

printf("删除成功!

\n");

}

 

//查找

voidsearch(Linklist&h,intm){

intn=1,j;

Linklistp=h->next;

while(nnext!

=NULL)

{

p=p->next;

n++;

}

 

printf("消费号为%d\n",m);

printf("身份证为%s\n",p->customer.Identity);

printf("消费者姓名为%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("pause");

return0;

}

 

4系统测试

运行程序进入主界面

 

1主界面

输入1,创建顾客取货信息。

2建立新的取货信息

 

输入2进入修改顾客信息界面

 

3修改顾客取货信息

 

输入3进入删除顾客取货信息

4删除顾客取货信息

输入4进入查询顾客取货信息界面

5查询顾客取货信息

第六章结语

这次的程序设计实验是我们进入大学以来学习程序设计结果的一次大检验。

自己动手,自己发现问题和解决问题。

发现了自己的许多不足。

平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。

我相信在以后的学习中能够解决好它们。

此外,在系统调试阶段,我发还现了很多细节方面的不足,使我认识到设计一个系统并非想象中那么简单,而是需要考虑各个方面结果的。

 通过本次课程设计,我加深了对顺序存储结构的理解,更加熟悉了顺序表的基本操作,还有文件读写方面的知识得到了回顾。

还有一点体会就是,书上和老师教的内容是有限的,我们需要不断地靠自己去学习,向他人请教,了解和掌握更多的知识,这样我们才能编出更好的程序。

 

 

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

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1