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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C 语言课程综合实验设计

设计题目:同学通讯录程序设计

学院: 计算机与信息科学学院、软件学院班级:2012级教育技术学

*名:***

学号:***************

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语句对数据进行处理,流程图如下:

void main() /*主函数*/

{

int h,flag1,flag2;

char name[20]="zxq",password[10]="931009";

char person[20],password1[10];

printf ("\t\t ************* 通讯录管理系统!*************\n\n");

printf ("\t\t\t 用户登录\n\n");

for(h=0;h!=5;)

{

printf("\t\t\t\t 用户名:");

gets(person);

flag1=strcmp(person,name);

printf("\t\t\t\t 密码:");

gets(password1);

flag2=strcmp(password,password1);

if(flag1==0 && flag2==0)

{

printf("\t\t\t\t 登陆成功!\n\n");

menu();

break;

}

else

{

printf ("\t\t\t 用户名或密码错误!\n\n");

printf ("\t\t\t 请注意:您还剩%d次机会!\n\n",4-h);

h++;

}

}

if (h=5)

printf ("对不起,您输入的用户名或密码有误,已被强制退出。\n");

}

1.2.3增加函数及其流程图

本程序设计具有通讯信息的录入,进行保存、查找、删除、修改、统计等功能,操作界面简洁美观,易于操作。程序用了条件、循环、指针、结构体等知识点,综合了文件的打开和保存编写的。可运用于小的管理软件。软件运用菜单实现交互式管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足的需要。

1.2.3.1.删除通讯录记录流程

图 4. 删除通讯录记录流程图:

int Delete_a_record(Person per[]) /*删除通讯录*/ {

char s[20];

int i=0,j;

printf("\t请输入想删除记录中的名字:");

scanf("%s",s);

while(strcmp(per[i].name,s)!=0&&i

if(i==n)

{

printf("\t通讯录中没有此人!\n");

}

for(j=i;j

{

strcpy(per[j].num,per[j+1].num);

strcpy(per[j].name,per[j+1].name);

strcpy(per[j].sex,per[j+1].sex);

strcpy(per[j].adds,per[j+1].adds);

strcpy(per[j].email,per[j+1].email);

per[j].score=per[j+1].score;

}

printf("\t\t\t已经成功删除!\n");

n=n-1;

return (n);

}

1.2.3.2. 文件写入和读取功能:

该段程序可以通过文件指针,for循环,while循环,if循环可以实现文件的写入和读取功能。

void WritetoText(Person per[]) /*写入文件*/

{

int i=0;

FILE *fp; /*定义文件指针*/ char filename[20]; /*定义文件名*/ printf("\t保存到文件\n"); /*输入文件名*/

printf("\t请输入所保存的文件名:");

scanf("\t%s",filename);

if((fp=fopen(filename,"w"))==NULL)

{

printf("\t无法打开文件\n");

system("pause");

return;

}

while(i

{

fprintf(fp,"%-3d%-6s\t%-3s\t%-13s\t%-20s\t%-20s\n",per[i].score,per[i].name,pe r[i].sex,per[i].num,per[i].adds,per[i].email);

i++;

}

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

printf("保存成功!\n");

}

相关文档
最新文档