数据结构单链表实现班级通讯录实验报告Word文件下载.docx

上传人:b****1 文档编号:5787985 上传时间:2023-05-05 格式:DOCX 页数:26 大小:596.80KB
下载 相关 举报
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第1页
第1页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第2页
第2页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第3页
第3页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第4页
第4页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第5页
第5页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第6页
第6页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第7页
第7页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第8页
第8页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第9页
第9页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第10页
第10页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第11页
第11页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第12页
第12页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第13页
第13页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第14页
第14页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第15页
第15页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第16页
第16页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第17页
第17页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第18页
第18页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第19页
第19页 / 共26页
数据结构单链表实现班级通讯录实验报告Word文件下载.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据结构单链表实现班级通讯录实验报告Word文件下载.docx

《数据结构单链表实现班级通讯录实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构单链表实现班级通讯录实验报告Word文件下载.docx(26页珍藏版)》请在冰点文库上搜索。

数据结构单链表实现班级通讯录实验报告Word文件下载.docx

概要设计

2.1单链表结构

变量名

数据类型

描述

num

int

学号

name

char

姓名

sex

Int

性别

year

month

day

address

联系地址

tell

电话

qq

QQ

2.2系统结构图

详细设计

3.1单链表的编写

开发项目时,以单链表的形式来组织、封装一些常用的方法,以便提高代码的重用率,大大方便了代码的管理。

本系统创建了一个单链表:

list。

主要用来定义学生基本信息。

3.2定义单链表的程序

typedefstructlist

{

intyear,month,day,qq,num,sex;

chartel[20];

charname[10];

charaddress[100];

structlist*next;

}node,*link;

3.3操作函数的定义

3.3.1菜单输出函数voiddisplay()

3.3.2结果输入函数voidprint()

3.3.3插入信息函数voidins()

3.3.4删除数据函数voiddeletestu()

3.3.5信息查询函数voidsearchstu()

3.4增加学生信息

增加学生信息运行结果如图所示:

实现思想:

录入完一条信息后,会提示输入完毕,是否继续输入,Y继续输入,N便是回主菜单。

先申请一个学生的链表空间,然后输出提示输入相关信息。

由于考虑到班级人数一般不超过1000人,因此在输入时判断小于100或大于999的均是不合法的学号,需重新输入。

在输入性别时也作了限定,只能输入1或2,1代表男生,2代表女生。

信息输入完毕后,将指向list单链表的指针向后移动一个单位。

时间复杂度为O

(1)。

3.5删除学生信息

修改学生信息运行如图所示:

此时,输入您要删除的学生的学号即可,出现如下图所示:

在删除数据时,需要先判断此系统中有无记录,若无记录则提示系统中无学生信息,请先输入,此时程序将不向下执行。

否则提示输入要删除的学生的学号,在输入学号后,先判断学号是否合法,再判断系统中有无此学号,若无则提示系统中无此记录。

否则将删除该学号的学生信息。

时间复杂度为O(S)。

3.6查询学生信息

查询学生信息运行结果如图所示:

此时会提示输入您 要查找的学号,输入正确的学号,显示对应学号信息,结果如下图所示:

在查询数据时,需要先判断此系统中有无记录,若无记录则提示系统中无学生信息,请先输入,此时程序将不向下执行。

否则根据学号查询,需要先判断学号是否合法,然后判断系统中有无此学号,最后输出相应的信息。

时间复杂度为O(s)。

3.7查看全部学生信息

查看全部学生信息运行结果如图所示:

在查看全部学生数据时,需要先判断此系统中有无记录,若无记录则提示系统中无学生信息,请先输入,此时程序将不向下执行。

否则根据把系统中的全部信息以列表的形式输出。

3.8退出

选择0键退出系统,退出时会有相应该的提示,感谢您 使用本系统,并且Pressanykeytocontinue,按任意键退出。

调试分析

4.1添加学生信息

在实现添加记录时,首先是这要这样考虑,第一次输入和第二次输入的效果是不一样的。

当第一次输入需要用指针delptr把第一个结点记录下来,这样方便以后的删除,查询和浏览操作。

第二次输入时则不需要记录。

所以在第一次输入代码中加入一个全局开关变量,这样就保证了程序的稳定性。

并且在添加学生记录这段程序中,还需要进行一些相关的判断,来检查输入的数据是否合法,如果不合法需要用户重新输入数据。

4.2删除学生信息

在删除学生这一块,遇到了比较大的问题,就是在执行删除命令时,总出现错误,无论删除第几条数据,系统只删除第二条记录,并没有达到想要的效果。

经过了两个下午的研究,和查阅相关的资料,终于把这个问题解决了,最后的删除程序如下:

voiddeletestu()

intno,i=0;

cout<

<

"

请输入您要删除的学号:

;

cin>

>

no;

q=delptr;

if(no==q->

num)

{

delptr=q->

next;

deleteq;

i=1;

cout<

删除成功!

}

if(!

i)

while(q)

{

if(q->

next)

{

if(no==q->

next->

{

temp=q->

q->

next=q->

deletetemp;

i=1;

cout<

break;

}

}

else

break;

q=q->

}

if(!

无此学号!

}

4.3查询学生信息

查询这一块的程序,实现得比较简单,因为在前面插入记录程序段中已经做了铺垫,所以当执行查询时,用户输入学号,然后让指针回到表头,从头到尾查询一遍,如有相应的记录则直接显示出来,如果没有查到,则显示无此学号。

4.4查看全部学生信息

实现方法与查询学生信息大概一致,且稍微简单,如用户选择这项功能,指针回到表头ptr=delptr;

然后利用循环语句将系统中所有学生信息以列表的形式表现出来。

使用户清晰的了解全班的学生信息。

测试结果

5.1添加学生信息运行结果截图:

5.2删除学生信息运行结果截图:

5.3查询学生信息运行结果截图:

5.4查看全部学生信息运行结果截图:

5.4退出系统运行结果截图:

源程序附录

#include<

iostream>

usingnamespacestd;

linknewnode,ptr,delptr,q,temp;

//声明表结构指针

ints=0;

staticintputt=0;

//putt记录是否为第一个输入的元素,因为要记录头结点位置

voiddisplay()

endl<

endl;

**********<

班级通讯录管理系统>

**********"

\t1:

添加学生信息"

\t2;

删除学生信息"

\t3;

查询学生信息"

\t4;

查看全部学生信息"

\t0;

退出系统"

****************************************"

voidprint()

班级全部学生信息表>

ptr=delptr;

//让ptr回到表头

while(ptr!

=NULL)

{cout<

学号:

ptr->

num<

姓名:

name;

if(ptr->

sex==1)

cout<

\t性别:

男"

else

女"

\t出生日期:

year<

年"

month<

月"

day<

日"

联系地址:

address<

\t电话:

tel<

\tQQ:

qq<

ptr=ptr->

//ptr依序往后走访表

voidins()

intcsex;

if(putt==0)

请输入学生数据:

delptr=newnode;

//建立新结点

if(!

delptr){

[Error!

!

内存申请失败!

]"

exit

(1);

请输入学号:

cin>

delptr->

num;

while(delptr->

100||delptr->

num>

=999)

学号输入错误,请重新输入学号(100-999):

cin>

请输入姓名:

请输入性别(1男/2女):

sex;

sex!

=1&

&

delptr->

=2)

性别输入错误,请重新输入性别(1男/2女):

下面输入出生日期:

请输入年:

year;

1900||delptr->

year>

2010)

出生年份输入错误,请重新输入年份(1900-2010):

请输入月:

month;

1||delptr->

month>

12)

出生月份输入错误,请重新输入月份(1-12):

请输入日:

day;

day>

31)

{cout<

出生日期输入错误,请重新输入日期:

请输入联系地址:

address;

请输入电话:

tel;

请输入QQ:

qq;

delptr->

next=NULL;

ptr=delptr;

putt=1;

s++;

else

newnode=newnode;

newnode){

newnode->

while(newnode->

100||newnode->

newnode->

1900||newnode->

1||newnode->

newnode->

ptr->

next=newnode;

//把新结点加在表后面

//让ptr保持在表的最后面

{cout<

voidsearchstu()

//回到表头

intno,p=0;

请输入您要查找的学号:

while(no<

1||no>

1000)

您输入的学号不正确,请再次输入!

<

num==no)

name<

sex<

p=1;

break;

if(p==0)

您输入的学号不存在!

voidmain()

charkey,confirmkey;

while

(1)

display();

请选择操作(1-4),退出(0)"

key;

switch(key)

case'

0'

:

{cout<

感谢您使用本系统!

exit

(1);

1'

ins();

cout<

该生已输入完毕,是否继续输入?

(y/n)"

cin>

confirmkey;

while(confirmkey=='

y'

||confirmkey=='

Y'

{ins();

该生已输入完毕,是否继续输入(y/n)"

cin>

};

break;

2'

{deletestu();

};

3'

{searchstu();

4'

print();

收获及体会

四个星期的数据结构课程设计,从头到尾的实践和体验下来,对于我们来说学到的不仅是那些知识,更多的是团队和合作。

写到最后的收获及体会时感触颇深,也许学校安排的课程设计有着更深层的意义。

它不仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起所能发挥出的巨大潜能!

通过这次课程设计,使我们学到了一些以前没有学过的知识,使我们对数据结构程序设计有了更深层次的认识和理解,懂得了灵活运用。

在计算机飞速发展的今天,懂得一门计算机语言技术是非常必要的。

同时,我们也清醒的认识到,只要自己肯努力,愿意去付出劳动,就能够得到属于我们自己所期望的东西。

这次课程设计遇到的问题远比我们想象的多,没想到这项看起来很简单的课题却是需要非常多的耐心和精力,在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。

为了让自己的设计更加完善,查阅这方面的资料是非常必要的,同时也是必不可少的。

在这次课程设计中我们运用到了以前所学的专业课知识,如c++、数据结构等。

在设计的同时,我们还发现了自己的不足之处,对以前所学的知识理解的不够深刻、掌握的不够牢固。

而且即使感觉自己的理论上已经掌握,但运用到实践过程中仍有意想不到的困难,比如删除那一块的程序,经过一番努力才得以解决。

这也激发了我们今后努力学习的兴趣。

  最后,在此由衷的向我们的指导老师李英梅表示感谢,是她的悉心指导和严格要求,才使我们的课程设计有了较为完善的一面,才有了我们能力的提高,并在老师的帮助下得到了充分的锻炼。

参考文献

[1]严蔚敏《数据结构》清华大学出版社2003年

[2]XX知道

[3]XX百科

[4]XX文库

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

当前位置:首页 > PPT模板 > 国外设计风格

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2