




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机与信息工程系 数据结构课程设计报告学号2014-2015学年 第一学期1308010120数据结构课程设计报告题目: 物流信息管理系统专业:计算机科学与技术班级:姓名:学号:指导教师:成绩:目 录摘要.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个字符串分别存储着用户的客户号、姓名和电话号码。然后将数组写入文件,查询时读取文件,提取相应信息。2.2功能模块详细设计 本程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了取货人的取货号、身份证、姓名、电话号码,其中身份证用了字符型数组进行定义,然后定义了客户取货链表,每添加一个取货人,先分配内存,再添加取货人的信息,之后将链表中最后一个指针指向该新的取货人,删除时,需先找到该取货人前面的取货人,直接将其指针指向删除取货人的下一个取货人,修改信息时,先找到该去人,选择修改的内容,再进行修改。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(顾客取货号为%dn,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作为游标,定位该节点位置方便数据查找。void change(Linklist&h,int m) int a,j=1; float n; Linklist t=h; printf(Change customers Identity:1;Name:2;Tel:3; n); scanf(%d,&a); printf(n); while(jnext!=NULL) t=t-next; j+; printf(OK!n); switch(a) case 1:printf(Please enter the Identity!); scanf(%s,t-customer.Identity); break; case 2:printf(Please enter the Name!); scanf(%s,t-customer.Name); 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(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); 该功能主要实现顾客信息的删除,通过删除节点来删除节点中说包含的信息,删除节点既可实现目标。void search(Linklist &h,int m) int n=1,j; Linklist p=h-next; while(nnext!=NULL) p=p-next; n+; printf(消费号为%dn,m); printf(身份证为%sn,p-customer.Identity); printf(消费者姓名为%sn,p-customer.Name); printf(电话号码为%sn,p-customer.Tel); 该功能主要实现顾客信息的查找,通过查找节点所对应的游标位置既可找到该节点,查找该节点可调出该节点所存储的信息,达到查找目的。2.3程序流程图物流信息管理系统因具备以下功能有流程图表示,如下图物流信息管理系统新建一天取货信息修改取货信息查询取货信息删除取货信息1)主函数流程图swith(j)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(输入错误。n); Creat:该函数是用来录入顾客信息,使得用户可以输入姓名、电话号码、身份证这三种取货信息。Change:该函数是用来修改顾客信息,使用户可以修改姓名、电话号码、身份证这三种取货信息。Listdelete:该函数用来删除链表中的顾客信息。Search:该函数是用来查找顾客所属的取货信息。3源代码#include #include #include #include typedef struct Datatype int m; char Identity18; char Name20; char Tel18;Datatype; /链表结点的定义 typedef struct Listnode Datatype customer; struct Listnode *next; Listnode,*Linklist; int i=1;/顾客取货号 /创建链表 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(顾客取货号为%dn,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; /修改 void change(Linklist&h,int m) int a,j=1; float n; Linklist t=h; printf(Change customers Identity:1;Name:2;Tel:3; n); scanf(%d,&a); printf(n); while(jnext!=NULL) t=t-next; j+; printf(OK!n); switch(a) case 1:printf(Please enter the Identity!); scanf(%s,t-customer.Identity); break; case 2:printf(Please enter the Name!); scanf(%s,t-customer.Name); 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(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); /查找 void search(Linklist &h,int m) int n=1,j; Linklist p=h-next; while(nnext!=NULL) p=p-next; n+; printf(消费号为%dn,m); printf(身份证为%sn,p-customer.Identity); printf(消费者姓名为%sn,p-customer.Name); printf(电话号码为%sn,p-customer.Tel); int main() int j=1; Linklist h; while(j) printf(创立顾客取货信息,请选择1n); printf(修改顾客取货信息,请选择2n); printf(删除顾客取货信息,请选择3n); printf(查询顾客取货信息,请选择4n); 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(输入错误。n); system(pause); return 0; 4系统测试运行程序进入主界面1 主界面输入1,创建顾客取货信息。2 建立新的取货信息 输入2进入修改顾客信息界面3 修改顾客取货信息输入3进入删除顾客取货信息4 删除顾客取货信息输入4进入查询顾客取货信息界面5查询顾客取货信息第六章 结语这次的程序设计实验是我们进入大学以来学习程序设计结果的一次大检验。自己动手,自己发现问题和解决问题。发现了自己的许多不足。平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。我相信在以后的学习中能够解决好它们。 此外,在系统调试阶段,我发还现了很多细节方面的不足,使我认识到设计一个系统并非想象中那么简单,而是需要考虑各个方面结果的。 通过本次课程设计,我加深了对顺序存储结构的理解,更加
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年从线上数据看宠物品牌竞争格局和618战况-解数咨询
- 2025年特岗教师招聘面试初中数学专业基础知识解析与预测题
- 2025年热切割技术入门与提高模拟题集
- 良性前列腺增生的护理查房1
- 新解读《GB-T 36763-2018电磁屏蔽用硫化橡胶通 用技术要求》
- 陕西省安康市2024-2025学年高一下学期7月期末物理试题(含答案)
- 新解读《GB-T 35865-2018粮油检验 稻谷整精米率测定 图像分析法》
- 用电和消防知识培训课件报道
- 生物安全知识培训课件制药厂
- 2025年小学数学毕业升学考试易错题型精讲模拟试卷
- 护理副高职称答辩5分钟简述范文
- 幼小衔接资料合集汇总
- GB/T 42195-2022老年人能力评估规范
- GB/T 4909.4-2009裸电线试验方法第4部分:扭转试验
- GB/T 15155-1994滤波器用压电陶瓷材料通用技术条件
- 复变函数与积分变换全套课件
- 做一名优秀教师课件
- 企业标准编写模板
- 商场开荒保洁计划书
- DBJ 53-T-46-2012 云南省城镇道路及夜景照明工程施工验收规程
- 西方文明史(第五版)英文版全书ppt完整版课件整本书电子教案最全教学教程
评论
0/150
提交评论