小型通讯录的设计c语言Word下载.docx

上传人:b****6 文档编号:21727996 上传时间:2023-02-01 格式:DOCX 页数:15 大小:54.35KB
下载 相关 举报
小型通讯录的设计c语言Word下载.docx_第1页
第1页 / 共15页
小型通讯录的设计c语言Word下载.docx_第2页
第2页 / 共15页
小型通讯录的设计c语言Word下载.docx_第3页
第3页 / 共15页
小型通讯录的设计c语言Word下载.docx_第4页
第4页 / 共15页
小型通讯录的设计c语言Word下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

小型通讯录的设计c语言Word下载.docx

《小型通讯录的设计c语言Word下载.docx》由会员分享,可在线阅读,更多相关《小型通讯录的设计c语言Word下载.docx(15页珍藏版)》请在冰豆网上搜索。

小型通讯录的设计c语言Word下载.docx

三、模块划分及功能

主模块:

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

互联网上查阅的相关资料

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1