欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构课程设计实验报告 安徽大学.docx

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

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

    数据结构课程设计实验报告 安徽大学.docx

    1、数据结构课程设计实验报告 安徽大学【实验一】停车场管理系统设计要求1.问题描述设计一个停车场管理系统,模拟停车场运作,此程序具备以下功能:(1)若车辆到达,则显示汽车在停车场内或便道上的停车位置;(2)若车辆离开,则显示汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费);2.需求分析 (1)要求以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。 (2)要求处理的数据元素包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去时刻。 (3)要求栈以顺序结构实现,队列以链表实现。概要设计1. 主界面设计为了实现“停车管理系统”的各项功能,

    2、首先为系统设计一个含有多个菜单的主控菜单子程序,以链接系统的各项子功能,方便用户使用本系统。系统主控菜单运行界面如下:2. 存储结构设计本系统采用顺序栈模拟停车场管理操作,以链表队列模拟便道停车管理操作。以下是本系统中涉及的存储结构的定义:typedef struct int *base; int *top; int stacksize; int cartimem; int chepaihaom;SqStack;/栈的顺序存储表示struct List int Am+n; /记录车牌号信息 int Bm+n;/记录车辆到达时选择的车位号 int len;/表示数组中元素个数L;typedef

    3、struct QNode/链队列元素结点类型 int data;struct QNode *next;QNode, *QueuePtr;typedef struct/链队列类型QueuePtr front;QueuePtr rear;LinkQueue;3.系统主要功能设计本系统共采用3个功能模块,每个模块中又各自包含自己的子功能,各功能模块如下:1.车辆到达;该模块将给用户提供两种停车选择,是场内停车还是便道停车方式,便于用户选择。2.车辆离开;用户进入该界面,只要输入相关信息,系统将会显示用户在该停车场内停留的时间以及是否需要支付相应金额的停车费用等。3.退出系统;方便用户退出本系统。模块

    4、设计1. 模块设计本程序包含4个模块,它们分别是:主程序模块、菜单选择模块、栈操作模块、队列操作模块。调用关系如图所示:2. 系统子程序及功能设计1) void Initshuzu() /初始化数组2) void time() /时间函数3) void chepaihao() /输入的车牌号4) void InitStack(SqStack &S) /构造一个空栈s5) void push(SqStack &S,int e) /车辆进入停车场场内停车6) void pop(SqStack &S,int e) /车辆离开停车场场内7) void InitQueue(LinkQueue &Q) /

    5、构造一个空队列Q8) void EnQueue(LinkQueue &Q,int elem) /车辆进入便道9) void DeQueue(LinkQueue &Q ,int &e) /车辆离开便道10) void tingchefangshi() /选择停车方式,场内停车还是便道停车11) void likai() /车辆离开12) void main() /主函数3. 函数主要调用关系图 详细设计1.数据类型定义(1)栈的顺序存储结构体定义typedef struct int *base; int *top; int stacksize; int cartimem; int chepaih

    6、aom;SqStack;(2)数组的结构体定义struct List int Am+n; /记录车牌号信息 int Bm+n;/记录车辆到达时选择的车位号 int len;/表示数组中元素个数L;(3)链队列元素结点的结构体定义typedef struct QNode int data;struct QNode *next;QNode, *QueuePtr;typedef structQueuePtr front;QueuePtr rear;LinkQueue;(4)全局变量定义int z;time_t am+n,end;double Am+n=0;int count1=0,count2=0;

    7、/count1、count2分别用来统计场内停车数和便道停车数,并且初始化为02.系统主要子程序设计(1)车辆进入停车场场内停车void push(SqStack &S,int e)/车辆进入停车场场内停车 int stacksize=50; if(S.top-S.base=stacksize)/栈满,追加存储空间 S.base=(int *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int); if (!S.base) exit(OVERFLOW ); S.top=S.base+S.stacksize; S.stacksize +=

    8、STACKINCREMENT; *S.top+=e;/push(2)车辆进入便道停车void EnQueue(LinkQueue &Q,int elem)/车辆进入便道QNode *s;s=(QueuePtr)malloc(sizeof(QNode);if(!s) exit(OVERFLOW);s-data=elem;s-next=NULL;Q.rear-next=s;Q.rear=s;(3)车辆离开场内void pop(SqStack &S,int e)/车辆离开停车场场内 e=*-S.top;/pop(4)车辆离开便道void DeQueue(LinkQueue &Q ,int &e)/车

    9、辆离开便道 QNode *t; if(Q.front=Q.rear) printf(便道内无任何车辆n);exit(1); else t=Q.front-next; e=t-data; Q.front-next=t-next; if(Q.rear=t) Q.rear=Q.front; free(t); (5)选择停车方式void tingchefangshi()/选择停车方式,场内停车还是便道停车 printf( 请选择您的停车方式:n); printf( 1. 场内停车 n); printf( 2. 便道停车 n); scanf(%d,&z); switch(z) case 1: if(co

    10、unt1=m) printf( 您选择的是: 1. 场内停车n); printf( 您的车位是:%d 号车位n,count1); chepaihao(); printf(n); printf( 从现在开始为您计时,您的到达时间是:n); time(); acount1=time(NULL); count1+; push(S,count1); else printf( 当前车位已满,请选择其他停车方式n); break; return; case 2: if(count2=0 & im & i=m+n) end=time(NULL); Ai=difftime(end,ai); printf( 您

    11、在停车场内停留时间为:%0.2f 秒n,difftime(end,ai); printf( 您的服务是免费服务,感谢您的使用,欢迎下次光临!); count1-; else printf( 您的输入有误,请重新输入!);测试分析系统运行主界面如下:1. 车辆到达界面车辆到达后需要选择相应的停车方式,主要有两种方式,场内停车方式和便道停车方式。2. 车辆离开界面车辆离开时需要输入自己的车位号,系统会自动判别你的停车方式,提供相关服务 3. 车辆进入场内停车4. 车辆进入便道停车 5. 车辆离开场内 6. 车辆离开便道 源程序清单#include#include#include#include#i

    12、nclude#include#define m 50/停车场内总容纳量m,车位号依次为:150#define n 50 /停车场便道容纳量n,车位号依次为:51-100#define p 3 /车牌号码的位数000-999#define STACK_INIT_SIZE 100#define STACKINCREMENT 10#define OVERFLOW 0#define T 100int z;time_t am+n,end;double Am+n=0;#define j 0.001 /停车场内收费标准0.001元/秒int count1=0,count2=0;/count1、count2分

    13、别用来统计场内停车数和便道停车数,并且初始化为0typedef struct int *base; int *top; int stacksize; int cartimem; int chepaihaom;SqStack;/栈的顺序存储表示struct List int Am+n; /记录车牌号信息 int Bm+n;/记录车辆到达时选择的车位号 int len;/表示数组中元素个数L;typedef struct QNode/链队列元素结点类型 int data;struct QNode *next;QNode, *QueuePtr;typedef struct/链队列类型QueuePtr

    14、 front;QueuePtr rear;LinkQueue;void Initshuzu()/初始化数组 for(int i=1;i=m+n;i+) L.Bi=0; L.len=0;void time()/时间函数 time_t timep; time (&timep); printf( 现在时刻:%s,ctime(&timep);void chepaihao()/输入的车牌号 int chp; int i; printf(请输入您的车牌号:); for(i=0;i3;i+) scanf(%d,&chi); printf(n); printf(您输入的车牌号码为:n); for(i=0;i=

    15、stacksize)/栈满,追加存储空间 S.base=(int *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int); if (!S.base) exit(OVERFLOW ); S.top=S.base+S.stacksize; S.stacksize +=STACKINCREMENT; *S.top+=e;/pushvoid pop(SqStack &S,int e)/车辆离开停车场场内 e=*-S.top;/popvoid InitQueue(LinkQueue &Q)/构造一个空队列QQ.front=Q.rear=(Que

    16、uePtr)malloc(sizeof(QNode);if(!Q.front) exit(OVERFLOW);Q.front-next=NULL;LinkQueue Q;void EnQueue(LinkQueue &Q,int elem)/车辆进入便道QNode *s;s=(QueuePtr)malloc(sizeof(QNode);if(!s) exit(OVERFLOW);s-data=elem;s-next=NULL;Q.rear-next=s;Q.rear=s;void DeQueue(LinkQueue &Q ,int &e)/车辆离开便道 QNode *t; if(Q.front

    17、=Q.rear) printf(便道内无任何车辆n);exit(1); else t=Q.front-next; e=t-data; Q.front-next=t-next; if(Q.rear=t) Q.rear=Q.front; free(t); void tingchefangshi()/选择停车方式,场内停车还是便道停车 printf( 请选择您的停车方式:n); printf( 1. 场内停车 n); printf( 2. 便道停车 n); scanf(%d,&z); switch(z) case 1: if(count1=m) printf( 您选择的是: 1. 场内停车n); p

    18、rintf( 您的车位是:%d 号车位n,count1); chepaihao(); printf(n); printf( 从现在开始为您计时,您的到达时间是:n); time(); acount1=time(NULL); count1+; push(S,count1); else printf( 当前车位已满,请选择其他停车方式n); break; return; case 2: if(count2=0 & im & i=m+n) end=time(NULL); Ai=difftime(end,ai); printf( 您在停车场内停留时间为:%0.2f 秒n,difftime(end,ai

    19、); printf( 您的服务是免费服务,感谢您的使用,欢迎下次光临!); count2-; else printf( 您的输入有误,请重新输入!);/主函数void main()system(color 1f);system(mode con:cols=90 lines 35);Initshuzu();InitStack(S);InitQueue(Q);while(1) printf(n * 欢迎光临ABC停车场 * n); printf(n n); printf( 1.车辆到达n); printf( 2.车辆离开n); printf( 3.退出系统nn); time(); printf(n

    20、 提示:选择后按回车键进入下一步操作n ); printf(n n); printf(n * 欢迎光临ABC停车场 * n); printf( 请选择您所需服务: ); int c; scanf(%d,&c); switch(c) case 1: system(cls); printf(n * 车辆到达界面 * n); tingchefangshi(); getch(); system(cls); break; case 2: system(cls); printf(n * 车辆离开界面 * n); likai(); getch(); system(cls); break; return; g

    21、etch();system(cls); case 3: return; getch(); system(cls); default:printf( 您的输入有误!请重新输入:n); getch(); system(cls); 用户手册1. 本程序执行程序文件为“停车管理系统.exe”。2. 车辆进入停车场,场内允许及便道允许停车数分别为50个车位,依次为0-49和50-99,用户可根据自己需要进行适当更改,不影响程序执行。3. 程序中车牌号暂假定为3位,请用空格键隔开,否则将出现差错。4. 程序内每一界面跟换需要敲两次回车键方才有效,方便用户确认录入信息是否正确无误。【实验二】重言式判别问题设

    22、计要求1. 问题描述 一个逻辑表达式如果对于其变元的任一种取值都为真,则称为重言式;反之,如果对于其变元的任一种取值都为假,则称为矛盾式;然而,更多的情况下,既非重言式,也非矛盾式。试写一个程序,通过真值表判断一个逻辑表达式属于上述哪一种类型。2. 需求分析(1)逻辑表达式从终端输入,长度不超过一行。逻辑运算符包括“”、“”、“”,分别表示或、与、非,运算优先程度递增,但可有括号改变,即括号内的运算优先。逻辑变元为大写字母。表达式中任何地方都可以含有多个空格符。(2)若是重言式或矛盾式,可以只显示“True Forever”或“False Forever”,否则显示“Satisfactible”以及变量名序列,与用户交互。若用户对表达式中变元取定一组值,程序就求


    注意事项

    本文(数据结构课程设计实验报告 安徽大学.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开