欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    数据结构课程设计报告(仓库管理系统、通讯录管理系统、猴子选大王、.docx

    • 资源ID:1944866       资源大小:417.62KB        全文页数:32页
    • 资源格式: DOCX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计报告(仓库管理系统、通讯录管理系统、猴子选大王、.docx

    数据结构课程设计报告目录第一章 设计目的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.输入数据类型、格式和内容限制264.主要算法模块描述265.源程序代码28第一章 设计目的一、培养学生运用算法与数据结构的基本知识解决实际编程中的数据结构设计和算法设计问题。二、培养学生独立设计程序与解决问题的能力,培养学生团队协作集成程序模块及调试能力。三、培养学生初步的软件设计及软件测试的能力。第二章 设计任务及要求一、 基本要求学生必须仔细阅读数据结构课程设计指导书,认真主动完成课设的要求。有问题及时主动通过各种方式与教师联系沟通。学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时的向教师汇报。课程设计按照教学要求需要一周时间完成,一周中每天(按每周5天)至少要上3-4小时的机来调试C语言设计的程序,总共至少要上机调试程序15小时。根据设计报告要求编写设计报告,主要内容包括目的、意义、原理和实现方法简介、过程分析及说明、实验结果情况说明、结论。每个人必须有可运行的程序,学生能对自己的程序面对教师提问并能熟练地解释清楚,学生回答的问题和程序运行的结果作为评分的主要衡量标准。 二、 内容本次课程设计完成如下模块:仓库管理系统、通讯录管理系统、猴子选大王及二叉树运算2。第三章 题目分析与解答一、 仓库管理系统1. 题目要求设计一个仓库管理系统,可以按照顺序和货物名称查询仓库的存储情也可以增加或删除货物。struct node char NO; /商品编号 char namemax; /商品名称 char count; /商品数量;2. 应用程序功能开始运行时界面如下: 仓库管理链表建立界面如下:仓库管理链表插入界面如下:仓库管理链表查询界面如下:按商品编号查询界面如下:按商品名称查询界面如下:仓库管理链表删除界面如下:仓库管理链表输出界面如下:3. 输入数据类型、格式和内容限制输入数据类型为字符型,但在输入过程中不可出现空格,如在输入商品名称时不可出现空格。4. 主要模块的算法描述流程图:5. 源程序代码#include<stdio.h> #include"iostream"int flag1=0;#include "string.h"#include "stdlib.h"#include "windows.h"using 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 InsertNode(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; /尾指针初始指向头结点while (flag='y') p=(ListNode *)malloc(sizeof(ListNode); /申新结点printf(" 商品编号(10) 商品名称(30) 商品数量(5) n");printf("-n");printf("n添加商品编号:n");cin>>p->data.NO;printf("n添加商品名称:n");cin>>p->data.name;printf("n添加商品数量:n");cin>>p->data.count;rear->next=p; /新结点连接到尾结点之后rear=p; /尾指针指向新结点printf("继续添加记录?(y/n):");cin>>flag;rear->next=NULL; /终端结点指针置空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)<0) p1=p2; /p1指向刚访问过的结点 p2=p2->next; /p2指向表的下一个结点 p1->next=p; /插入p所指向的结点 p->next=p2; /连接表中剩余的结点 /*有序仓库管理链表的查找 */ListNode *ListFind(LinkList head) ListNode *p; char num10; char name9;char pp; printf("=n"); printf(" a. 按商品编号查询 n"); printf(" b. 按商品名称查询 n"); printf("=n"); printf(" 请 选 择: "); p=head->next; cin>>pp;getchar(); if (pp='a'|pp='A') printf("请输入要查找的商品编号:");cin>>num;while (p&&strcmp(p->data.NO,num)<0)p=p->next;if (p=NULL)|strcmp(p->data.NO,num)>0)p=NULL; /没有查到要查找的通讯信息elseif (pp='b'|pp='B') printf(" 请输入要查找的商品名称:");cin>>name;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):");cin>>jx;if (jx='y'|jx='Y') q=head;while (q!=NULL)&&(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 choice,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):");cin>>choice;getchar();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("n添加商品编号:n");cin>>p->data.NO;printf("n添加商品名称:n");cin>>p->data.name;printf("n添加商品数量:n");cin>>p->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,%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("*n");PrintList(head);break;case 0:j=0;system("cls");break;default:printf("ttn 输入有错,请重新输入!n");Sleep(1500);system("cls");break;二、 通讯录管理系统1. 题目要求通讯录一般包括通讯者的编号、姓名、性别、电话及地址等信息,设计一个通讯录要求实现通讯者的插入、查询、删除、更新、排序操作。 struct node char num5; /编号 char name8; /姓名 char sex; /性别 char tel8; /电话 char address100; /地址;2. 应用程序功能开始运行时界面如下:通讯录链表建立界面如下:通讯录链表插入界面如下:通讯录链表查询界面如下: 按编号查询界面如下:按姓名查询编号如下: 通讯录链表删除界面如下: 通讯录链表输出界面如下:3. 输入数据类型、格式和内容限制输入数据类型为字符型,但在输入过程中不可包含空格,如输入地址过程中不可出现空格!4. 主要算法模块描述流程图:5. 源程序代码#include<stdio.h> #include "iostream"int flag1=0;#include "string.h"#include "stdlib.h"#include "windows.h"using namespace std;typedef struct /通讯录结点类型 char num5; /编号 char name9; /姓名 char sex3; /性别 char phone13; /电话 char addr31; /地址 DataType;typedef struct node /结点类型定义 DataType data; /结点数据域 struct node *next; /结点指针域 ListNode;typedef ListNode *LinkList;LinkList head;ListNode *p;LinkList CreateList(void);void InsertNode(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; /尾指针初始指向头结点while (flag='y') p=(ListNode *)malloc(sizeof(ListNode); /申新结点printf("编号(4) 姓名(8) 性别 电话(11) 地址(31)n");printf("-n");printf("n添加的编号:n");cin>>p->data.num;printf("n添加的姓名:n");cin>>p->data.name;printf("n性别:n");cin>>p->data.sex;printf("n电话:n");cin>>p->data.phone;printf("n地址:n");cin>>p->data.addr;rear->next=p; /新结点连接到尾结点之后rear=p; /尾指针指向新结点printf("继续建表?(y/n):");cin>>flag;rear->next=NULL; /终端结点指针置空return head; /返回链表头指针/*在通讯录链表head中插入结点*/void InsertNode(LinkList head,ListNode *p) ListNode *p1,*p2; p1=head; p2=p1->next; while(p2!=NULL && strcmp(p2->data.num,p->data.num)<0) p1=p2; /p1指向刚访问过的结点 p2=p2->next; /p2指向表的下一个结点 p1->next=p; /插入p所指向的结点 p->next=p2; /连接表中剩余的结点 /*有序通讯录链表的查找 */ListNode *ListFind(LinkList head) ListNode *p; char num5; char name9;char pp; printf("=n"); printf(" a. 按编号查询 n"); printf(" b. 按姓名查询 n"); printf("=n"); printf(" 请 选 择: "); p=head->next; cin>>pp; if (pp='a'|pp='A') printf("请输入要查找者的编号:");cin>>num;while (p&&strcmp(p->data.num,num)<0)p=p->next;if (p=NULL)|strcmp(p->data.num,num)>0)p=NULL; /没有查到要查找的通讯信息elseif (pp='b'|pp='B') printf(" 请输入要查找者的姓名:");cin>>name;while(p&&strcmp(p->data.name,name)!=0)p=p->next; return p; /*通讯录链表上的结点删除*/void DelNode(LinkList head)char cho;ListNode *p,*q; p=ListFind(head); /调用查找函数if (p=NULL) printf("没有查到要删除的通讯者!n");return; else if(p!=NULL)printf("真的要删除该结点吗?(y/n)");cin>>cho;if (cho='y'|cho='Y') q=head;while (q!=NULL)&&(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("%s,%s,%s,%s,%sn",p->data.num,p->data.name,p->data.sex,p->data.phone,p->data.addr);printf("-n");p=p->next; /后移一个结点void main()int choice,j=1;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):");cin>>choice;getchar();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); system("cls");printf("*n");printf("* 通 讯 者 信 息 的 添 加 *n");printf("*n");printf("编号(4) 姓名(8) 性别(3) 电话(11) 地址(31)n");printf("* n");p=(ListNode *)malloc(sizeof(ListNode); /申请新结点printf("n添加的编号:n");cin>>p->data.num;printf("n添加的姓名:n");cin>>p->data.name;printf("n性别:n");cin>>p->data.sex;printf("n电话:n");cin>>p->data.phone;printf("n地址:n");cin>>p->data.addr;InsertNode(head,p);system("cls");break;case 3:if(flag1!=1) printf("请先建立表!");Sleep(1500);system("cls");elseprintf("*n");printf("* 通 讯 录 信 息 的 查 询 *n");printf("*n");p=ListFind(head);if (p!=NULL) printf("编号 姓 名 性别 联系电话 地址 n");printf("-n");printf("%s,%s,%s,%s,%sn",p->data.num,p->data.name,p->data.sex,p->data.phone,p->data.addr);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("*n");PrintList(head);break;case 0:j=0;system("cls");break;default:printf("ttn 输入有错,请重新输入!n");Sleep(1500);system("cls");break;三、 猴子选大王1. 题目要求:任务:一堆猴子都有编号,编号是1,2,3 .m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。要求:输入数据:输入m,n m,n 为整数,n<m输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能。2. 应用程序功能程序运行结果如下:3. 输入数据类型、格式和内容限制输入数据为整型,切勿输入整形以外数据类型,否则程序将报错。4. 主要算法模块描述流程图:5. 源程序代码#include "iostream"#include "stdlib.h"using namespace std;typedef struct node

    注意事项

    本文(数据结构课程设计报告(仓库管理系统、通讯录管理系统、猴子选大王、.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开