c语言程序设计实践报告

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

中南大学

C语言程序设计实践报告

题目通讯录程序设计

学生姓名

指导教师

学院

专业班级

完成时间

一、任务描述

通讯录程序设计

设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。

实现功能:(1)系统以菜单方式工作

(2)信息录入功能

(3)信息浏览功能

(4)信息查询功能

(5)信息修改功能

(6)系统退出功能

二、算法描述

设计一个实用的的小型通讯录程序必须具备系统以菜单方式工作、信息录入、信息浏览、信息查询、信息修改、系统退出功能,那么就需要这样的函数来实现。因此,我需要自定义这样的函数来解决问题,当然还会调用库函数。在定义函数的过程中会用到选择结构、循环结构等基本语句,以及对结构体数组的定义等。

三、程序设计

/******头文件(.h)***********/

#include "stdio.h" /*I/O函数*/

#include "stdlib.h" /*标准库函数*/

#include "string.h"/*字符串函数*/

#include "ctype.h" /*字符操作函数*/

#define M 50 /*定义常数表示记录数*/

typedef struct /*定义数据结构*/

{

char NAME[20]; /*姓名*/

char EMAIL[30]; /*邮箱*/

char TELE1[10]; /*电话*/

char TELE2[10]; /*电话*/

char HOMETOWN[30]; /*籍贯*/

}DATA;

/******以下是函数原型*******/

int enter(DATA t[]); /*输入记录*/

int add(DATA t[],int n); /*添加记录*/

int change(DATA t[],int n); /*修改记录*/

int deleter(DATA t[],int n); /*删除记录*/

void list(DATA t[],int n); /*显示记录*/

void search(DATA t[],int n); /*按姓名查找显示记录*/

void qseek(DATA t[],int n); /*快速查找记录*/

void print(DATA temp); /*显示单条记录*/

int find(DATA t[],int n,char *s) ; /*查找函数*/

int menu_select(); /*主菜单函数*/

/******主函数开始*******/

main()

{

int i;

DATA d[M]; /*定义结构体数组*/

int length; /*保存记录长度*/

system("cls");

for(;;)/*无限循环*/

{

switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/ {

case 1:length=enter(d);break;/*输入记录*/

case 2:length=add(d,length); break; /*添加记录*/

case 3:length=deleter(d,length);break; /*删除记录*/

case 4:list(d,length);break; /*显示全部记录*/

case 5:search(d,length);break; /*查找记录*/

case 6:qseek(d,length);break; /*快速查找记录*/

case 7:length=change(d,length);break;

case 8:exit(0); /*如返回值为8则程序结束*/

}

}

}

/*菜单函数,函数返回值为整数,代表所选的菜单项*/

* *\n");

printf(" * 1. 录入联系人数据 5.按姓名查找

*\n");

printf(" * *\n");

printf(" * 2. 添加联系人数据 6.快速查找

*\n");

printf("* *\n");

printf(" * 3. 删除联系人数据 7.修改联系人数据

*\n");

printf(" * *\n");

printf(" * 4. 显示全部联系人8.退出系统

*\n");

printf(" * *\n");

printf("* *\n");

printf("

****************************************************\n");

do{

printf("\n 请输入您的选项(1~8):"); /*提示输入选项*/

scanf("%s",s); /*输入选择项*/

c=atoi(s); /*将输入的字符串转化为整型数*/

}while(c<1||c>8); /*选择项不在1~7之间重输*/

return c; /*返回选择项,主程序根据该数调用相应的函数*/

}

/***输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度*/

int enter(DATA t[])

{

int i,n;

system("cls");

printf("\n 请输入需录入数据的个数: "); /*提示信息*/

scanf("%d",&n); /*输入记录数*/

printf("\n 请输入数据:\n"); /*提示输入记录*/

printf("\n 姓名邮箱电话号码 1 电话号码 2 籍贯 \n");

printf("*-------*----------------*---------------*----------------*------------

---*\n");

for(i=0;i

{

scanf("%s%s%s%s%s",t[i].NAME,t[i].EMAIL,t[i].TELE1,t[i].TELE2,t[i].HOMETOWN);

/*输入记录*/

printf("*----------------------------------------------------------------------

---*\n");

}

return n; /*返回记录条数*/

}

相关文档
最新文档