数据结构实验考核报告(顺序表的实现).doc_第1页
数据结构实验考核报告(顺序表的实现).doc_第2页
数据结构实验考核报告(顺序表的实现).doc_第3页
数据结构实验考核报告(顺序表的实现).doc_第4页
数据结构实验考核报告(顺序表的实现).doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构课程 20112012年度 第1学期实验考核题目:顺序表的实现 院系:学号: 姓名: 任课教师: 完成日期:年月日一. 预习准备1. 实验目的 (1).理解线性表的概念;(2).理解顺序表存储结构概念和特点; (3).掌握顺序表存储结构的建立、插入、删除、查询和输出基本操作算法。 2. 实验环境Widows 操作系统、Microsoft Visual Studio 2008、C+语言3. 实验内容和要求(1)实验内容A. 利用switch函数设计一个如下目录添加新联系人 删除联系人查找联系人修改信息 显示所有联系人关闭通讯录B. 建立一个如下所示的班级通讯录:学号 姓名 性别 电话号码 20001 张三 男 20 20002李四男 22 使用结构体,用顺序表完成以下内容:a.初始化线性表为空; b.依次输入数据元素;(由键盘输入);c.完成数据元素的插入、删除、修改操作;d.取第i个数据元素;e.依次显示当前线性表中的数据元素。(2) 实验要求掌握顺序表的定义与实现,包括查找、插入、删除算法的实现。二. 实验过程1. 实验中的关键语句在整个实验中要执行8个过程:(1) .调用构造函数SeqList(),初始化顺序表;(2) 输出目录提示,输入相应的序号,调用switch函数来实现相应功能: .调用函数 void Insert(int i, T x) ,从键盘向顺序表中输入数据元素和位置,并按所输入的位置进行插入; .调用函数T Delete(int i),删除顺序表中指定位置的数据元素; .调用函数void PrintPerson(T x),读取指定姓名的数据元素并显示在屏幕上; .调用函数T Delete(int i)和void Insert(int i, T x) 来实现数据元素的修改。 .调用函数void PrintList( ),显示当前顺序表中的数据元素在屏幕上;通过这六个过程的执行,完成顺序表的操作。 .调用exit(0)语句,进行退出。三. 实验总结 1. 实验程序(详细设计)1.1主函数部分:(main.cpp)#include #include function.cpp #include using namespace std;int main() int which; int i; string num; /学号 string name; /姓名 string PhoneNum; /电话号码 string sex; /性别 int where; /位置 int length; /顺序表长度 SeqList a; AddressBook AB;while (1) cout tendl; cout t 班级通讯录 endl; cout t 添加新联系人 删除联系人 endl; coutt endl; coutt endl; cout t 查找联系人 修改信息 endl; coutt endl; coutt endl; cout t 显示所有联系人 关闭通讯录 endl; coutt endl; cout tendl; cout which; switch(which) case 1: coutn; a.PrintList( ); coutAB.num; coutAB.name; coutAB.PhoneNum; coutAB.sex; coutwhere; length=a.Length(); try a.Insert( where, AB); catch(char* wrong) cout wrong; break; case 2: coutn; a.PrintList( ); cout 需要删除的联系人的位置 where; try a.Delete(where); cout 已经删除; catch(char* wrong) cout wrong; break; case 3: cout 请输入联系人姓名: name; length =a.Length(); for (i=0; ilength; i+) AB=a.Get(i); if (AB.name=name) try a.PrintPerson(AB); catch(char* wrong) cout wrong; else cout查找失败n; break; case 4: coutn; a.PrintList( ); coutwhere; coutAB.num; coutn; coutAB.name; coutn; coutAB.PhoneNum; coutn; coutAB.sex; a.Delete(where); a.Insert( where, AB); break; case 5: a.PrintList(); break; case 6: couttt安全退出endl; exit(0); break; default:break; 1.2函数定义部分:(function.cpp)#include AddressBook.htemplateSeqList:SeqList(T a,int n)int i;if (nMaxSize) throw 参数非法;for (i=0; in; i+) datai=ai; length=n;template void SeqList:Insert(int i, T x) int j; if (length=MaxSize) throw 上溢; if (ilength+1) throw 位置错误; for (j=length; j=i; j-)dataj=dataj-1; datai-1=x; length+;template T SeqList:Get(int i) if (i=0 & i=length-1) return datai; else T ad; return ad; template T SeqList:Delete(int i) int j; if (length=0 ) throw 下溢; if (ilength) throw 位置错误; T x=datai-1; for (j=i; jlength; j+) dataj-1=dataj; length-; return x;template void SeqList:PrintList( ) int i; for (i=0; ilength; i+) int j;j=i;j+;cout 位置:j n;cout 学号: datai.num 姓名: n; cout 性别: datai.sex 电话号码: datai.PhoneNum n; cout n; template void SeqList:PrintPerson(T x) cout 学号: x.num 姓名: n; cout 性别: x.sex 电话号码: x.PhoneNum n; cout n;1.3接口部分:(AddressBook.h) #include using namespace std; const int MaxSize=100; struct AddressBookstring num;string name;string PhoneNum;string sex;templateclass SeqListpublic:SeqList()length=0;SeqList(T a,int n); SeqList( ) int Length()return length;T Get(int i); void Insert(int i, T x); T Delete(int i); void PrintList( ); void PrintPers

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论