《数据结构与算法》
报告(**)题目:
题目三(停车场)题目六(排序)
作者所在系部: 计算机科学与工程系
作者所在专业: 计算机应用。
作者所在班级。
作者学号。作者姓名。
指导教师姓名。
完成时间 : 2024年12月26号
北华航天工业学院教务处制。
目录。第一章问题描述 1
1.1题目内容 1
1.1.1停车场系统 1
1.1.2排序问题 1
1.2基本要求 1
1.2.1停车场系统 1
1.2.2排序问题 1
1.3 测试数据 1
1.3.1停车场系统 1
1.3.2排序问题 2
第二章需求分析 3
2.1功能说明 3
2.1.1停车场系统 3
2.1.2排序问题 3
2.2输入说明 3
2.2.1停车场系统 3
2.2.2排序问题 3
2.3输出说明 3
2.3.1停车场系统 3
2.3.2排序问题 3
2.4测试数据 4
2.4.1停车场系统 4
2.4.2排序问题 4
第三章概要设计 5
3.1抽象数据类型定义 5
3.1.1停车场系统 5
3.1.2排序问题 5
3.2程序模块结构 6
3.2.1停车场系统 6
3.2.2排序问题 6
第四章详细设计 7
4.1定义的数据类型 7
4.1.1停车场系统 7
4.1.2排序问题 8
4.2函数间的调用关系 8
4.2.1停车场系统 8
4.2.2排序问题 9
第五章调试分析 10
5.1调试过程分析 10
5.1.1停车场系统 10
5.1.2排序问题 10
5.2算法的时空分析 10
5.2.1停车场系统 10
5.2.2排序问题 10
第六章使用说明 11
6.1停车场系统 11
6.2排序问题 11
第七章测试结果 12
7.1停车场系统 12
7.2排序问题 13
总结 14参考文献 15
附录 16编程实现对停车场中车辆的管理。车辆管理包括查询停车场中车辆信息,车辆离开时计算停车费用等。
编程实现选择、冒泡、直接插入、折半插入、希尔、快速和归并等排序算法,并计算每种算法的比较、移动次数。
1.设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚,依次从停车场最里面向大门口处停放。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
2.停车场内如有某辆车要开走,在它之后进入停车场的车都必须退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短来交费。
3.停留在便道上的车未进入停车场就要离去,允许其离开,不收停车费,并且仍然保持在便道上等待的车辆次序。
4.可对停车场和便道上的车辆进行查询,并显示相关查询到的相关信息。
5.分别用栈和队列来模拟停车场和便道。
1.要求由键盘输入待排序数据的个数和待排序数据。
2.实现选择、冒泡、直接插入、折半插入、希尔、快速和归并等排序算法。
3.比较每种排序算法在排序码个数相同的情况下,排序过程中排序码的比较次数和元素的移动次数。
4.待排序数据量分别取n=10,30,50,100时,比较同一个算法在排序过程中排序码的比较次数和元素的移动次数。
5.输出结果中,给出各算法按两种方式进行比较后的结。
符合要求的任何字符都可以。
任何小于maxsize的整形数字。
编程实现对停车场中车辆的管理。车辆管理包括查询停车场中车辆信息,车辆离开时计算停车费用等。
1.实现选择、冒泡、直接插入、折半插入、希尔、快速和归并等排序算法。
2.比较每种排序算法在排序码个数相同的情况下,排序过程中排序码的比较次数和元素的移动次数。
可对停车场和便道上的车辆进行查询,并显示相关查询到的相关信息。
对输入的数字进行选择、冒泡、直接插入、折半插入、希尔、快速和归并等排序算法的排序。当不同方法进行比较需要输入进行比较的元素个数,还需要分别输入元素。当相同方法进行比较时不需要输入元素个数和分别输入元素。
用户输入数据完毕,程序将输出车辆的信息和车辆进入停车场的时间。
用户输入数据完毕,程序将输出比较后的所有信息,包括比较次数和移动次数。
测试数据为任何合法的字符。
测试数据为整数即可。
图3-1 模块间的调用关系图。
第四章详细设计。
4.1定义的数据类型。
4.1.1停车场系统。
typedef int datatype;
typedef struct node
datatype data;
struct node *next;
lnode,*linklist;
typedef struct
lnode head,tail;
int size;
int curpos;
lnode current;
orderrdlist;
部分基本操作实现的伪码算法如下:
status initlist(orderedlist &l)
//构造一人带头结点的空的有序链表l,并返回true
//若分配空间失败,则令为null,并返回false
lnode;
if(! return false;
>data=0;
>next=null;
return true;
//initlist
void destroylist(orderedlist &l)
省略。//destroylist
省略。利用有序链表类型orderedlist实现集合类set,定义为有序集orderedset。
typedef orderedlist orderedset;
集合类型的基本操作的伪码算法如下:
省略。void main()
createset(s1); 构造集合s1省略。
函数间的调用关系如图4-1所示。
图4-1函数间的调用关系。
程序中将指针的操作封装在链表的类型中,在集合的类型模块中,只须引用链表的操作实现相应的集合运算即可,从而使集合模块的调试比较方便。
1)由于有序表采用带头结点的有序单链表,并增设尾指针和表的长度两个标识,各种操作的算法时间复杂度比较合理,locatepos、getelem及destroylist等操作的时间复杂度均为o(n),其中n为链表的长度。
2)构造有序集算法createset读入n个元素,逐个用locatepos判定输入元素不在当前集合且确定插入位置后,才用insetrelem插入到有序集中,所以时间复杂度也是o(n)。
使用两组数据进行测试。
图7-1 车辆进入。
图7-2 便道车辆查询。
图7-3 停车场车辆查询。
图7-4 车辆开出计算金额。
本设计使用当今较为流行的可视化编程工具……
通过课程设计不仅学习了vc++,而且技术素质和实践能力有了进一步的提高,对提出问题、思考问题与解决问题有了进一步的深刻认识。同时对软件开发也有了更为全面的了解,通过自己的努力思考、学习研究与指导老师的认真指导,使自己的能力得到了进一步锻炼与提高。
本系统通过调试运行,结果表明系统具有可行性与可扩充性,但系统还有待于进一步完善。
1]刘国钧,郑如斯.中国书的故事.北京:中国青年出版社,1979:115.
2]姚伯元.课程设计(**)规范化管理与培养学生综合素质.中国高等教育网教学研究,2005-2-2.
注意:参考文献最少写五篇!
课程设计报告模版
页面设置 a4纸,上下左右边距2.5厘米2.5厘米3厘米1.5厘米,页眉页脚均1.7厘米 题目。居中小二号黑体 作者。与题目空一行,作者之间空两个全角空格,居中小四号宋体 作者班级学号。不同作者的班级学号之间用逗号隔开,居中五号宋体,下空2行 一课题分析。序号与文字之间空1个全角空格,居中小三号黑体...
课程设计报告模版
课程类别 本科。课程名称 程序设计基础 c语言 课程代号 h27025 指导教师 陈丽芳。此处写自己的题目 姓名 学号 学院 班级 目录。1.课程设计内容 2.课程设计要求 3 可行性研究 4 需求分析 5.概要设计 5.1 功能模块图 5.2 功能模块描述 5.3数据结构 6.详细设计 6.1 功...
课程设计报告模版
专业设计报告。姓名学号。专业与班级指导教师。专业设计名称。专业设计单位。一 专业设计目的。二 专业设计时间。本专业设计采用课下独立设计和课上集中实践相结合的方式,课下设计和课上实践累计的总时间为两周。三 专业设计内容。内容 小。四 宋体 一 二 三 四 专业设计总结 体会 内容 小。四 宋体 以下内...