数据结构课程设计报告通讯录Word格式文档下载.docx
- 文档编号:20378444
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:15
- 大小:128.56KB
数据结构课程设计报告通讯录Word格式文档下载.docx
《数据结构课程设计报告通讯录Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告通讯录Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
系统将提示用户输入新添加人员信息,输入到文件中,人员信息数据包括姓名(name),街道(street),城市(city),邮编(eip),国家(state).
B,删除:
首先由用户输入要删除的人员的姓名,然后调用删除函数,删除该人员的所有相关资料.
C,显示所有人员信息:
该功能将显示已经保存的所有人员的姓名,街道,城市,邮编及国家.
D,查询:
可由用户输入要查找的人员姓名,然后系统用查找函数查找,接着系统使用相关文件命令输出所查找的人员的全部信息.
E,退出系统
关闭通讯录管理系统.
三、概要设计
六个函数的实现:
voidenter();
新添纪录
voidsearch();
按姓名查询
voiddisplay();
显示
voidload();
读取文件
voidsave();
写入文件
voiddelete();
删除
四、详细设计
通讯录管理系统功能说明图:
通讯录管理系统
数据结构及各模块分析:
1.设计类、对象及基本数据类型:
创建一个record类,它有五个数据成员:
charname[20];
姓名
charstreet[20];
街道
charcity[20];
城市
chareip[20];
邮编
charstate[20];
国家
2.包含函数及功能如下:
voidmainmenu();
主菜单
voidsearchmenu();
查找菜单
显示所有
写入文件
按姓名删除
3.结构体:
structrecord
{
charstreet[20];
charname[20];
charcity[20];
charstate[20];
chareip[20];
}student[500];
structslnode
recorddate;
structslnode*next;
structslnode*prior;
};
五、调试分析
●voidload()//从文件导入
{
if((fp=fopen("
student"
"
rb"
))==NULL)//打开文件进行读的操作
printf("
\n\t\t通讯录文件不存在"
);
if((fp=fopen("
wb"
))==NULL)//打开文件进行读的操作
{
printf("
\n\t\t建立失败"
exit(0);
}
else
{
printf("
\n\t\t通讯录文件已建立"
\n\t\t按任意键进入主菜单"
getch();
//从键盘接收一个字符
}
return;
//返回主函数的主菜单
exit(0);
}
fseek(fp,0,2);
/*文件位置指针移动到文件末尾*/
if(ftell(fp)>
0)/*文件不为空*/
rewind(fp);
/*文件位置指针移动到文件开始位置*/
for(num=0;
!
feof(fp)&
&
fread(&
student[num],sizeof(structrecord),1,fp);
num++);
.......
●voidmainmenu()//主菜单
charchoic;
system("
cls"
printf("
\n\t\t***************欢迎进入通讯录系统***************"
\n\t\t******************1-新添纪录******************"
\n\t\t******************2-查找联系人****************"
\n\t\t******************3-删除联系人***************"
\n\t\t******************4-保存退出*****************"
\n\t\t******************5-不保存退出***************"
\n\t\t************************************************"
\n\t\t请选择:
"
choic=getch();
switch(choic)
case'
1'
:
enter();
break;
2'
searchmenu();
3'
delet();
4'
save();
5'
default:
mainmenu();
}
●voidsearchmenu()//查询菜单
\n\t\t*******************查询菜单*******************"
\n\t\t****************1-显示所有********************"
\n\t\t****************2-按姓名查询******************"
\n\t\t****************3-返回主菜单******************"
display();
search();
}
●voidenter()//添加纪录
\n\t\t****************请输入学生信息****************\n"
\n\t\t姓名:
scanf("
%s"
&
student[num].name);
\n\t\t街道:
student[num].street);
\n\t\t城市:
student[num].city);
\n\t\t输入邮编:
student[num].eip);
\n\t\t国家:
student[num].state);
num++;
listinsert();
\n\t\t是否继续添加?
(Y/N):
if(getch()=='
y'
)
enter();
return;
●voiddisplay()//显示所有
inti;
if(num!
=0)
\n\t\t***************以下为通讯录所有信息************"
for(i=0;
i<
num;
i++)
\n\t\t姓名:
%s"
student[i].name);
\n\t\t街道:
student[i].street);
\n\t\t城市:
student[i].city);
\n\t\t邮编:
student[i].eip);
\n\t\t国家:
student[i].state);
\t\t"
if(i+1<
num)
{
printf("
\n\t\t__________________________"
//system("
pause"
}
else
\n\t\t通讯录中无任何纪录"
\n\t\t按任意键返回主菜单:
getch();
●voidsearch()//查找联系人
intj=0,a=0;
//j用来记录查找
.......
scanf("
name);
for(inti=a;
i++,p=p->
next)//num用来表示联系人的个数
{
if(strcmp(name,p->
next->
date.name)==0)//查找是否有该人,有则输出该点所有信息,并往下查找。
{
查询到的信息:
\n"
姓名:
p->
date.name);
............
j++;
}
if(j==0)
\t\t该通讯录没有该人!
if((i+1)<
num)//确保扫描到所有的联系人
\n\t\t是否继续查找相同名字的学生信息:
(y/n)"
.........
\n\t\t按任意键返回主菜单"
..........
●voiddelet()//删除联系人
inta=0;
intfindmark=0;
intj;
intdeletemark=0;
\n\t\t请输入要删除学生姓名:
for(i=a;
if(strcmp(student[i].name,name)==NULL)
\n\t\t以下是您要删除的学生纪录:
findmark++;
\n\t\t________________________________"
\n\t\t是否删除?
if(getch()=='
for(j=i;
j<
num-1;
j++)
student[j]=student[j+1];
num--;
deletemark++;
\n\t\t删除成功"
if((i+1)<
{
printf("
\n\t\t是否继续删除相同姓名的同学信息?
if(getch()=='
{
a=i;
continue;
}
}
\n\t\t是否继续删除?
if(getch()=='
delet();
return;
if((i+1)<
a=i;
continue;
continue;
if((deletemark==0)&
(findmark==0))
\n\t\t没有该同学的纪录"
return;
if(findmark!
\n\t\t没有重名信息"
return;
六、使用说明
1.运行环境:
MicrosoftVisualC++6.0
2.细节和具体的操作方法:
将软件进行初始化,即在VC++6.0中运行该程序,进入程序主界面,首次运行会建立txt文件,提示文件是否成功建立。
然后按任意键后进入主菜单。
界面显示的是“主菜单”,主菜单有五个方面:
1,新添记录
2,查询菜单
3,删除联系人
4,保存退出
5,不保存退出
按“1”新添加记录,根据提示,输入信息相关信息。
按“2”显示查询的菜单。
按“3”删除指定联系人。
按“4”将输入的联系人信息保存到文件中并退出通讯录。
按“5”退出通讯录,不保存输入的联系人信息。
查询菜单包裹三个方面
1,显示所有
2,按姓名查询
3,返回主菜单
按“1”显示所有联系人的信息。
按“2”按姓名进行查询。
按“3”返回主菜单。
七、总结
1.程序的编写应是:
三分编写,七分调试;
2.程序编写之前需求分析,至关重要,将关系这整个项目的成败.
3.熟能生巧,这次在用指针处理双向链表时,以前对这块内容并不十分清楚,这次感觉很吃力,所以在今后的编程之中,尽可能把基本技能练习熟练.
4.做软件最终是满足用户的需求,所以做软件时应一切应以用记为导向.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 报告 通讯录