小型通讯录的设计c语言Word下载.docx
- 文档编号:21727996
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:15
- 大小:54.35KB
小型通讯录的设计c语言Word下载.docx
《小型通讯录的设计c语言Word下载.docx》由会员分享,可在线阅读,更多相关《小型通讯录的设计c语言Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
三、模块划分及功能
主模块:
main()/*主函数*/
其他模块:
模块一:
creat()读入记录
模块二:
List()显示记录
模块三:
Delete()删除记录
模块四:
Find()按人名查找记录
模块五:
Find1()按编号查找记录
模块六:
Input()输入记录
模块七:
Alter()改变记录
模块八:
Paixu()排列记录
模块九:
Save()保存记录
四、算法说明
1:
定义结构体变量,进行函数声名。
#include<
stdio.h>
/*I/O函数*/
string.h>
/*字符串操作函数*/
#definemaxlen100/*输入人数最大量*/
2以下是函数声明:
voidcreat()/*读入记录*/
voidList()/*显示记录*/
voidDelete()/*删除记录*/
voidFind()/*按人名查找记录*/
voidFind1()/*按编号查找记录*/
voidInput()/*输入记录*/
voidAlter()/*改变记录*/
voidPaixu()/*排列记录*/
voidSave()/*保存记录*/
3开关语句
{switch(menu())/*调用主菜单函数,返回值整数作开关语句的条件*/
{case1:
voidList()break;
/*显示记录*/
case2:
voidDelete()break;
/*删除记录*/
case3:
voidFind()break;
/*按人名查找记录*/
case4:
voidFind1()break;
/*按编号查找记录*/
case5:
voidInput()break;
/*输入记录*/
case6:
voidAlter()break;
/*改变记录*/
case7:
voidPaixu()break;
/*按手机号降序排列记录*/
case8:
voidSave()break;
/*保存记录*/
case9:
/*退出*/
4for语句为选择法排序
for(a=0;
a<
n-1;
a++)
{for(b=a+1;
b<
n;
b++)
{if(strcmp(k[a].phone,k[b].phone>
0))/*若前者长度大于后者则进行交换*/
{f=k[b];
k[b]=k[a];
k[a]=f;
}
按编号查找记录
{printf("
\n\n\tpleaseinputthenumber:
"
);
p9=head;
gets(number1);
while(strcmp(number1,p9->
number)!
=0&
&
p9!
=NULL)/*判断输入的数字编号与已有的是否相等,如不相等则退出循环*/
p9=p9->
next;
if(p9==NULL)
{printf("
\n\n\tItisnotexitintheaddr-book!
else
name:
%s"
p9->
name);
/*输出相应信息*/
printf("
number:
number);
addr:
addr);
tel:
tel);
phone:
phone);
postnumber:
postnum);
guanxi:
%s\n"
guanxi);
}
五、流程图
退出系统
六、源程序清单
#definemaxlen100
structpersons
{charname[15];
charnumber[10];
charaddr[20];
chartel[10];
charphone[15];
charpostnum[10];
charguanxi[15];
}persons[maxlen];
structm
}k[maxlen],f;
typedefstructlnode
charpostnum[15];
structlnode*next;
}listnode,*linklist;
linklisthead=NULL,r=NULL;
listnode*s,*p0,*p1,*p2,*p3,*p4,*p5,*p6,*p7,*p8,*p9;
inti,a,b,n=0;
charname1[15],ch;
charred[20];
charnumber1[10];
charstr1[20];
FILE*fp;
voidcreat()
{intj;
longk;
fp=fopen("
lms.txt"
"
r+t"
if(fp!
=NULL)
{for(i=1;
i<
maxlen;
i++)
{j=fgetc(fp);
if(j==EOF)
return;
k=i-1;
fseek(fp,k*sizeof(structpersons),0);
fread(&
persons[i],sizeof(structpersons),1,fp);
s=(linklist)malloc(sizeof(listnode));
strcpy(s->
name,persons[i].name);
number,persons[i].number);
addr,persons[i].addr);
tel,persons[i].tel);
phone,persons[i].phone);
postnum,persons[i].postnum);
guanxi,persons[i].guanxi);
if(head==NULL)
head=s;
r->
next=s;
r=s;
{fp=fopen("
w"
i=1;
voidList()
{p1=head;
while(p1!
\nname:
p1->
p1=p1->
voidDelete()
{printf("
\n\n\tpleaseinputthename:
gets(name1);
p4=head;
if(strcmp(p4->
name,name1)==0)
{p4=p4->
head=p4;
{while(strcmp(p4->
next->
name,name1)!
=0)
\t\tDon'
tfindthispeople"
break;
voidFind()
p0=head;
while(strcmp(name1,p0->
name)!
p0!
p0=p0->
if(p0==NULL)
p0->
voidFind1()
p9=p9->
voidInput()
{s=(linklist)malloc(sizeof(listnode));
\n\n\tpleaseinputthesb'
sxinxi:
\n\n\t\tname:
scanf("
s->
\n\n\t\tnumber:
\n\n\t\tAddr:
\n\n\t\ttel:
printf("
\n\n\t\tphone:
scanf("
\n\n\t\tpostnumber:
\n\n\t\tguanxi:
voidAlter()
{
intj;
\n\n\tPleaseinputthename:
p3=head;
while(strcmp(name1,p3->
p3!
p3=p3->
if(p3==NULL)
{printf("
\n\n\tpleaseinputthenewmeg!
&
red);
strcpy(p3->
name,red);
number,red);
addr,red);
tel,red);
phone,red);
postnum,red);
guanxi,red);
voidPaixu()
{p8=head;
i=0;
while(p8!
{strcpy(k[i].name,p8->
strcpy(k[i].number,p8->
strcpy(k[i].addr,p8->
strcpy(k[i].tel,p8->
strcpy(k[i].phone,p8->
strcpy(k[i].postnum,p8->
strcpy(k[i].guanxi,p8->
p8=p8->
i++;
n=n+1;
for(a=0;
{if(strcmp(k[a].phone,k[b].phone)>
0)
for(i=0;
{
k[i].name);
k[i].number);
k[i].addr);
k[i].tel);
k[i].phone);
postnumber%s"
k[i].postnum);
k[i].guanxi);
voidSave()
for(p2=head,j=0;
p2!
=NULL;
j++,p2=p2->
next)
{strcpy(persons[j].name,p2->
strcpy(persons[j].number,p2->
strcpy(persons[j].addr,p2->
strcpy(persons[j].tel,p2->
strcpy(persons[j].phone,p2->
strcpy(persons[j].postnum,p2->
strcpy(persons[j].guanxi,p2->
fwrite(&
persons[j],sizeof(structpersons),1,fp);
voidmain()
{creat();
do
\n\t***********************************************\n"
\tWELCOMETOUSEAddressbook\n"
\t**********************************************"
\n\t\tPleasemakeachoicebelow:
\n\t\t1.Listallthemeg"
\n\t\t2.Deleteapieceofmeg"
\n\t\t3.Findapieceofmegusename"
\n\t\t4.Findapieceofmegusenumber"
\n\t\t5.Addapieceofmeg"
\n\t\t6.Alterapieceofmeg"
\n\t\t7.listofphone"
\n\t\t8.Save"
\n\t\t9.Createanaddressbook"
\n\t\t0.Quit"
\n\tInputYourChoice:
ch=getchar();
switch(ch)
{case'
1'
:
List();
case'
2'
Delete();
3'
Find();
4'
Find1();
5'
Input();
6'
Alter();
7'
Paixu();
8'
Save();
break;
9'
creat();
0'
exit(0);
default:
\n\t********************************************\n"
\n\tThenumshould0-9!
!
\n"
}while
(1);
}
七、程序测试
该程序可以实现某人通讯录管理,能够进行系统功能选择,实现信息的录入功能,在已有信息的基础上添加新的记录,删除、修改、查询指定遍号人的记录,进行排序,达到题目要求。
八、结论、体会及建议
经过几个星期的上机实践学习,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的不足之处,对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,对C语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。
在实践中,有些问题遇到了之后想了好久,但也没有想出解决问题的方法,感觉很着急,这时应该请教老师或同学,看看他们是怎么来分析这个问题的,了解之后自己总结一下,重新构思问题,想出解决的办法,最后落实行动,检验一下自己的想法是否正确。
通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践。
以上就是我的一些感受。
最后感谢帮助过我的同学和老师,没有大家的帮助,我就不会取得今天的成绩。
参考文献资料
苏小红等.C语言大学实用教程.电子工业出版社.2004
苏小红等.C语言大学实用教程习题与实验指导.电子工业出版社.2004
互联网上查阅的相关资料
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小型 通讯录 设计 语言
![提示](https://static.bdocx.com/images/bang_tan.gif)