数据结构实验报告_数据结构实验报告答案

其他范文 时间:2020-02-28 06:46:41 收藏本文下载本文
【www.daodoc.com - 其他范文】

数据结构实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据结构实验报告答案”。

数 据 结 构 实 验 报 告

1.问题描述

为某个单位建立一个员工通讯录管理系统,可以方便地查询每一个员工的办公室电话号码、手机号码及电子邮箱。2.设计分析

在本设计中,整个通讯录可以采用顺序表或链表方式存储。其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除以及整个通讯录表的输出。3.员工通讯信息的结构类型定义和通讯录链表的结点类型

typedef struct { char num[5];/*员工编号*/ char name[8];/*员工姓名*/ char phone[9];/*办公室电话号码*/ char call[12];/*手机号码*/ }DataType;/*员工通讯信息的结构类型*/ typedef struct node { DataType data;/*结点的数据域*/ struct node *next;/*结点的指针域*/ }ListNode,*LinkList;/*通讯录链表的结构类型*/ 4.实验源代码

// Addre_List1.cpp : 定义控制台应用程序的入口点。// //#include “stdafx.h” #include“stdio.h” #include “stdlib.h” # include #include #include using namespace std;#define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 typedef intStatus;typedef struct { /*员工通讯信息的结构类型定义*/

char num[5];

/*员工编号*/

char name[8];

/*员工姓名*/ char phone[9];

/*办公室电话号码*/

char call[12];

/*手机号码*/

char mail[15];

/*邮箱*/ }DataType;/*通讯录单链表的结点类型*/ typedef struct node {

DataType data;

/*结点的数据域*/

struct node *next;

/*结点的指针域*/ }LNode, *LinkList;void CreateList(LinkList &L){//逆位序输入n个元素的值,建立带表头结点的单链线性表L

LinkList p;

int i,n;

L =(LinkList)malloc(sizeof(LNode));

L->next = NULL;

cout

cin >> n;

for(i = 0;i

p =(LinkList)malloc(sizeof(LNode));

cout

请输入员工信息“

cout

员工编号:”;

cin>> p->data.num;

cout

员工姓名:“;

cin >> p->data.name;

cout

cin >> p->data.phone;

cout

手机号码:”;

cin >> p->data.phone;

cout

员工邮箱:“;

cin >> p->data.mail;

cout

p->next = L->next;

L->next = p;

} } void InitList(LinkList &L){//初始化线性表

L =(LinkList)malloc(sizeof(LNode));

L->next = NULL;} void DestroyList(LinkList &L){//销毁线性表

LinkList p, q;

p = L;

q = p->next;

while(q!= NULL)

{ free(p);

} } int ListEmpty(LinkList &L){//判断线性表是否为空

if(L->next == NULL)

return TRUE;

else

return FALSE;} int ListLength(LinkList &L){//求链表的长度

LinkList p = L;

int c = 0;

while(p->next!= NULL){

c++;

p = p->next;

}

return(c);} void GetElem(LinkList &L){//取链表第i个数据元素

LinkList p = L->next;

string s;

cout

cin >> s;

while(p!= NULL)//根据相关信息,查找员工。

{

if(p->data.num == s || p->data.name == s || p->data.phone == s || p->data.call == s || p->data.mail == s)

break;

p = p->next;

}

if(!p)

cout

else{

cout

员工信息”

cout

员工编号:“data.num

cout

员工姓名:”data.name

cout data.phone

cout

手机号码:“data.phone

cout

员工邮箱:”data.mail

cout

} } void ReviseList(LinkList &L)//修改信息 {

LinkList p = L->next;

char j[20];

string s;

int i;

cout

cin >> s;

while(p!= NULL){//根据相关信息,查找员工。

if(p->data.num == s || p->data.name == s || p->data.phone == s || p->data.call == s || p->data.mail == s)

break;

p = p->next;

}

if(!p)

cout

else

{

cout

cin >> i;

cout

cin >> j;

switch(i){

case 1:strcpy(p->data.num, j);break;

case 2:strcpy(p->data.name, j);break;

case 3:strcpy(p->data.phone, j);break;

case 4:strcpy(p->data.call, j);break;

case 5:strcpy(p->data.mail, j);break;

default: cout

system(“pause”);

}

cout

system(“pause”);

return;

} } void ListDelete(LinkList &L)//删除第i个元素 {

LinkList p, q;

int j = 0,i;p = L;

cout

cin >> i;

while(p->next && j

cout

q = p->next;

p->next = q->next;//删除并释放结点

free(q);} void ListInsert(LinkList &L){

LinkList s, p = L;

s =(LinkList)malloc(sizeof(LNode));

cout

请输入员工信息“

cout

员工编号:”;

cin >> s->data.num;

cout

员工姓名:“;

cin >> s->data.name;

cout

cin >> s->data.phone;

cout

手机号码:”;

cin >> s->data.phone;

cout

员工邮箱:“;

cin >> s->data.mail;

cout

s->next = p->next;

p->next = s;}

void PrintList(LinkList &L)//打印线性表 {

LinkList p = L->next;

int i = 1;

if(p == NULL)

cout

while(p!= NULL)

{

cout

cout

员工编号:”data.num

cout

员工姓名:“data.name

cout data.phone

cout

手机号码:”data.phone

cout

员工邮箱:“data.mail

cout

p = L;

cout

cin >> i;

while(p->next && j

cout

q = p->next;

p->next = q->next;//删除并释放结点

free(q);} void ListInsert(LinkList &L){

LinkList s, p = L;

s =(LinkList)malloc(sizeof(LNode));

cout

请输入员工信息”

cout

员工编号:“;

cin >> s->data.num;

cout

员工姓名:”;

cin >> s->data.name;

cout

cin >> s->data.phone;

cout

手机号码:“;

cin >> s->data.phone;

cout

员工邮箱:”;

cin >> s->data.mail;

cout

s->next = p->next;

p->next = s;}

void PrintList(LinkList &L)//打印线性表 {

LinkList p = L->next;

int i = 1;

if(p == NULL)

cout

while(p!= NULL)

{

cout

cout

员工编号:“data.num

cout

员工姓名:”data.name

cout data.phone

cout

手机号码:“data.phone

cout

员工邮箱:”data.mail

cout

case 4:

//添加

ListInsert(L);

cout

system(“pause”);

break;

case 5:

PrintList(L);

ListDelete(L);

cout

system(“pause”);

break;//输出全部信息

case 6:

PrintList(L);

system(“pause”);

break;

case 7:

cout

system(“pause”);

break;

default:

cout

system(“pause”);

}

} while(in!= 0);} 5.实验截图.

数据结构实验报告

刀豆文库小编为你整合推荐8篇数据结构实验报告,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......

数据结构实验报告

注意:实验结束后提交一份实验报告电子文档电子文档命名为“学号+姓名”,如:E01214058宋思怡《数据结构》实验报告(一)学号:姓名:专业年级:实验名称:线性表实验日期:2014年4月14日实验......

数据结构实验报告

数据结构实验报告想必学计算机专业的同学都知道数据结构是一门比较重要的课程,那么,下面是本站小编给大家整理收集的数据结构实验报告,供大家阅读参考。数据结构实验报告1一、......

数据结构实验报告

数据结构实验报告(精选16篇)由网友“coco2008”投稿提供,下面是小编为大家推荐的数据结构实验报告,欢迎大家分享。篇1:数据结构实验报告 一、实验目的及要求1)掌握栈和队列这两种......

数据结构实验报告

实验报告4 排序一、实验目的1、掌握常用的排序方法,并掌握用高级语言实现排序算法的方法。2、深刻理解排序的定义和各种排序方法的特点,并能加以灵活应用。3、了解各种方法的......

下载数据结构实验报告word格式文档
下载数据结构实验报告.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文