当前位置:文档之家› C语言编程-通讯录

C语言编程-通讯录

C语言编程-通讯录
C语言编程-通讯录

C语言编程-通讯录

#include /*字符函数和字符串函数*/

#include /*字符模式函数(调用getch()函数)*/

#include /*输入输出函数*/ int i;

struct friend /*电子通讯录结构定义*/

{

char num[5]; /*编号*/

char name[11]; /*名字*/

char sex[2]; /*性别*/

char phone[12]; /*电话*/

char address[26]; /*地址*/

char post_num[11]; /*邮编*/

}friends[50];

FILE *fp;

void Data_load() /*数据载入函数*/

{ int j;

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

if(fp==NULL) /*判断是否存在friend.txt,如果不存在则创建*/ { fp=fopen("friend.txt","w");

i=0;

}

else

{ for(i=0;i<50;i++)

{ j=fgetc(fp);

if(j==EOF)

/*判断是否到了文件尾*/

return;

fseek(fp,i*sizeof(struct friend),0);

fread(&friends[i],sizeof(struct friend),1,fp); /*从文件中读取一条记录*/

}

}

}

void Menu_Select() /*显示菜单界面*/

{

printf(" \n");

printf(" \n");

printf(" \n");

printf(" Address Book Management System \n");

printf(" \n");

printf(" ======================\n"); printf(" 1.Address book data Entry\n"); /*数据输入*/

printf(" 2.Address Book data Show\n"); /*数据显示*/

printf(" 3.Address Book data Search\n"); /*数据查找*/

printf(" 4.Address Book data Alter\n"); /*数据修改*/

printf(" 5.Address Book data Insert\n"); /*数据插入*/

printf(" 6.Address Book data Delete\n");

/*数据删除*/

printf(" 7.Address Book data Save\n"); /*数据保存*/

printf(" 0.Exit\n"); /*退出*/

printf(" ======================\n"); printf( " Please chioce 0-7 \n\n");

}

int Data_check(int k,char ID[5]) /*检查通讯录中是否存在相同ID或ID输入格式错误*/

{

int j;

if(ID[0]=='0')

k=1;

for(j=0;ID[j]!='\0';j++)

{

if(ID[j]>'9'||ID[j]<'0')

k++;

}

for(j=0;j

{

if(strcmp(ID,friends[j].num)==0)

k++;

}

return k;

}

void Data_Input() /*数据输入函数*/

{

char yes_no='1';

char ID[5];

int k=0;

if(i>=50)

printf("\n\n Storage full!\n\n");

if(i<50)

{

printf("

***************************************** *******************************\n");

printf(" ******************* Add Address Book Information ***********************\n");

printf("

***************************************** *******************************\n");

printf("

***************************************** *******************************\n");

}

for(;i<50;i++)

{

do

{

switch(yes_no)

{

case '1': /*如果输入为'1',则进行数据输入*/

printf(" ****** No.(4) Name(10) Sex(M/F) Phone(11) Address(25) Zip_Code(10)*******\n");

scanf("%s%s%s%s%s%s",ID,friends[i].name,f riends[i].sex,friends[i].phone,friends[i].address,f riends[i].post_num);

Data_check(k,ID);

while(Data_check(k,ID)>0) /*检查输入的ID是否已存在,如果存在重新输入*/

{

printf("The No. already exists Or The No. isn't correct, please re-enter\n");

scanf("%s",ID);

Data_check(k,ID);

}

strcpy(friends[i].num,ID);

if(i<49)

{

printf("\n\n Whether to be continue? Y(1)/N(0) \n\n");

yes_no=getch();

}

if(i>=49)

printf("\n\n

Storage full!\n\n");

break;

case '0':

break;

default:

yes_no=getch();

}

}while(yes_no!='1'&&yes_no!='0'); /*如果输入的不是'1'或'0'则重新输入*/

if(yes_no=='0')

/*如果输入'0'则退出输入函数*/

{

i++;

break;

}

}

}

int The_Size(char a[],char b[]) /*比较两个ID的大小*/

{

int j,t;

if((j=strlen(a)-strlen(b))>0) t=1;

if((j=strlen(a)-strlen(b))<0) t=-1;

if((j=strlen(a)-strlen(b))==0)

{

if(strcmp(a,b)>0) t=1;

if(strcmp(a,b)<0) t=-1;

if(strcmp(a,b)==0) t=0;

}

return t;

}

void Data_Show() /*数据输出函数*/

{ int j,k;

char m;

struct friend t;

printf("

***************************************** ***************************\n");

printf(" No. Name Sex Phone Address Zip_Code \n");

printf("

***************************************** ***************************\n");

for(j=0;j

/*对数据进行排序*/

{ for(k=0;k

{

if(The_Size(friends[k].num,friends[k+1].num)= =1)

{

t=friends[k];

friends[k]=friends[k+1];

friends[k+1]=t;

}

}

}

for(j=0;j

/*数据输出*/

{

printf("%4s %10s %4s %11s %20s %10s\n",fri ends[j].num,friends[j].name,friends[j].sex,friend s[j].phone,friends[j].address,friends[j].post_num );

m=getch();

if(m==' ')

break;

}

printf("\n\n There are %d data in the book .\n\n",i);

}

void Data_Search() /*数据查找函数*/

{

char k;

int j,a,b;

char ID[5];

char NAME[11];

printf("Search by No. : 1\n");

printf("Search by name : 2\n");

k=getch();

switch(k)

{

case '1': /*按ID查找*/

a=0;

printf("\n\n Please enter the No.\n\n");

scanf("%s",ID);

for(j=0;j

{

if(strcmp(ID,friends[j].num)==0)

{

a++;

printf(" No. Name Sex Phone Address Zip_Code \n");

printf("%4s %10s %4s %11s %20s %10s\n",fri ends[j].num,friends[j].name,friends[j].sex,friend s[j].phone,friends[j].address,friends[j].post_num );

}

}

if(a==0)

printf(" Do not have to find the No.!\n\n");

break;

case '2': /*按姓名查找*/

b=0;

printf("\n\n Please enter the Name\n\n");

scanf("%s",NAME);

for(j=0;j

{

if(strcmp(NAME,friends[j].name)==0)

{

b++;

printf(" No. Name Sex Phone Address Zip_Code \n");

printf("%4s %10s %4s %11s %20s %10s\n",fri ends[j].num,friends[j].name,friends[j].sex,friend s[j].phone,friends[j].address,friends[j].post_num );

}

}

if(b==0)

printf(" Do not have to find the Name!\n\n");

break;

default:

printf("\n\n Error!\n");

break;

}

}

void Data_Insert() /*数据插入函数*/

{ if(i>=50)

printf("\n\n Storage full!\n\n");

if(i<50)

{

char ID[5];

int k=0;

printf("Please enter the No. that you want to insert.\n");

scanf("%s",ID);

Data_check(k,ID);

printf("%d",Data_check(k,ID)); /*检查所需插入的ID是否已存在,如果存在重新输入*/

while(Data_check(k,ID)>0)

{

printf("The No. already exists Or The No. isn't correct, please re-enter\n");

scanf("%s",ID);

Data_check(k,ID);

}

strcpy(friends[i].num,ID);

/*插入数据*/

printf(" ****** Name(10) Sex(M/F) Phone(11) Address(30) Zip_Code(10)*******\n");

scanf("%s%s%s%s%s",friends[i].name,friends [i].sex,friends[i].phone,friends[i].address,friends [i].post_num);

i++;

}

}

void Data_Delete() /*数据删除函数*/

{

int k,t=0;

char ID[5];

printf("\n\n Please enter the No. need to be deleted\n\n");

scanf("%s",ID);

for(k=0;k

{

if(strcmp(friends[k].num,ID)==0)

{

t++;

break;

}

}

if(t==0)

printf("\n\n The No. does not Exist!\n\n");

if(t>0)

{

for(;k

/*删除位置前的元素顺序前移*/

{

friends[k]=friends[k+1];

}

printf("\n\n Delete success!\n\n");

i=i-1;

}

}

void Data_Alter() /*修改函数*/

{

int k,t=0;

char ID[5];

printf("\n\n Please enter the No. to be Amended\n\n");

scanf("%s",ID);

for(k=0;k

{

if(strcmp(friends[k].num,ID)==0)

{

t++;

break;

}

}

if(t==0)

printf("\n\n The No. does not Exist!\n\n");

if(t>0)

{

strcpy(friends[k].num,ID);

printf(" ****** Name(10) Sex(M/F) Phone(11) Address(30) Zip_Code(10)*******\n");

scanf("%s%s%s%s%s",friends[k].name,friend s[k].sex,friends[k].phone,friends[k].address,frie nds[k].post_num);

printf("\n\n Alter Success!\n\n");

}

}

void Data_Save() /*数据保存函数*/

{

int j;

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

for(j=0;j<=i-1;j++)

{

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

}

printf("\n\n Save Success!\n\n");

}

void Exit() /*退出函数*/

{

char flag;

printf(" Save or Not? (Y/N)\n"); /*判断是否保存*/

do{

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语言程序设计学生通讯录管理系统 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

#define null 0 struct record { char name[20]; char phone[20]; char adress[40]; char postcode[10]; char e_mail[30]; }student[500]; struct LinkList { struct record US; struct LinkList *next; }a; struct LinkList *head=null; int num=0; FILE *fp; int menu_select(); int adduser(); int list(); int search(); int display(); int add();

int listbyname(); int dele(); int save(); int exit(); void main() { system("cls"); for(;;) { switch(menu_select()) { case 0:adduser();break; case 1:list();break; case 2:search();break; case 3:add();break; case 4:dele();break; case 5:save();break; case 6:exit(0); } } } menu_select() {

char s[80]; int a; printf("*_* press any key enter menu! *_* \n"); getch(); system("cls"); printf("\t\t********************MENU*********************\n\n"); printf("\t\t 0. 输入记录\n"); printf("\t\t 1. 显示记录 \n"); printf("\t\t 2. 按姓名查找\n"); printf("\t\t 3. 插入记录 \n"); printf("\t\t 4. 删除记录\n"); printf("\t\t 5. 记录保存文件\n"); printf("\t\t 6. Quit\n"); printf("\t\t***********************************************\n"); do{ printf("\n Enter you choice(0~11):"); scanf("%s",s); a=atoi(s); } while (a<0||a>11); return a; } adduser()

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

一、实践的目的和要求 加深对C语言课程所学知识的理解,进一步巩固C语言算法规则.学会编制结构清晰.风格良好.数据结构适当的C程序,从而具备解决综合性问题的能力. 二、内容 在熟练掌握C语言的基础知识:数据类型(整型.实型.字符型.指针.数组.结构等); 运算类型(算术运算.逻辑运算.自增自减运算.赋值运算等);程序结构(顺序结构.判断选择结构.循环结构);大程序的功能分解方法(即函数的使用)等.进一步掌握各种函数的应用以及文件的读写操作等. 三、实验任务:通讯录 设计要求:实现菜单设计,使用数据文件保存和修改,应用结构体和指针 功能要求:通讯录信息生成,存储,查询,修改,插入,删除,打印等. 四、设计思路 1.通讯录的主要信息包括:编号,姓名,性别,联系电话.住址,邮编. 2.用结构体数组来存储信息,有Data_Input函数来实现信息的录入,用Data_Show函 数来显示打印信息,用Data_Sreach函数来查找信息,用Data_Insert函数来插入信 息,用Data_Alter 函数来修改信息,用Data_Delete函数来删除信息,用Data_Save 函数来保存信息,用Exit函数来退出通讯录. 3.小组分工,每个人分配几个函数,按情况进行分配任务. 五、程序代码 #include/*字符函数和字符串函数*/ #include/*字符模式函数(调用getch()函数)*/ #include/*输入输出函数*/ int i; struct friend/*电子通讯录结构定义*/ { char num[5]; /*编号*/ char name[11]; /*名字*/ char sex[2]; /*性别*/ char phone[12]; /*电话*/ char address[26]; /*地址*/ char post_num[11]; /*邮编*/ }friends[50]; FILE *fp; void Data_load() /*数据载入函数*/ {int j; fp=fopen("friend.txt","r+"); /*打开文件friend.txt*/

c语言课程设计学生通讯录管理系统精编版

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

题目:学生通讯录管理系统任务说明:主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能:①记录通讯录内的人员的学号、姓名、地址、电话号码。 ②显示所有人员的信息。 ③通过输入姓名查找人员信息。 ④通过输入姓名查找到要删除的人员信息,然后可以进行删除。 ⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。 ⑥添加人员信息。 系统功能描述: 本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。 各按钮的功能如下: 查找记录:以姓名为关键字,查找并显示该记录。若查找不到,则显示“好象没有”; 添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录; 修改记录:修改当前记录,显示当前记录。姓名为关键字,不允许修改; 删除记录:删除当前记录,然后显示第一条记录; 第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动; 前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;

后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动; 最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动; 加载:从文件中掉入已保存的通讯录数据; 保存:保存通讯录数据; 退出:退出系统; 设计思路: 根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。 图1 系统功能模块图 软件中使用的结构体和结构体数组,如: struct callmember { char name[20]; char address[20]; char code[20]; char callnumber[20];

C语言同学通讯录程序设计

C 语言课程综合实验设计 设计题目:同学通讯录程序设计 学院: 计算机与信息科学学院、软件学院班级:2012级教育技术学 姓名:曾雪庆 学号:222012321092022 2013年6月14日

1.题目功能分析以及整体思路 1.1整体设计思路 建立一个函数,用来添加、显示、删除、查询、修改、保存,读取和统计通讯录等信息,完成通讯录的功能。主函数采用密码,保护了通讯录数据,可以调用8个子函数,分别完成添加记录、显示记录、删除记录、查询记录、修改记录、保存记录、读取记录、统计记录、退出系统等功能。在主函数中可以以1、2、3、4、5、6、7、8、0数字键分别可以执行某个功能模块。 1.2程序设计 1.2.1根据图1定义数据类型建立函数 typedef struct { long score; /*学号*/ char name[10]; /*姓名*/ char sex[8]; /*性别*/ char adds[20]; /*工作单位*/ char num[15]; /*电话号码*/ char email[20]; /*邮箱*/ }Person; Person pe[80]; 1.2.2主函数设置密码和调用函数 主函数通过for 循环和字符比较函数可以实现密码功能,登陆成功后可以调用menu 通讯录信息管理系统 添加记录 显示记录 删除记录 保存记录 查询记录 修改记录 退出程序 读取记录 统计记录

函数。我们定义的menu 函数主要是利用switch 语句对数据进行处理,流程图如下: 开 始 选择1 Y 添加记录 选择2 Y Y Y Y Y 保存记录 修改记录 查找记录 删除记录 显示记录 选择6 选择5 选择4 选择3 N N N N N N 结 束 选择8 选择7 读取记录 统计记录

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

中国地质大学 本科生C语言课程论文报告 课程名称C语言课程设计 教师姓名 本科生姓名 本科生学号20101001298 本科生专业应用化学 所在院系材料与科学学院 类别: 本科生 日期: 2012年7月10日

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

1.课程论文题目 (1)、题目名称:手机通讯录管理系统 (2)、题目要求 ①录入人员的编号、姓名、个人邮箱、地址、联系电话。 ②显示所有人员的信息。 ③通过输入姓名查找人员信息。 ④通过输入姓名查找到要删除的人员信息,然后可以进行删除,回显当前通讯录信息。 ⑤通过输入姓名查找到要修改的人员信息,然后依次进行信息修改。 ⑥添加人员信息。 2.程序设计思路 分析整个系统,根据以上的需求分析及题目要求,可将整个系统的设计分为以下五个模块:保存信息,信息输入、录入比赛结果、查询信息、退出.(每个功能模块都标注函数名称,如图1) A、需求分析:根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能所以应有显示、查找等操作。 B、总体设计:根据上面的需求分析,可以将这个系统的设计分为1添加模块2显示模块3删除模块 4 查询模块 5 修改模块 6 保存模块。 C、数据结构:数据结构采用结构体数组,包括姓名,归属地,电话号

C语言程序设计学生通讯录管理系统

#include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" #include "stdlib.h" #define null 0 struct record { char name[20]; char phone[20]; char adress[40]; char postcode[10]; char e_mail[30]; }student[500]; struct LinkList { struct record US; struct LinkList *next; }a; struct LinkList *head=null; int num=0; FILE *fp; int menu_select(); int adduser(); int list(); int search(); int display(); int add(); int listbyname(); int dele(); int save(); int exit(); void main() { system("cls"); for(;;) { switch(menu_select()) { case 0:adduser();break; case 1:list();break;

case 2:search();break; case 3:add();break; case 4:dele();break; case 5:save();break; case 6:exit(0); } } } menu_select() { char s[80]; int a; printf("*_* press any key enter menu! *_* \n"); getch(); system("cls"); printf("\t\t********************MENU*********************\n\n"); printf("\t\t 0. 输入记录\n"); printf("\t\t 1. 显示记录\n"); printf("\t\t 2. 按姓名查找\n"); printf("\t\t 3. 插入记录\n"); printf("\t\t 4. 删除记录\n"); printf("\t\t 5. 记录保存文件\n"); printf("\t\t 6. Quit\n"); printf("\t\t***********************************************\n"); do{ printf("\n Enter you choice(0~11):"); scanf("%s",s); a=atoi(s); } while (a<0||a>11); return a; } adduser() { printf("\n\t\t**************** 请输入用户信息****************\n"); printf("\n\t\t输入姓名:"); scanf("%s",&student[num].name); printf("\n\t\t输入电话号码:"); scanf("%s",&student[num].phone); printf("\n\t\t输入地址:"); scanf("%s",&student[num].adress); printf("\n\t\t输入邮编:");

C语言课程设计报告(通讯录)

面向过程程序设计(C语言)课程设计 设计说明书 通讯录系统 起止日期:2011年01 月03 日至2011年01 月08 日学生姓名XXX 班级 学号 成绩 指导教师(签字) 计算机与通信学院 2011 年01 月08 日

一、课题任务 设计一个通讯录管理系统。 课题的主要任务是: 1.对通讯录信息有添加、查找、显示、保存、删除、修改等操作功 能。 2.可以将输入的数据保存在文本文件中,并可以将其调出使用。 我的主要任务是编写主函数,查找模块和修改模块。 二、设计要求 建立通讯录信息,信息至少包含姓名、住址、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、E-mail、QQ等。 该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修改,按姓名、单位、分类方式查找。 将通讯录保存在文件中。 能够输出通讯录中的信息。 二、程序的功能设计 创建:创建通讯录文件并对其命名 添加:添加通讯录记录 输出:显示通讯录记录 删除:删除通讯录记录 查找:查询通讯录记录 修改:修改通讯录记录 保存:将信息保存到文件中 四、程序的数据设计 该系统用下面六个功能模块编写,每个模块执行不同的功能,体现了模块化设计的思想。下面六个模块都是利用C语言文件,向文件中追加数据、 修改数据、查询数据和删除数据。 创建:用fopen()建立一个文本文件,然后用fprintf()向其中输入数据(例如,向文件中输入“姓名”,“地址”等),并对文件进行命 名。 添加:可以添加通讯录记录,利用C语言文件,向文件中按顺序输入姓名、住址、单位、固定电话、手机号码、分类(如同事、朋友、同学、家 人等)、E-mail、QQ,再用fclose()函数关闭并保存文件。 输出:也是用通过循环依次输出文件中的数据,即输出所有通讯录里的记录。

C语言通讯录设计

C语言程序设计课程设计报告 信息通讯录 一:设计目的 1.掌握结构化程序设计的基本思想; 2.熟练掌握结构及数组的设计和应用; 3.了解综合系统设计的基本原理;

4.提高C语言程序设计的综合应用能力。 二:基本数据结构设计 一:程序功能简介 1.实现通讯录系统中,添加新记录、删除记录、显示记录信息、按名字查找信息和退出系统等功能。 2.实现录入人员的编号、姓名、个人邮箱、地址、联系电话。因此采取结构体来实现这些功能。如下: /* 定义通讯录*/ typedef struct { char num[N]; char name[20]; char tele[15]; char add[20]; char emal[15]; } 三:系统结构设计 本系统设计的函数是由一个主函数几个子函数组成的。系统结构设计说明了整个系统的功能模块结构以及调用关系,本设计采用自顶向下的结构化方法,将每个模块自顶向下展开。系统功能模块图如图1所示: 在该模块中,提供系统主菜单,用户通过主菜单实现添加新记录、删除 记录、显示记录信息、按名字查找信息和退出系统等功能。 图1 系统功能模块图

图2 主函数流程图 2.菜单模块 提供用户可选择的项目,用户可以通过选择该项前的代码来实现想要实现的功能,其流程图如图3所示:

3.输入通讯录模块 将结构体数组分成几个数组分别对每个数组赋值,用for 循环对不同地址的数组分别赋值。其流程图如图4所示: 4. 其流程图如图5所示: 假 图4 输入函数流程图

图5显示函数流程图 5.find函数模块 find函数通过输入姓名与原通讯录中存储的姓名,两字符串的比较,找到与输入姓名相同的姓名的位置,其流程图如图6所示:

c语言程序设计通讯录管理系统

c语言程序设计通讯录 管理系统 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

1.需求分析根据题目要求,通讯录保存在文件中,要提供文件的输入和输出功能;还有就是要提供通讯录添加(个人信息包括姓名、学号、年龄、住址、电子邮件等)、删除、显示、修改等基本功能。 2.概要设计 系统总体设计是信息的输入、信息的编辑和退出。系统功能模块如下: 1.添加通讯录; 2.输出通讯录; 3.查找通讯录; 4.修改通讯录; 5.删除通讯录; 6.退出通讯录; 3.详细设计 1.通讯录里无信息,所以要添加信息。用键盘逐个输入通讯录里联系人的信息。

2.输出通讯录用于让使用者观看通讯录里所有的信息。 3.查找通讯录是让使用者可以通过电话或姓名来查找通讯录里的联系人。

4.修改通讯录是让使用者通过姓名查找到通讯录里的联系人,然后其作出修改。 5.删除通讯录是用来按照联系人的姓名或电话来单独删除通讯录中一些不想要的联系人。还可以集体删除通讯录中的联系人。

6.退出通讯录系统。 4.主要源程序代码#include <> #include <> #include <> #include <> struct record { char name[20]; char age[20]; char phone[20]; char adress[40]; char number[30]; char e_mail[20]; }contact[500]; int NO=0; FILE *fp; void mainmenu(); void newrecord(); void browsemenu(); void searchmenu(); void searchname(); void searchphone();

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

C语言课程设计通讯录 实验报告 Revised as of 23 November 2020

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

3.加强分析和解决问题的能力; 4.提高实践动手能力,将知识化为实际成果 题目与设计要求 (1)题目:通讯录 (2)设计要求 a、建立通讯录信息,信息至少包含姓、名、电话号码、住址、分类(如同 事、朋友、同学、家人等)等。 b、该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修 改,按姓名、姓氏方式查找。 c、将通讯录保存在文件中。 d、能够输出通讯录中的信息。 本程序设计的知识点 (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 、功能设计 添加:添加通讯录记录 修改:修改通讯录记录 删除:删除通讯录记录 查找:查询通讯录记录 显示:显示通讯录记录 统计:统计通讯录数目 需求分析

c语言程序设计——简单的通讯录系统(实验报告)

C语言课程设计报告书 实验题目通讯录管理系统 一、实验目的 通过进行计算机实践,更加系统地理解和掌握C语言的基本概念、语言特点和编程技巧。利用系统提供的标准函数和自定义函数进行程序设计,培养利用C语言设计综合程序的能力。 二、实验内容 在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用。 三、需求分析 本学通讯录管理系统包含输入信息,显示信息,查询信息, 修改信息,追加信息,删除信息,修改密码,七大功能.其中查询模块又分为按姓名查找,按号码查找. 输入信息(Input) 显示信息(Output) 查询信息(Look) 修改信息(Change) 追加信息(Add) 删除信息(Delete) 修改密码(Key) 四.概要设计 1.系统分析 功能模块图:总目录以及下属的各个模块,这样可以使得程序的书写脉络清晰流畅。

程序结构图 2、模块功能说明 输入信息模块: 调用input()录入用户的通讯信息。 输出信息模块: 调用output()建立循环,输出全部通讯录信息。 查询信息模块:调用look()函数按照姓名、号码等通讯信息进行查找 追加信息模块:调用Add()追加通讯录信息 修改信息模块:调用change()函数按照姓名、号码、地址等通讯信息进行选择性的修改 删除信息模块: 调用delete()函数删除一条通讯录信息 修改密码模块:调用save_key()函数核对两次输入的新密码若相同保存新密码

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

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

目录 一.问题描述 (2) 显示模块 (3) 查找模块……………………………………………4.. 添加模块 (6) 删除模块 (8) 修改模块 (9) 三、文件的读取与保存 (11) 五、调试与运行结果 (18) 六、计算机学院课程设计评定意见

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

运用switch()进行操作:case'1': 显示功能,list()函数

说明:利用for循环,逐个输出已保存的内容 代码如下: ame[0]) { printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq); } }printf("\t\t\t----------------END--------------\n"); } case'2': 查找功能,search()函数

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

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

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

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

二、概要设计 根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。 三、详细设计 1、主函数; 主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。 流程图 N

【程序】 int main() ***********\n"); printf("\t\t**********************************************\n"); scanf("%d",&n); f or(i=0;i

c语言程序设计通讯录管理系统

1.需求分析 根据题目要求,通讯录保存在文件中,要提供文件的输入和输出功能;还有就是要提供通讯录添加(个人信息包括姓名、学号、年龄、住址、电子邮件等)、删除、显示、修改等基本功能。 2.概要设计 系统总体设计是信息的输入、信息的编辑和退出。系统功能模块如下: 1.添加通讯录; 2.输出通讯录; 3.查找通讯录; 4.修改通讯录; 5.删除通讯录; 6.退出通讯录; 3.详细设计 1.通讯录里无信息,所以要添加信息。用键盘逐个输入通讯录里联系人的信息。 2.输出通讯录用于让使用者观看通讯录里所有的信息。

3.查找通讯录是让使用者可以通过电话或姓名来查找通讯录里的联系人。 4.修改通讯录是让使用者通过姓名查找到通讯录里的联系人,然后 其作出修改。

5.删除通讯录是用来按照联系人的姓名或电话来单独删除通讯录中一些不想要的联系人。还可以集体删除通讯录中的联系人。

6.退出通讯录系统。 4.主要源程序代码 #include #include #include #include struct record { char name[20]; char age[20]; char phone[20]; char adress[40]; char number[30]; char e_mail[20]; }contact[500]; int NO=0; FILE *fp; void mainmenu(); void newrecord(); void browsemenu(); void searchmenu();

c语言课程设计学生通讯录管理系统方案

题目:学生通讯录管理系统 任务说明: 主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能: ①记录通讯录的人员的学号、、地址、。 ②显示所有人员的信息。 ③通过输入查找人员信息。 ④通过输入查找到要删除的人员信息,然后可以进行删除。 ⑤通过输入查找到要修改的人员信息,然后可以进行修改。 ⑥添加人员信息。 系统功能描述: 本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。 各按钮的功能如下: 查找记录:以为关键字,查找并显示该记录。若查找不到,则显示“好象没有”; 添加记录:将当前记录按序加入通讯录,然后显示第一条记录; 修改记录:修改当前记录,显示当前记录。为关键字,不允

许修改; 删除记录:删除当前记录,然后显示第一条记录; 第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动; 前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动; 后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动; 最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动; 加载:从文件中掉入已保存的通讯录数据; 保存:保存通讯录数据; 退出:退出系统;

设计思路: 根据要求,录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。 图1 系统功能模块图 软件中使用的结构体和结构体数组,如: struct callmember { char name[20]; char address[20]; char code[20]; char callnumber[20]; }; 对用户的信息进行保存,他们都以二进制的形式读写。 其中:

C语言程序设计报告-个人通讯录

南京航空航天大学金城学院 《C语言程序设计》课程设计报告个人通讯录系统 学号:姓名: 学号:姓名: 日期:

目录 一、需求分析: (3) 二、程序的主要功能: (3) 三、程序运行平台: (3) 四、系统总框架图: (6) 五、程序类的说明: (6) 六、模块分析: (8) 七、比较有特色的函数: (9) 八、存在的不足与编程体会 (10) 九、程序源代码: (10)

一、需求分析 各类存储和通信电子产品都带有通讯录的功能,可以对联系人进行简单的信息管理和存储。 二、程序的主要功能 用户信息界面美观、简洁,采用菜单式显示功能选择; 能够从磁盘文件输入和输出数据; 能够对联系人信息进行增、删和改的操作; 能够根据联系人的姓名的拼音顺序从高到低排序; 三、程序运行平台 VC6.0 运行程序“perosnalcontact.exe”,进入登录界面如下 **************************** * * * * * 通讯录文件不存在! * * 通讯录文件已建立! * * * * * **************************** 按任意键进入主菜单 请输入您的数字选择: 一、按下任意键进入主菜单 您好! 欢迎使用通讯录! 1: 添加个人信息 2: 查询个人信息 3: 删除个人信息 4: 修改个人信息 5: 信息排序 6: 输出全部信息 7: 写入文件 8: 读取文件 9: 删除所有 0: 退出 请输入您的数字选择: 选择1进入添加信息模块: 请输入您要添加的联系人的信息: 请输入姓名:

选择2进入查询个人信息模块: 欢迎使用查询菜单 1-按姓名查询 2-按QQ查询 3-返回主菜单 请输入您的选择 选择3进入删除个人信息模块 删除菜单 1-删除单个 2-返回主菜单 请输入您的数字选择: 选择4.进入修改个人信息模块 1-按姓名修改 请输入您的数字选择: 选择5.进入联系人排序模块 排序菜单 1-按姓名排序 2-返回主菜单请输入您的数字选择: 选择6.进入输出信息模块 *************** 以下为通讯录所有信息************ ________________________________ 名字:13213 性别:2144444444444 手机号码:44444444444 电子邮件:44444444444 QQ号码:444444444 ________________________________ ************************************************ 请按任意数字键返回主菜单 选择7.进入写入文件模块

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

C语言课程设计 班级学号 学生姓名 提交日期 成绩 评语及教师签名: 电子信息系

一、实践的目的和要求 加深对C语言课程所学知识的理解,进一步巩固C语言算法规则.学会编制结构清晰.风格良好.数据结构适当的C程序,从而具备解决综合性问题的能力. 二、内容 在熟练掌握C语言的基础知识:数据类型(整型.实型.字符型.指针.数组.结构等); 运算类型(算术运算.逻辑运算.自增自减运算.赋值运算等);程序结构(顺序结构.判断选择结构.循环结构);大程序的功能分解方法(即函数的使用)等.进一步掌握各种函数的应用以及文件的读写操作等. 三、实验任务:通讯录 设计要求:实现菜单设计,使用数据文件保存和修改,应用结构体和指针 功能要求:通讯录信息生成,存储,查询,修改,插入,删除,打印等. 四、设计思路 1.通讯录的主要信息包括:编号,姓名,性别,联系电话.住址,邮编. 2.用结构体数组来存储信息,有Data_Input函数来实现信息的录入,用Data_Show函 数来显示打印信息,用Data_Sreach函数来查找信息,用Data_Insert函数来插入信 息,用Data_Alter 函数来修改信息,用Data_Delete函数来删除信息,用Data_Save 函数来保存信息,用Exit函数来退出通讯录. 3.小组分工,每个人分配几个函数,按情况进行分配任务. 五、程序代码 #include/*字符函数和字符串函数*/ #include/*字符模式函数(调用getch()函数)*/ #include/*输入输出函数*/ int i; struct friend/*电子通讯录结构定义*/ { char num[5]; /*编号*/ char name[11]; /*名字*/ char sex[2]; /*性别*/ char phone[12]; /*电话*/ char address[26]; /*地址*/ char post_num[11]; /*邮编*/ }friends[50]; FILE *fp; void Data_load() /*数据载入函数*/ {int j; fp=fopen("friend.txt","r+"); /*打开文件friend.txt*/

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