当前位置:文档之家› 个人通讯录管理系统C语言课程设计报告

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

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

重庆科技学院

《C语言程序设计》

课程设计报告

学院:_电气与信息工程学院_ 专业班级:电自专2011-01

学生姓名:蒋洪山学号: 2011630194

设计地点(单位)________ I515 ______________ __

设计题目:__________个人通讯录管理系统 _____________

完成日期: 2012 年12月28日

指导教师评语: ______________________ _________________ __________________________________________________________________________________ __________________________________________________________________________________ _____________________________________ __________ _

成绩(五级记分制):______ __________

指导教师(签字):________ ________

摘要

本次课程设计的题目为个人通讯录管理系统,要求将程序中所输入的联系人姓名、电话和地址信息这三个数据以文本方式保存在磁盘中,并且能够对所储存的联系人信息进行显示、查询、修改、删除等功能。

我编写的程序从整体上看可分为两个部分,一部分为文件的建立、读取和保存,另一部分为通讯录功能的实现。在文件部分,我通过readfile()函数和writefile()函数从而实现了对磁盘上数据的进行写和读,通过刚开始的界面提示可以知道文件是否建立,以免丢失数据,我还为用户设计了保存退出和不保存退出两大功能供用户做选择。在模块功能实现部分,通过scanf从键盘上输入的数字放到switch() case 循环中来实现调用zengjia()、shanchu()、xiugai()、chazhao()等十五个函数来实现“添加”、“查询和显示”、“修改”、“删除”等不同功能。

关键字:文件、数组、循环、函数

重庆科技学院

课程设计任务书

2012年12月10日

目录

第一章软件需求分析说明书 (1)

1.1设计软件的目的分析 (1)

1.2软件的界面要求 (1)

1.3详细的功能分析 (1)

1.3.1创建文件 (1)

1.3.2 添加联系人 (1)

1.3.3显示和查询联系人 (1)

1.3.4 删除联系人 (1)

1.3.5 修改联系人 (1)

1.3.6 保存退出与不保存退出 (1)

1.4设计要求分析 (2)

1.5软件的数据结构分析 (2)

1.5.1 软件的函数 (2)

1.5.2 文件的调用和保存 (2)

第二章系统分析与设计 (3)

2.1 软件界面设计 (3)

2.2 软件的数据(结构)设计 (3)

2.2.1 软件的文件功能 (3)

2.2.2 文件内部的数据格式 (3)

2.3 软件的模块图 (3)

2.4 软件的流程图 (4)

2.4.1 添加联系人程序流程图 (4)

2.4.2 显示和查找联系人程序流程图 (5)

2.4.3 删除联系人流程图 (5)

2.4.4 修改联系人流程图 (6)

第三章软件的实现 (8)

3.1 函数声明 (8)

3.2 zhucaidan()主菜单函数 (8)

3.3 main()主函数 (9)

3.4 readfile()读取文件函数 (9)

3.5 writefile()联系人写入文件函数 (10)

3.6 zengjia()增加联系人函数 (11)

3.7 shanchu()删除函数主界面 (11)

3.8 xianshi()显示和查询函数 (12)

3.9 xianshi()显示所有人函数 (13)

3.10 chazhao_xingming()姓名查询函数 (13)

3.11 chazhao_dianhua()按号码查询函数 (14)

3.12 shanchu_dange()删除单个联系人函数 (15)

3.13 shanchu_quanbu()删除所有联系人函数 (15)

3.14 shanchu_xingming()按姓名删除联系人函数 (16)

3.15 shanchu_dianhua()按电话号码删除函数 (17)

3.16 xiugai()修改函数主体界面 (18)

3.17 xiugai_xingming()按姓名修改 (19)

3.18 xiugai_dianhua()按号码修改联系人函数 (20)

第四章软件测试 (22)

4.1 文件导入界面 (22)

4.2 软件的主界面 (22)

4.3 添加联系人模块 (22)

4.4 显示和查找联系人界面 (23)

4.4.1主界面 (23)

4.4.2无联系人的显示界面 (23)

4.4.3有联系人的显示界面 (24)

4.4.4按姓名查找 (24)

4.4.5 按电话号码查找 (24)

4.5 删除联系人模块 (25)

4.5.1删除联系人主界面 (25)

4.5.2没有对应联系人的删除界面 (25)

4.5.3按姓名删除 (25)

4.5.4按电话号码删除 (26)

4.6 修改联系人模块 (26)

4.6.1修改联系人主菜单 (26)

4.6.2 按姓名修改 (27)

4.6.3按电话修改 (27)

4.7 退出 (28)

4.7.1 保存退出 (28)

4.7.2 不保存退出 (28)

第五章总结与体会 (29)

致谢 (30)

参考文献 (31)

第一章软件需求分析说明书

1.1设计软件的目的分析

本软件要求用C语言建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信录进行显示、查找、添加、修改及删除。

1.2软件的界面要求

本软件要求软件的界面简洁、美观,让人一目了然,使用起来方便。于是我设计的软件首先提示您是否有通讯录文件存在,如没有文件,则自动建立一个,如有文件存在,则提示导入成功,让人直观明白的了解文件的情况。按任意键便可以进入主菜单,在主菜单上显示出软件的功能,通过输入数字0到5来进行选择便可以实现你所需要的功能,每个模块进入模块内部实现软件的具体功能,实现您所需要的功能。

1.3详细的功能分析

该系统用下面六个功能模块编写,每个模块执行不同的功能,体现了模块化设计的思想。下面六个模块都是利用C语言文件,向文件中添加数据、修改数据、查询数据、删除数据和保存数据。

1.3.1创建文件

用fopen()建立一个文本文件,然后向其中输入数据(例如,向文件中输入“姓名”,“地址”,“号码”等),并对文件进行命名。

1.3.2 添加联系人

通过键盘输入通讯录人员的姓名、电话号码、地址信息便可实现将信息添加到通讯录文件内,添加完毕后,系统会自动询问你是否继续添加,如你想继续添加,再通过键盘输入通讯录人员的姓名、电话号码、地址信息即可实现继续添加。

1.3.3显示和查询联系人

通过前面第一个模块打得录入我们便可以执行第二个模块,通过第二个模块我们可以进行对联系人进行显示和查找。

我通过调用showall()函数来进行显示所有的联系人,showall()函数可以实现逐个显示联系人。

对于查找联系人我则采用了search()函数来进行查找联系人,我提供了两种查找方法:①按照姓名查找;②按照电话号码查找。

1.3.4 删除联系人

我调用deletecd()函数来实现删除功能,同样我也提供给了两种删除方法:①全部删除;②单个删除。其中全部删除会提示是否全部删除,以免误删。

1.3.5 修改联系人

我调用modify()函数来实现修改功能,我同样提供了两种修改方法:①对姓名进行修改;②对电话号码进行修改。修改完毕后会提示是否据需修改。

1.3.6 保存退出与不保存退出

你还在为误添加、误修改、误删除后悔吗?还想回到以前的数据吗?这个担忧在我的程序中您就不必担心了,我为程序提供了两种退出方式:①保存退出;②不保存退出。完全解决您的后顾之忧。

1.4设计要求分析

①进一步掌握利用C语言进行程序设计的能力;

②进一步理解和运用结构化程序设计的思想和方法;

③初步掌握开发一个小型实用系统的基本方法;

④学会调试一个较长程序的基本方法;

⑤学会利用流程图表示算法。

⑥根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。

1.5软件的数据结构分析

1.5.1 软件的函数

本软件采用了不同的函数来进行定义不同模块的功能,通过调用不同的函数,可以实现不同的功能。软件中采用了五个主体函数来实现添加联系人,修改联系人,查找联系人,显示联系人,删除联系人的功能。

1.5.2 文件的调用和保存

本软件通过文本方式对用户所录入的信息进行保存。通过保存下来的文本,您可以在电脑磁盘中找到您存入文件的位置,打开后便可以找到您所录入的通讯录信息。

第二章系统分析与设计

2.1 软件界面设计

画出软件全部输入、输出数据的界面,并对每一个界面进行详细的操作说明

2.2 软件的数据(结构)设计

软件调用不同的函数来实现不同的功能,通过反复调用函数来实现反复输入。代码中通过scanf从键盘上输入不同的数字选项,然后通过swtich case()来实现对不同函数的调用。

2.2.1 软件的文件功能

软件采用了文本文档进行存取,我在C盘建立了一个txl文本文档用于存取输入的信息,打开C盘后就能直接看到您录入的信息,很方便和快捷。

2.2.2 文件内部的数据格式

我采用了readfile()函数来读取文件,使用if((fp=fopen("c:\\通讯录.txt","r"))==NULL)以只读方式打开判定文件是否为空,如果不空,则使用fseek(fp,0,2); 文件位置指针移动到文件末尾以来进行写入数据。

使用writefile()将联系人写入文件,用if ((fp=fopen("c:\\通讯录.txt","w"))==NULL)以只写的方式来对判定文件是否为空,如果不为空,则从键盘上录入所需要录入的信息存到相应的文件中。最后通过fclose(fp)来关闭文件,回到主界面上等待用户输入新的操作。

2.3 软件的模块图

软件的模块图很直观的反映出软件能够实现的功能,由下面的模块图可以很直观的看出我设计的通讯录软件能够方便的实现添加联系人、显示联系人、删除联系人、修改联系人功能,另外,我设计的软件还实现了保存退出和不保存退出功能,这个功能很独特。

①在增加联系人部分,我用了三个函数调用来分别实现录入联系人姓名、号码、地址。

②在显示和查询联系人部分,我也有三个模块: 逐个显示联系人,按姓名查询,按号码查询。

③在删除联系人部分,我设计了三个界面,可以实现全部删除,单个删除,回到主菜单。

④在修改联系人模块,我也设计了三个界面,按姓名修改,按号码修改,回到主菜单。

⑤最后我设计了保存退出和不保存退出,针对那些修改后却又后悔修改的用户需要。

图2.1软件的模块图

2.4 软件的流程图

由于程序流程图较为复杂,我采用了分块画出程序流程图

2.4.1 添加联系人程序流程图

由添加联系人的程序流程图可以看出,在添加联系人板块上,我设计了三种信息,输入姓名,输入电话和输入地址,输入完成后会提示是否继续输入,如果输入y后则可以继续输入,输入n后返回主菜单。

图2.2添加联系人程序流程图

2.4.2 显示和查找联系人程序流程图

在主菜单上输入2后便可以进入显示和查询联系人的主界面,我为您提供了三个选项,1.显示全部 2.按姓名查询 3.按电话查询。输入对应的数字便可以实现对应的功能,同理,系统会在您查询完毕后询问您是否继续查询,操作同上。

图2.3显示和查找联系人程序流程图

2.4.3 删除联系人流程图

在删除联系人流程图上,我设计了全部删除和单个删除功能,单个删除设计了按照姓名删除和按电话号码删除两种选择,在删除时,系统都会询问您是否删除,以免误删。

图2.4删除联系人流程图

2.4.4 修改联系人流程图

修改联系人界面上我设计了按姓名修改和按号码修改两种方式,当选择时系统会提示您是否修改,若不修改则返回主界面,若选择是,则系统会该处三个修改项目:修改姓名,修改电话,修改地址,修改完毕后系统会提示您是否继续修改,如不修改,则又返回主界面等待输入。

图2.5修改联系人流程图

第三章软件的实现

3.1 函数声明

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(); /*号码显示*/

3.2 zhucaidan()主菜单函数

其源代码如下:

void zhucaidan()

{

char c;

system("cls");

printf("\n\t\t|------- 欢迎您使用通讯录管理系统1.0beat版-----|");

printf("\n\t\t| 1-添加联系人2-查询和显示联系人|");

printf("\n\t\t| 3-删除联系人4-修改联系人|");

printf("\n\t\t| 5-保存退出0-不保存退出|");

printf("\n\t\t|------------------------------------------------|");

printf("\n\t\t请选择您所所要的服务:");

c=getch();

switch (c) /*对于上边的选择项目*/

{

case '1':zengjia();break;

case '2':chazhao();break;

case '3':shanchu();break;

case '4':xiugai();break;

case '5':writefile();break;

case '0':exit(0);

default:zhucaidan(); /*如果没有则返回主菜单等待输入*/

}

}

较难语句分析:

①system("cls");清除输入在屏幕上的数据;

②c=getch(); 将键盘上输入的数据赋予c;

③switch (c) case : 实现对主菜单上的选项的控制;

3.3 main()主函数

main()函数的源代码见下:

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

{ readfile(); /*读入文件*/

while(1) /* 循环(永远进行)*/

{

zhucaiidan(); /*调用主菜单函数*/

}

}

main()函数功能分析:

main()函数通过调用readfile()函数和循环menu()函数实现对入文件和界面进行控制。

3.4 readfile()读取文件函数

其源代码如下:

void readfile()

{

if((fp=fopen("c:\\通讯录.txt","r"))==NULL) /*以只读方式打开判定文件是否为空*/

{

printf("\n\t\t\t 通讯录文件不存在"); /*判断结论*/

if ((fp=fopen("同通讯录.txt","w"))==NULL) /*只写方式判断*/

{

printf("\n\t\t建立失败"); /*为空结论*/

exit(0); /*退出*/

}

else /*不为空则执行else*/

{

printf("\n\t-----------------欢迎使用通讯录管理系统------------------");

printf("\n\t 通讯录文件已建立");

printf("\n\t 按任意键进入主菜单");

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

getch();

return ;

}

exit(0);

}

fseek(fp,0,2); /*文件位置指针移动到文件末尾*/

if (ftell(fp)>0) /*文件不为空*/

{

rewind(fp); /*文件位置指针移动到文件开始位置*/

for (n=0;!feof(fp) && fread(&txl[n],sizeof(struct tongxunlu),1,fp);n++);

printf("\n\t----------欢迎使用通讯录管理系统1.0beat版----------------");

printf("\n\t 文件导入成功");

printf("\n\t 按任意键返回主菜单");

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

getch();

return;

}

printf("\n\t------------欢迎使用通讯录管理系统1.0beat版--------------");

printf("\n\t 文件导入成功");

printf("\n\t 通讯录文件中无任何纪录");

printf("\n\t 按任意键返回主菜单");

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

getch();

return;

}

较难语句分析:

①if((fp=fopen("c:\\通讯录.txt","r"))==NULL) 以只读方式打开判定文

件是否为空;

②fseek(fp,0,2); 文件位置指针移动到文件末尾;

③ftell(fp): 返回当前文件位置,也就是说返回FILE指针当前位置;

④rewind(fp); 文件位置指针移动到文件开始位置;

⑤feof(fp) 检测流上的文件结束符;

⑥fread(&txl[n],sizeof(struct tongxunlu),1,fp);n++) 从fp指向的文件

中向txl [n]中读入一个(struct tongxunlu)类型的值并输出后面的内容。若没有成功执行就不输出后面的内容。

void readfile()函数的功能分析:

首先由 if((fp=fopen("c:\\通讯录.txt","r"))==NULL) 判断文件是否存在,如果不存在,则显示通讯录文件不存在,如果文件为空,则显示建立失败;若建立成功,则显示通讯录文件已建立,然后利用fseek(fp,0,2); 将文件位置指针移动到文件末尾等待输入。

3.5 writefile()联系人写入文件函数

函数源程序见下:

void writefile() /*联系人写入文件*/

{

int i;

if ((fp=fopen("c:\\通讯录.txt","w"))==NULL)

{

printf("\n\t\t文件打开失败");

}

for (i=0;i

{

if (fwrite(&txl[i],sizeof(struct tongxunlu),1,fp)!=1)

{

printf("\n\t\t写入文件错误!\n");

}

}

fclose(fp); /*关闭文件*/

printf("\n\t------------------------------------------------------"); /*输出提示信息*/

printf("\n\t\t通讯录文件已保存");

printf("\n\t\t谢谢使用,欢迎再次使用!\n");

printf("如果对本软件有疑问,请到我们官网(https://www.doczj.com/doc/103157835.html,)提出您的问题,我们将为您解答.\n");

printf("我们的软件有不足之处,欢迎到官网(https://www.doczj.com/doc/103157835.html,)反映,我们将努力改正!");

printf("\n\t\t按任意键退出程序\n\t\t"); /*输出完毕*/

exit(0);

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

}

较难语句分析:

①fp=fopen("c:\\通讯录.txt","w")) 以只写的方式打开c:\\txl.txt 文件赋予fp;

②if (fwrite(&txl[i],sizeof(struct tongxunlu),1,fp)!=1)从fp指向的文件中向txl

[n]中写入一个(struct tongxunlu)类型的值并输出后面的内容。若没有成功执行就不输出后面的内容。

③fclose(fp); 关闭文件

writefile()联系人写入文件函数的功能分析:

将c:\\通讯录.txt文件以只读方式打开付给fp,如果为空则输出“文件打开失败”;若果成功则执行if (fwrite(&txl[i],sizeof(struct tongxunlu),1,fp)!=1),如果写入(struct tongxunlu)成功则关闭文件,若果不成功则输出“写入文件错误!”。

3.6 zengjia()增加联系人函数

其源程序如下:

void zengjia()

{

printf("\n\t\t------------------ 请输入联系人信息--------------------\n");

printf("\n\t\t输入联系人姓名:");

scanf("%s",txl[n].xingming); /*键盘输入*/

printf("\n\t\t输入联系人电话号码:");

scanf("%s",txl[n].dianhua);

printf("\n\t\t输入联系人地址:");

scanf("%s",txl[n].dizhi);

n++; /*统计个数*/

printf("\n\t\t是否继续添加联系人?(Y/N):"); /*是否继续输入联系人.*/

if (getch()=='y')

zengjia();

return;

}

功能分析:

调用zengjia()函数后,就可以通过txl[n]. xingming,txl[n].dianhua ,txl[n].dizhi 数组从键盘上输入联系人的姓名,电话,地址,输入完毕后,系统会提示是否继续输入,输入“y”后,则再次调用zengjia(); 函数,如此循环,直到不输入联系人为止。

3.7 shanchu()删除函数主界面

原函数代码:

void shanchu()

{

char c;

if(n==0) /*如果通讯录中没有一个记录输出以下部分*/

{

printf("\n\t\t对不起,文件中无任何纪录");

printf("\n\t\t按任意键返回主菜单");

getch();

return;

}

system("cls"); /*清屏*/

printf("\n\t\t----------------- 删除菜单----------------------");

printf("\n\t\t| 1-删除所有2-删除单个|");

printf("\n\t\t| 3-返回主菜单|");

printf("\n\t\t|-------------------------------------------------");

printf("\n\t\t请选择您所所要的服务:");

c=getch(); /*输入的赋予choice*/

switch (c)

{

case '1':shanchu_quanbu();break;

case '2':shanchu_dange();break;

case '3':zhucaidan();break;

default:zhucaidan();break;

}

}

函数功能分析:

通过界面上的数字选项,调用shanchu_quanbu()、shanchu_dange();和zhucaidan()函数来实现不同的删除功能。

3.8 xianshi()显示和查询函数

函数源程序:

void chazhao()

{

char c;

system("cls");

printf("\n\t\t------------------- 显示和查询联系人------------------");

printf("\n\t\t| 1-逐个显示所有2-按姓名查询|");

printf("\n\t\t| 3-按电话查询4-返回主菜单|");

printf("\n\t\t|------------------------------------------------------");

printf("\n\t\t请选择您所所要的服务:");

c=getch();

switch (c)

{

case '1':xianshi();break; /*显示所有号码*/

case '2':chazhao_xingming();break; /*调用按姓名查询函数*/

case '3':chazhao_dianhua();break; /*调用按号码查询函数*/

case '4':zhucaidan();break; /*主菜单*/

}

}

函数功能分析:

首先通过getch();从键盘上输入选项,通过switch case()来调用xianshi()、chazhao_xingming()chazhao_dianhua()三个函数实现不同的功能。

3.9 xianshi()显示所有人函数

函数源程序:

void xianshi()//显示所有联系人函数

{

int i;

system("cls");//清楚屏幕

if(n!=0)

{

printf("\n\t\t----------欢迎您查询通讯录所有联系人信息-------------");

for (i=0;i

{

printf("\n\t\t姓名:%s",txl[i].xingming);

printf("\n\t\t电话:%s",txl[i].dianhua);

printf("\n\t\t地址:%s",txl[i].dizhi);

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

if (i+1

{

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

system("pause");//返回错误信息

}

}

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

}

else /*无联系人*/

printf("\n\t\t通讯录中无任何纪录");

printf("\n\t\t按任意键返回主菜单:");

getch();

return;

}

功能分析:

通过for (i=0;i

3.10 chazhao_xingming()姓名查询函数

函数源程序:

void chazhao_xingming()//按姓名查询

{

int mark=0;

int i;

char name[20];

printf("\n\t\t----------------按姓名查找--------------------");

printf("\n\t\t请输入您要查找的姓名:");

scanf("%s",name);

for(i=0;i

{

if (strcmp(txl[i].xingming,name)==0)

{

printf("\n\t\t------------ 以下是您查找的联系人信息---------------");

printf("\n\t\t姓名:%s",txl[i].xingming);

printf("\n\t\t电话:%s",txl[i].dianhua);

printf("\n\t\t地址:%s",txl[i].dizhi);

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

mark++;

getch();

return;

}

}

if (mark==0)

{

printf("\n\t\t没有找到联系人的信息");

printf("\n\t\t按任意键返回主菜单");

getch();

return;

}

}

功能分析:

通过scanf("%s",name) 从键盘上输入的姓名利用if

(strcmp(txl[i].xingming,name)==0)进行对比,确认是否有该联系人。

3.11 chazhao_dianhua()按号码查询函数

函数源程序:

void chazhao_dianhua()

{

int mark=0;

int i;

char phone[15];

printf("\n\t\t------------------- 按电话查找-------------------------");

printf("\n\t\t请输入电话号码:");

scanf("%s",phone);

for(i=0;i

{

if (strcmp(txl[i].dianhua,phone)==0)//对比查找函数

{

printf("\n\t\t------------ 以下是您查找的学生信息------------");

printf("\n\t\t姓名:%s",txl[i].xingming);

printf("\n\t\t电话:%s",txl[i].dianhua);

printf("\n\t\t地址:%s",txl[i].dizhi);

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

printf("\n\t\t按任意键返回主菜单:");

mark++;

getch();

return;

}

}

if (mark==0)

{

printf("\n\t\t没有找到联系人的信息");

printf("\n\t\t按任意键返回主菜单");

getch();

return;

}

}

功能分析:

通过scanf("%s",name) 从键盘上输入的电话号码利用if (strcmp(txl[i].dianhua,phone)==0)进行对比查找,确认是否有该联系人。

3.12 shanchu_dange()删除单个联系人函数

函数源程序:

void shanchu_dange()//删除单个联系人

{

char c;

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

printf("\n\t\t 1-按姓名删除2-按电话删除");

printf("\n\t\t请选择您所所要的服务:");

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

c=getch();

switch (c)

{

case '1':shanchu_xingming();break;

case '2':shanchu_dianhua();break;

}

}

函数功能分析:

这个函数调用shanchu_xingming()函数和shanchu_dianhua()函数来通过从键盘上输入的姓名或者电话号码来实现删除功能。

3.13 shanchu_quanbu()删除所有联系人函数

函数源程序如下:

void shanchu_quanbu()//删除所有联系人

{

printf("\n\t\t确认删除?(y/n)");

if (getch()=='y')

{

fclose(fp);

if ((fp=fopen("通讯录.txt","w"))==NULL) /*文件空输出*/

{

printf("\n\t\t不能打开文件,删除失败");

readfile();

}

n=0;

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

C程序课程设计报告 --手机通讯录管理系统 姓名:谢骏 学院:珠宝学院 学号:649 班级:141082

一课程设计目的和内容概述 1.目的:加深对《C语言》课程所学知识的理解,进一步巩固C语言编程方法。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,加强动手能力。 2.内容:设计一个简易的手机通讯录管理系统。该题目要求在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,包括时间函数、、绘图函数,以及文件的读写操作等。 其中结构体,函数的调用,算法的设计是尤为重要的。 二题目 手机通讯录管理系统。 [问题描述] 该系统模拟手机通讯录管理系统,实现对手机中的通讯录进行管理 [基本要求] 要能提供以下几种功能: (1)查看功能:选择此功能时,列出下列三类选择:

A:办公类B:个人类C:商务类 (2)当选中某类时,显示出此类所有数据中的姓名和电话号码 (3)添加数据功能:能录入新数据,每个结点包括:姓名,电话号码,分类(可能选项有:w为办公类p为个人类b为商务类),电子邮件。例如:杨春商务类 当录入重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通讯录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。(4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 三程序设计 1.总体设计 首先,因为每个个体有多种信息,所以要建立结构体来储存和整合各个信息。然后利用模块来分别实现程序的各个功能。各个模块用函数来实现。在通过通过主函数来判断输入字母,从而调动函数,实现所需功能。最后将输入的文件保存在文件里,以便重复使用。 2.详细设计

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语言程序设计课程设计-通讯录管理系统

通讯录信息管理系统设计计算机学院计算机科学与技术专业 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语言源程序优秀版)

#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).通讯录: 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语言课程设计通讯录实验报告

太原学院计算机工程系 课程设计报告 课程名称:数据结构课程设计 姓名:苏建花 专业班级:计算机工程系网络三班 指导教师:翟婷婷 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语言程序设计》 课程设计报告 学院:_电气与信息工程学院_ 专业班级:电自专2011-01 学生姓名:蒋洪山学号: 2011630194 设计地点(单位)________ I515 ______________ __ 设计题目:__________个人通讯录管理系统 _____________ 完成日期: 2012 年12月28日 指导教师评语: ______________________ _________________ __________________________________________________________________________________ __________________________________________________________________________________ _____________________________________ __________ _ 成绩(五级记分制):______ __________ 指导教师(签字):________ ________

摘要 本次课程设计的题目为个人通讯录管理系统,要求将程序中所输入的联系人姓名、电话和地址信息这三个数据以文本方式保存在磁盘中,并且能够对所储存的联系人信息进行显示、查询、修改、删除等功能。 我编写的程序从整体上看可分为两个部分,一部分为文件的建立、读取和保存,另一部分为通讯录功能的实现。在文件部分,我通过readfile()函数和writefile()函数从而实现了对磁盘上数据的进行写和读,通过刚开始的界面提示可以知道文件是否建立,以免丢失数据,我还为用户设计了保存退出和不保存退出两大功能供用户做选择。在模块功能实现部分,通过scanf从键盘上输入的数字放到switch() case 循环中来实现调用zengjia()、shanchu()、xiugai()、chazhao()等十五个函数来实现“添加”、“查询和显示”、“修改”、“删除”等不同功能。 关键字:文件、数组、循环、函数

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语言通讯录管理系统程序代码

一、课程设计题目及要求 题目通讯录管理系统 任务:自学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语言课程设计通讯录管理系统

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++程序设计实践 题目通信录管理系统 专业软件工程班级 学号姓名 xx 起止日期 指导教师赵新慧成绩 辽宁石油化工大学计算机与通信工程学院

摘要 本次课程设计任务是通过编写一个通信录管理系统,学习用Visual?C++?开发简单的管理系统。采用Visual?C++?软件为主要开发工具。巩固和加深学生对C++课程的基本知识的理解和掌握,掌握C++编程和程序调试的基本技能,利用C++进行简单软件设计的基本思路和方法,提高运用C++解决实际问题的能力,掌握书写程序设计说明文档的能力使用计算机进行信息管理。实现通信录的管理功能(添加、删除、排序)、按姓名查询的功能,以及把联系人资料保存在文件中,将文件中内容读出来。使用计算机进行系统管理,不仅提高了工作效率,而且大大提高了其安全性,尤其对于复杂的信息管理,计算机能充分地发挥它的优越性,通信录管理系统是每个人不可缺少的部分,在课程设计中,系统开发平台为Windows XP,程序设计语言采用Visual C++,在程序设计中,运用了面向对象解决问题的方法。程序通过调试运行,初步实现了设计目标。 Abstract The curriculum design task is through the preparation of a student achievement ranking management system, learning management system with Visual C++ 6 to develop simple. Using Visual C++ 6 software as the main development tool. To consolidate and deepen the students the basic knowledge of C++ course of understanding and master, master the basic skills of C++ programming, the basic idea and method of software design using C++, to improve the ability to use C++ to solve practical problems, to master the ability to write program design use of computer information management. Realization grade management functions (add, delete, sort), statistical functions (the highest score, the lowest score, average score, pass rate), student ID, name, or the name of course query results function, as well as the students' scores are stored in the file. The use of computer management system, not only

通讯录管理系统(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通讯录管理系统的设计与实现

C通讯录管理系统的设计 与实现 The latest revision on November 22, 2020

目录

通讯录的设计与实现 摘要 随着互联网的不断发展,互联网对我们生活产生的影响越来越大。在日常的生活中,我们需要接触很多不同的人,如何运用互联网技术实现朋友圈通讯录的管理呢这是我们日常生活中经常要面临的问题。本次毕业设计中设计的通讯录管理系统既可以实现对通讯录进行管理,在本地进行通讯录的增加、修改、删除、更新等操作。本次设计的通讯录管理系统主要是了解通讯录管理系统的业务逻辑,熟悉通讯录管理系统的实现方式,模拟了真实的通讯录管理软件,为后续相关内容的学习打下了坚实的基础。 通讯录管理系统是一个专门针对少用户的实用系统,它方便了大家对众多信息的储存和快速查询的功能,大大减少了查找过程的时间,是一个比较实用的通讯录管理系统,。对我们后续学习移动端的通讯录管理也会有很大的帮助。 本设计使用的计算机语言是C++,C++语言是在C语言的基础上作了进一步的强化。C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它的应用范围广泛,具备很强的数据处理能力。作为C语言家族的一种,C++也具备了C 语言所具有的优点,并对其进行了优化封装,是开发者更容易操作运用,所以本次课程设计采用了C++作为系统的开发语言。本通讯录管理系统的主要功能有:建立通讯录的链表、插入通讯录信息、查询通讯录信息、删除通讯录信息,输出通讯录信息,保存到通讯录信息。采用的是面向过程的方法,封装函数功能,调用各个功能函数来实现系统的各个功能。

关键词 通讯录;链表;类; 第一章绪论 课题背景 随着市场经济的发展和人们生活水平的提高,互联网技术也在不断地取得新的成果,近些年移动通讯软件层出不穷,人与人之间的联系越来越便捷,这也使得同时与许多人保持联系成为生活中不可或缺的一部分,而单纯的依靠人脑已经很难记住所有人的联系方式,使用传统的纸面方式记录联系人信息时,在联系人比较多时查找将非常的困难。因此,本设计实现的通讯录成为了许多人保持联系方式的首选。当前在许多软件中都附带了通讯录功能,部分手机及一些手机软件也提供了功能不一的通讯录功能,一定程度上说明了通讯录对我们工作生活的重要性。 目的和意义 本毕业设计可以加深对课堂理论学习的理解,增强动手能力,培养了学生合作的能力,为以后的工作学习打下了坚实的基础。在计算机领域中,信息管理系统是我们在学习和生活中比较常见的系统,通过对通讯录管理系统的业务逻辑进行分析,可以很好的理解信息管理系统的业务逻辑,由于市面上绝大部分的信息管理系统的业务逻辑都存在共性,所以通过通讯录管理系统的设计,可以很好地掌握市面上很多的通讯录管理系统的业务逻辑。同时,通讯录系统也是计算机理论学习过程中最常见的信息管理系统之一,通过对该系统的设计与实现,也可以很好地锻炼学生的实践能力,以及培养学生的计算机逻辑思维。 本系统最求简洁、实用、方便等一些实用性的功能,新建模块上可以实现多添加;查询模块可以根据姓名、性别和电话号码查询,以方便管理员查询自己想要的信息;删除模块上,管理员可以根据自己不想要的或者过时的信息进

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语言程序设计 课题名称:通讯录管理系统设计 指导教师:倪志平 班级:物联网152 姓名:吴肖军 学号: 20153076 成绩评定: 指导教师签字: 二〇一六年七月六日

目录 1 需求分析 (3) 2 总体分析与设计 (3) 2.1总体设计方案 (3) 2.2功能描述 (4) 2.2.1 新增联系人模块 (4) 2.2.2 保存联系人模块 (4) 2.2.3 查询联系人模块 (4) 2.2.4 显示联系人模块 (4) 2.2.5 修改联系人模块 (4) 2.2.6 删除联系人模块 (4) 2.2.7 读取联系人模块 (5) 2.2.8 退出系统模块 (4) 2.3系统流程图 (5) 3 系统实现 (6) 4功能测试 (11) 4.1.1 新增联系人 (11) 4.1.2 查询联系人 (13) 4.1.3 显示联系人 (14) 4.1.4 修改联系人 (15) 4.1.5 删除联系人 (16) 4.1.6 退出系统 (17) 总结 (18) 参考文献 (18)

课程设计目的 1 需求分析 通讯录档案信息采用文件存储,因而要提供文件的输入输出操作;根据联系人信息的变动情况,添加删除记录,因而要提供文件的添加删除操作;根据编号进项查询,所以要提供文件的查找操作;高级编辑功能,就是提供文件的修改操作;显示功能就是显示出通讯录中所有联系人的功能;另外还要提供键盘式选择菜单以实现功能选择。 2 总体分析与设计 1.总体设计 总体设计目标:使用者可以利用本系统对通讯录的各项管理进行操作,根据用户要求自动进行新增联系人,保存联系人,删除联系人,查找所要的联系人,修改所要的联系人,最后将他们清楚地显示在屏幕中。 结合上述分析,该系统应包括一下模块:新增联系人,保存联系人,查询联系人,修改联系人,显示联系人,删除联系人,退出系统。结构图如下。 2.1 总体设计方案

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

#include #include #include #include #define N 100 int M=5; struct student { char num[10];char name[10];char tel[10];}; void myprint(); void mycreat(struct student *p,int); void mydisplay(struct student *p,int); void mysearch(struct student *p,int); void mymodify(struct student *p,int); void mydelete(struct student *p,int); void myadd(struct student *p,int); void main() { char choose='\0',yes_no='\0'; struct student record[N]={0}; do { myprint(); printf("请选择(0-6):"); choose=getche(); switch(choose) { case '1':mycreat(record,M);break; case '2':mydisplay(record,M);break; case '3':mysearch(record,M);break; case '4':mymodify(record,M);break; case '5':myadd(record,M);break; case '6':mydelete(record,M);break; case '0':exit(0); default :printf("\nerror...\n"); } printf("\n继续选择吗(y/n)?\n"); do {yes_no=getch();} while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='Y'||yes_no=='y'); } void myprint() { system("cls");

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

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

通讯录管理系统 一.需求分析 设计题目及需求: (1)查看功能:选择此功能时,列出下列三类选择。A 办公类 B 个人类 C 商务类,当选中某类时,显示出此类所有数据中的姓名和电话号码) (2)增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件。例如:杨春135******** 商务类chuny@https://www.doczj.com/doc/103157835.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();

相关主题
文本预览
相关文档 最新文档