
数据结构实验考核报告(顺序表的实现).doc
9页12011~2012 年度 第 1 学期实验考核题目:顺序表的实现院系:学号: 姓名: 任课教师: 完成日期:年月日数据结构课程 2一. 预习准备1. 实验目的(1).理解线性表的概念;(2).理解顺序表存储结构概念和特点;(3).掌握顺序表存储结构的建立、插入、删除、查询和输出基本操作算法2. 实验环境Widows 操作系统、Microsoft Visual Studio 2008、 C++语言3. 实验内容和要求(1)实验内容A. 利用 switch 函数设计一个如下目录①添加新联系人 ②删除联系人 ③查找联系人④修改信息 ⑤显示所有联系人⑥关闭通讯录B. 建立一个如下所示的班级通讯录:学号 姓名 性别 号码20001 张三 男 2020002 李四 男 22… … … …使用结构体,用顺序表完成以下内容:a.初始化线性表为空;b.依次输入数据元素;(由键盘输入) ;c.完成数据元素的插入、删除、修改操作;d.取第 i 个数据元素;e.依次显示当前线性表中的数据元素2) 实验要求掌握顺序表的定义与实现,包括查找、插入、删除算法的实现。
二. 实验过程1. 实验中的关键语句在整个实验中要执行 8 个过程:(1).调用构造 函数 SeqList(),初始化顺序表;3(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 > which;switch(which){case 1:cout>AB.num;cout>AB.name;cout>AB.PhoneNum;cout>AB.sex;cout>where;length=a.Length();try{a.Insert( where, AB);}catch(char* wrong){cout > where;try{a.Delete(where);5cout >name;length =a.Length(); for (i=0; i>where;cout>AB.num;cout>AB.name;cout>AB.PhoneNum;cout>AB.sex;a.Delete(where);a.Insert( where, AB); break;case 5:a.PrintList();break;case 6:coutSeqList::SeqList(T a[],int n){int i;if (n>MaxSize) throw "参数非法";for (i=0; i void SeqList::Insert(int i, T x){int j;if (length>=MaxSize) throw "上溢";if (ilength+1) throw "位置错误";for (j=length; j>=i; j--)data[j]=data[j-1];data[i-1]=x;length++;}template T SeqList::Get(int i){if (i>=0 && i T SeqList::Delete(int i){int j;if (length==0 ) throw "下溢";if (ilength) throw "位置错误 ";T x=data[i-1];for (j=i; j void SeqList::PrintList( ){int i;for (i=0; i void SeqList::PrintPerson(T x){cout using namespace std; const int MaxSize=100; struct AddressBook{string num;string name;string PhoneNum;string sex;};templateclass SeqList{public: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 PrintPerson(T x); int length; void readfile(T x);void writefile(T x);private:T data[MaxSize]; };2.实验结果运行程序,通过调用函数执行一系列所需要的操作,程序运行正常,截图如下:9四. 使用说明运行程序,界面会出现目录,按照目录提示,输入相应的序号进行操作即可。












