数据结构课程设计报告(仓库管理系统、通讯录管理系统、猴子选大王、.docx
《数据结构课程设计报告(仓库管理系统、通讯录管理系统、猴子选大王、.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告(仓库管理系统、通讯录管理系统、猴子选大王、.docx(32页珍藏版)》请在三一办公上搜索。
1、数据结构课程设计报告目录第一章 设计目的3第二章 设计任务及要求3一、基本要求3二、内容3第三章 题目分析与解答4一、仓库管理系统41.题目要求42.应用程序功能43.输入数据类型、格式和内容限制64.主要模块的算法描述65.源程序代码7二、通讯录管理系统131.题目要求132.应用程序功能133.输入数据类型、格式和内容限制154.主要算法模块描述165.源程序代码16三、猴子选大王221.题目要求:222.应用程序功能223.输入数据类型、格式和内容限制234.主要算法模块描述235.源程序代码23四、二叉树运算2261.题目要求262.应用程序功能263.输入数据类型、格式和内容限制26
2、4.主要算法模块描述265.源程序代码28第一章 设计目的一、培养学生运用算法与数据结构的基本知识解决实际编程中的数据结构设计和算法设计问题。二、培养学生独立设计程序与解决问题的能力,培养学生团队协作集成程序模块及调试能力。三、培养学生初步的软件设计及软件测试的能力。第二章 设计任务及要求一、 基本要求学生必须仔细阅读数据结构课程设计指导书,认真主动完成课设的要求。有问题及时主动通过各种方式与教师联系沟通。学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时的向教师汇报。课程设计按照教学要求需要一周时间完成,一周中每天(按每周5天)至少要
3、上3-4小时的机来调试C语言设计的程序,总共至少要上机调试程序15小时。根据设计报告要求编写设计报告,主要内容包括目的、意义、原理和实现方法简介、过程分析及说明、实验结果情况说明、结论。每个人必须有可运行的程序,学生能对自己的程序面对教师提问并能熟练地解释清楚,学生回答的问题和程序运行的结果作为评分的主要衡量标准。 二、 内容本次课程设计完成如下模块:仓库管理系统、通讯录管理系统、猴子选大王及二叉树运算2。第三章 题目分析与解答一、 仓库管理系统1. 题目要求设计一个仓库管理系统,可以按照顺序和货物名称查询仓库的存储情也可以增加或删除货物。struct node char NO; /商品编号
4、char namemax; /商品名称 char count; /商品数量;2. 应用程序功能开始运行时界面如下: 仓库管理链表建立界面如下:仓库管理链表插入界面如下:仓库管理链表查询界面如下:按商品编号查询界面如下:按商品名称查询界面如下:仓库管理链表删除界面如下:仓库管理链表输出界面如下:3. 输入数据类型、格式和内容限制输入数据类型为字符型,但在输入过程中不可出现空格,如在输入商品名称时不可出现空格。4. 主要模块的算法描述流程图:5. 源程序代码#include #includeiostreamint flag1=0;#include string.h#include stdlib.h
5、#include windows.husing namespace std;typedef struct /仓库管理结点类型 char NO10; /商品编号 char name30; /商品名称 char count5; /商品数量 DataType;typedef struct node /结点类型定义 DataType data; /结点数据域 struct node *next; /结点指针域 ListNode;typedef ListNode *LinkList;LinkList head;ListNode *p;LinkList CreateList(void);void Inse
6、rtNode(LinkList head,ListNode *p);ListNode *ListFind(LinkList head);void DelNode(LinkList head);void PrintList(LinkList head);/*尾插法建立带头结点的仓库管理链表算法*/LinkList CreateList(void)LinkList head=(ListNode *)malloc(sizeof(ListNode); /申请头结点ListNode *p,*rear;char flag=y;/int flag=0; /结束标志置0rear=head; /尾指针初始指向头
7、结点while (flag=y) p=(ListNode *)malloc(sizeof(ListNode); /申新结点printf( 商品编号(10) 商品名称(30) 商品数量(5) n);printf(-n);printf(n添加商品编号:n);cinp-data.NO;printf(n添加商品名称:n);cinp-data.name;printf(n添加商品数量:n);cinp-data.count;rear-next=p; /新结点连接到尾结点之后rear=p; /尾指针指向新结点printf(继续添加记录?(y/n):);cinflag;rear-next=NULL; /终端结点
8、指针置空return head; /返回链表头指针/*在仓库管理链表head中插入结点*/void InsertNode(LinkList head,ListNode *p) ListNode *p1,*p2; p1=head; p2=p1-next; while(p2!=NULL & strcmp(p2-data.NO,p-data.NO)next; /p2指向表的下一个结点 p1-next=p; /插入p所指向的结点 p-next=p2; /连接表中剩余的结点 /*有序仓库管理链表的查找 */ListNode *ListFind(LinkList head) ListNode *p; ch
9、ar num10; char name9;char pp; printf(=n); printf( a. 按商品编号查询 n); printf( b. 按商品名称查询 n); printf(=n); printf( 请 选 择: ); p=head-next; cinpp;getchar(); if (pp=a|pp=A) printf(请输入要查找的商品编号:);cinnum;while (p&strcmp(p-data.NO,num)next;if (p=NULL)|strcmp(p-data.NO,num)0)p=NULL; /没有查到要查找的通讯信息elseif (pp=b|pp=B)
10、 printf( 请输入要查找的商品名称:);cinname;while(p&strcmp(p-data.name,name)!=0)p=p-next; return p; /*仓库管理链表上的结点删除*/void DelNode(LinkList head)char jx;ListNode *p,*q; p=ListFind(head); /调用查找函数if (p=NULL) printf(没有查到要删除的商品信息!n);return; if(p!=NULL)printf(真的要删除该商品吗?(y/n):);cinjx;if (jx=y|jx=Y) q=head;while (q!=NULL
11、)&(q-next!=p)q=q-next;q-next=p-next; /删除结点free(p); /释放被删结点空间printf(删除成功!n); /*仓库管理链表的输出函数 */void PrintList(LinkList head)ListNode *p;p=head-next;printf( 商品编号 商品名称 商品数量 n);printf(-n);while (p!=NULL) printf(%15s%20s%23sn,p-data.NO,p-data.name,p-data.count);printf(-n);p=p-next; /后移一个结点void main()int ch
12、oice,j=1;char Choice;while(j)printf(nnnnn);printf(tttt仓库管理系统n);printf(nttt*);printf(nttt* 1- 仓库管理链表建立 *);printf(nttt* 2- 仓库管理链表插入 *);printf(nttt* 3- 仓库管理链表查询 *);printf(nttt* 4- 仓库管理链表删除 *);printf(nttt* 5- 仓库管理链表输出 *);printf(nttt* 0- 退出仓库管理系统 *);printf(nttt*);printf(nttt请选择菜单号(0-5):);cinchoice;getcha
13、r();switch(choice)case 1:printf(*n);printf(* 仓库管理链表建立 *n);printf(*n);head=CreateList( );flag1=1;system(cls);break;case 2:if(flag1!=1) printf(请先建立表!);Sleep(1500);printf(*n);printf(* 仓库管理链表插入 *n);printf(*n);printf(商品编号(10) 商品名称(30) 商品数量n);printf(* n);p=(ListNode *)malloc(sizeof(ListNode); /申请新结点printf
14、(n添加商品编号:n);cinp-data.NO;printf(n添加商品名称:n);cinp-data.name;printf(n添加商品数量:n);cinp-data.count;InsertNode(head,p);system(cls);break;case 3:if(flag1!=1) printf(请先建立表!);Sleep(1500);elseprintf(*n);printf(* 仓库管理链表查询 *n);printf(*n);p=ListFind(head);if (p!=NULL) printf(商品编号 商品名称 商品数量 n);printf(-n);printf(%s,
15、%s,%sn,p-data.NO,p-data.name,p-data.count);printf(-n);else printf(没有查到要查询的商品信息!n);break;case 4: if(flag1!=1) printf(请先建立表!);Sleep(1500);elseprintf(*n);printf(* 仓库管理链表删除 *n);printf(*n);DelNode(head); /删除结点break;case 5:if(flag1!=1) printf(请先建立表!);Sleep(1500);elseprintf(*n);printf(* 仓库管理链表输出 *n);printf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 报告 仓库 管理 系统 通讯录 猴子 大王

链接地址:https://www.31ppt.com/p-1944866.html