东华大学数据结构课程设计报告书
- 格式:doc
- 大小:186.00 KB
- 文档页数:9
东华大学信息科学与技术学院实验报告实验名称:线性表的基本操作指导教师:学生姓名:学生学号:实验日期:2012/11一、实验目的1、熟悉C或VC++语言上机环境。
2、会定义线性表的顺序存储结构和链式存储结构。
3、熟悉顺序表和单链表的一些基本操作和应用。
4、加深对线性表的理解,逐步培养解决实际问题的编程能力。
二、实验环境运行C或VC++的微机。
三、实验内容:分别使用顺序表和单链表存储结构实现以下操作:1.建立线性表L={12,13,21,24,28,31,42,77};2.在第5个元素之前插入26;3.删除第5个元素28;4.查找28。
四、实验设计思路及算法流程(一)使用顺序表实现操作:建立顺序表,完成顺序表的基本操作:初始化、插入、删除、输出、查找元素、判线性表是否为空;问题分析:利用顺序表,设计一组输入数据,能够对顺序表进行如下操作:创建一个新的顺序表,实现动态空间分配的初始化;已给定的值插入到指定位置和删除指定位置的值,形成有序顺序表;按值查找,根据给定数据元素的值,查找该元素的位置,对查找结果进行返回;实现顺序表的各个元素的输出;“初始化算法”的操作结果:构造一个空的顺序线性表,对顺序表的空间进行动态管理,实现动态分配、回收和增加存储空间;“位置插入算法”的初始条件:顺序线性表L已存在,给定的元素位置为i,且1≤i≤ListLength(L)+1 ;其操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1;“位置删除算法”的初始条件:顺序线性表L已存在,1≤i≤ListLength(L) ;其操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1 ;“输出算法”的初始条件:顺序线性表L已存在;其操作结果:依次对L的每个数据元素进行输出;“按值查找算法”初始条件:顺序线性表L已存在,元素值为e;其操作结果:返回L 中数据元素值为e的元素位置;线性表的顺序存储结构的定义及其基本操作的参考程序(顺序表)文件一:pubuse. h 是公共使用的常量定义和系统函数调用声明。
数据结构课程设计报告课程设计报告课程设计题目:链表的创立、插入、删除、修改学生姓名专业计算机科学与技术班级学号指导教师艾9月 30日一、实验题目:实现链表的创立、插入、删除和修改任务:实现链表的创立、插入、删除、修改和输出要求:建立一个简单的人机对话,创立、插入、删除、修改和输出功能能够根据需要选择使用。
二、实验时间、地点:-12-26~ -12-30、信工楼302三、实验目的本次课程设计的主要目的是综合运用所学的数据结构知识解决一个比较实际问题,侧重对链表、数组、字符串、图、树等相关内容的综合应用,使同学们能进一步熟悉掌握数据结构的基础知识,进一步提升自己的解决问题和编程调试能力,为后续专业课程的学习打下良好的基础。
四、实验要求1. 了解数据结构及其分类、数据结构与算法的密切关系;2. 熟悉各种基本数据结构及其操作,学会根据实际问题来选择数据结构;3. 掌握设计算法的步骤和分析方法;4. 掌握数据结构在排序和查找等常见算法中的应用。
5. 独立完成;6.每个人需按照选题规则确定好自己的题目(注意不是多人完成一题,每人独立完成一题),不得以任何理由选择其它的题目,当然在完成自己的题目之后根据个人兴趣能够继续选做其它的题目;7.课程设计完成后严格按照报告格式撰写课程设计报告,并于结束后的第三天上交到学习委员统一交给老师;8.课程设计的成绩由两部分组成:程序检查成绩(40%,每个功能占程序分的20%)+报告检查成绩(40%)+平时考核(20%)五、实现思路链表是一种动态数据结构,她的特点是用一组任意的存储单元(能够是连续的,也能够是不连续的)存放数据元素。
链表中每一个元素成为“结点”,每一个结点都是由数据域和指针域组成的,每个结点中的指针域指向下一个结点。
Head是“头指针”,表示链表的开始,用来指向第一个结点,而最后一个指针的指针域为NULL(空地址),表示链表的结束。
能够看出链表结构必须利用指针才能实现,即一个结点中必须包含一个指针变量,用来存放下一个结点的地址。
数据结构课程设计实验报告完整版【正文】一、实验目的本实验主要目的是通过实践,掌握数据结构的基本概念、常见数据结构的实现方式以及在实际应用中的应用场景和效果。
二、实验背景数据结构是计算机科学与技术领域中的一个重要概念,是研究数据的组织方式、存储方式、访问方式以及操作等方面的方法论。
在计算机科学领域,数据结构是实现算法和解决问题的基础,因此对数据结构的理解和应用具有重要意义。
三、实验内容本次数据结构课程设计实验主要分为以下几个部分:1. 实验环境的准备:包括选择合适的开发平台、安装必要的软件和工具。
2. 实验数据的收集和处理:通过合适的方式收集实验所需的数据,并对数据进行处理和整理。
3. 数据结构的选择和实现:根据实验需求,选择合适的数据结构,并进行相应的数据结构实现。
4. 数据结构的测试和优化:对所实现的数据结构进行测试,包括性能测试和功能测试,并根据测试结果对数据结构进行优化和改进。
5. 实验报告的撰写:根据实验过程和结果,撰写完整的实验报告,包括实验目的、实验背景、实验内容、实验结果和结论等。
四、实验过程1. 实验环境的准备本实验选择了Visual Studio作为开发平台,安装了相应版本的Visual Studio,并根据官方指引进行了相应的配置和设置。
2. 实验数据的收集和处理本实验选取了一份包含学生信息的数据集,包括学生姓名、学号、性别、年龄等信息。
通过编写Python脚本,成功提取了所需信息,并对数据进行了清洗和整理。
3. 数据结构的选择和实现根据实验需求,我们选择了链表作为数据结构的实现方式。
链表是一种常见的动态数据结构,能够高效地插入和删除元素,适用于频繁插入和删除的场景。
在实现链表时,我们定义了一个节点结构,包含数据域和指针域。
通过指针的方式将节点连接起来,形成一个链式结构。
同时,我们还实现了相关的操作函数,包括插入、删除、查找等操作。
4. 数据结构的测试和优化在完成链表的实现后,我们对其进行了性能测试和功能测试。
《数据结构与算法设计》课程设计报告题目:哈夫曼树及其应用学生姓名:刘信宏学号: ************班级: 1121808指导教师:**2013年1 月11 日数据结构课程设计任务书使用班级:1121805-8/1121813-16/1121821-22使用时间:2012-2013学年第1学期一、课程设计目的本课程设计的目的考察学生对常见数据结构及相关算法的综合应用能力,达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,解决实际问题中数据的合理存储表示,并根据相应的存储结构设计效率较高的算法实现对问题的求解;通过此次课程设计进一步培养学生良好的程序设计技巧和分析问题解决问题的能力。
二、课程设计题目哈夫曼树及其应用设计目的:熟悉树的各种存储结构及其特点。
掌握建立哈夫曼树和哈夫曼编码的方法及带权路径长度的计算。
设计内容:欲发一封内容为AABBCAB ……(共长100 字符,其中:A 、B 、C 、D 、E 、F分别有7 、9 、12 、22 、23、27个)的电报报文,实现哈夫曼编码和译码。
设计要求:分析系统需求。
建立哈夫曼树。
进行哈夫曼编码,并求出平均编码长度。
译码。
对编码好的内容进行译码。
三、课程设计要求:1、每人一题,且需独立完成。
2、每人的设计程序必须为可执行的exe文件,且需指导教师验收合格。
学生程序必须在课程设计的最后一天交由指导教师验收合格。
过期不再验收程序,如程序验收不合格或在规定时间内未经指导教师验收,则视为该生程序没有完成。
3、每人必须在规定时间内到机房做程序,指导老师将严格考勤,上机期间严禁做与课程设计无关的事情。
指导教师将随时抽查。
4、每人必须撰写课程设计报告并上交纸质稿(格式附后)。
5、上交材料包括课程设计报告电子稿和程序代码电子稿(每位同学先建立一个文件夹,取名规则为“学号姓名”,文件夹里存放上交电子内容,分别是“学号+姓名+报告”和“学号+姓名+程序”,每班取一文件夹名,取名规则为班级号,内放该班同学上交内容,每班学习委员统一收齐后拷贝给指导老师。
数据结构课程设计论文题目:基于线性表下的查找与排序姓名:赖德发学院:理学院专业:信息与计算科学班级:1123202学号:2011203202022014年1月17日一、实验环境(1)硬件:学生每人一台计算机。
(2)软件:Windows操作系统,Visual C++6.0。
二、实验内容基于线性表下的查找与排序。
三、实验原理1.基于线性表的查找法概述集合结构是数据对象之间关系松散的一种数据结构,对其进行查找是根据给定的关键字,在特定的列表中确定一个其关键字与给定值相同的数据元素,并返回该数据元素在列表中的位置。
查找的方法分为比较式查找法和计算式查找法,其中比较式查找法可分为基于线性表的查找法和基于树的查找法;而计算式查找法也称为Hash(哈希)查找法。
基于线性表的查找法是将集合的数据对象组织成为线性表形式进行查找,即用给定的关键字与线性表中各元素的关键字逐个比较,直到成功或失败。
线性表的存储结构通常是顺序存储结构,也可使用链式存储结构。
查找时可在表的一端设置一个“监视哨”,存放要查找元素的关键字,从表的另一端开始查找,若在“监视哨”找到要查找元素的关键字,返回失败信息,否则返回关键字的位序。
基于线性表的查找技术有着非常广泛的应用。
2.基于线性表的排序法概述排序是计算机程序设计中的一种重要操作,在数值计算或数据处理过程中,都会直接或间接用到数据的排序问题。
排序的功能是将一个数据元素(或称记录)的无序序列,按数据元素的关键字大小排列成一个递增或递减有序的记录序列。
由于待排序的记录数量不同,使得排序过程中涉及的存储器也不同,因此可将排序方法分为内排序和外排序。
内排序包括插入、交换、选择和归并等几类排序。
2.1基于插入类的排序概述插入类排序的基本思想是假定记录序列中前面的一部分记录已经有序,把后面的一个记录插入已排序的有序子序列中去,使得插入这个记录后得到的依然是有序序列,从而逐步扩大有序的子序列的长度,直到所有记录都有序为止。
《数据结构》课程设计报告设计题目航班信息的查询与检索专业电子信息工程班级姓名学号完成日期2010-6-28目录1. 问题描述………………………………………………页码2. 系统设计………………………………………………页码3. 数据结构与算法描述…………………………………页码4. 测试结果与分析………………………………………页码5. 总结…………………………………………………页码6. 参考文献………………………………………………页码附录程序源代码…………………………………………页码航班信息的查询与检索1. 问题描述:这学期,我们在余先伦老师的带领下,大致学习了一下《数据结构》,实现了简单的数据结构算法。
现在,我们将完成简单的数据结构课程设计。
在数据结构的学习中我们知道,排序和查找是在数据结构中使用频率非常高。
为了能够快速有效地进行查询与检索,我们需要对记录按关键字进行排列。
选择《航班信息查询与检索》这个课题,主要是因为当今时代的需求。
随着科技与经济的发展,当今乘飞机的人越来越多,这时,快速的了解各类航班的班次、时间、价格及机型的信息将备受关注。
在我开发的这个《航班信息查询与检索》这个系统中,航班号将成为关键字,而且是具有结构特点的一类关键字。
通过关键字的键入,你将获得你所需要的航班的全部信息。
2. 系统设计2.1 设计目标:通过一定的数据结构,实现对信息的查询与检索并按要求输出。
试设计一个航空客运定票系统。
[基本要求]每条航线所涉及的信息有:终点站名、航班号、飞机号、飞机周日(星期几)、乘员定额、余票量、订定票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需数量)。
系统能实现的操作和功能如下:1)查询航线:根据客户提出的终点站名输出如下信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;2)承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票少余订票额,则需重新询问客户要求。
《数据结构》课程设计任务书结构设计一、设计目的《数据结构》是一门实践性较强的软件基础课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。
本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能。
二、设计要求1、通过这次设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解。
同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
2、学生必须仔细研读《数据结构》课程设计(实习)要求,以学生自学为主、指导教师指导为辅,认真、独立地完成课程设计的任务,有问题及时主动与指导教师沟通。
3、本次课程设计按照教学要求需要在2周时间内独立完成,学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时地向指导教师汇报。
4、编程语言任选。
三、设计选题选题说明:本次任务共提供若干个不同难易程度的题目,其中前面5个为必做题,满分100分(系统功能完善、人机交互界面简单、直观、便捷,否则逐项减分);后面为选做题,题目难度层度不等,完成部分选做题目者可以适当给予加分;同学们在选题时,要结合个人实际情况,确保及格,力争多做。
1、单位员工通讯录管理系统(线性表的应用)[问题描述]为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。
其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。
[实现提示]可以采用单链表的存储结构,如可定义如下的存储结构:typedef struct { /*员工通讯信息的结构类型定义*/ char num[5]; /*员工编号*/char name[10]; /*员工姓名*/char phone[15]; /*办公室电话号码*/ char call[15]; /*手机号码*/char mail[25]; /*邮箱*/}DataType;/*通讯录单链表的结点类型*/typedef struct node{ DataType data; /*结点的数据域*/struct node *next; /*结点的指针域*/}ListNode,*LinkList;typedef struct { /*员工通讯信息的结构类型定义*/ char num[5]; /*员工编号*/char name[10]; /*员工姓名*/char phone[15]; /*办公室电话号码*/char call[15]; /*手机号码*/char mail[25]; /*邮箱*/}DataType;/*通讯录单链表的结点类型*/typedef struct node{ DataType data; /*结点的数据域*/struct node *next; /*结点的指针域*/}ListNode,*LinkList;#include"iostream"using namespace std;struct contaxt{char name[10];char sex[5];char Adrre[50];char Class[20];char Mobi[20];char qq[10];struct contaxt *next;};//声明函数typedef struct contaxt CONT;CONT *InsertCon(CONT *head);////插入联系人的基本信息CONT *AddContaxt(int n); ////初始化联系人的基本信息CONT *FindCon(CONT *head); ////查找联系人的基本信息CONT *AmendMessage(CONT *head);//修改联系人的基本信息CONT *DeleteMessage(CONT *head);//删除联系人的基本信息void showmessage(CONT *head); ////显示联系人的基本信息int menu(CONT *head); //主菜单CONT *saveFileCONT(CONT *head );//保存联系人的基本信息CONT *readFileCONT(CONT *head);//读取联系人的基本信息int choose;//系统入口void main(){CONT *head;head = NULL;menu(head);}//系统主菜单int menu(CONT *head){cout << "请选择操作菜单!!!" << endl ;do{cout << "---------------------------欢迎进入员工管理系统-------------------------------"<< "---------------------------------操作菜单---------------------------------------";cout <<"--------------------------------------------------------------------------------"<< "************************1 添加联系人信息************************" <<endl<< "************************2 插入联系人信息************************ " << endl<< "************************3 查找联系人信息************************ " <<endl<< "************************4 修改联系人信息************************" << endl<< "************************5 删除联系人信息************************" << endl<< "************************6 显示联系人信息************************" << endl<< "************************7 退出本系统************************" << endl<< "************************8 保存文件************************ " << endl<< "************************9 读取文件************************" << endl<<"--------------------------------------------------------------------------" << endl;cout << "请选择操作菜单!!!" << endl ;int choose;//choose = getchar();fflush(stdin);//return choose;************************cin >> choose;if(choose != 1&& choose != 2 && choose != 3 && choose !=4 && choose != 5 && choose !=6 && choose !=7&&choose != 8){cout << "输入错误:"<<endl;}else{switch(choose){case 1:int n;do{fflush(stdin);cout << "请确定要添加几个联系人:";cin >> n;}while(n <= 0);head = AddContaxt(n);break;case 2:system("CLS");head = InsertCon(head);break;case 3:head = FindCon(head);break;case 6:system("CLS");showmessage(head);break;case 7:exit(0);break;case 4:system("CLS");AmendMessage(head);break;case 5:system("CLS");DeleteMessage(head);break;case 8:system("CLS");head = saveFileCONT(head );break;case 9:// head = readFileCONT(head);default:system("CLS");cout << "你输入错误,请重新选择!!!" << endl;break;}}}while(choose != 1&& choose != 2 && choose != 3 && choose !=4 && choose != 5 && choose !=6 && choose !=7);return choose;}//初始化联系人的基本信息CONT *AddContaxt(int n){CONT *p,*q,*head;int i;system("CLS");p = (CONT *)malloc(sizeof(CONT));cout << "开始添加联系人信息:"<< endl;cout << "输入姓名:";cin >> p->name;cout << "输入姓别:";cin >> p->sex ;cout << "输入班级:";cin >> p->Class ;cout << "输入住址:";cin >> p->Adrre ;cout << "输入手机号:";cin >> p->Mobi ;cout << "输入qq号:";cin >> p->qq ;head = p;for(i = 2;i <= n;i++){q = (CONT *)malloc(sizeof(CONT));p->next = q ;p = q;system("CLS");cout<< "总共需要输入"<< n << "个联系人的信息,"<<"现在你已输入" << i-1<< "个联系人信息."<< endl<< "请继续输入第"<<i << "个人的信息!!"<< endl;cout << "输入姓名:";cin >> p->name;cout << "输入姓别:";cin >> p->sex ;cout << "输入班级:";cin >> p->Class ;cout << "输入住址:";cin >> p->Adrre ;cout << "输入手机号:";cin >> p->Mobi ;cout << "输入qq号:";cin >> p->qq ;}p->next = NULL;return head;}//按照不同的要求插入联系人的基本信息CONT *InsertCon(CONT *head){CONT *pc,*p,*q;int choose ;char name[10];if(head ==NULL){cout << "还没有添加任何联系人,请先添加联系人!!"<< endl;return head;}pc = (CONT *)malloc(sizeof(CONT));cout << "请依次输入被插入人的信息:姓名 /性别/班级/住址/手机号/qq 号"<< endl;cin >> pc->name >> pc->sex >> pc->Class >> pc->Adrre >> pc->Mobi >> pc->qq ;pc ->next = NULL;cout << "请选择自己喜欢的插入方式: "<< endl<< "1 插入在自己喜欢的人之前"<< endl << "2 插入在最后" << endl << "3 插入在开头" << endl;do {cin >> choose;switch(choose){case 1:cout << "请输入自己喜欢的人的名字:";cin >> name ;if(strcmp(head->name ,name)==0){pc->next = head;head = pc;return head;}else{q = head;p = head->next ;while(strcmp(p->name,name)!=0 && p->next !=NULL){q = p;p = p->next ;}if(strcmp(p->name ,name)==0){pc->next = p ;q = pc;return head;}else{p->next = pc;return head;}}break;case 2://cout << "请输入自己喜欢的人的名字:";//cin >> name ;p = head;while(p->next != NULL)p = p->next ;p->next = pc;return head;break;case 3://cout << "请输入自己喜欢的人的名字:";//cin >> name ;pc->next = head;head = pc;return head;break;default :cout<<"error"<< endl;break;}}while(choose!=1 &&choose != 2 && choose != 3); }//查找联系人的基本信息CONT *FindCon(CONT *head){system("CLS");char na[20];CONT *p,*q;if(head == NULL){cout << "没有任何信息可查找,请先添加信息!!"<< endl;return head;}cout << "请您输入要查找人的姓名:"<< endl;cin >> na;p = head;while(p!= NULL){if(strcmp(p->name ,na)==0){q = p;cout << "找到联系人,信息如下!!"<< endl;cout << "姓名:" << q->name <<" 性别: " << q->sex << q->Class <<" 住址: " <<q->Adrre <<" 手机号: " <<q->Mobi <<" qq号: "<< q->qq << endl;break;}elsep = p->next ;}return head;}//修改联系人的基本信息CONT *AmendMessage(CONT *head){CONT *p;char nam[10];char sex[5];char Adrre[50];char Class[20];char Mobi[20];char qq[10];if(head == NULL){cout<< "没有任何信息,请返回添加信息!!!"<< endl;return head;}elsep = head;cout << "请你输入要修改人的名字:";cin >> nam;while(p != NULL && p->name != nam){if(strcmp(p->name ,nam)==0){strcpy(p->name ,nam);int choose;do{cout << "请选择要修改哪一项的信息!!!"<< endl;cout << "1 修改性别 2 修改班别 3 修改地址 4 修改手机号码 5 修改qq号 " << endl;cin >> choose;switch(choose){case 1:cout << "请输入要修改后的性别:";cin >> sex;strcpy(p->sex , sex);cout << "修改成功!!!"<< endl; system("CLS");return head;break;case 2:cout << "请输入修改后的班别:"; cin >> Class;strcpy(p->Class ,Class);system("CLS");cout << "修改成功!!!"<< endl; return head;break;case 3:cout << " 请输入修改后的地址:"; cin >> Adrre;strcpy(p->Adrre ,Adrre);system("CLS");cout << "修改成功!!!"<< endl;return head;break;case 4:cout << "请输入修改后的手机号码:"; cin >> Mobi;strcpy(p->Mobi ,Mobi);system("CLS");cout << "修改成功!!!"<< endl;return head;break;case 5:cout << "请输入修改后的qq号:"; cin >> qq;strcpy(p->qq ,qq);system("CLS");cout << "修改成功!!!"<< endl;return head;break;default:cout << "输入错误,重新选择!!" << endl;break;}}while(choose != 0);}else if(p->next != NULL && p->name != nam){p = p->next ;}else{cout << "输入名字错误,请重新选择4修改!!!" << endl;return head;}}//return head;}//删除联系人的基本信息CONT *DeleteMessage(CONT *head){CONT *p,*q,*t;char name[20];char elem[10];cout << "请输入要删除联系人的姓名:";cin >> name;if(head == NULL){cout << "没有任何信息可删除,请添加信息!!"<< endl;return head;}else if(strcmp(head->name,name)==0 ){t = head;head = head->next ;return head;}else{p = head->next ;q = head;}while(p !=NULL && p->name != name) {q = p;p = p->next ;}if(strcmp(p->name ,name)==0){q->next = p->next ;free(p);//t = p;}else{cout<< "表中无该元素!" << endl;return head;}if(t){// elem = t->name ;free(t);}return head;}//保存文件CONT *saveFileCONT(CONT *head ){char *fileName;FILE *fp;CONT *p;p = (CONT *)malloc(sizeof(CONT));if(p=NULL)cout <<"分配内存失败"<< endl;// exit(0);}if(head ==NULL){cout <<"没有任何信息,请先添加信息!!"<< endl;return head;}else{p = head;fileName = (char *)malloc(sizeof(char));cout << "请输入文件名:" << endl;cin >> fileName;fileName = strcat(fileName,".txt");if( (fp = fopen(fileName,"a")) == NULL)cout << "can't open file" << endl;{//fwrite(head,sizeof(CONT),1,fp);//fprintf(fp,p->name,p->sex,p->Class,p->Adrre,p->Mobi,p->qq );fprintf(fp," 姓名:");fprintf(fp, p->name );fprintf(fp," 性别:");fprintf(fp, p->sex);fprintf(fp," 班别:");fprintf(fp, p->Class);fprintf(fp," 地址:");fprintf(fp, p->Adrre);fprintf(fp," 手机号:");fprintf(fp, p->Mobi);fprintf(fp," qq号:");fprintf(fp, p->qq);fprintf(fp,"\n");cout << endl;cout <<"--------------------------------------------------------------------------------";cout << " "<<"姓名:" <<p->name <<" 性别:" <<p->sex << " 班别:" <<p->Class <<" 住址:" <<p->Adrre <<"手机号:"<< p->Mobi <<" qq号:" << p->qq << endl;cout <<"--------------------------------------------------------------------------------";p=p->next ;}while(p!=NULL);}fclose(fp);return head;}//读取文件内容CONT *readFileCONT(CONT *head){char *fileName;CONT *p;FILE *fp;fileName = (char *)malloc(sizeof(char));cout << "请输入要打开的文件名:";cin >> fileName;fileName = strcat(fileName,".txt");fp = fopen(fileName,"r");if(fp == NULL){cout << "文件没有任何信息,请先输入信息!!"<< endl; }else{while(!feof(fp)){p = (CONT *)malloc(sizeof(CONT));if(p == NULL){cout << "分配内存失败!!"<< endl;return head;}fscanf(fp,p->name );fscanf(fp,p->sex );fscanf(fp,p->Class );fscanf(fp,p->Adrre );fscanf(fp,p->Mobi );fscanf(fp,p->qq );cout <<"--------------------------------------------------------------------------------";cout << " "<<"姓名:" <<p->name <<" 性别:" <<p->sex << " 班别:" <<p->Class <<" 住址:" <<p->Adrre <<"手机号:"<< p->Mobi <<" qq号:" << p->qq << endl;cout <<"--------------------------------------------------------------------------------";p->next = head;head = p;p = p->next ;}fclose(fp);cout<< "读取信息成功!!!"<< endl;}fclose(fp);return head;}//显示信息void showmessage(CONT *head){CONT *p;int i=0;if(head == NULL ){cout << "没有任何信息可输出,请添加信息!!!"<< endl;}else{p = head;cout << "*******************************联系表如下***************************************";do{i++;cout <<"--------------------------------------------------------------------------------";cout << i << " "<<"姓名:" <<p->name <<" 性别:" <<p->sex << " 班别:" <<p->Class <<" 住址:" <<p->Adrre <<"手机号:"<< p->Mobi <<" qq号:" << p->qq << endl;cout <<"--------------------------------------------------------------------------------";p = p->next ;}while(p!=NULL);}cout << "*********************************联系表***************************************";cout << endl;}2、停车场管理(栈和队列的应用)[问题描述]设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。