C语言程序设计通讯录实践报告.docx

上传人:b****2 文档编号:23103643 上传时间:2023-04-30 格式:DOCX 页数:23 大小:94.09KB
下载 相关 举报
C语言程序设计通讯录实践报告.docx_第1页
第1页 / 共23页
C语言程序设计通讯录实践报告.docx_第2页
第2页 / 共23页
C语言程序设计通讯录实践报告.docx_第3页
第3页 / 共23页
C语言程序设计通讯录实践报告.docx_第4页
第4页 / 共23页
C语言程序设计通讯录实践报告.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

C语言程序设计通讯录实践报告.docx

《C语言程序设计通讯录实践报告.docx》由会员分享,可在线阅读,更多相关《C语言程序设计通讯录实践报告.docx(23页珍藏版)》请在冰豆网上搜索。

C语言程序设计通讯录实践报告.docx

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

一、任务与具体要求

设计一个某公司通讯录管理系统,以解决传统客户信息管理方式的诸多不便和弊端。

二、设计说明书包括的内容

1.问题概述

2.系统需求分析

三、应完成的图纸

功能模块图

 

四、评语及成绩

 

指导教师(签字)_____________

________年____月____日

目录

 

1.课题题目及任务要求

2.系统需求分析

3.系统概要设计

4.源程序

5.系统测试及调试

6.编程遇到的困难及解决办法

7.总结心得

8.参考文献

 

1课题题目及任务要求

设计一个某公司通讯录管理系统,以解决传统客户信息管理方式的诸多不便和弊端。

2系统需求分析

在客户的日常管理中,经常需要对客户的相关信息进行处理,采用传统的手工记录,查询方式,显然有很多不便,如多次的增、删、改可能使记录变得混乱,为今后的信息提取带来很多麻烦。

为了解决这一问题,可采用现代化的手段——计算机进行系统的管理。

这样可大大提高管理的质量和效率,并且使客户的日常管理也从手工操作中解脱出来,减少纸制材料的数量,对日常信息的查询、方便、快捷。

因此,基于这些方面的考虑,决定开发本系统。

3系统概要设计

3.1系统的主要功能

系统的主要功能是实现基本的客户的数据管理和维护。

主要包括:

1.添加成员的基本信息

2.查看成员的信息

3.删除信息

4.修改成员信息

5.保存信息和退出系统等功能

 

3.2系统的总体结构

 

添加:

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

显示:

可以以表格形式输出所有客户信息里的记录

删除:

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

查询:

可以选择用姓名、电话二种方式查询

保存:

,输入文件名(带后缀名)后,即可将客户信息信息保存

3.3系统软硬件环境

本程序所适用的计算机系统软硬件环境要求为:

硬件环境:

Pentium III 500以上内存:

256M 

 软件环境:

WindowsXP 

3.4数据结构设计

客户信息数据结构类型如下:

structtelephone

{

charclient_name[20];

charclient_telephone[15];

charclient_address[30];

};

4源程序

#include

#include

#defineN100

voidinput();

voidamend();

voiddelete_client();

voiddemand_client();

voidcollect_telephone();

voidsave_client(structtelephonemessage);

voiddemand_name();

voiddemand_telephone();

structtelephone

{

charclient_name[20];

charclient_telephone[15];

charclient_address[30];

};

voidmain()

{

charchoice[10]="";

intlen=0;

while(choice[0]!

='0')

{

printf("\t==========电话本号码查询系统=============\n");

printf("\t\t1、添加新联系人\n");

printf("\t\t2、修改联系人信息\n");

printf("\t\t3、删除联系人信息\n");

printf("\t\t4、联系人信息查询\n");

printf("\t\t5、联系人信息显示\n");

printf("\t\t0、退出\n");

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

printf("请选择(0-5):

");

scanf("%s",choice);

len=strlen(choice);

if(len>1)

{

printf("请输入0-5之间的整数\n");

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

getchar();

getchar();

continue;

}

switch(choice[0])

{

case'1':

input();

break;

case'2':

amend();

break;

case'3':

delete_client();

break;

case'4':

demand_client();

break;

case'5':

collect_telephone();

break;

default:

break;

}

}

}

voidinput()

{

structtelephonemessage;

charreply='y';

charsave='y';

while(reply=='y')

{

printf("用户姓名:

");

scanf("%s",message.client_name);

printf("电话号码:

");

scanf("%s",message.client_telephone);

printf("通讯地址:

");

scanf("%s",message.client_address);

save_client(message);

printf("要继续吗?

(y/n):

");

scanf("%c",&reply);

}

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

getchar();

getchar();

}

voidsave_client(structtelephonemessage)

{

FILE*fp;

fp=fopen("message.txt","a+");

if(fp!

=NULL)

{

fwrite(&message,sizeof(structtelephone),1,fp);

}

else

{

printf("\n打开文件时出现错误,按任意键返回……\n");

getchar();

return;

}

fclose(fp);

}

voidamend()

{

structtelephonemessage;

FILE*fp;

charamend_name[20];

charreply='y';

charfound='y';

charsave='y';

intsize=sizeof(structtelephone);

while(reply=='y')

{

found='n';

fp=fopen("message.txt","r+w");

if(fp!

=NULL)

{

printf("\n请输入要修改的姓名:

");

scanf("%s",amend_name);

while((fread(&message,size,1,fp))==1)

{

if((strcmp(amend_name,message.client_name))==0)

{

found='y';

break;

}

}

if(found=='y')

{

printf("==========================================\n");

printf("\n用户姓名:

%s\n",message.client_name);

printf("\n电话号码:

%s\n",message.client_telephone);

printf("\n通讯地址:

%s\n",message.client_address);

printf("==========================================\n");

printf("修改用户信息:

\n");

printf("\n用户姓名:

");

scanf("%s",message.client_name);

printf("\n电话号码:

");

scanf("%s",message.client_telephone);

printf("\n通讯地址:

");

scanf("%s",message.client_address);

printf("\n要保存吗?

(y/n):

");

scanf("%c",&save);

if(save=='y')

{

fseek(fp,-size,1);

fwrite(&message,sizeof(structtelephone),1,fp);

}

}

else

{

printf("无此人信息!

\n");

}

}

else

{

printf("打开文件时出现错误,按任意键返回……\n");

getchar();

return;

}

fclose(fp);

printf("要继续吗?

(y/n):

");

scanf("%c",&reply);

}

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

getchar();

getchar();

}

voiddelete_client()

{

structtelephonemessage[N];

structtelephonetemp_str;

structtelephonedelete_str;

inti=0,j=0;

charreply='y';

charfound='y';

charconfirm='y';

chardelete_name[20];

FILE*fp;

while(reply=='y')

{

fp=fopen("message.txt","r");

if(fp!

=NULL)

{

i=0;

found='n';

printf("\n请输入姓名:

");

scanf("%s",delete_name);

while((fread(&temp_str,sizeof(structtelephone),1,fp))==1)

{

if((strcmp(delete_name,temp_str.client_name))==0)

{

found='y';

delete_str=temp_str;

}

else

{

message[i]=temp_str;

i++;

}

}

}

else

{

printf("打开文件时出现错误,按任意键返回……\n");

getchar();

return;

}

fclose(fp);

if(found=='y')

{

printf("==========================================\n");

printf("用户姓名:

%s\n",delete_str.client_name);

printf("电话号码:

%s\n",delete_str.client_telephone);

printf("通讯地址:

%s\n",delete_str.client_address);

printf("==========================================\n");

}

else

{

printf("无此人信息,按任意键返回……\n");

getchar();

break;

}

printf("确定要删除吗?

(y/n):

");

scanf("%c",&confirm);

if(confirm=='y')

{

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

if(fp!

=NULL)

{

for(j=0;j

{

fwrite(&message[j],sizeof(structtelephone),1,fp);

}

printf("记录已删除!

!

!

\n");

}

else

{

printf("打开文件时出现错误,按任意键返回……\n");

getchar();

return;

}

fclose(fp);

}

printf("要继续吗?

(y/n):

");

scanf("%c",&reply);

}

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

getchar();

}

voiddemand_client()

{

intchoice=1;

while(choice!

=3)

{

printf("电话查询菜单\n");

printf("1按联系人姓名查询\n");

printf("2按联系人电话号码查询\n");

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

printf("请选择(1-3):

");

scanf("%d%*c",&choice);

if(choice>3)

{

printf("请输入1-3之间的整数\n");

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

getchar();

continue;

}

if(choice==1)

{

demand_name();

}

elseif(choice==2)

{

demand_telephone();

}

}

}

voiddemand_name()

{

structtelephonemessage;

FILE*fp;

charamend_name[20];

charreply='y';

charfound='y';

while(reply=='y')

{

found='n';

fp=fopen("message.txt","r+w");

if(fp!

=NULL)

{

printf("\n请输入姓名:

");

scanf("%s",amend_name);

while((fread(&message,sizeof(structtelephone),1,fp))==1)

{

if((strcmp(amend_name,message.client_name))==0)

{

found='y';

break;

}

}

if(found=='y')

{

printf("==========================================\n");

printf("用户姓名:

%s\n",message.client_name);

printf("电话号码:

%s\n",message.client_telephone);

printf("通讯地址:

%s\n",message.client_address);

printf("==========================================\n");

}

else

{

printf("无此人信息!

\n");

}

}

else

{

printf("打开文件时出现错误,按任意键返回……\n");

getchar();

return;

}

fclose(fp);

printf("要继续吗?

(y/n):

");

scanf("%c",&reply);

}

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

getchar();

getchar();

}

voiddemand_telephone()

{

structtelephonemessage;

FILE*fp;

chartelephone[20];

charreply='y';

charfound='y';

while(reply=='y')

{

found='n';

fp=fopen("message.txt","r+w");

if(fp!

=NULL)

{

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

");

scanf("%s",telephone);

while((fread(&message,sizeof(structtelephone),1,fp))==1)

{

if((strcmp(telephone,message.client_telephone))==0)

{

found='y';

break;

}

}

if(found=='y')

{

printf("==========================================\n");

printf("用户姓名:

%s\n",message.client_name);

printf("电话号码:

%s\n",message.client_telephone);

printf("通讯地址:

%s\n",message.client_address);

printf("==========================================\n");

}

else

{

printf("无此电话号码的有关信息!

\n");

}

}

else

{

printf("打开文件时出现错误,按任意键返回……\n");

getchar();

return;

}

fclose(fp);

printf("要继续吗?

(y/n):

");

scanf("%c",&reply);

}

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

getchar();

getchar();

}

voidcollect_telephone()

{

structtelephonemessage;

FILE*fp;

fp=fopen("message.txt","r");

if(fp!

=NULL)

{

while((fread(&message,sizeof(structtelephone),1,fp))==1)

{

printf("\n用户姓名:

%s\n",message.client_name);

printf("联系电话:

%s\n",message.client_telephone);

printf("通讯地址:

%s\n\n",message.client_address);

}

}

else

{

printf("打开文件时出现错误,按任意键返回……\n");

getchar();

return;

}

fclose(fp);

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

getchar();

getchar();

}

 

5系统测试及调试

主菜单

1.添加新联系人

 

2.修改联系人信息

3.删除联系人

4.联系人信息查询

 

两种查询方式

5.显示所有联系人

6.输入0退出系统

6.编程遇到的困难及解决办法

在本次实习过程中碰到的编译、连接的错误主要有:

(1)缺少变量定义,定义位置不正确;

前后有些变量前后定义和使用不一致,在错误信息的提示下一般还是很容易找到。

需要注意的是有些函数使用同样的变量名而表示不同的作用,因而使用要很小心,定义及定义的位置要特别留意。

为减少这样的错误我后来还是用不同的变量名来表示,结果引起的那些错误解决了。

(2)语法错误;

一些语法错误在信息框的提示下一般是能够排除的。

7总结心得

 在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实习学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

       由于时间的关系,我们的这次实习课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

包括了主界面、添加新联系人等比较重要的程序设计思路。

       上机实验是学习程序设计语言必不可少的实习环节,特别是c语言灵活、简洁,更需要通过编程的实习来真正掌握它。

对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。

但是在程序设计领域里这是一定要克服的传统的、错误的想法。

因为在这种思想支配下,可能你会想办法去"掩盖"程序中的错误,而不是尽可能多地发现程序中存在的问题。

自己编好程序上机调试运行时,可能有很多你想不到的情况发

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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