个人通讯录管理系统课程研究与设计开发报告Word格式.docx
《个人通讯录管理系统课程研究与设计开发报告Word格式.docx》由会员分享,可在线阅读,更多相关《个人通讯录管理系统课程研究与设计开发报告Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
voidAdd()。
/*添加记录*/
voidprint()。
/*输出记录*/
voidFind()。
/*查找记录(按姓名)*/
voidDelete()。
/*删除记录*/
voidSaveFree()。
/*保存到文件*/
voidCreat()。
/*打开文件*/
四、程序源代码
#include<
stdio.h>
string.h>
stdlib.h>
structlist
{
charname[20]。
charaddr[20]。
charnum[20]。
charqq[10]。
charphnum[20]。
charemail[30]。
structlist*next。
}。
typedefstructlistLIST。
LIST*head=NULL。
voidmain()
charc。
Creat()。
while
(1)
{
menu()。
/*显示菜单*/
scanf("
%c"
&
c)。
switch(c)
case'
1'
:
Add()。
break。
2'
print()。
break。
/*输出条目*/
3'
Find()。
/*查找条目1.按姓名*/
4'
Delete()。
/*删除信息*/
print()。
/*输出删除后的结果*/
0'
SaveFree()。
/*保存并释放内存*/
exit(0)。
/*退出*/
default:
printf("
选择错误!
"
)。
}
}
/*菜单*/
voidmenu()
\n*****************通讯录系统*********************\n"
***********\t1.添加记录*******************\n"
***********\t2.输出记录*******************\n"
***********\t3.查询记录*****************\n"
***********\t4.删除记录*******************\n"
***********\t0.保存并退出!
****************\n"
************************************************\n"
\t请选择将要进行的操作:
\n"
/*添加记录*/
voidAdd()
LIST*p1=NULL,*p2=NULL。
p1=(LIST*)malloc(sizeof(LIST))。
/*申请结点*/
输入姓名:
/*添加信息*/
%s"
p1->
name)。
输入地址:
addr)。
输入学号:
num)。
请输入qq号:
qq)。
输入电话:
phnum)。
请输入email:
email)。
p1->
next=NULL。
/*保存到链表*/
if(head==NULL)
head=(LIST*)malloc(sizeof(LIST))。
/*申请空间*/
head->
next=p1。
else
for(p2=head。
p2->
next!
=NULL。
p2=p2->
next)。
/*找到结点尾*/
p2->
此记录已添加!
/*输出学生信息*/
voidprint()
LIST*p=NULL。
这是一个新记录,请添加记录\n"
return。
**************通讯录系统*********************\n"
/*输出信息*/
姓名\t\t地址\t学号\t\tqq\t\t电话\t\temail\n"
for(p=head->
next。
p!
p=p->
next)
%s\t\t%s\t%s\t%s\t%s\t%s\n"
p->
name,p->
addr,p->
num,p->
qq,p->
phnum,p->
/*查找信息1.按姓名、2、按学号*/
voidFind()
LIST*p。
charname1[20],num1[20]。
inti。
请输入查找方式1、按姓名;
2、按学号"
%d"
i)。
if(i==1)
{
请输入要查找的姓名:
name1)。
姓名\t\t地址\t学号\tqq\t电话\t\temail\n"
if(strcmp(p->
name,name1)==0)
}
elseif(i==2)
请输入要查找人的学号:
num1)。
姓名\t\t地址\t学号\tqq\t电话\temail\n"
next)
num,num1)==0)
else
请选择1和2两哥数字\n"
}
/*删除信息*/
voidDelete()
charname1[20]。
/*先查找后删除*/
LIST*p=head->
next,*pr=head->
请输入要删除的姓名:
%s"
if(head->
next==NULL)
无此节点!
while((strcmp(p->
name,name1)!
=0)&
&
p->
next!
=NULL)
pr=p。
p=p->
if(strcmp(name1,p->
name)==0)/*输出删除信息*/
next->
addr,
if(p==head->
next=p->
pr->
free(p)。
此记录已删除!
/*保存链表信息到文件并释放内存空间*/
voidSaveFree()
FILE*fp。
char*Book="
list.txt"
。
\n记录为空!
p=head->
if((fp=fopen(Book,"
wb+"
))==NULL)
\n打不开文件!
while(p!
=NULL)/*保存信息*/
fwrite(p,sizeof(LIST),1,fp)。
p=p->
保存完毕!
fclose(fp)。
/*****释放链表空间*****/
for(。
head->
)
next=head->
free(head)。
/*文件信息输出到链表*/
voidCreat()
LIST*p1=NULL,*p2=NULL,*temp=NULL。
if((fp=fopen("
addresslist.txt"
"
rb+"
\n****************这是一个新的通讯录管理系统******************\n"
temp=p2=head。
while(!
feof(fp))/*循环读取*/
temp=p2。
p2=p1。
fread(p1,sizeof(LIST),1,fp)。
temp->
/*关闭文件*/
五、程序运行结果测试
六、结论与心得
通过为期一周的课程设计,我们对《C语言》这门课程有了更深一步的了解。
它是计算机程序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。
同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。
因为我们学习知识就是为了实践。
而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。
运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。
通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等
吴道金:
文本排版及构图
林家勇:
程序程序运行测试
林东垚:
程序分析
上官景铨:
程序注释
七、致谢