数据结构课程设计学生通讯录Word格式文档下载.docx

上传人:b****3 文档编号:15054542 上传时间:2022-10-27 格式:DOCX 页数:19 大小:128.22KB
下载 相关 举报
数据结构课程设计学生通讯录Word格式文档下载.docx_第1页
第1页 / 共19页
数据结构课程设计学生通讯录Word格式文档下载.docx_第2页
第2页 / 共19页
数据结构课程设计学生通讯录Word格式文档下载.docx_第3页
第3页 / 共19页
数据结构课程设计学生通讯录Word格式文档下载.docx_第4页
第4页 / 共19页
数据结构课程设计学生通讯录Word格式文档下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数据结构课程设计学生通讯录Word格式文档下载.docx

《数据结构课程设计学生通讯录Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计学生通讯录Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。

数据结构课程设计学生通讯录Word格式文档下载.docx

************************^@^欢迎使用通讯录系统********************

●1通讯录的建立

●2插入通讯记录

●3查询通讯记录

●4删除通讯记录

●5显示通讯录信息

●6退出管理系统

2)储存结构设计

本系统主要采用链表结构类型来表示存储在“学生通讯录管理系统”中的信息。

其中,链表结点有4个分量构成:

通讯录成员学号、通讯录成员姓名、通讯录成员电话号码、指向该结构体的指针。

此外,本系统还设置了一个全局变量seat,表示通讯录中成员的序号。

3)系统功能设计

本系统设置了5个功能菜单,5个子功能的设计描述如下。

建立通讯录系统。

可以一次输入多个成员通讯录的信息,建立通讯录。

该功能由creatIncreLink函数实现。

插入通讯记录。

每次可以插入一个成员通讯录的信息,如果要连续插入多个成员通讯录信息则必须多次选择该功能。

该功能由insetYouXu函数实现。

查询通讯录记录。

可以按两种方式查询所需要的通讯录成员记录,一是按学号查询,二是按照姓名查询。

分别有searchNum函数和searchName函数实现。

删除通讯录记录。

可以对通讯录中不再需要的信息进行删除。

有三种删除方式:

按序号进行deleteElem函数、delNum函数和delName函数实现。

显示通讯录记录。

可以查看通讯录中所有查看通讯录中所有的通讯录成员记录。

该功能由printList函数是实现。

3.详细设计

1)数据类型定义

本系统采用链式结构存储通讯录结点。

结点结构定义如下:

#defineLENsizeof(LNode)

typedefstructLNode

{

intnumber;

//学号

charname[20]//姓名

doubletelenum//电话

structLNode*next;

}LNode,*LinkList;

2)系统主要子程序详细设计

建立通讯录链表的函数。

LinkListcreatIncreLink()

{//创建一个存放通讯录成员的非递减有序表,返回头结点地址

LinkListp;

intnum=1,number;

doubletelenum;

charname[20],temp;

LinkListL,P;

L=(LinkList)malloc(LEN);

L->

next=NULL;

printf(“请输入学生学号、姓名和电话号码,建立通讯录,以’-1’为输入结束标记\n”);

printf(“请输入学号%d:

”,num);

scanf(“%d”,&

number);

printf(“请输入姓名%d:

temp=getchar();

gets(name);

printf(“请输入电话号码%d:

scanf(“%lf”,&

telenum);

while(number>

=0)

p=(LinkList)malloc(LEN);

p->

number=number;

telenum=telenum;

strcpy(p->

name,name);

insertYouXu(L,p);

num++;

printf(“请输入学号%d:

“,num);

scanf(“%d”,&

printf(“请输入姓名%d:

temp=getchar();

printf(“请输入电话号码 %d:

scanf(“%lf”,&

}

return(L);

}//end

2)查看通讯录所有记录的函数。

voidprintList(LinkListL)

{//打印头结点地址为L的通讯录

LinkListp=L;

intn=1;

printf(“\n--------\n”);

printf(“学号姓名电话号码\n”);

printf(“--------\n”);

if(L==NULL||L->

next==NULL)//判断通讯录是否为空

printf(“该通讯录在中没有元素\n”);

else

while(p->

next!

=NULL)

{

printf(“%2d%-9d”,n,p->

next->

printf(“%5s%.0f\n”,p->

name,p->

p=p->

next;

n++;

printf(“------------\n”);

return;

4.测试分析

1).通讯录的建立

在主菜单下,用户输入1并回车,然后按照提示建立通讯录。

分别依次输入通讯录成员的学号、姓名、电话号码;

重复此过程,直至分别输入-1三次,退出。

2).插入通讯记录

在主菜单下,用户输入2并回车,可以插入一个新成员的记录。

按照提示,依次输入学号、姓名、和电话号码后完成插入。

3).查询通讯记录

在主菜单下,用户输入3并回车,可以按照两种方式查询通讯录。

一是按照“学号”查询,二是按“姓名”查询,可按照提示操作。

4).删除通讯录记录

在主菜单下,用户输入4并回车,可以进行通讯录记录的删除。

本系统提供三种删除方式:

分别是按序号、按学号、和按姓名进行删除。

5).显示通讯录信息

在主菜单下,用户输入5并回车,可以查看通讯录中所有的成员信息。

5.源程序清单

详见附件-文件夹:

学生通讯录/main.cpp

6.用户手册

1)本程序执行文件为“学生通讯录管理系统.exe”。

2)进行本系统之后,随即显示系统主菜单界面。

用户可在该界面下输入各个菜单前对应的数字并按下回车键,执行相应子菜单命令。

3)本系统没用提供直接修改通讯录信息的功能,可通过删除和插入操作完成修改功能。

完整代码如下:

#include<

stdio.h>

stdlib.h>

string.h>

/*runthisprogramusingtheconsolepauseroraddyourowngetch,system("

pause"

)orinputloop*/

intseat;

intnumber;

charname[20];

}LNode,*LinkList;

//7.找到当前地址元素的直接前驱元素的地址

LinkListprior(LinkListL,LinkListp)

LinkListp_prior=L;

if(L->

next==NULL)returnL;

while(p_prior->

=p)

p_prior=p_prior->

return(p_prior);

}

//5.插入一条成员记录,使原通讯录保持有序

voidinsertYouXu(LinkListL,LinkListElem)

LinkListp=L->

while(p!

=NULL&

&

(Elem->

number)>

=(p->

number))

if(p->

number==Elem->

number)

{

printf("

重复输入!

!

\n"

);

return;

}

p=p->

if(p==NULL)

p=prior(L,p);

Elem->

p->

next=Elem;

next=p->

//1.创建链表

LinkListcreatIncreLink()

intnum=1,number;

charname[20],temp;

printf("

请输入学生学号、姓名和电话号码,建立通讯录,以'

-1'

为输入结束标志\n"

--------------------------\n"

请输入学号%d:

"

num);

scanf("

%d"

&

请输入姓名%d:

请输入电话号码%d:

%lf"

while(number>

p=(LinkList)malloc(LEN);

number=number;

telenum=telenum;

strcpy(p->

insertYouXu(L,p);

num++;

printf("

scanf("

temp=getchar();

gets(name);

return(L);

}

//2.在通讯录中按序号删除第i个成员

voiddeleteElem(LinkListL,inti)

LinkListp=L,q;

intj=0;

while(p->

next&

j<

i-1)

p=p->

j++;

if(!

(p->

next))

第%d个元素删除失败\n"

i);

return;

q=p->

p->

next

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1