欢迎来到天天文库
浏览记录
ID:11395183
大小:228.50 KB
页数:15页
时间:2018-07-11
《数据结构_实习报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《空间数据结构基础》课程实习报告(测绘08级)姓名班级学号环境与测绘学院141通讯簿管理(顺序表的应用)【问题描述】通讯簿是一个线性表,可以存储一定数量的联系人记录,提供查找、插入、删除和修改等操作。通讯簿的特点是以查找为主要操作,要求快速查找到指定对象的位置,故宜采用具有随机访问功能的顺序表。【数据结构】使用顺序表SeqList建立通讯簿。作为表项的联系人记录,至少应包括以下属性:{序号,姓名,与本人关系,电话号码}其中序号具有唯一性。序号和姓名可作为查找的主要关键字。与本人关系可枚举为“亲人
2、”、“朋友”和“同事”,主要作用是为联系人分组,并作为次要关键字。将上述联系人记录定义为一个结构(struct),在主程序中建立模板类顺序表SeqList的对象时用该结构实例化表结点的类型。【主要功能】程序应为用户提供操作选择界面,必要的操作包括:查找某人电话号码,添加新记录,修改记录,删除记录,打印亲人清单、朋友清单或同事清单以及退出等。另外,为初始化方便,原始数据可存储在磁盘文件中。【主要代码】<<<<<<<<<<<<3、CTINFO_H#defineCONTACTINFO_H#include#include#include#include#include#include/*enumRelationShip{Relative=1,Friend=2,Colleague=3,};*///定义联系人记录structContactInfo{intNo;//序号char*Name;//姓名char*Nu4、mber;//电话号码intRelation;//与本人关系ContactInfo&operator=(ContactInfo&r){No=r.No;Name=r.Name;Number=r.Number;Relation=r.Relation;return*this;}voidset(intno=0,char*name="",char*number="",intrelation=0);};voidContactInfo::set(intno,char*name,char*number,intr5、elation){No=no;Name=name;Number=number;Relation=relation;}voidshowRelation(inti){switch(i){case1:cout<<"亲人";break;case2:cout<<"朋友";break;case3:cout<<"同事";break;default:break;}}//比较两个元素是否相等booloperator==(ContactInfo&r1,ContactInfo&r2){if(r1.No==r2.No)6、returntrue;elsereturnfalse;}14//输出一个元素ostream&operator<<(ostream&ostr,ContactInfo&r){cout<<''<<"姓名"<<'t'<<"电话"<<'t'<<"与本人关系"<>(ist7、ream&istr,ContactInfo&r){printf("%s","名字:");r.Name=newchar[20];scanf("%s",r.Name);printf("%s","电话号码:");r.Number=newchar[20];scanf("%s",r.Number);printf("%s","与本人关系(1、亲人2、朋友3、同事):");cin>>r.Relation;returnistr;}#endif<<<<<<<<<<8、SEQLIST_H#defineSEQLIST_H#include#include#include#include#include#include"ContactInfo.h"//定义顺序表constintdefaultSize=100;templateclassSeqList{private:T*data;//存放数组intmaxSize;//最大可容纳表项的项数intl
3、CTINFO_H#defineCONTACTINFO_H#include#include#include#include#include#include/*enumRelationShip{Relative=1,Friend=2,Colleague=3,};*///定义联系人记录structContactInfo{intNo;//序号char*Name;//姓名char*Nu
4、mber;//电话号码intRelation;//与本人关系ContactInfo&operator=(ContactInfo&r){No=r.No;Name=r.Name;Number=r.Number;Relation=r.Relation;return*this;}voidset(intno=0,char*name="",char*number="",intrelation=0);};voidContactInfo::set(intno,char*name,char*number,intr
5、elation){No=no;Name=name;Number=number;Relation=relation;}voidshowRelation(inti){switch(i){case1:cout<<"亲人";break;case2:cout<<"朋友";break;case3:cout<<"同事";break;default:break;}}//比较两个元素是否相等booloperator==(ContactInfo&r1,ContactInfo&r2){if(r1.No==r2.No)
6、returntrue;elsereturnfalse;}14//输出一个元素ostream&operator<<(ostream&ostr,ContactInfo&r){cout<<''<<"姓名"<<'t'<<"电话"<<'t'<<"与本人关系"<>(ist
7、ream&istr,ContactInfo&r){printf("%s","名字:");r.Name=newchar[20];scanf("%s",r.Name);printf("%s","电话号码:");r.Number=newchar[20];scanf("%s",r.Number);printf("%s","与本人关系(1、亲人2、朋友3、同事):");cin>>r.Relation;returnistr;}#endif<<<<<<<<<<8、SEQLIST_H#defineSEQLIST_H#include#include#include#include#include#include"ContactInfo.h"//定义顺序表constintdefaultSize=100;templateclassSeqList{private:T*data;//存放数组intmaxSize;//最大可容纳表项的项数intl
8、SEQLIST_H#defineSEQLIST_H#include#include#include#include#include#include"ContactInfo.h"//定义顺序表constintdefaultSize=100;templateclassSeqList{private:T*data;//存放数组intmaxSize;//最大可容纳表项的项数intl
此文档下载收益归作者所有