搜档网
当前位置:搜档网 › C语言课程设计--_通讯录管理系统

C语言课程设计--_通讯录管理系统

C语言课程设计--_通讯录管理系统
C语言课程设计--_通讯录管理系统

中国地质大学本科生课程论文封面

课程名称C语言程序设计

教师姓名

本科生姓名

本科生学号

本科生专业

所在院系

类别:

日期:

课程设计评语

对课程论文的评语:

平时成绩:课程论文成绩:

总成绩:评阅人签名:

注:1、无评阅人签名成绩无效;

2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;

3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录

课程设计评语 (2)

目录 (3)

1.课程论文题目 (4)

2.程序设计思路 (4)

3.功能模块图 (5)

4.数据结构设计 (5)

5.算法设计 (5)

6.程序代码 (14)

7.程序运行结果 (14)

8.编程中遇到的困难及解决方法 (27)

9.总结心得及良好建议 (28)

10.致谢 (28)

1.课程论文题目

通讯录管理系统

要求:设计具有数据插入、修改、删除、显示和查询功能的电话簿管理系统。

⑴数据包括:人名、工作单位、电话号码和E-mail地址。

⑵可对记录中的姓名和电话号码进行修改。

⑶可增加或删除记录。

⑷可显示所有保存的记录。

⑸可按人名或电话号码进行查询。

2.程序设计思路

根据题目的要求,程序应该采用结构体数组和文件系统实现。应该有动态的存储空间和文件输入、输出等操作功能;在程序中应该包括添加、显示、删除、查询和修改以及保存和退出的功能;另外还应提供键盘式选择菜单实现功能选择。

3.功能模块图

4.数据结构设计

整个程序中用到的数据主要是全局变量MAX 100和字符变量name[10]、addr[20]、phnum[20]、email[20]。

5.算法设计

1.主函数

主函数的设计一般比较的简单,只提供输入,功能处理和输出部分的函数调用。其中个功能模块用菜单方式选择。菜单部分也可以写成函数。

[流程图]

[程序]

main() /*****************主函数*****************/

{int n; /**********变量保存选择菜单数子***************/

creat();

do

{printf("\n\t***********************************************\n");

printf("\n\n\t*************WELCOME TO USE!***************\n");

printf("\n\t**********************************************\n");

printf("\n\n\t\t*****Please make a choice below*****\n");

printf("\n\t\t1.Add a piece of meg");

printf("\n\t\t2.List all the meg");

printf("\n\t\t3.Delete a piece of meg");

printf("\n\t\t4.Find a piece of meg");

printf("\n\t\t5.Alter a piece of meg");

printf("\n\t\t6.Save and Quit");

printf("\n\t\t7.Create an address book");

printf("\n\n\n");

printf("\t********Input Your Choice:****************\n");

scanf("%d",&n);

switch(n) /*****************输入n的在1-6之间执行switch ************/

{ case 1: Add(); /*添加模块*/

break;

case 2: List(); /*显示模块*/

break;

case 3: Delete(); /*删除模块*/

break;

case 4: Find(); /*查询模块:分为名字查询(0)和电话号码查询(1)*/

break;

case 5: Alter(); /*修改模块:分为修改名字(0)和修改电话号码(1)*/

break;

case 6: exit(0); /*退出模块*/

break;

case 7: creat(); /*带回链表起始地址*/

fclose(fp);

default: /**********输入的n不在1-6之间执行default ************/ printf("\n\t********************************************\n");

printf("\n\t The num should be 1-6!!! \n");

printf("\n\t********************************************\n");

break;

}

}while(1);

}

2.各功能模块设计

[数据结构]

通讯录的数据信息:人名、工作单位、电话号码、E-mail地址均可以采用字符型数组;可以采用结构体的形式,把各信息作为结构的成员,由于通讯录要具

有添加、查找、和删除的功能,所以整个通讯录采用链表比较容易的实现以上功能。用结构体变量作为链表中的接点是最合适的。结构体变量可以是指针类型,我们可以用这个指针类型的成员来存放下一个结点的地址。结构体的类型如下:

struct persons{ typedef struct p{

char name[10] char name[10];

char addr[20]; char addr[20];

char phnum[20]; char phnum[20];

char email[20]; char email[20];

}persons[MAX]; struct p *next;

}p,*linkl ist;

struct persons类型为每个链表成员;typedef struct p为一个动态的结点,它的成员next存放下一个结点的地址。

以下为各模块分析时要用的指针:

linklist head=NULL,t=NULL; /**************定义头指针和尾指针*************/

p *s,*p0,*p1,*p2,*p3,*p4,*p5;

int i;

char name1[10],ch;

char str1[20 ];

FILE *fp; /********************定义文件指针***********************/

(1)输入模块

[程序]

void creat() /*将文件的信息读入结构体数组在转存入链表中*/ {int j;

long k;

fp=fopen("people.txt","r+");/****************打开文件**********************/

if(fp!=NULL)

{for(i=1;i

{j=fgetc(fp);

if(j==EOF)

return;

k=i-1;

fseek(fp,k*sizeof(struct persons),0); /************读取一个人的信息***************/

fread(&persons[i],sizeof(struct persons),1,fp);

s=(linklist)malloc(sizeof(p)); /**************装存入链表中***********/ strcpy(s->name,persons[i].name);

strcpy(s->addr,persons[i].addr);

strcpy(s->phnum,persons[i].phnum);

strcpy(s->email,persons[i].email);

if(head==NULL) /***********用尾插法将其插入链表中**********/

head=s;

else

{t->next=s;

t=s;}

}}

else

{fp=fopen("people.txt","w"); i=1; /*****不能打开另开辟一个文件*****/ }

}

⑵添加模块

由于运用的是链表的形式,且通讯录只是按照输入的先后循序排序,所以对添加的信息采用插入末端的方式,同时添加也使用于空通讯录的信息输入。

[程序]

void Add() /*******向通讯录中添加(或输入)一个人的信息*********/ {s=(linklist)malloc(sizeof(p));s->next=NULL;

printf("\n\n\t*********Please input the sb's message:**********");

printf("\n\n\t\tname:");

scanf("%s",s->name);

printf("\n\n\t\tAddr:");

scanf("%s",s->addr);

printf("\n\n\t\tphnum:");

scanf("%s",s->phnum);

printf("\n\n\t\temai:");

scanf("%s",s->email);

if(head==NULL)

head=s; /*******若通讯录为空则添加在头指针之后相当于输入信息*********/

else

{t->next=s; /***********添加到链表的末尾************/

t=s; }

}

⑶显示模块

链表的一大好处是只要定义了头指针,则所有的信息就很容易的找到,指针会一环扣一环的找到每个信息,显示出每个信息,直到最后到位指针结束。 [程序]

void List() /*****************显示所有的信息*******************/

{p0=head; /************** p0指向头指针*******************/ while(p0!=NULL) /****************通讯录不为空******************/

{printf("\tname:%s",p0->name); printf("\taddr:%s",p0->addr);

printf("\tphnum:%s",p0->phnum); printf("\temail:%s\n",p0->email);

p0=p0->next; /************** p0向后移一个位置*****************/

} }

⑷删除模块

删除一个人的信息相当于是删除链表中的一个结点。在删除后又要保证链表不间断,如同手牵手排队的小孩,一个离队后,它两侧的小孩又自动地把手牵起来,保证不间断即把结点从链表中分离开来,只要撤销原来的链表关系即可。 [流程图]

要删除地信息

[程序]

void Delete() /************定义一个删除的函数***************/ {char name0[10];

p1=head;

printf("\n\t**********Please input a name:*************\n"); /*输入要删除人的姓名*/

printf("\n\t\tname0:"); gets(name0);

scanf("%s",name0);

while((strcmp(name0,p1->name)!=0)&&(p1!=NULL)) /*根据各种情况判断可能性*/ {p2=p1;

p1=p1->next;} /***************指针向后移一个位置****************/

if(strcmp(name0,p1->name)==0) /******找到要删除的位置*******/ {if(p1==head)head=p1->next; else p2->next=p1->next;

printf("\n\t**************Delete success!******************\n");}

p2=p1

p1=p1->next p1->nexxt

else

printf("\n\t**************Delete fail!******************\n"); /*没找到要删除的位置*/ }

⑸查询模块

按照题目的要求查询可以分为姓名查询和电话号码查询 [流程图]

[程序]

void Find() /***********定义一个查询的函数**************/ {int n;

char phnum1[20],name1[10];

printf("\n\t*******Search by name or phpnum?*****name(n=0)\phnum(n=1)*********\n"); printf("*******Input the number of 'n':*************\n");

scanf("%d",&n); /*******************选择查询方式******************/ if(n==0) /****************姓名查询***************/ {printf("\n\tname:"); p3=head;

gets(name1);

scanf("%s",&name1); /*****************输入姓名***************/

while((strcmp(name1,p3->name)!=0)&&(p3!=NULL)) /*根据各种情况判断可能性*/

p3=p3->next;

if(p3->name==NULL) /**************没有找到**************/ {printf("\n\t**************Can not find the message!**********");}

else if(strcmp(name1,p3->name)==0) /******找到信息并输出******/

查询 选择查询方式 输入姓名: 输入电话号码: 找到 找到 找到的提示信息 找到的提示信息 未找到提示信息 未找到提示信息

{printf("\n\t *********Found the message:**********\n");

printf("\n\tname: %s",p3->name);

printf("\taddress:%s",p3->addr);

printf("\temail: %s",p3->email);

printf("\tphnum: %s",p3->phnum);

}

}

else if(n==1) /***************电话号码查询***************/ {printf("\n\tphnum1");

p3=head;

gets(phnum1);

scanf("%s",&phnum1); /****************输入电话号码***************/ while((strcmp(phnum1,p3->phnum)!=0)&&(p3!=NULL)) /*根据各种情况判断可能性*/ p3=p3->next;

if(p3->phnum==NULL) /***************没有找到**************/ {printf("\n\t************Can not find the message!***********");}

else if(strcmp(phnum1,p3->phnum)==0) /******找到信息并输出******/

{printf("\n\n\t**********Found the message:*********");

printf("\n\tname: %s",p3->name);

⑹修改模块

按照题目的要求查询可以分为修改姓名和修改电话号码,修改模块的设计思路和查询模块的思路基本上相同。

[流程图]

修改

修改内容

输入姓名:输入电话号码:

未找到

找到信息

找到信息

未找到信息

修改失败输入新的姓名

提示修改成功输入新的电话号码

提示修改成功

修改失败

{int m;char phnum2[20],name2[10];

printf("\n\n\t****Which message do you want to alter?*******name(m=0)\phnum(m=1)*********\n");

printf("************Input the number of 'm':******************\n");

scanf("%d",&m); /*******************选择修改内容******************/

if(m==0) /*********************修改姓名*********************/ {printf("\n\tname:");

scanf("%s",&name2); /**************输入要修改的姓名***************/

p4=head;

while((strcmp(name2,p4->name)!=0)&&(p4!=NULL)) /*根据各种情况判断可能性*/

p4=p4->next;

if(p4==NULL){printf("\n\t*********Can not find the mame!**********\n");}

else if(strcmp(name2,p4->name)==0) /********找到要修改的姓名********/

{printf("\n\n\t*********Input the new nessage:************\n");

printf("\n\n\n\t\tname:");

canf("%s",&name2); /**********输入新的信息**********/

strcpy(p4->name,name2); /*******新的姓名修改成功*******/

printf("\n\n\t************Altered success!************\n");}

}

else if(m==1) /***************修改电话号码***************/

{printf("\n\tphnum:");

scanf("%s",&phnum2); /************输入要修改的电话号码***************/

p4=head;

while((strcmp(phnum2,p4->phnum)!=0)&&(p4!=NULL)) /*根据各种情况判断可能性*/ p4=p4->next;

if(p4==NULL)

{printf("\n\t************Can not find the phnum!*********\n");}

else if(strcmp(phnum2,p4->phnum)==0) /******找到要修改的电话号码*****/

{printf("\n\n\t**********Input the new nessage:*********\n");

printf("\n\n\n\t\tphnum:");

scanf("%s",&phnum2);/**********输入新的信息**********/

strcpy(p4->phnum,phnum2); /*******新的电话号码修改成功*******/

printf("\n\n\t************Altered success!************\n");}

}

}

⑺保存模块

{ int j;

fp=fopen("people.txt","w");

for(p5=head,j=0;p5!=NULL;j++,p5=p5->next) /*将信息装出入结构体数组在出入链表中*/ {strcpy(persons[j].name,p5->name);

strcpy(persons[j].addr,p5->addr);

strcpy(persons[j].phnum,p5->phnum);

strcpy(persons[j].email,p5->email);

fwrite(&persons[j],sizeof(struct persons),1,fp);

}

}

6.程序代码

#include

#include

#include

#define MAX 100

struct persons

{

char name[10];

char addr[20];

char phnum[20];

char email[20];

}persons[MAX];

typedef struct p{

char name[10];

char addr[20];

char phnum[20];

char email[20];

struct p *next;

}p,*linklist;

linklist head=NULL,t=NULL;

p *s,*p0,*p1,*p2,*p3,*p4,*p5;

int i;

char name1[10],ch;

char str1[20 ];

FILE *fp;

void creat()

{ int j;

long k;

fp=fopen("people.txt","r+");

if(fp!=NULL)

{for(i=1;i

{ j=fgetc(fp);

if(j==EOF)

return;

k=i-1;

fseek(fp,k*sizeof(struct persons),0);

fread(&persons[i],sizeof(struct persons),1,fp);

s=(linklist)malloc(sizeof(p));

strcpy(s->name,persons[i].name);

strcpy(s->addr,persons[i].addr);

strcpy(s->phnum,persons[i].phnum);

strcpy(s->email,persons[i].email);

if(head==NULL)

head=s;

else

{t->next=s;

t=s;

}

}

}

else

{ fp=fopen("people.txt","w"); i=1;

}

}

void Add()

{ s=(linklist)malloc(sizeof(p));

s->next=NULL;

printf("\n\n\t*********Please input the sb's message:**********");

printf("\n\n\t\tname:");

scanf("%s",s->name);

printf("\n\n\t\tAddr:");

scanf("%s",s->addr);

printf("\n\n\t\tphnum:");

scanf("%s",s->phnum);

printf("\n\n\t\temai:");

scanf("%s",s->email);

if(head==NULL)

head=s;

else

{t->next=s;

t=s;

}

}

void List()

{

p0=head;

while(p0!=NULL)

{ printf("\tname:%s",p0->name);

printf("\taddr:%s",p0->addr);

printf("\tphnum:%s",p0->phnum);

printf("\temail:%s\n",p0->email);

p0=p0->next;

}

}

void Delete()

{

char name0[10];

p1=head;

printf("\n\t**********Please input a name:**************\n"); printf("\n\t\tname0:");

gets(name0);

scanf("%s",name0);

while((strcmp(name0,p1->name)!=0)&&(p1!=NULL))

{p2=p1;

p1=p1->next;}

if(strcmp(name0,p1->name)==0)

{if(p1==head)head=p1->next;

else p2->next=p1->next;

printf("\n\t**************Delete success!******************\n");} else printf("\n\t**************Delete fail!******************\n");

}

void Find()

{

int n;

char phnum1[20],name1[10];

printf("\n\t*******Search by name or phpnum?*****name(n=0)\phnum(n=1)*********\n");

printf("*******Input the number of 'n':*************\n");

scanf("%d",&n);

if(n==0)

{printf("\n\tname:");

p3=head;

gets(name1);

scanf("%s",&name1);

while((strcmp(name1,p3->name)!=0)&&(p3!=NULL))

p3=p3->next;

if(p3->name==NULL)

{

printf("\n\t**************Can not find the message!**********");

}

else if(strcmp(name1,p3->name)==0)

{

printf("\n\t *******Found the message:**********************\n");

printf("\n\tname: %s",p3->name);

printf("\taddress:%s",p3->addr);

printf("\temail: %s",p3->email);

printf("\tphnum: %s",p3->phnum);

}

}

else if(n==1)

{ printf("\n\tphnum1");

p3=head;

gets(phnum1);

scanf("%s",&phnum1);

while((strcmp(phnum1,p3->phnum)!=0)&&(p3!=NULL))

p3=p3->next;

if(p3->phnum==NULL)

{printf("\n\t************Can not find the message!*********");}

else if(strcmp(phnum1,p3->phnum)==0)

{ printf("\n\n\t**********Found the message:*********");

printf("\n\tname: %s",p3->name);

printf("\taddress:%s",p3->addr);

printf("\temail: %s",p3->email);

printf("\tphnum: %s",p3->phnum);}

}

}

void Alter()

{

int m;char phnum2[20],name2[10];

printf("\n\n\t****Which message do you want to alter?****name(m=0)\phnum(m=1)*********\n");

printf("************Input the number of 'm':***********************\n");

scanf("%d",&m);

if(m==0)

{printf("\n\tname:");

scanf("%s",&name2);

p4=head;

while((strcmp(name2,p4->name)!=0)&&(p4!=NULL))

p4=p4->next;

if(p4==NULL){printf("\n\t*********Can not find the mame!**********\n");} else if(strcmp(name2,p4->name)==0)

{ printf("\n\n\t*********Input the new nessage:************\n");

printf("\n\n\n\t\tname:");

scanf("%s",&name2);

strcpy(p4->name,name2);

printf("\n\n\t************Altered success!************\n");}

}

else if(m==1)

{ printf("\n\tphnum:");

scanf("%s",&phnum2); p4=head;

while((strcmp(phnum2,p4->phnum)!=0)&&(p4!=NULL))

p4=p4->next;

if(p4==NULL)

{printf("\n\t************Can not find the phnum!*********\n");}

else if(strcmp(phnum2,p4->phnum)==0)

{ printf("\n\n\t**********Input the new nessage:*********\n");

printf("\n\n\n\t\tphnum:");

scanf("%s",&phnum2);

strcpy(p4->phnum,phnum2);

printf("\n\n\t************Altered success!************\n");}

}

}

void Save()

{ int j;

fp=fopen("people.txt","w");

for(p5=head,j=0;p5!=NULL;j++,p5=p5->next)

{ strcpy(persons[j].name,p5->name);

strcpy(persons[j].addr,p5->addr);

strcpy(persons[j].phnum,p5->phnum);

strcpy(persons[j].email,p5->email);

fwrite(&persons[j],sizeof(struct persons),1,fp);

}

}

main()

{ int n;

creat();

do

{printf("\n\t***********************************************\n");

printf("\n\n\t*************WELCOME TO USE!***************\n");

printf("\n\t**********************************************\n"); printf("\n\n\t\t*****Please make a choice below*****\n");

printf("\n\t\t1.Add a piece of meg");

printf("\n\t\t2.List all the meg");

printf("\n\t\t3.Delete a piece of meg");

printf("\n\t\t4.Find a piece of meg");

printf("\n\t\t5.Alter a piece of meg");

printf("\n\t\t6.Save and Quit");

printf("\n\t\t7.Create an address book");

printf("\n\n\n");

printf("\t********Input Your Choice:****************\n");

scanf("%d",&n);

switch(n)

{ case 1: Add();

break;

case 2: List();

break;

case 3: Delete();

break;

case 4: Find();

break;

case 5: Alter();

break;

case 6: exit(0);

break;

case 7: creat();

fclose(fp);

default:

printf("\n\t********************************************\n");

printf("\n\t The num should 1-6!!! \n");

printf("\n\t********************************************\n");

break;

}

}while(1);

}

7.程序运行结果

开始运行显示界面:

C语言-通讯录管理系统

#include #include #include struct record{ charnum[12]; char name[10]; char birthday[10]; char post[10]; char phone[15]; }data[100]; intmenu_select( ); intcreate_record(); intadd_record(int flag); int flag=0; intfind_record(int flag); intdelete_record(int flag); voidpaixu_record(int flag); intsave_record(int flag); void main() { for( ; ; ){ switch(menu_select()) { case 1: printf(" ***********************************************\n"); printf(" ************** 通讯录的建立***************\n"); printf(" ***********************************************\n"); flag=create_record(); break; case 2: printf(" ***********************************************\n"); printf(" ************** 通讯录信息的添加*****************\n"); printf(" ***********************************************\n"); flag=add_record(flag); break; case 3: printf(" ******************************\n"); printf(" ******* 通讯录信息查询*******\n"); printf(" ******************************\n"); find_record(flag); break; case 4:

C语言课程设计---通讯录管理系统

中国地质大学本科生课程论文封面 课程名称C语言程序设计 教师姓名 本科生姓名 本科生学号 本科生专业 所在院系 类别: 日期:

课程设计评语 注:1、无评阅人签名成绩无效; 2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效; 3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录 课程设计评语 (2) 目录 (3) 1.课程论文题目 (4) 2.程序设计思路 (4) 3.功能模块图 (5) 4.数据结构设计 (5) 5.算法设计 (5) 6.程序代码 (14) 7.程序运行结果 (14) 8.编程中遇到的困难及解决方法 (27) 9.总结心得及良好建议 (28) 10.致谢 (28)

1.课程论文题目 通讯录管理系统 要求:设计具有数据插入、修改、删除、显示和查询功能的电话簿管理系统。 ⑴数据包括:人名、工作单位、电话号码和E-mail地址。 ⑵可对记录中的姓名和电话号码进行修改。 ⑶可增加或删除记录。 ⑷可显示所有保存的记录。 ⑸可按人名或电话号码进行查询。 2.程序设计思路 根据题目的要求,程序应该采用结构体数组和文件系统实现。应该有动态的存储空间和文件输入、输出等操作功能;在程序中应该包括添加、显示、删除、查询和修改以及保存和退出的功能;另外还应提供键盘式选择菜单实现功能选择。

3.功能模块图 4.数据结构设计 整个程序中用到的数据主要是全局变量MAX 100和字符变量name[10]、addr[20]、phnum[20]、email[20]。 5.算法设计 1.主函数 主函数的设计一般比较的简单,只提供输入,功能处理和输出部分的函数调用。其中个功能模块用菜单方式选择。菜单部分也可以写成函数。 [流程图]

通讯录的制作(数据结构C语言版)

通讯录的设计 一、设计思路: 经过一个学期的程序设计学习,我逐渐了解了计算机的基本原理和c语言的基本常识,并可以逐渐自己来实现一些简单的程序任务。此次程序设计我选择了通讯录设计,通过函数、结构体的定义以及一些基本操作运用,经过一个多月的编写、调试、测试,最终完成了该程序的设计。以下为我的设计思路:首先,确定通讯录的功能,我初步设计了六项功能:输入(程序中对应 enter ())、删除(程序中对应delete())、显示通讯录(程序中对应list())、搜索(程序中对应search())、保存(程序中对应save())、装载(程序中对应 load())。 其次,对于存储的数据结构,我则主要选择了一下几个方面的信息:姓名、性别年龄、籍贯、手机、下一个指针(用于链表的操作与实现)、当前指针(用于链表的操作与实现)。 二、程序源代码: #include struct address{ /*创建一个address结构*/ char name[10]; /*姓名*/ char sex[2]; /*性别*/ char age[2]; /*年龄*/ char native[10]; /*籍贯*/ char telephone[12]; /*手机*/ struct address *next; /*下一个入口的指针*/ struct address *prior; /*当前记录的指针*/ } list_entry; struct address *start; /*指向列表中第一个入口*/ struct address *last; /*指向列表中最后一个入口*/

C语言程序设计课程设计-通讯录管理系统

通讯录信息管理系统设计计算机学院计算机科学与技术专业 1.课程设计的目的 学习了C语言程序设计这门课程之后,使我对程序设计有了一定的了解,为了熟练掌握C语言的语法特点、及其数据结构,提高自身编写程序的能力。通过课程设计实现理论知识与实际情况的结合,使所学知识能够在现实社会中起到一定的作用,防止所编写的程序脱离实际,让程序可以更好的发挥作用,以便减轻实际工作中所遇到的繁琐步骤,提高现实工作中的效率。此外通过课程设计提高逻辑思考能力和解决实际问题的能力。程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不挠品格的锻炼。 通讯录信息管理系统是生活中不可缺少的部分编写了一个通讯录信息管理系统是十分必要的。 本程序设计具有通讯信息的录入,进行保存、查找、删除等功能,操作界面简洁美观,易于操作。程序用了条件、循环、指针、结构体等知识点,综合了文件的打开和保存编写的。软件运用菜单实现交互式管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足的需要。 通过对通讯录管理系统的设计,进一步理解和掌握C语言这门课程的知识点,能够熟练的调用各种函数,把各种C语句有机的结合起来,提高自己C语言程序设计的能力,为今后解决实际问题打下良好基础。

2.设计方案论证 2.1设计思路 建立一个函数,用来添加、显示、删除、查询、修改、保存通讯录等信息,完成通讯录的功能。主函数可以调用六个子函数,分别完成添加记录、显示记录、删除记录、查询记录、修改记录、保存记录、退出系统等功能。在主函数中可以以1、2、3、4、5、6数字键分别可以执行某个功能模块。 2.2程序设计 2.2.1根据图1定义数据类型建立函数 typedef struct { char Num; //编号 char Name[10]; //姓名 char Tel[15]; //电话号码 char Email[20]; //邮箱 char age[8]; //年龄 char adds[20]; //住址 }Person; 2.2.2主函数及其流程图 定义主函数main()和一系列的功能函数,只有通过这些函数才可实现程序

通讯录管理系统课程设计报告书C语言

二〇〇八~ 二〇〇九学年第二学期 信息科学与工程学院 课程设计报告书 课程名称: C语言课程设计 班级:

学号: 姓名: 指导老师: 月九年二〇〇九 通讯录管理系统 一.需求分析 设计题目及要求: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 系统功能需求分析: 主要包含一下多种功能: 添加:添加通讯录记录 显示:显示通讯录记录 删除:删除通讯录记录 查询:查询通讯录记录 修改:修改通讯录记录 保存:将信息保存到文件 二.概要设计 系统功能模块图:

添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。. 显示:可以以表格形式输出所有通讯录里的记录 删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容 查询:可以选择用姓名、电话、地址三种方式查询 修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改 保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件 三.详细设计 (1).通讯录: typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/ char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person; void main() /*主函数*/ { int n=0; for(;;) { switch(menu_select())

c语言通讯录源代码

#include #include #include #include struct person //每个元素都是结构体类型 { char name[15]; //结构体数组,用于存储姓名 char celephone[22]; char QQ[20]; }per[500]; //定义一个per数组,它有500个元素 int num=0;//*外部变量num为文件中的纪录数*// FILE *fp; void mainmenu();//*主菜单*// **模块1** void newrecord();//新添纪录(括写入到文件)*// **模块2** void readfromfile();//*读取文件*// **模块2.1** void searchmenu();//*查询菜单*// **模块3** void searchbyname();//*按姓名查询*// **模块3.1** void searchbycelephone();//*按手机号码查询*// **模块3.2** void searchbyqq();//*按QQ查询*// **模块3.3** void xiugaimenu();//*修改菜单*// **模块4** void xiugaibyname();//*按姓名查找修改*// **模块4.1** void xiugaibycelephone();//*按手机号码查找修改*// **模块4.2** void xiugaixiangmu(int a);//*查找后要修改的项目(分名字和号码)*// **模块4.3** void deletemenu();//*删除菜单*// **模块5** void deleteall();//*删除所有信息*// **模块5.1** void deleteone();//*删除单个*// **模块5.2** void deletebycelephone(); //*按手机号码删除*// **模块5.2.1** void deletebyname();//*按姓名删除*/ **模块5.2.2** void showall();//*输出全部信息*// **模块6** void main()//*主函数*// { while (1) { mainmenu(); } } //*主函数结束*//

个人通讯录管理系统c语言源程序优秀版)

#include /*头文件*/ #include //包含最常用的系统函数 #include //关于字符数组的函数定义的头文件#include //控制台输入输出 //定义结构体 struct tongxunlu /*定义通讯录结构体变量*/ { char xingming[20]; /*定义输入名字的数组*/ char dianhua[20]; /*定义输入电话号码的数组*/ char dizhi[40]; /*定义输入地址的数组*/ } txl[100]; //默认100个数据 int n=0;//记录数据联系人数量 FILE *fp; /*定义文件*/ //程序用到的所有函数 void zhucaidan(); /*主菜单函数*/ void zengjia(); /*增加联系人函数*/ void readfile(); /*文件中读入函数*/ void writefile(); /*文件中写入函数*/ void xiugai(); /*修改联系人函数*/ void xiugai_xingming(); /*姓名修改*/ void xiugai_dianhua(); /*电话号码修改*/ void chazhao(); /*查找联系人函数*/

void chazhao_xingming(); /*按姓名查找*/ void chazhao_dianhua(); /*按号码查找*/ void shanchu(); /*删除联系人函数*/ void shanchu_quanbu(); /*全部删除*/ void shanchu_dange(); /*单个删除*/ void xianshi(); /*号码显示*/ //程序主函数模块六 void main() /*主函数main*/ { readfile(); /*读入文件*/ while(1) /* 循环(永远进行)*/ { zhucaidan(); /*调用主菜单函数*/ } } //读取文件函数部分开始模块七 void readfile() { if((fp=fopen("c:\\通讯录.txt","r"))==NULL) /*以只读方式打开判定文件是否为空*/ { printf("\n\t\t\t 通讯录文件不存在"); /*判断结论*/ if ((fp=fopen("同通讯录.txt","w"))==NULL) /*只写方式判断*/

C语言通讯录管理系统程序代码

一、课程设计题目及要求 题目通讯录管理系统 任务:自学C语言中相关知识,设计出通讯录管理系统。要求如下所述: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子 邮箱等;; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供按姓名或电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 二、系统设计方案 (一)总体框架图: 通讯录管理系统:1、录入通讯录信息 2、修改通讯录信息 3、查询通讯录信息 4、浏览通讯录信息 5、增加通讯录信息 6、推出系通讯录统 (二)模块设计 模块一:头文件,变量定义,函数的声明 对系统所使用的变量进行定义,对函数进行声明 模块二:录入通讯录信息 声明函数void readfile(),说明一个文件指针FILE *fp 打开文件"student.txt" 模块三:通讯录信息的查找 声明void seek()为查找函数,通过switch(item)设定用学号查找,用姓名查找两个分支 模块四:通讯录信息的修改

声明void modify()为学生信息修改函数,通过switch(item)设定所要修改的项目模块五:通讯录信息按学号排序 声明void sort()将录入通讯录信息系按升序排列,用的是“冒泡排序法”实现排序模块六:加通讯录信息 声明void insert()插入通讯录信息,先通过判断通讯录是否存在,若否则继续输入,若是跳出,重新循环 模块七:通讯录信息 声明void del()实现通讯录信息删除,通过学号对比确定要删除的信息,然后用后一个替换掉。 模块八:示学生信息 通过display()函数输出通讯录信息 模块九;存信息 通过fp=fopen("student.txt","w");写入信息 模块十:界面菜单 通过switch(num)调用,以上各函数,实现功能 三、设计详情 1.主函数 主函数设计要求简洁,只提供部分提示语和函数的调用 【程序】

C语言课程设计通讯录实验报告

太原学院计算机工程系 课程设计报告 课程名称:数据结构课程设计 姓名:苏建花 专业班级:计算机工程系网络三班 指导教师:翟婷婷 2015年12 月30日 计算机工程系课程设计报告 课程名称:C语言课程设计 课程设计题目:通讯录管理系统 班级:网络14-3班姓名:苏建花学号: 目录(参考) 1.设计目的与要求…………………………………………X 1.1题目与设计要求……………………………………X 1.2本程序涉及的知识点………………………………X 2.功能设计………………………………………………X 2.1总体设计……………………………………………X 2.2详细设计……………………………………………X 3.程序实现……………………………………………X 3.1程序实现时应考虑的问题…………………………X 3.2 XX模块核心代码…………………………………X 4.测试分析……………………………………………X 4.1 测试结果及分析…………………………………X 4.总结…………………………………………………X 参考文献………………………………………………X 1、设计目的与要求 这次课程设计的目的在于: 1.熟练的掌握C语言课程中所学的理论知识,并对其进行应用; 2.通过综合C语言的基本知识来解决实际问题; 3.加强分析和解决问题的能力; 4.提高实践动手能力,将知识化为实际成果

1.1 题目与设计要求 (1)题目:通讯录 (2)设计要求 a、建立通讯录信息,信息至少包含姓、名、电话号码、住址、分类(如同事、朋友、 同学、家人等)等。 b、该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修改,按姓名、 姓氏方式查找。 c、将通讯录保存在文件中。 d、能够输出通讯录中的信息。 1.2 本程序设计的知识点 (1)采用结构体数组。 struct Person { char a[16]; char s[16]; char d[16]; char f[24]; struct Person *next; }stu; (2)运用函数之间的调用 主函数可以调用子函数,子函数之间可以相互调用,子函数不能调用主函数,主函数可以多次调用一个子函数,也可以一次调用多个子函数。 (3)利用指针变量 struct Person *head; struct Person *p1,*p2 2 、功能设计 添加:添加通讯录记录 修改:修改通讯录记录 删除:删除通讯录记录 查找:查询通讯录记录 显示:显示通讯录记录 统计:统计通讯录数目 2.1需求分析 信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或姓氏进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。

C语言课程设计通讯录管理系统

C语言课程设计通讯录 管理系统 文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

***科技大学 本科生课程设计说明书 题目:C语言课程设计 ——通讯录管理系统 学生姓名:** 学号:*** 专业:软件工程 班级:1 指导教师:**

内蒙古科技大学课程设计任务书 一、教学要求 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言解决实际问题的能力 二、设计资料及参数 每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。 通讯录管理系统 现有一批通讯录的数椐,要求输入计算机并存放在内存中,然后增加若干个新通讯录的记录,并可输出通讯录清单,实现文件存盘和读入文件进行修改的功能。通讯录的基本信息包括编号,姓名,电话号码,QQ号码,电子邮件,通讯地址。要求设计菜单来调用其各功能模块: 新建文件、打开文件、保存信息到文件 输入记录、输出记录 查询记录(至少具有两种查询方式,例如以姓名查询和以电话号码查 询) 修改、插入和删除记录 三、设计要求及成果 1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目) 2. 写出详细设计说明(至少包括功能实现分析和模块流程图) 3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号) 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告(请严格按照模板进行排版) 四、进度安排 第一天? 选择课程设计题目,分析课题的要求 第二天? 编程 第三天? 编程及调试 第四天? 写课程设计报告

c语言通讯录管理系统

C语言课程设计:通讯录管理系统

目录 一、需求分析 (2) 二、概要设计 (2) 三、详细设计 (3) 四、上机操作 (14) 五、实习心得 (19) 六、源程序 (20)

一、需求分析 具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 (1)数据包括:人名、工作单位、电话号码和E-MAIL地址。 (2)可对记录中的姓名和电话号码进行修改。 (3)可增加和删除记录。 (4)可显示所有的保存记录。 (5)可按人名或电话号码进行查询。 [提示] 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。 二、概要设计 根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。 通讯录管理系统 修改退出 插入显示删除查询保存

三、详细设计 1、 主函数; 主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。 流程图 N Y 【程序】 int main() //主函数 { Man man[500],*pman=man;; char control; int size; printf("\t\t**********************************************\n"); //窗口初始化 printf("\t\t********** 欢迎使用通讯录管理系统! ***********\n"); printf("\t\t*--------------------------------------------*\n"); printf("\t\t* 请按回车键继续! *\n"); printf("\t\t**********************************************\n"); 开始 显示一系列功能选项 输入n ,判断是否是0~6 根据n 的值调用各功能模块函数 结束

通讯录管理系统课程设计报告书(C语言)[1]

开放教育 课程设计报告书 课程名称:通讯录管理系统 班级:综合邮政07秋 学号: 0 姓名:王芬 指导老师:高海东

通讯录管理系统 一.需求分析 设计题目及要求: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子 邮箱等; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 系统功能需求分析: 主要包含一下多种功能: 添加:添加通讯录记录 显示:显示通讯录记录 删除:删除通讯录记录 查询:查询通讯录记录 修改:修改通讯录记录 保存:将信息保存到文件 二.概要设计 系统功能模块图:

添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。 显示:可以以表格形式输出所有通讯录里的记录 删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容 查询:可以选择用姓名、电话、地址三种方式查询 修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改 保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件 三.详细设计 (1).通讯录: typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/ char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person;

C语言通讯录程序课程设计报告书

3.6 实例6 通讯录程序 本实例希望设计一个通讯录程序,要求实现通讯录信息的录入,并具有添加、查询、删除、显示等功能;使用结构体存储通讯录中记录信息;使用链表来实现通讯录信息的添加、删除、查询及显示等操作;通讯录程序可实现文件读写,在通讯录信息录入结束之后,可存入文件中,在下次程序运行时可将通讯录中的记录读取到程序中。通讯录程序可采用基于Win32控制台程序构建或采用基于MFC应用向导.EXE的应用程序,下面对这两种方法进行详细介绍。 3.6.1. 设计目的 1、掌握结构体的基本工作原理和工作方式。 2、熟悉结构体与链表的使用方法。 3、熟悉C语言下数据的输入与输出。 4、掌握C语言下对TXT文件的读写操作。 5、熟悉函数的设计方法及调用方法。 3.6.2. 基本要求 1、本实例要求实现对通讯录信息的查找、添加、删除、显示等功能,每个功能模块均能实现随时从模块中退出,可以通过键盘对功能进行选择,完成一个通讯录管理系统的运行。

2、要使用结构体来实现对通讯录信息的存储。 3、使用链表来实现对通讯录信息的查找、添加、删除、浏览显示。 4、使用文件对记录进行存储,程序运行时还可以从文件中读取记录。 5、系统设计完成后应实现类似下图所示界面。 3.6.3 设计结构及算法分析 在进行程序设计时,选择一种合理的数据存储结构是非常关键的。本实例根据题目要求,采用结构体来存放通讯录中的信息,并采用文件存储通讯录中的信息。 1、存储结构 本实例存储数据时,除了采用最常用的基本类型存储外,采用结构体的方式来存储通讯录中的个人信息,结构体如下所

示: struct stu { char name[20]; /*人名*/ char telephone[20]; /*电话*/ char sex[4]; /*性别*/ char company[20]; /*单位*/ struct stu *next; /*链表节点*/ }; typedef struct stu STU; 2、main()主函数 采用模块化设计,功能放在各模块函数中实现。主函数是程序的入口,在其中采用循环结构,根据用户的键盘输入,依次调用各功能函数。 3、mycreate()函数------创建链表函数 函数根据用户输入的信息,存储到结构体中,并建立链表结构,函数返回链表的头指针。链表建立完成后,可根据链表的头指针来添加后续指针。 4、myadd()函数------添加学生信息记录函数 函数根据用户输入信息,分配内存,将数据存储到结构体中,并建立新的链表节点,链接到已经建立好的链表尾部。 5、mydelete()函数------删除链表节点

c语言通讯录源代码打印

c语言通讯录源代码打 印 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

#include <> #include <> #include <> #include <> struct person { char name[15]; char sex[2]; int nianling; long int youbian; char addr[50]; char celephone[22]; char homephone[22]; char company[20]; char email[40]; long int QQ; }per[500]; int num=0;2aame); if(strlen(per[num].name)>15) { printf("对不起!您的输入有误!请重新输入"); goto name; } printf("\n请输入性别:\n"); sex: scanf("%s",&per[num].sex); if(strlen(per[num].sex)==0) { printf("对不起!您的输入有误!请重新输入"); goto sex; } printf("\n请输入年龄:"); nianling: scanf("%d",&per[num].nianling); if(per[num].nianling<10||per[num].nianling>1 10) { printf("对不起!您的输入有误!请重新输入"); goto nianling; } printf("\n请输入邮编\n"); youbian: scanf("%d",&per[num].youbian); if(per[num].youbian<10000||per[num].youbia n>999999) { printf("对不起!您的输入有误!请重新输入"); goto youbian; } printf("\n请输入地址\n"); addr: scanf("%s",&per[num].addr); if(strlen(per[num].addr)>50||strlen(per[num].a ddr)<4) { printf("对不起!您的输入有误!请重新输入\n"); goto addr; } printf("\n请输入手机号码:\n"); celephone: scanf("%s",&per[num].celephone); if(strlen(per[num].celephone)!=11) { printf("对不起!您的输入有误!请重新输入\n"); goto celephone; }

通讯录管理系统(C语言)

说明 1、设计的目的 1)复习巩固C语言的基础知识,进一步加深对C语言编程的理解和掌握;2)利用所学知识,理论和实际结合,利用资源,采用模块化的结构,使用模仿修改自主设计相结合的方法,锻炼学生综合分析解决实际问题的编程能力;3)培养学生在项目开发中团队合作精神、创新意识及实战能力。 2、设计的任务 根据学生的实际情况,进行分组选题。主要的课程设计题目如下(学生也可自主选题): 1、图书管理系统 2、学生信息管理系统 3、学生成绩管理系统 4、学生通讯录管理系统 5、职工信息管理系统 6、设计简单的计算器 课程设计采用学生自主设计和指导老师辅导相结合的方式。 3、设计要求与设计报告 设计要求: 1、任选上述题目之一,或自选题目。 2、模块化的程序设计 3、锯齿形的程序书写格式。 4、必须通过编译连接运行 设计报告: 1、设计目的和任务 2、总体设计:包括程序设计组成框图、流程图。 3、详细设计:包括模块功能说明:函数功能、入口及出口参数说明,函数调用关系描述等。 4、调试与测试:包括调试方法,测试结果分析与讨论,测试过程中遇到的主要问题及采取的解决措施。 5、源程序清单和执行结果:清单中应有足够的注释。

设计目的和任务 (主要介绍设计的任务,为什么要设计,设计要达到什么样的目的。) 设计目的:(1)基本掌握面向过程程序设计的基本思路和方法; (2)达到熟练掌握C语言的基本知识和技能; (3)能够利用所学的基本知识和技能,解决简单的程序设计问题 程序功能:(1).学生基本信息及成绩所选科目成绩的录入。 (2).基本信息的查询(分系、班级;分科目)与修改。 (3).对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率); (4).对所开课程的成绩分析(求其平均成绩,最高分和最低分); (5).对学生考试成绩进行排名; 目录 一、总体设计 (3) 二、详细设计 (4) 三、调试与测试 (5) 四、源程序清单和执行结果 (6) 五、建议和体会 (7) 六、参考文献 (8)

通讯录管理系统(C语言)—单链表

广州大学物理与电子工程学院 程序与设计训练 通讯录管理系统实验报告 专业班级:电子121 设计人员:元达鹏 学号:1219200065 2013年6月24日

通讯录管理系统 一.需求分析 设计题目及需求: (1)查看功能:选择此功能时,列出下列三类选择。A 办公类 B 个人类 C 商务类,当选中某类时,显示出此类所有数据中的姓名和电话号码) (2)增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件。例如:杨春135******** 商务类chuny@https://www.sodocs.net/doc/953073110.html, (3)当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。 (4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 系统功能需求分析: 主要包含以下几种功能: 1.建立通讯录(建立功能) 2.删除通讯人(删除功能) 3.保存通讯录(保存功能) 4.读取通讯录文件(读取功能) 5.查找通讯人(查找功能) 6.添加通讯人(添加功能) 7.修改通讯人信息(修改功能)

8.退出通讯录系统 二.概要设计 系统功能模块图: 主菜单 建立删除保存读取查找添加修改退出 建立功能:在主菜单中输入1,进入建立功能。用户自己输入通讯录文件名,建立一个新的通讯录,便开始输入信息,一旦想结束添加,在输入姓名处输入“*”结束录入。(当录入相同的姓名和电话时,系统会告 诉你已经重复录入) 删除功能:在主菜单中输入2,进入删除功能。用户输入待删除人的姓名,系统会自动显示待删除人的信息,并且提示是否删除该通讯人。(当输 入的姓名不存在的时候,系统会告诉你此人不存在) 保存功能:在主菜单中输入3,进入保存功能。将你已经写好的通讯录保存在建立时创建的文件里面。(当保存成功后,系统会告诉你保存成功) 读取功能:在主菜单中输入4,进入读取功能。读取一个任意一个已经存在的文件,用户可以输入想要读取的文件,一旦文件读取成功,系统会告诉你文件读取成功。 查找功能:在主菜单中输入5,进入查找功能。查找方式有三种:1. 按姓名查

C语言通讯录系统课程设计报告

通讯录系统的设计与实现桂林电子科技大学电信三班傅得耕 3.1系统的需求分析 通讯录系统作为一个应用软件将为人民提供一个可以串联人与人之间的信息的一个平台。根据系统界面的提示信息对通讯录进行查询、初始化等操作。 系统功能需求分析描述如下: (1)创建联系人。 (2)显示所有联系人:显示可以进行的操作。 (3)删除联系人。 (4)查询:根据姓名进行查询,并可显示所有关于该人的信息。 (5) :退出。 3.2系统的设计 3.2.1 系统的总体设计 下面从系统的整体流程的功能模块、系统界面及数据结构进行总体设计。 (1)总体思想 本系统主要设计思想是实现通讯录系统信息的创建联系人、删除、查找等主要功能。系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解联系人的情况。 (2)系统模块结构图 根据需求分析结果,通讯录系统可以分为五大模块:创建联系人模块、显示功能模块、查找联系人功能模块、删除联系人模

块以及退出模块。 ㈡查询人物信息 进入此菜单功能模块,输入您要查询的图书的名字。 图书查询模块流程如图: 3.3 创建

删除系统 3.4 源代码 #include #include #include #define LEN sizeof(struct people) struct people { char name[10]; char address[50]; char postcode[7]; char phonenum[12]; struct people * next; }; int n = 0, c; static struct people * head; void insert(); void show();

个人通讯录管理(c语言课程设计)

安徽工业大学 《C语言课程设计》实习综合报告课题名称:个人通讯录管理系统 实习成员:王刚 学号: 109074372 专业班级: 网络工程103班 指导教师: 郑啸老师

目录 一.问题描述 (2) 二. 各功能流程图与设计思路 (3) 2.1显示模块 (3) 2.2查找模块……………………………………………4.. 2.3添加模块 (6) 2.4删除模块 (8) 2.5修改模块 (9) 三、文件的读取与保存 (11) 四、程序源代码 (12) 五、调试与运行结果 (18) 六、计算机学院课程设计评定意见 (24) 一.问题描述

设计通讯录包含以下功能: (1)通讯录的每一条信息包括姓名、单位、固定电话、移动手 机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ 等。 (2)输入功能:可以一次完成若干条信息的输入。 (3)显示功能:完成全部通讯录信息的显示。 (4)查找功能:可以按姓名等多种方式查找通讯信息。 (5)增加、删除、修改功能:完成通讯录信息的多种更新。 二.各功能流程图与设计思路 Menu菜单:

运用switch()进行操作: case'1': 显示功能,list()函数 说明:利用for循环,逐个输出已保存的内容 代码如下: //*****************显示通讯录中的内容************* void list() { printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n"); for(i=0;i

个人通讯录管理系统C语言源程序优秀版

个人通讯录管理系统C语言源程序优秀版 Last revision date: 13 December 2020.

#i n c l u d e/*头文件*/ #include //包含最常用的系统函数 #include //关于字符数组的函数定义的头文件 #include //控制台输入输出 //定义结构体 struct tongxunlu /*定义通讯录结构体变量*/ { char xingming[20]; /*定义输入名字的数组*/ char dianhua[20]; /*定义输入电话号码的数组*/ char dizhi[40]; /*定义输入地址的数组*/ } txl[100]; //默认100个数据 int n=0;//记录数据联系人数量 FILE *fp; /*定义文件*/ //程序用到的所有函数 void zhucaidan(); /*主菜单函数*/ void zengjia(); /*增加联系人函数*/ void readfile(); /*文件中读入函数*/ void writefile(); /*文件中写入函数*/ void xiugai(); /*修改联系人函数*/ void xiugai_xingming(); /*姓名修改*/ void xiugai_dianhua(); /*电话号码修改*/ void chazhao(); /*查找联系人函数*/ void chazhao_xingming(); /*按姓名查找*/ void chazhao_dianhua(); /*按号码查找*/ void shanchu(); /*删除联系人函数*/ void shanchu_quanbu(); /*全部删除*/ void shanchu_dange(); /*单个删除*/ void xianshi(); /*号码显示*/ //程序主函数模块六 void main() /*主函数main*/ { readfile(); /*读入文件*/ while(1) /* 循环(永远进行)*/ { zhucaidan(); /*调用主菜单函数*/ } } //读取文件函数部分开始模块七 void readfile() { if((fp=fopen("c:\\通讯录.txt","r"))==NULL) /*以只读方式打开判定文件是否为空*/ { printf("\n\t\t\t 通讯录文件不存在"); /*判断结论*/

c语言通讯录管理系统

一课程设计要求 1通讯录要求惯例的信息结构体成员有:姓名,单位,电话,家庭住址。2程序菜单为: ************************MEUN*************************** 0.Enter record /*输入记录*/ 1.List the file /*显示全部记录*/ 2.Search record on name /*查找记录*/ 3.display record on name /*按序号显示记录*/ 4.Delete a record /*删除记录*/ 5.add record /*增加记录*/ 6.sort by name /*按姓名排序*/ 7.Quit /*退出*/ 3定义多个子函数与菜单对应: /***********以下是函数原型************/ int menu_Select(); /*主菜单函数*/ void Init();/*单链表初始化*/ void Create();/*创建单链表,输入记录*/ void List (ADDRESS t[],int n); /*显示全部记录*/ void SearchByName (ADDRESS t[],int n); /*按姓名查找*/ int Delete (ADDRESS t[],int n); /*删除记录*/ int Delete (ADDRESS t[],int n); /*删除记录*/ int Add (ADDRESS t[],int n); /*插入记录*/ void SearchByIndex (ADDRESS t[],int n); /*按序号查找显示序列 */ void Sort(ADDRESS t[],int n); /*按姓名排序*/ 二功能框图

相关主题