C语言通讯录管理程序设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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循环在结构体数组中找到