C语言课程设计通讯录管理系统文档格式.docx

上传人:b****6 文档编号:16186423 上传时间:2022-11-21 格式:DOCX 页数:26 大小:305.08KB
下载 相关 举报
C语言课程设计通讯录管理系统文档格式.docx_第1页
第1页 / 共26页
C语言课程设计通讯录管理系统文档格式.docx_第2页
第2页 / 共26页
C语言课程设计通讯录管理系统文档格式.docx_第3页
第3页 / 共26页
C语言课程设计通讯录管理系统文档格式.docx_第4页
第4页 / 共26页
C语言课程设计通讯录管理系统文档格式.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

C语言课程设计通讯录管理系统文档格式.docx

《C语言课程设计通讯录管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计通讯录管理系统文档格式.docx(26页珍藏版)》请在冰豆网上搜索。

C语言课程设计通讯录管理系统文档格式.docx

/*号码*/

charemail[20];

/*邮箱*/

charage[8];

/*年龄*/

charadds[20];

/*住址*/

}Person;

2.2.2主函数及其流程图

定义主函数main()和一系列的功能函数,只有通过这些函数才可实现程序的功能。

每次使用都会调用主函数。

主函数主要是利用switch语句对数据进行处理,流程图如下:

课程设计说明书NO.4

图2.主函数流程图

课程设计说明书NO.5

2.2.3增加函数及其流程图

2.2.3.1.添加通讯录记录流程图:

图3.添加通讯录记录流程图

课程设计说明书NO.6

2.2.3.2.显示通讯录记录流程图:

图4.显示通讯录记录流程图:

课程设计说明书NO.7

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

2.2.3.4.查询通讯录记录流程图:

图6.查询通讯录记录流程图

图5.删除通讯录记录流程图

 

课程设计说明书NO.8

2.2.3.5.修改通讯录记录流程图:

图7.修改通讯录记录流程图

课程设计说明书NO.9

2.3源程序

#include<

stdio.h>

stdlib.h>

string.h>

Personpe[80];

intmenu_select()

charc;

do{

system("

cls"

);

printf("

\t\t*****通讯录*****\n"

\t\t┌───────┐\n"

\t\t│1.添加记录│\n"

\t\t│2.显示记录│\n"

\t\t│3.删除记录│\n"

\t\t│4.查询记录│\n"

\t\t│5.修改记录│\n"

\t\t│6.保存记录│\n"

\t\t│0.退出程序│\n"

\t\t└───────┘\n"

\t\t请您选择(0-6):

"

c=getchar();

}while(c<

'

0'

||c>

6'

return(c-'

}

intInput(Personper[],intn)

{

inti=0;

课程设计说明书NO.10

charsign,x[10];

while(sign!

='

n'

&

sign!

N'

\t编号:

scanf("

\t%d"

&

per[n+i].score);

\t姓名:

\t%s"

per[n+i].name);

\t年龄:

per[n+i].age);

\t电话号码:

per[n+i].num);

\t通讯住址:

per[n+i].adds);

\t电子邮箱:

per[n+i].email);

gets(x);

\n\t是否继续添加?

(Y/N)"

\t%c"

sign);

i++;

return(n+i);

}

voidDisplay(Personper[],intn)

{

inti;

printf("

----------------------------------------------------------------------\n"

/*格式*/

编号姓名年龄电话号码通讯地址电子邮箱\n"

for(i=1;

i<

n+1;

i++)

%-5d%-8s%-6s%-13s%-15s%-15s\n"

per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email);

if(i>

1&

i%10==0)

{

printf("

\t-----------------------------------\n"

\t"

课程设计说明书NO.11

system("

pause"

}

}

printf("

system("

intDelete_a_record(Personper[],intn)

chars[20];

inti=0,j;

\t请输入想删除记录中的名字:

scanf("

%s"

s);

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

=0&

n)i++;

if(i==n)

{

\t通讯录中没有此人!

\n"

return(n);

for(j=i;

j<

n-1;

j++)

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

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

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

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

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

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

\t\t\t已经成功删除!

return(n-1);

voidQuery_a_record(Personper[],intn)

intm;

课程设计说明书NO.12

\t\n请选择查询方式:

\t┌──────┐\n"

\t│1------姓名│\n"

\t│2------电话│\n"

\t│3------地址│\n"

\t│4------返回│\n"

\t└──────┘\n"

请选择:

%d"

m);

while(m!

=1&

m!

=2&

=3&

=4)

输入错误,请重新选择:

if(m==1)

chars[20];

inti=0;

\t请输入想查询的姓名:

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

if(i==n)

return;

\t此人编号:

%d\n"

per[i].score);

\t此人年龄:

%s\n"

per[i].age);

per[i].num);

\t通讯地址:

per[i].adds);

per[i].email);

};

if(m==2)

\t请输入想查询的电话:

while(strcmp(per[i].num,s)!

课程设计说明书NO.13

if(i==n)

\t此人姓名:

per[i].name);

if(m==3)

\t请输入想查询的地址:

while(strcmp(per[i].adds,s)!

{

}

voidChange(Personper[],intn)

inti=0;

\t请输入想修改的记录中的名字:

课程设计说明书NO.14

return;

per[i].score);

\t修改成功!

voidWritetoText(Personper[],intn)

FILE*fp;

/*定义文件指针*/

charfilename[20];

/*定义文件名*/

\t保存到文件\n"

/*输入文件名*/

\t请输入所保存的文件名:

filename);

if((fp=fopen(filename,"

w"

))==NULL)

\t无法打开文件\n"

fprintf(fp,"

******************************************通讯录******************************************\n"

课程设计说明书NO.15

------------------------------------------------------------------------------------------\n"

while(i<

n)

fprintf(fp,"

%-3d\t%-6s\t%-3s\t%-13s\t%-20s\t%-20s\n"

per[i].score,per[i].name,per[i].age,per[i].num,per[i].adds,per[i].email);

***************************************共有%d条记录****************************************\n"

n);

fclose(fp);

/*关闭文件*/

保存成功!

voidmain()/*主函数*/

intn=0;

for(;

;

switch(menu_select())

case1:

\n\t添加记录到通讯录\n"

/*添加记录*/

n=Input(pe,n);

break;

case2:

\n\t\t\t通讯录记录表\n"

/*显示记录*/

Display(pe,n);

case3:

\n\t从通讯录中删除记录\n"

n=Delete_a_record(pe,n);

/*删除记录*/

case4:

\n\t在通讯录中查找记录\n"

课程设计说明书NO.16

Query_a_record(pe,n);

/*查找记录*/

case5:

\n\t修改通讯录中的记录\n"

Change(pe,n);

/*修改数据*/

case6:

\n\t保存功能\n"

WritetoText(pe,n);

/*保存数据*/

case0:

\n\t\t谢谢使用,再见!

/*结束程序*/

\n\t\t"

exit(0);

课程设计说明书NO.17

3.设计结果与分析

3.1运行程序

将源程序编译、链接后生成可执行文件,运行该文件会看到如图8所示界面。

图8.菜单函数界面

运行主函数时,首先调用函数menu();

,该函数主要是利用输出函数printf进行输出,其结图所示。

3.2增加信息

3.2.1输入1显示添加通讯录界面。

图9.添加通讯录界面图

这一函数实现了对字符串赋值的功能[1]。

系统提示通讯录使用者输入相应信息,

课程设计说明书NO.18

然后用scanf函数获取输入数据。

每次输入结束后,系统输出询问是否继续添加的信息,然后执行switch语句,如果返回值是“y”,则继续执行addnewcard()函数添加用户,否则返回主菜单。

3.2.2输入2显示显示通讯录界面。

图10.显示通讯录界面图

这一函数实现了对字符串赋值的功能[2]。

系统提示通讯录使用者输入相应信息,然后用scanf函数获取输入数据。

,然后执行switch语句,如果返回值是“y”,则继续执行函数显示,否则返回主菜单。

3.2.3在主菜单输入3显示删除通讯录界面。

图11.选择删除通讯录记录显示图图12.成功删除通讯录记录显示图

沈阳大学

课程设计说明书NO.19

在主菜单界面输入数字“3”,执行deletecard()函数删除用户。

当通讯录执行者输入要删除学生的姓名,系统会搜索数据库并将搜索结果输出。

然后征求确认。

每次删除成功后系统会询问是否继续删除,然后执行相应操作。

删除后,通讯录里的显示记录显示:

图13.删除后通讯录显示记录图

删除通讯录记录时首先选择出名字,其次在显示删除后程序才真正的删除,再进入显示界面就不会再显示原来所谓信息

课程设计说明书NO.20

3.2.4在主菜单输入4显示查询通讯录界面。

图13.查询通讯录记录界面图

这一函数提示通讯录管理人员可以有姓名、电话、地址三种输入方式,调用scanf函数获取输入信息,然后执行if语句,则会显示查询用户信息信息;

此外在此操作过程中选择1、2、3、分别可以按照姓名、电话号码、家庭住址进行快速查询。

课程设计说明书NO.21

3.3.5在主菜单输入5显示修改通讯录界面。

图14.通讯录选择修改记录图

这一函数实现了对字符串赋值的功能[5]。

每次输入结束后,系统输出询问是否继续修改信息,然后执行if语句,如果返回值是“y”,则继续执行修改信息,否则返回主菜单。

修改后,通讯录里的显示记录:

图15.通讯录修改后显示图

课程设计说明书NO.22

3.3.6在主菜单输入6显示保存通讯录界面。

图16.保存通讯录记录界面图

进入保存功能后,系统会调用voidWritetoText(Personper[],intn)函数

并且提示通讯录管理者关于保存的信息进行记录自动保存。

从而便于我们直接查询。

保存后打开tongxunlu.txt文件的截图:

图17.tongxunlu.txt文件显示图

课程设计说明书NO.23

4.设计体会

往事如观流水,来者如昂高山!

转眼间学习C语言也有半年了。

这次的程序实设计实验是对自己进入

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

当前位置:首页 > 成人教育 > 远程网络教育

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

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