数据结构大作业报告.docVIP

  • 96
  • 0
  • 约4.58千字
  • 约 6页
  • 2018-03-03 发布于重庆
  • 举报
数据结构大作业报告

数据结构大作业实验报告 课程名称:数据结构 设计题目:客户去银行储蓄模拟程序 实验题目 (1)内容描述:编写一个程序反映客户到银行储蓄的过程。 (2)基本要求:要实现以下功能:1:排队 2:储蓄 3:查看排队4.:删除自己所排的队 5.不再排队,剩下的客户依次储蓄 6:下班 实验的工程组成图和程序结构图 本工程的组成结构如左图所示,程序结构图如右图所示。 工程所包含的函数的功能描述 Bank():模拟客户到银行去储蓄的过程。客户排队储蓄,所以要用到一个队列,这里设计了一个不带头结点的单链表作为队列。 实验工程的算法描述及流程图 //客户排队去银行储蓄,用到了队列的知识,这里设计了一个不带头结点的单链表作为队列来完成排队储蓄过程 #include stdio.h #include malloc.h typedef struct qnode { int data; struct qnode *next; } QNode; //定义链队结点类型 typedef struct { QNode *front,*rear; } QType; //定义链队类型 void bank() //模拟客户储蓄的过程 { int cho,onwork=1,no,find; QType *q; //定义链队类型的指针 QNode *p,*r; //定义链队结点的指针 q=(QType *)malloc(sizeof(QType)); //申请链队的空间 q-front=q-rear=NULL; //创建空队 while (onwork==1) //循环执行 { printf(1:排队 2:储蓄 3:查看排队4:删除自己所排的队 5:不再排队,剩下的客户依次储蓄 6:下班 请选择:); scanf(%d,cho); switch(cho) { case 1://排队 printf( ******输入排队序列号:); do { scanf(%d,no); find=0; p=q-front; //p指向第一个客户 while (p!=NULL !find) //在p不为空find==0即没找到时 { 执行此循环 if (p-data==no) find=1; else p=p-next; } if (find) //若find==1即找到时 printf( ******输入的排队序列号重复,重新输入:); } while (find==1); //在find==0即没找到时结束循环 p=(QNode *)malloc(sizeof(QNode)); //申请空间,创建结点 p-data=no;p-next=NULL; if (q-rear==NULL) //第一个客户排队 { q-front=q-rear=p; } else { q-rear-next=p;//原来最后一个元素指向新入队的元素 q-rear=p; //修改队尾指针,使其指向当前最后一个元素,即将*p结点入队 } break; case 2://储蓄 if (q-front==NULL) //队空 printf( ******没有排队的客户!\n); else //队不空 { p=q-front; //p指向第一个客户 printf( ******客户%d储蓄\n,p-data); if (q-rear==p) //只有一个客户排队的情况 { q-front=q-rear=NULL; } else q-front=p-next; //使p的下一个结点变成第一个客户 free(p); //释放p的空间 } break; case 3:// 查看排队 if (q-front==NULL) //队空 printf(

文档评论(0)

1亿VIP精品文档

相关文档