C语言程序设计--电子通讯录

一.课程设计目的

随着当今世界经济的迅猛发展,通讯技术日益成熟,个人间的联系增加,个人对自己联系人信息的管理成为一个重要的环节。与此同时,通讯录便产生了。形形色色的关于通讯录的软件也越来越方便着人们的生活。

本次设计便是利用目前先进的开发工具VC 6.0开发一个电子通讯录。此次的开发系统便于客户能迅速简洁的找到自己所需要的联系人的所有信息,其内容包括添加联系人、显示联系人、删除联系人、查找联系人、修改联系人、将信息保存到文件,达到省时省力的目的,在此次课程设计的实验中,便是利用C语言和数据结构的一些知识模拟电子通讯录管理系统。

二.课程设计题目描述和要求

题目:电子通讯录

     电子通讯录实现下面的功能:

添加联系人

添加联系人信息,包括姓名、编号、年龄、地址、电子邮箱、电话号码。

查找联系人

输入姓名、电话号码、地址,能查找相对应的信息。

删除联系人

输入姓名,能够找到对应的信息,能够对其进行删除。

④ 修改联系人

    输入要修改的姓名,再依次修改其信息。

⑤ 显示联系人

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

⑥ 保存联系人

   输入文件名后,即可将通讯录信息保存到文件。

要求:

       除了上述功能要切实可行外,对于自主修正,在实训过程能切实感受程序的可靠性,功能能的完善性和能力的提高性与课本的理解性。

三.课程设计报告内容

3.1需求分析

对于现如今我们高速发展的社会,有着各种各样的管理模式,但是却都离不开计算机,在学习过程中,我们慢慢学到了编程,这就是一个简单的管理系统,这就是一个让我们理解系统管理的起步点。对于电子通讯录的实训,这是一次很好的体验机会。

在程序的设计中,采用的是函数的嵌套,这样就告别了main函数的复杂冗长,采用每一个模块的形式能够清晰化,简单化,也能让我知道函数的巧妙变化,提高自己的优化能力。对于操作界面,要达到能好好与用户交流,要考虑到每一个方面,从而达到完善。在每一个模块中,采用结构体类型,这样也是一个优化的过程,而每一步的衔接设计了循环,这样操作既方便又能使程序代码变得简单明了。

char adds[20];/*住址*/
}
Person;
Person pe[80];
int menu_select()
{ 
char c;
do
{
system("cls");
printf("\t\t       *** 电 子 通 讯 录 **** \n"); 
printf("\t\t┌———————————————————┐\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. 保存记录            │\n");
printf("\t\t│               0. 退出程序            │\n");
printf("\t\t└———————————————————┘\n");
printf("\t\t 请您选择(0-6):");
c=getchar();
}
while(c<'0'||c>'6');
return(c-'0');
}
int Input(Person per[],int n)
{
int i=0;
char sign,x[10];
while(sign!='n'&&sign!='N')
{
printf("\t 编号:");
scanf("\t%d",&per[n+i].score);
printf("\t 姓名:");
scanf("\t%s",per[n+i].name);
printf("\t 年龄:");
scanf("\t%s",per[n+i].age);
printf("\t 电话号码:");
scanf("\t%s",per[n+i].num);
printf("\t 通讯住址:");
scanf("\t%s",per[n+i].adds);
printf("\t 电子邮箱:");
scanf("\t%s",per[n+i].email);
gets(x);
printf("\n\t 是否继续添加?(Y/N)");
scanf("\t%c",&sign);
i++;
}
return(n+i);
}
void Display(Person per[],int n)
{
int i; printf("----------------------------------------------------------------------\n");
/*格式*/
printf("编号 姓名 年龄 电话号码 通讯地址 电子邮箱\n");
printf("----------------------------------------------------------------------\n");
for(i=1;i<n+1;i++)
{
printf("%-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");
printf("\t");
system("pause");
printf("\t-----------------------------------\n");
}
}
printf("----------------------------------------------------------------------\n");
system("pause");
}
int Delete_a_record(Person per[],int n)
{
char s[20];
int i=0,j;
printf("\t 请输入想删除记录中的名字:");
scanf("%s",s);
while(strcmp(per[i].name,s)!=0&&i<n) i++;
if(i==n)
{
printf("\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;
}
printf("\t\t\t 已经成功删除!\n");
return(n-1);
}
void Query_a_record(Person per[],int n)
{
int m;
printf("\t\n 请选择查询方式:\n");
printf("      \t┌————————————┐\n");
printf("      \t│       1------姓名        │\n");
printf("      \t│       2------电话        │\n");
printf("      \t│       3------地址        │\n");
printf("      \t│       4------返回        │\n");
printf("      \t└————————————┘\n");
printf("请选择:");
scanf("%d",&m);
while(m!=1&&m!=2&&m!=3&&m!=4)
{
printf("输入错误,请重新选择:"); 
scanf("%d",&m);
}
if(m==1)
{
char s[20];
int i=0;
printf("\t 请输入想查询的姓名:");
scanf("\t%s",s);
while(strcmp(per[i].name,s)!=0&&i<n) i++;
if(i==n)
{
printf("\t 通讯录中没有此人!\n");
return;
}
printf("\t 此人编号: %d\n",per[i].score);
printf("\t 此人年龄: %s\n",per[i].age);
printf("\t 电话号码: %s\n",per[i].num);
printf("\t 通讯地址: %s\n",per[i].adds);
printf("\t 电子邮箱: %s\n",per[i].email);
}
if(m==2) 
{
char s[20];
int i=0;
printf("\t 请输入想查询的电话:");
scanf("\t%s",s);
while(strcmp(per[i].num,s)!=0&&i<n) i++;
if(i==n)
{
printf("\t 通讯录中没有此人!\n");
return;
}
printf("\t 此人编号: %d\n",per[i].score);
printf("\t 此人姓名: %s\n",per[i].name);
printf("\t 此人年龄: %s\n",per[i].age);
printf("\t 通讯地址: %s\n",per[i].adds);
printf("\t 电子邮箱: %s\n",per[i].email);
}

文章借鉴于此纷传

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值