数据结构课程设计学生通讯录Word格式文档下载.docx
- 文档编号:15054542
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:19
- 大小:128.22KB
数据结构课程设计学生通讯录Word格式文档下载.docx
《数据结构课程设计学生通讯录Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计学生通讯录Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
************************^@^欢迎使用通讯录系统********************
●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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 学生 通讯录