数据结构课程设计通迅录Word格式.docx
- 文档编号:15797708
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:11
- 大小:131.38KB
数据结构课程设计通迅录Word格式.docx
《数据结构课程设计通迅录Word格式.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计通迅录Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
首先调用定义的read_func函数,查询是否有预先保存的数据,如果有则载入没有则先调用insert_func函数输入一个数据然后进入主菜单
1.增加联系人:
在主菜单中键入1则进入增加联系人部分。
通过调用insert_func函数输入名字与电话。
由于系统的原因,名字和电话的字符长度为20,超过20则出错,但由于国内的实际情况20字符几乎可以满足所有非特殊的电话用途。
2.删除联系人:
在主菜单中键入2则进入删除联系人部分。
通过调用delete_func()函数,查找需要删除联系人的名字进行删除。
3.显示联系人:
在主菜单中键入3则进入显示联系人部分。
通过调用display_func()函数,显示并按照电话号码的大小排列显示并统计所有的联系人个数。
4.修改联系人:
在主菜单中键入4则进入修改联系人部分。
通过调用modify_func()函数,查找需要删除联系人的名字进行修改号码。
5.退出系统:
在主菜单中键入5则进入退出系统部分。
通过调用write_func()函数,保存已输入的电话号码,并退出系统。
二.概要设计:
三.详细设计
/*filename:
slist.c*/
/*单链表,插入、删除使用排序*/
#include<
stdio.h>
stdlib.h>
string.h>
conio.h>
voidread_func(void);
voidwrite_func(void);
voidinsert_func(void);
voidtel_func(void);
voiddelete_func(void);
voiddisplay_func(void);
voidmodify_func(void);
voidanykey_func(void);
structstudent{
charname[20];
chartelephone[20];
structstudent*next;
};
structstudent*ptr,*head,*current,*prev;
voidmain(void)
{
charoption1;
system("
cls"
);
read_func();
while
(1)
{
printf("
****************************************\n"
1.增加联系人\n"
2.删除联系人\n"
3.显示联系人\n"
4.修改联系人\n"
5.退出系统\n"
Pleaseenteryourchoice(1-5)..."
option1=getche();
\n"
switch(option1)
{
case'
1'
:
insert_func();
break;
2'
delete_func();
3'
display_func();
4'
modify_func();
5'
write_func();
exit(0);
}
}
}
voidread_func(void)
FILE*fptr;
head=(structstudent*)malloc(sizeof(structstudent));
head->
next=NULL;
/*开始时,若表中不存在数据,则要求输入第一笔数据*/
if((fptr=fopen("
slist.dat"
"
r"
))==NULL)
表中数据不存在\n"
请按任意键输出第一组数据...\n"
getch();
insert_func();
else
ptr=(structstudent*)malloc(sizeof(structstudent));
while(fscanf(fptr,"
%s%s"
ptr->
name,&
ptr->
telephone)!
=EOF)
tel_func();
ptr=(structstudent*)malloc(sizeof(structstudent));
fclose(fptr);
voidwrite_func(void)
fptr=fopen("
w"
current=head->
next;
while(current!
=NULL)
fprintf(fptr,"
%s%s\n"
current->
name,current->
telephone);
current=current->
fclose(fptr);
voidinsert_func(void)
ptr=(structstudent*)malloc(sizeof(structstudent));
printf("
名字:
"
gets(ptr->
name);
电话:
tel_func();
/*以电话高低由大到小排列*/
voidtel_func(void)
//插入数据
prev=head;
current=head->
while((current!
=NULL)&
&
(current->
telephone>
ptr->
telephone))
prev=current;
next=current;
prev->
next=ptr;
voiddelete_func(void)
chardel_name[20];
删除名字:
gets(del_name);
(strcmp(current->
name,del_name)!
=0))
if(current!
prev->
next=current->
free(current);
%s档案已删除\n"
del_name);
姓名%s没找到\n"
anykey_func();
voidmodify_func(void)
charn_temp[20];
需要修改信息的名字:
gets(n_temp);
name,n_temp)!
**************************\n"
%s\n"
current->
请输入新的电话:
gets(ptr->
%s档案修改\n"
n_temp);
名字%s没有被找到\n"
voiddisplay_func(void)
intcount=0;
if(head->
next==NULL)
{printf("
Nostudentrecord\n"
名字电话\n"
---------------------------\n"
current=head->
while(current!
printf("
%-20s%3s\n"
count++;
current=current->
if(count%20==0)getch();
总共%d记录被找到\n"
count);
voidanykey_func(void)
{
printf("
请输入任意键以继续"
getch();
四.测试和结果分析:
(一).测试
1.开头载入不成功输入第一组数据以及显示主菜单界面
2.添加联系人界面:
3.删除联系人界面:
4.显示联系人界面:
5.修改联系人界面:
6.退出后保存的slist.dat文件
(二)结果分析
界面比较烦乱,或许应该使用system(“cls”)来使系统更加简洁,而且系统功能过于简单,如果是显示使用的通讯录应该包含多个电话号码,包括固定电话几个手机,QQ,地址,邮箱等等数据,而且开始时电话号码的数据不能超过10位,否则就不能正常显示,经过修改现在能显示20位以内,但是总觉得这样的修改并不灵活,有待修改。
五.课程设计总结及心得
通过这次的课程设计,更加深了我对数据结构这门课程的理解,特别是对数据结构的灵活运用有了很大进步。
这次的课程设计的题目很简单,设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 通迅录