C语言集中上机实验报告通讯录管理Word格式.docx

上传人:b****4 文档编号:17151619 上传时间:2022-11-28 格式:DOCX 页数:18 大小:140.78KB
下载 相关 举报
C语言集中上机实验报告通讯录管理Word格式.docx_第1页
第1页 / 共18页
C语言集中上机实验报告通讯录管理Word格式.docx_第2页
第2页 / 共18页
C语言集中上机实验报告通讯录管理Word格式.docx_第3页
第3页 / 共18页
C语言集中上机实验报告通讯录管理Word格式.docx_第4页
第4页 / 共18页
C语言集中上机实验报告通讯录管理Word格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言集中上机实验报告通讯录管理Word格式.docx

《C语言集中上机实验报告通讯录管理Word格式.docx》由会员分享,可在线阅读,更多相关《C语言集中上机实验报告通讯录管理Word格式.docx(18页珍藏版)》请在冰豆网上搜索。

C语言集中上机实验报告通讯录管理Word格式.docx

typedefstruct

{

charscore;

/*编号*/

charname[10];

/*姓名*/

charnum[15];

/*号码*/

charemail[20];

/*邮箱*/

charage[8];

/*年龄*/

charadds[20];

/*住址*/

}Person;

3、函数的定义

intmenu_select()

intInput(Personper[],intn)

voidDisplay(Personper[],intn)

intDelete_a_record(Personper[],intn)

voidQuery_a_record(Personper[],intn)

voidWritetoText(Personper[],intn)

4、每个函数模板可实现的功能

●添加:

可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。

●显示:

可以以表格形式输出所有通讯录里的记录

●删除:

输入欲删除的那个人的名字后,会自动删除他(她)的记录内容

●查询:

可以选择用姓名、电话、地址三种方式查询

●保存:

输入文件名(带后缀名,如.txt)后,即可将通讯录信息保存到文件

二、流程图

三、

三、程序代码

#include<

stdio.h>

stdlib.h>

string.h>

charname[15];

charpost[15];

/*邮编*/

charqq[20];

/*QQ号*/

Personpe[1000];

intmenu_select()

charc;

do{

system("

cls"

);

printf("

\t***************************************************************\n"

printf("

\t***************欢迎进入*******************\n"

printf("

\t*----重庆邮电大学通信与信息工程学院2010级学生信息管理系统----*\n"

printf("

添加个人信息:

1\n"

"

显示个人信息:

2\n"

删除个人信息:

3\n"

查询个人信息:

4\n"

保存个人信息:

5\n"

退出系统:

0\n"

printf("

\t\t请选择(0-5):

"

c=getchar();

}while(c<

'

0'

||c>

5'

return(c-'

}

intInput(Personper[],intn)

{

inti=0;

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].num);

\t通讯地址:

per[n+i].adds);

\t邮编:

per[n+i].post);

\tQQ号:

per[n+i].qq);

gets(x);

\n\t是否继续添加?

(Y/N)"

\t%c"

sign);

i++;

return(n+i);

}

{

inti;

*---编号姓名电话号码通讯地址邮编QQ号--*\n"

for(i=1;

i<

n+1;

i++)

\t%-5d%-10s%-13s%-15s%-8s%-15s\n"

per[i-1].score,per[i-1].name,per[i-1].num,per[i-1].adds,per[i-1].post,per[i-1].qq);

/*对长度的定义*/

if(i>

1&

i%10==0)

{

printf("

\t***********************************\n"

\t"

system("

pause"

}

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].adds,per[j+1].adds);

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

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

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

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

return(n-1);

voidQuery_a_record(Personper[],intn)

intm;

\t*****************\n"

\t请选择查询方式:

\t姓名:

1\n"

\t电话:

2\n"

\t地址:

3\n"

\t邮编:

4\n"

\tQQ号:

5\n"

\t返回:

6\n"

\t请选择:

scanf("

%d"

m);

while(m!

=1&

m!

=2&

=3&

=4&

=5&

=6)

输入错误,请重新选择:

}

if(m==1)

chars[20];

inti=0;

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

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

if(i==n)

\t对不起!

通讯录中没有此人!

return;

%d\n"

per[i].score);

%s\n"

per[i].name);

\t电话号码:

per[i].num);

per[i].adds);

per[i].post);

per[i].qq);

};

if(m==2)

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

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

if(m==3)

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

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

{

if(m==4)

\t请输入想查询的邮编:

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

if(m==5)

\t请输入想查询的QQ号:

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

}

FILE*fp;

/*定义文件指针*/

charfilename[20];

/*定义文件名*/

\t保存到文件\n"

/*输入文件名*/

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

filename);

if((fp=fopen(filename,"

w"

))==NULL)

\t无法打开文件\n"

return;

fprintf(fp,"

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

*编号姓名电话号码通讯地址邮编QQ号*\n"

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

/*fprintf函数与scanf函数相仿,都是格式化读写函数,读写对象是磁盘文件*/

while(i<

n)

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

per[i].score,per[i].name,per[i].num,per[i].adds,per[i].post,per[i].qq);

***************************************共有%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"

Query_a_record(pe,n);

/*查找记录*/

case5:

\n\t保存功能\n"

WritetoText(pe,n);

/*保存数据*/

case0:

\n\Thankyou!

/*结束程序*/

\n\t\t"

exit(0);

四、各功能的效果

初始界面:

添加个人信息:

显示个人信息

删除个人信息

<

没有记录>

有记录>

查询个人信息

保存个人信息

五、心得体会

通过本次编程对一些简单的运用加深了了解,因为很久没有编程了,对C语言的很多知识都陌生了,通过参考网上的代码和同学的讲解才完成了本次编程。

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

当前位置:首页 > 工程科技 > 环境科学食品科学

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

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