- 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(
您可能关注的文档
最近下载
- 2025年无人机驾驶员执照固定翼无人机失速特性专题试卷及解析.pdf VIP
- 2025年无人机驾驶员执照短距起飞与短距着陆技术专题试卷及解析.pdf VIP
- 2025年拍卖师线上红酒拍卖的运营与品鉴展示技巧专题试卷及解析.pdf VIP
- 2025年特许金融分析师气候风险衍生品概述与应用专题试卷及解析.pdf VIP
- 2025年金融风险管理师市场流动性风险计量专题试卷及解析.pdf VIP
- 劳务派遣的现状、问题与对策.doc VIP
- 2025年金融风险管理师数字货币期货对冲策略专题试卷及解析.pdf VIP
- 2025年高考真题分类汇编专题09化学反应速率与化学平衡(含解析).docx VIP
- 全国行政区划(至乡镇村街道社区)数据库.xls VIP
- 部编版二年级下册语文【全册全套】课件.pptx VIP
原创力文档

文档评论(0)