通讯录管理系统 实验报告 源程序Word文档下载推荐.docx
- 文档编号:1111710
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:23
- 大小:194.85KB
通讯录管理系统 实验报告 源程序Word文档下载推荐.docx
《通讯录管理系统 实验报告 源程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《通讯录管理系统 实验报告 源程序Word文档下载推荐.docx(23页珍藏版)》请在冰点文库上搜索。
设计流程图:
一.基本设计要求
由于通讯录在现实生活中有着广泛的应用,因此通讯录的实现成为迫切的需要。
通过对通讯录一些简单问题的把握,用C语言来实现,以提升自己程序设计的基本技能,能够在编写通讯录实现的程序基础上运行程序。
同时,设计过程中要体现出设计的具体实施方式,包括系统设计,总体设计以及界面及功能详细设计等。
以C程序设计为基础,借助相应的工具进行一定的设计,锻炼缝隙问题和解决问题的能力。
设计中要阐述个模块的数据结构和算法,阐述各主要函数实现细节,对各主要函数进行详细的说明,函数说明包括函数的功能,函数原型和关键代码等。
二.课程设计中的数据结构知识点
1.头文件的使用
2.函数的定义及使用
3.变量的作用域
4.结构体
5.顺序结构程序,选择结构程序,循环结构程序的设计
6.指针
7.编译预处理
8.文件指针,读写与保存,打开与关闭
9.排序
三.系统实现:
1.程序预处理:
#include<
stdio.h>
//标准输入输出库
stdlib.h>
string.h>
//处理字符串函数库
#defineNAME20
#definePHOTOL20
#defineNUMBER20
#defineHOME20
typedefstructPersonal_management
{
charname[NAME];
//存放姓名
charhome_unit[HOME];
//存放住址
charphotol[PHOTOL];
//存放号码
charnumber[NUMBER];
//存放邮政编码
structPersonal_management*next;
}PEMAN;
#defineLENGTHsizeof(PEMAN)
charstr[20];
2.添加功能:
voidpeople_ch(PEMAN*head)
PEMAN*p1;
charstr[20];
system("
cls"
);
//清除屏幕显示
printf("
输入号码或姓名:
"
//显示“输入号码或姓名”
scanf("
%s"
str);
//从键盘输入读取字符串,写入str
\n"
for(p1=head;
p1!
=NULL;
p1=p1->
next)//以head为链表头,循环整个链表
if((strcmp(p1->
name,str)==0)||(strcmp(p1->
photol,str)==0))//当前节点的name或photol与输入的字符串相符?
break;
if(p1==NULL)//当前节点为空?
没有这个号码或姓名!
else
{
姓名:
%s\n电话号码:
%s\n住址:
%s\n邮政编码:
%s\n"
p1->
name,p1->
photol,p1->
home_unit,p1->
number);
//按格式显
示姓名、住址、邮政编码
}
pause"
return;
}
图表2添加
3.查看功能:
PEMAN*fout()
FILE*fp;
PEMAN*p1,*p2,*p3,*head;
p1=(PEMAN*)malloc(LENGTH);
//给p1开空间
head=NULL;
//初始化head
fp=fopen(str,"
r"
//以只读方式打开文件str
do//循环
fread(p1,LENGTH,1,fp);
//从文件fp中读1个长度为LENGTH的数据,写入p1
p2=(PEMAN*)malloc(LENGTH);
//给p2开空间
strcpy(p2->
name,p1->
name);
//将p1的name字段复制至p2的name字段中
photol);
//将p1的photol字段复制至p2的photol字段中
strcpy(p2->
home_unit);
);
//将p1的home_unit字段复制至p2的home_unit字段中
number,p1->
//将p1的number字段复制至p2的number字段中
p2->
next=p1->
next;
//将p1的next字段复制至p2的next字段中
if(head==NULL)//如果head为空指针
head=p2;
//将head赋值为p2
p3->
next=p2;
//p3的next字段赋值为p2[endif]
if(p2->
next==NULL)//p2的next字段为空
p3=p2;
//将p3赋值为p2
}while
(1);
//死循环
fclose(fp);
//关闭文件
returnhead;
图表3查看功能
4.保存功能:
voidfinput(PEMAN*head)//输入文件函数定义,参数为结构体指针
//定义文件指针
//定义结构体指针
w"
//以写的形式打开文件
next)//遍历文件链表,写入数据
fwrite(p1,LENGTH,1,fp);
//p1为数据写入位置,LENGTH为写入数据长度,“1”为写入字符数。
//关闭文件
保存完毕!
//调用系统命令,在屏幕上打印“pressanykeytoend”,等用户按键返回。
图表4保存功能
5.删除功能:
PEMAN*del(PEMAN*head)
chari[20];
//定义字符数组,用于接受用户输入的号码或姓名
PEMAN*p1,*p2;
//调用系统命令,清楚屏幕上的东西。
删除界面\n"
请输入要删除的号码或姓名:
i);
p2=p1=head;
while
(1)
if(strcmp(p1->
name,i)==0||strcmp(p1->
photol,i)==0)//按姓名和号码查询,若找不到用户输入,则退出while结构
p2=p1;
//若找到用户输入,则继续执行
p1=p1->
if(p1==NULL)
输入错误!
if(p1==head)
p2=head->
free(p1);
returnp2;
p2->
voidFree(PEMAN*head)//释放函数
PEMAN*p1,*p2;
p1=p2)//这是一个递归结构,用来释放PEMAN结构体指针的
p2=p1->
图表5删除功能
6.查找功能:
voidpeople_ch(PEMAN*head)//查询号码函数
//定义字符型数组用于接受输入的号码与姓名
next)
photol,str)==0))//判断用户输入是否存在
图表6查找功能
三.总结
紧紧张张的两周实习即将过去,从刚开始的不知如何下手到最后看到自己的程序按自己的想法运行,心里是不是有一种喜悦,。
通过这一周实习,我认识到书上和老师教的内容是有限的,要想掌握更多知识我们必须多动脑,多思考,不断的靠自己学习,同时我们还影响他人请教,从而了解更多的自己不知道的知识。
回头看来,编写这个程序并不像想象中的那么难,我们自己要相信自己,无论做什么事,只要我们仔细思考了,认真去做了,我们一定能做好。
通过这两周的编程我发现自己的一些不足,在编写事经常犯一些低级错误,由于自己的马虎而浪费了不少时间。
在不知如何进行的时候有一种不自信,总想别人正在做什么,这些不足既然被发现就得以在以后的做事中注意,争取改掉。
经过两周的努力我掌握了一些基本的数据结构进行程序设计的技巧,更深的理解和运用结构化程序设计的思想和方法,掌握开发一个小型实用系统的基本方法,同时学会了一些调试一个较长程序的基本方法,提高了书写程序设计开发文档的能力。
这一周的实践让我受益匪浅,在此我要感谢教导我们的老师,感谢帮助我的同学,使我在理论与实践相结合方面又得到了一次很好的锻炼,让我们得到很大的收获。
附录:
PEMAN*input()
intnum,i;
PEMAN*head=NULL;
PEMAN*p1=NULL,*p2=NULL;
请输入人数:
%d"
&
num);
for(i=0;
i<
num;
i++)
第%d位\n"
i+1);
请输入名字:
请输入电话号码:
请输入住址:
请输入邮政编码:
if(head==NULL)
p2=head=p1;
next=p1;
next=NULL;
voidout(PEMAN*head)
PEMAN*p1=head;
输出界面\n"
for(;
voidfinput(PEMAN*head)
do
p3->
next==NULL)
photol,i)==0)
voidFree(PEMAN*head)
p1=p2)
photol,str)==0))
voidadd(PEMAN*head)
p1=head;
while(p1->
next!
=NULL)
p1->
next=(PEMAN*)malloc(LENGTH);
添加界面\n"
next->
name);
电话号码:
住址:
邮政编码:
PEMAN*file_build()
charch;
请输入文件名:
if((fp=fopen(str,"
))==NULL)
没有这个文件,你是否要新建文件(y/n):
fflush(stdin);
ch=getchar();
if(ch=='
y'
||ch=='
Y'
)
head=input();
else
exit
(1);
voidXMB()
inti;
PEMAN*head;
head=file_build();
head=fout();
主界面\n"
@@@@@@1.重新建立通信录******;
@@@@@@2.查看通信录******;
@@@@@@3.删除成员******;
@@@@@@4.保存******;
@@@@@@5.选择个人信息查看******;
@@@@@@6.添加成员******;
@@@@@@7.退出******;
你的选择是:
i);
switch(i)
case1:
head=input();
break;
case2:
out(head);
case3:
head=del(head);
case4:
finput(head);
case5:
people_ch(head);
case6:
add(head);
case7:
default:
printf("
请重新输入;
system("
}while(i!
=7);
Free(head);
intmain()
XMB();
return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录管理系统 实验报告 源程序 通讯录 管理 系统 实验 报告