C语言通讯录管理程序设计实验报告

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

C语言集中上机

实验报告

学院:通信与信息工程

班级:0101009

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

**:***

****:***

一.实验目的

为综合应用C语言程序设计理论知识、进一步提高学生综合解决问题、协调工作的能力和良好的软件开发习惯,特安排本实验内容。希望通过该实习能够进一步激发学生的学习热情,培养学生初步编程的能力,为后续的学习和发展奠定基础。

二、实习基本要求

(1)上机实习时间一周;周五检查程序,最迟下周一提交报告。

(2)学生从后面参考题中选取一道题目来做,自己选题的学生必需经指导老师的同意方可,否则视为无效选题。限1人选的

题目只能由1人单独完成,限2人选的题目可由1-2人完成。

(3)模块化程序设计

(4)锯齿型书写格式

(5)必须上机调试通过

三.实验内容

题目二:通讯录管理(限最多1人完成)

1、设一个通信录由以下几项数据信息构成:

数据项类型

姓名字符串

地址字符串

邮政编码字符串

电话号码字符串

试为通信录数据定义类型和定义通信录变量,实现功能:存取、显示、删除记录、查询记录等功能。

2、要求:界面友好,易于操作

四.流程图

五.设计过程与思想

1.定义一个结构体,储存每个联系人的基本信息,并定义一个结构体数组,最多储存80个人

typedef struct

{

char name[10]; //姓名

char num[15]; //号码

char adds[20]; //住址

char youbian[7]; //邮政编码

}Person;

Person pe[80];

2.定义一个登陆函数.

调用system("pause");前面需调用#include

system是一个系统调用;pause是一个系统操作;

整体作用是让窗口等待一个回车,这样可以方便查看程序输出。logon()

{

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

system("pause");

}

3.定义一个输出菜单并进行选择的函数,功能包括添加记录,显示记录,

删除记录,查询记录,退出系统.采用do-while循环,使用户可进行多次操作,并在每次操作完成后又回到菜单这个页面,在用户输入不正确时重新输入.

int menu()

{

char c;

logon();

do{

system("cls"); //清屏

printf("\n\n");

printf("\t\t\t *****通讯录***** \n"); printf("\t\t\t┌───────┐\n");

printf("\t\t\t│1. 添加记录│\n");

printf("\t\t\t│2. 显示记录│\n");

printf("\t\t\t│3. 删除记录│\n");

printf("\t\t\t│4. 查询记录│\n");

printf("\t\t\t│0. 退出程序│\n");

printf("\t\t\t└───────┘\n");

printf("\t\t\t请您选择(0-4):");

c=getchar();

}while(c<'0'||c>'4');

return(c-'0');

4.定义一个添加记录的函数,传递的参数是结构体数组和数组中元素的个数,采用while循环可让用户重复输入,将每次输入的内容储存在结构体数组中,使用变量i记录用户添加记录的个数, 返回结构体数组的元素个数为原来的加上i.当用户选择不再添加时退出循环.

int Input(Person per[],int n)

{

int i=0;

char sign;

while(sign!='n'&&sign!='N')

{

printf("\t姓名:");

scanf("\t%s",per[n+i].name);

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

printf("\n\t是否继续添加?(Y/N)");

scanf("\t%c",&sign);

i++;

return(n+i);

}

5.定义显示记录的函数, 传递的参数是结构体数组和数组中元素的个数.

void Display(Person per[],int n)

{

int i;

printf("---------------------------------------------------------------------------\n");

printf(" 姓名电话号码通讯地址邮政编码\n");

printf("---------------------------------------------------------------------------\n");

for(i=1;i

{

printf("%10s%15s%18s%15s\n",per[i-1].name,per[i-1].num,per[i-1].adds,per[i-1].youbian);

}

printf("------------------------------------------------------------------\n");

system("pause");

}

6.定义删除函数, 传递的参数是结构体数组和数组中元素的个数.先让用户输入想要删除人的姓名,采用while循环在结构体数组中找到

相关文档
最新文档