C语言程序设计报告——通讯录管理系统

C语言程序设计报告——通讯录管理系统
C语言程序设计报告——通讯录管理系统

C语言程序设计报告

一.课题

通讯录管理系统

二.设计方案简介

为了帮助广大人群解决笔记通讯录所带来的诸多不便,本人利用所学的专业知识,设计了一个简单,便利的系统供大家在线存储众多联系人信息。这样做一来可以将自己的知识生活化,运用自己所学为他人做点事,二来,在完成这项任务的过程中,通过克服一道又一道难题,我巩固了自己的知识,发现了自己的不足,进而提升了自己的能力。

该方案从整体出发,化整为零。各个功能都是通过独立函数实现。其中设计了信息录入,信息查询,信息修改,信息删除,信息保存,信息显示等功能。方案的结构一目了然,便于用户操作。经过在Microsoft Visual C++ 6.0中多次测试,结果均与预期相符。加上该程序要求的平台不是很高,一般用户均可方便使用。

三.算法与数据结构

<一>运用的数据类型有:int, char, file,.

<二>主要功能模块的算法设计思路如下:

1、添加信息函数(void Add(Link l))

(1)定义指向结构体变量的指针;

(2)移动指针,找到插入结点;

(3)在要插入的结点输入信息;

(4)调用保存函数,打开文件,保存输入信息。

2、修改信息函数(void Modify(Link l))

(1)定义指向结构体变量的指针;

(2)用指针检验链表中是否有记录,若没记录,返回主函数;

(3)根据要修改的编号查找对应结点;

(4)修改信息;

(5)打开文件,保存修改记录。

3、删除信息函数(void Del(Link l))

(1)定义指向结构体变量的指针;

(2)用指针检验链表中是否有记录,若没记录,返回主函数;

(3)根据要修改的编号查找要删除的结点;

(4)修改链表,删除对应结点。

4、显示记录函数(void Disp(Link l))

(1)打开文件;

(2)用指针检验是否有记录;

(3)若无记录,输出提示信息,返回主函数;若有记录,移动指针,依次输出记录;

(4)关闭文件。

5、查询通讯录信息(void Find(Link l))

(1)选择查询方式(按姓名、编号或地址);

(2)输入查询关键字:

(3)在链表中寻找相应结点;

(4)调用输出函数,输出结点信息。

以上各个函数的流程图如下:

(添加信息)

FILE *p,打开该磁盘文件

从键盘输入数据

是链表为空否

插入表头插入表尾

输出数据,存入磁盘文件

关闭文件

(显示信息)

FILE *fp,打开该文件

p=head,使p指向第一个结点

P指向的不是尾结点

真假

输出p所指向的结点

P指向下一个结点

关闭文件

(按姓名查找)

打开磁盘文件

是链表为空否

输出“尚无记录信息”

p=head

当name2=p->name

是P是要找的结点

输出此

结点

输出“查无此人“的

信息

关闭文件

(按编号查找)

打开磁盘文件

是链表为空否

输出“尚无记录信息”

p=head

当num2=p->nun

是P是要找的结点

输出此

结点

输出“查无此人“的

信息

关闭文件

(按地址查找)

打开磁盘文件

是链表为空否

输出“尚无记录信息”

p=head

当address2=p->address

是P是要找的结点

输出此

结点

输出“查无此人“的

信息

关闭文件

四.总体框架

通讯录管理系统:

录入通讯录信息

修改通讯录信息

查询通讯录信息

浏览通讯录信息

增加通讯录信息

推出系通讯录统

五.模块设计

模块一:头文件,变量定义,函数的声明

对系统所使用的变量进行定义,对函数进行声明

模块二:界面菜单

通过switch(c)调用,以上各函数,实现功能

模块三:录入通讯录信息

先用void load()加载数据,说明一个文件指针FILE *fp 打开文件"D:\\Contactbook"

模块四:通讯录信息的查找

声明void modify()的前半部分为查找函数,通过switch(item)设定用电话号码查找,用姓名查找两个分支

模块五:通讯录信息的修改

声明void modify()为学生信息修改函数,通过switch(item)设定所要修改的项目

模块六:加通讯录信息

声明void insert()插入通讯录信息,先通过判断通讯录是否存在,若否则继续输入,若是跳出,重新循环

模块七:通讯录信息

声明void del()实现通讯录信息删除,通过学号对比确定要删除的信息,然后用后一个替换掉。

模块八:示学生信息

通过disp()函数输出通讯录信息

模块九;存信息

通过void save()函数保存信息到文件。

六.设计详情

1. 主函数

主函数设计要求简洁,只提供部分提示语和函数的调

开始

显示一系列功能选项

N

输入n,判断n是否是0~6 ?

根据n的值调用各功能模块函数

结束

图1. 主函数流程图

七.源代码

#include "stdio.h "

#include "stdlib.h"

#include "string.h"

#define HEADER1 " \n"

#define HEADER2 "编号姓名电话号码地址邮箱\n" #define FORMAT "%-6s%-15s%-12s %-10s%-20s\n"

#define DATA p->data.num,p->https://www.360docs.net/doc/5d2063989.html, ,p->data. phone,p->data.address,p->data.email

#define END "----------------------------------------------------------------------------- \n"

int save=0;

//定义与联系人有关的数据结构

struct person

{

char num[6];

char name[15] ;

char phone[12];

char address[10];

char email[20];

};

//定义每条记录或结点的数据结构

typedef struct node

{

struct person data;

struct node *next;

}Node,*Link; //Node为node类型的结构变量,*Link为node类型的指针变量

void menu() //主菜单

{

printf(" \n");

printf("本系统可以实现以下功能:\n");

printf(" \n");

printf(" 1 添加记录 2 删除记录 3 修改记录\n");

printf(" \n");

printf(" 4 查询记录 5 显示记录 6 保存记录\n");

printf(" \n");

printf(" 0 退出系统\n");

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

}

void printhead() //格式化输出表头

{

printf(HEADER1);

printf(HEADER2);

}

void printdata(Node *pp) //格式化输出表中数据

{

Node* p;

p=pp;

printf(FORMAT,DATA);

}

//显示单链表l中存储的联系人记录,内容为person结构中定义的内容

void Disp(Link l)

{

Node *p;

p=l->next; //存储的是单链表中头结点的指针

if(!p) //p==NULL,NUll在stdlib中定义为0

{

printf("\n=====>没有记录!\n");

return;

}

printf("\n\n");

printhead(); //输出表格头部

//逐条输出链表中存储的联系人信息

while(p)

{

printdata(p);

p=p->next; //移动到下一个结点

}

}

Node* Locate(Link l,char findness[],char nameornum[])

{

Node *r;

if(strcmp(nameornum,"num")==0) //按编号查询

{

r=l->next;

while(r)

{

if(strcmp(r->data.num,findness)==0) //若找到findmess值的学号

return r;

r=r->next;

}

}

else if(strcmp(nameornum,"name")==0) //按姓名查询

{

r=l->next;

while(r)

{

if(strcmp(r->https://www.360docs.net/doc/5d2063989.html,,findness)==0) //若找到findmess值的联系人姓名

return r;

r=r->next;

}

}

else if(strcmp(nameornum,"address")==0) //按地址查询

{

r=l->next;

while(r)

{

if(strcmp(r->data.address,findness)==0) //若找到findmess值的联系人地址

return r;

r=r->next;

}

}

return 0; //若未找到,返回一个空指针

}

//输入字符串

void stringinput(char *t,int lengths,char *attention)

{

char n[255];

do{

printf(attention); //显示提示信息

scanf("%s",n); //输入字符串

if((int)strlen(n)>lengths)

printf("\n 超过设定长度! \n"); //进行长度校验,超过lengths值重新输入}while((int)strlen(n)>lengths);

strcpy(t,n); //将输入的字符串拷贝到字符串t中

}

int numberinput(char *attention)

{

int t=0;

printf(attention);

scanf("%d",&t);

return t;

}

//增加联系人记录

void Add(Link l)

{

Node *p,*r,*s;

char flag=0,num[6];

r=l;

s=l->next;

Disp(l); //先打印出已有的联系人信息

while(r->next!=NULL)

r=r->next; //将指针移至于链表最末尾

while(l)

{

while(l)

{

stringinput(num,6,"输入编号(按'0'返回主菜单):"); //格式化输入编号并检验

flag=0;

if(strcmp(num,"0")==0) //输入为0,则退出添加操作,返回主界面

{return;}

s=l->next;

//查询该编号是否已经存在,若存在则要求重新输入一个未被占用的学号

while(s)

{

if(strcmp(s->data.num,num)==0)

{

flag=1;

break;

}

s=s->next;

}

if(flag==1) //提示用户是否重新输入

{

printf("=====>编号%s 已经存在,是否重试?",num);

}

else

{break;}

}

p=(Node *)malloc(sizeof(Node)); //申请内存空间

if(!p)

{

printf("\n 申请内存空间失败"); //如没有申请到,打印提示信息

return ; //返回主界面

}

strcpy(p->data.num,num); //将字符串num拷贝到p->data.num中

stringinput(p->https://www.360docs.net/doc/5d2063989.html,,15,"Name:");

stringinput(p->data.phone,12,"Phone:");

stringinput(p->data.address,10,"Address:");

stringinput(p->data.email,20,"email:");

p->next=NULL; //表明这是链表的尾部结点

r->next=p; //将新建的结点加入链表尾部

r=p;

save=1;

}

return ;

}

//查询记录

void Find(Link l) //按编号或姓名,查询电话记录

{

int select; //1:按编号查,2:按姓名查,3:按地址查找,其他:返回主界面(菜单)

char searchinput[20]; //保存用户输入的查询内容

Node *p;

if(!l->next) //若链表为空

{

printf("\n=====>无!\n");

return;

}

printf("\n =====>1 按编号查询=====>2 按姓名查询=====>3 按地址查询\n");

printf(" 请选择[1,2,3]:");

scanf("%d",&select);

if(select==1) //按编号查询

{

stringinput(searchinput,6,"请输入已存在的编号:");

p=Locate(l,searchinput,"num");//在l中查找学号为searchinput值的节点,并返回节点的指针

if(p) //若p!=NULL

{

printhead();

printdata(p);

printf("按任意键返回");

}

else

printf("\n=====>找不到此人!\n");

}

else

if(select==2) //按姓名查询

{

stringinput(searchinput,15,"请输入已存在的姓名:");

p=Locate(l,searchinput,"name");

if(p)

{

printhead();

printdata(p);

printf(END);

printf("按任意键返回");

}

else

printf("\n=====>找不到此人!\n");

}

if(select==3) //按地址查询

{

stringinput(searchinput,15,"请输入已存在的地址:");

p=Locate(l,searchinput,"address");

if(p)

{

printhead();

printdata(p);

printf(END);

printf("按任意键返回");

}

else

printf("\n=====>找不到此人!\n");

}

else

printf("\n**Error:输入错误! 按任意键继续**\n"); }

//按姓名删除学生记录

void Del(Link l)

{

Node *p,*r;

char findmess[20];

if(!l->next)

{

printf("\n=====>找不到此人的记录!\n");

return;

}

stringinput(findmess,15,"input the existing person name");

p=Locate(l,findmess,"name");

if(p)

{

r=l;

while(r->next!=p)

r=r->next;

r->next=p->next;

free(p);

printf("\n=====>delete success!\n");

save=1;

}

else

printf("\n=====>Not find this person!\n");

}

//修改电话记录,编号不能修改.

void Modify(Link l)

{

Node *p;

char findmess[20];

if(!l->next)

{

printf("\n=====>No person record!\n");

return;

}

printf("modify person recorder");

Disp(l);

stringinput(findmess,6,"input the existing person number:"); //输入并检验该学号p=Locate(l,findmess,"num"); //查询到该节点

if(p)

{

printf("Number:%s,\n",p->data.num);

printf("Name:%s,",p->https://www.360docs.net/doc/5d2063989.html,);

stringinput(p->https://www.360docs.net/doc/5d2063989.html,,15,"input new name:");

stringinput(p->data.phone,12,"input new phonenumber:");

stringinput(p->data.address,10,"input new address:");

stringinput(p->data.email,20,"Email:");

printf("\n=====>modify success!\n" );

Disp(l);

save=1;

}

else

printf("\n=====>Not find this person!\n");

}

//数据存盘

void Save(Link l)

{

FILE *fp;

Node *p;

fp=fopen("D:\\Contactbook","wb");//以只写方式打开二进制文件

if(fp==NULL) //打开文件失败

{

printf("\n=====>open file error!\n");

return ;

}

p=l->next;

while(p)

{

if(fwrite(p,sizeof(Node),1,fp)==1)//每次写一条记录或一个节点信息至文件

{

p=p->next;

}

else

{break; }

}

save=0;

fclose(fp); //关闭此文件

}

//主函数

void main()

{

Link k; //定义链表

FILE *fp1;

int select1;

char ch1;

Node *p1,*r1; //定义记录指针变量

k=(Node*)malloc(sizeof(Node));

if(!k)

{

printf("\n apply for memory failure "); //如没有申请到,打印提示信息

return ; //返回主界面

}

k->next=NULL;

r1=k;

//以追加方式打开一个二进制文件,可读可写,若此文件不存在,会创建此文件fp1=fopen("D:\\Contactbook","ab+");

if(fp1==NULL)

{

printf("\n=====>can not open file!\n");

exit(0);

}

while(!feof(fp1))

{

p1=(Node*)malloc(sizeof(Node));

if(!p1)

{

printf(" memory malloc failure!\n");

exit(0); //退出

}

if(fread(p1,sizeof(Node),1,fp1)==1) //一次从文件中读取一条学生成绩记录{

p1->next=NULL;

r1->next=p1;

r1=p1;

}

}

fclose(fp1);

while(1)

{

menu();

p1=r1;

printf("\n 请选择服务(0~6):");

scanf("%d",&select1);

if(select1==0)

{

if(save==1) //若对链表的数据有修改且未进行存盘操作,则此标志为1

{

printf("\n=====>是否保存之文件?(y/n):");

scanf("%c",&ch1);

if(ch1=='y'||ch1=='Y')

Save(k);

}

printf("=====>谢谢使用!");

break;

}

switch(select1)

{

case 1:Add(k);break;

case 2:Del(k);break;

case 3:Modify(k);break;

case 4:Find(k);break;

case 5:Disp(k);break;

case 6:Save(k);break;

default: printf("\n*错误:输入错误! 按任意键继续*\n");

break;

}

}

}

八.测试数据与结果

运行情况如下:

说明:1、运行程序;2、添加信息;

查询记录;4、显示记录。

C语言-通讯录管理系统

#include #include #include struct record{ charnum[12]; char name[10]; char birthday[10]; char post[10]; char phone[15]; }data[100]; intmenu_select( ); intcreate_record(); intadd_record(int flag); int flag=0; intfind_record(int flag); intdelete_record(int flag); voidpaixu_record(int flag); intsave_record(int flag); void main() { for( ; ; ){ switch(menu_select()) { case 1: printf(" ***********************************************\n"); printf(" ************** 通讯录的建立***************\n"); printf(" ***********************************************\n"); flag=create_record(); break; case 2: printf(" ***********************************************\n"); printf(" ************** 通讯录信息的添加*****************\n"); printf(" ***********************************************\n"); flag=add_record(flag); break; case 3: printf(" ******************************\n"); printf(" ******* 通讯录信息查询*******\n"); printf(" ******************************\n"); find_record(flag); break; case 4:

C语言课程设计报告—手机通讯录管理系统

C程序课程设计报告 --手机通讯录管理系统 姓名:谢骏 学院:珠宝学院 学号:649 班级:141082

一课程设计目的和内容概述 1.目的:加深对《C语言》课程所学知识的理解,进一步巩固C语言编程方法。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,加强动手能力。 2.内容:设计一个简易的手机通讯录管理系统。该题目要求在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,包括时间函数、、绘图函数,以及文件的读写操作等。 其中结构体,函数的调用,算法的设计是尤为重要的。 二题目 手机通讯录管理系统。 [问题描述] 该系统模拟手机通讯录管理系统,实现对手机中的通讯录进行管理 [基本要求] 要能提供以下几种功能: (1)查看功能:选择此功能时,列出下列三类选择:

A:办公类B:个人类C:商务类 (2)当选中某类时,显示出此类所有数据中的姓名和电话号码 (3)添加数据功能:能录入新数据,每个结点包括:姓名,电话号码,分类(可能选项有:w为办公类p为个人类b为商务类),电子邮件。例如:杨春商务类 当录入重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通讯录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。(4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 三程序设计 1.总体设计 首先,因为每个个体有多种信息,所以要建立结构体来储存和整合各个信息。然后利用模块来分别实现程序的各个功能。各个模块用函数来实现。在通过通过主函数来判断输入字母,从而调动函数,实现所需功能。最后将输入的文件保存在文件里,以便重复使用。 2.详细设计

通讯录的制作(数据结构C语言版)

通讯录的设计 一、设计思路: 经过一个学期的程序设计学习,我逐渐了解了计算机的基本原理和c语言的基本常识,并可以逐渐自己来实现一些简单的程序任务。此次程序设计我选择了通讯录设计,通过函数、结构体的定义以及一些基本操作运用,经过一个多月的编写、调试、测试,最终完成了该程序的设计。以下为我的设计思路:首先,确定通讯录的功能,我初步设计了六项功能:输入(程序中对应 enter ())、删除(程序中对应delete())、显示通讯录(程序中对应list())、搜索(程序中对应search())、保存(程序中对应save())、装载(程序中对应 load())。 其次,对于存储的数据结构,我则主要选择了一下几个方面的信息:姓名、性别年龄、籍贯、手机、下一个指针(用于链表的操作与实现)、当前指针(用于链表的操作与实现)。 二、程序源代码: #include struct address{ /*创建一个address结构*/ char name[10]; /*姓名*/ char sex[2]; /*性别*/ char age[2]; /*年龄*/ char native[10]; /*籍贯*/ char telephone[12]; /*手机*/ struct address *next; /*下一个入口的指针*/ struct address *prior; /*当前记录的指针*/ } list_entry; struct address *start; /*指向列表中第一个入口*/ struct address *last; /*指向列表中最后一个入口*/

C语言程序设计课程设计-通讯录管理系统

通讯录信息管理系统设计计算机学院计算机科学与技术专业 1.课程设计的目的 学习了C语言程序设计这门课程之后,使我对程序设计有了一定的了解,为了熟练掌握C语言的语法特点、及其数据结构,提高自身编写程序的能力。通过课程设计实现理论知识与实际情况的结合,使所学知识能够在现实社会中起到一定的作用,防止所编写的程序脱离实际,让程序可以更好的发挥作用,以便减轻实际工作中所遇到的繁琐步骤,提高现实工作中的效率。此外通过课程设计提高逻辑思考能力和解决实际问题的能力。程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不挠品格的锻炼。 通讯录信息管理系统是生活中不可缺少的部分编写了一个通讯录信息管理系统是十分必要的。 本程序设计具有通讯信息的录入,进行保存、查找、删除等功能,操作界面简洁美观,易于操作。程序用了条件、循环、指针、结构体等知识点,综合了文件的打开和保存编写的。软件运用菜单实现交互式管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足的需要。 通过对通讯录管理系统的设计,进一步理解和掌握C语言这门课程的知识点,能够熟练的调用各种函数,把各种C语句有机的结合起来,提高自己C语言程序设计的能力,为今后解决实际问题打下良好基础。

2.设计方案论证 2.1设计思路 建立一个函数,用来添加、显示、删除、查询、修改、保存通讯录等信息,完成通讯录的功能。主函数可以调用六个子函数,分别完成添加记录、显示记录、删除记录、查询记录、修改记录、保存记录、退出系统等功能。在主函数中可以以1、2、3、4、5、6数字键分别可以执行某个功能模块。 2.2程序设计 2.2.1根据图1定义数据类型建立函数 typedef struct { char Num; //编号 char Name[10]; //姓名 char Tel[15]; //电话号码 char Email[20]; //邮箱 char age[8]; //年龄 char adds[20]; //住址 }Person; 2.2.2主函数及其流程图 定义主函数main()和一系列的功能函数,只有通过这些函数才可实现程序

通讯录管理系统课程设计报告书C语言

二〇〇八~ 二〇〇九学年第二学期 信息科学与工程学院 课程设计报告书 课程名称: C语言课程设计 班级:

学号: 姓名: 指导老师: 月九年二〇〇九 通讯录管理系统 一.需求分析 设计题目及要求: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 系统功能需求分析: 主要包含一下多种功能: 添加:添加通讯录记录 显示:显示通讯录记录 删除:删除通讯录记录 查询:查询通讯录记录 修改:修改通讯录记录 保存:将信息保存到文件 二.概要设计 系统功能模块图:

添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。. 显示:可以以表格形式输出所有通讯录里的记录 删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容 查询:可以选择用姓名、电话、地址三种方式查询 修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改 保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件 三.详细设计 (1).通讯录: typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/ char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person; void main() /*主函数*/ { int n=0; for(;;) { switch(menu_select())

c语言通讯录源代码

#include #include #include #include struct person //每个元素都是结构体类型 { char name[15]; //结构体数组,用于存储姓名 char celephone[22]; char QQ[20]; }per[500]; //定义一个per数组,它有500个元素 int num=0;//*外部变量num为文件中的纪录数*// FILE *fp; void mainmenu();//*主菜单*// **模块1** void newrecord();//新添纪录(括写入到文件)*// **模块2** void readfromfile();//*读取文件*// **模块2.1** void searchmenu();//*查询菜单*// **模块3** void searchbyname();//*按姓名查询*// **模块3.1** void searchbycelephone();//*按手机号码查询*// **模块3.2** void searchbyqq();//*按QQ查询*// **模块3.3** void xiugaimenu();//*修改菜单*// **模块4** void xiugaibyname();//*按姓名查找修改*// **模块4.1** void xiugaibycelephone();//*按手机号码查找修改*// **模块4.2** void xiugaixiangmu(int a);//*查找后要修改的项目(分名字和号码)*// **模块4.3** void deletemenu();//*删除菜单*// **模块5** void deleteall();//*删除所有信息*// **模块5.1** void deleteone();//*删除单个*// **模块5.2** void deletebycelephone(); //*按手机号码删除*// **模块5.2.1** void deletebyname();//*按姓名删除*/ **模块5.2.2** void showall();//*输出全部信息*// **模块6** void main()//*主函数*// { while (1) { mainmenu(); } } //*主函数结束*//

个人通讯录管理系统c语言源程序优秀版)

#include /*头文件*/ #include //包含最常用的系统函数 #include //关于字符数组的函数定义的头文件#include //控制台输入输出 //定义结构体 struct tongxunlu /*定义通讯录结构体变量*/ { char xingming[20]; /*定义输入名字的数组*/ char dianhua[20]; /*定义输入电话号码的数组*/ char dizhi[40]; /*定义输入地址的数组*/ } txl[100]; //默认100个数据 int n=0;//记录数据联系人数量 FILE *fp; /*定义文件*/ //程序用到的所有函数 void zhucaidan(); /*主菜单函数*/ void zengjia(); /*增加联系人函数*/ void readfile(); /*文件中读入函数*/ void writefile(); /*文件中写入函数*/ void xiugai(); /*修改联系人函数*/ void xiugai_xingming(); /*姓名修改*/ void xiugai_dianhua(); /*电话号码修改*/ void chazhao(); /*查找联系人函数*/

void chazhao_xingming(); /*按姓名查找*/ void chazhao_dianhua(); /*按号码查找*/ void shanchu(); /*删除联系人函数*/ void shanchu_quanbu(); /*全部删除*/ void shanchu_dange(); /*单个删除*/ void xianshi(); /*号码显示*/ //程序主函数模块六 void main() /*主函数main*/ { readfile(); /*读入文件*/ while(1) /* 循环(永远进行)*/ { zhucaidan(); /*调用主菜单函数*/ } } //读取文件函数部分开始模块七 void readfile() { if((fp=fopen("c:\\通讯录.txt","r"))==NULL) /*以只读方式打开判定文件是否为空*/ { printf("\n\t\t\t 通讯录文件不存在"); /*判断结论*/ if ((fp=fopen("同通讯录.txt","w"))==NULL) /*只写方式判断*/

C语言通讯录管理系统程序代码

一、课程设计题目及要求 题目通讯录管理系统 任务:自学C语言中相关知识,设计出通讯录管理系统。要求如下所述: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子 邮箱等;; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供按姓名或电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 二、系统设计方案 (一)总体框架图: 通讯录管理系统:1、录入通讯录信息 2、修改通讯录信息 3、查询通讯录信息 4、浏览通讯录信息 5、增加通讯录信息 6、推出系通讯录统 (二)模块设计 模块一:头文件,变量定义,函数的声明 对系统所使用的变量进行定义,对函数进行声明 模块二:录入通讯录信息 声明函数void readfile(),说明一个文件指针FILE *fp 打开文件"student.txt" 模块三:通讯录信息的查找 声明void seek()为查找函数,通过switch(item)设定用学号查找,用姓名查找两个分支 模块四:通讯录信息的修改

声明void modify()为学生信息修改函数,通过switch(item)设定所要修改的项目模块五:通讯录信息按学号排序 声明void sort()将录入通讯录信息系按升序排列,用的是“冒泡排序法”实现排序模块六:加通讯录信息 声明void insert()插入通讯录信息,先通过判断通讯录是否存在,若否则继续输入,若是跳出,重新循环 模块七:通讯录信息 声明void del()实现通讯录信息删除,通过学号对比确定要删除的信息,然后用后一个替换掉。 模块八:示学生信息 通过display()函数输出通讯录信息 模块九;存信息 通过fp=fopen("student.txt","w");写入信息 模块十:界面菜单 通过switch(num)调用,以上各函数,实现功能 三、设计详情 1.主函数 主函数设计要求简洁,只提供部分提示语和函数的调用 【程序】

通讯录设计报告

C程序设计报告 系(部、中心) 姓名学号 专业班级 课程名称 设计题目名称 起止时间 成绩 指导教师签名

目录 第1章题目与要求 (3) 1.1 基本要求(及格 (3) 1.2 高级要求(加分)... (3) 第2章用户需求分析 (3) 2.1 功能需求 (3) 第3章设计方案 (3) 3.1设计思路 (3) 3.2功能设计 (3) 第4章实施方案 (4) 第5章软件调试 (5) 5.1 错误介绍 (5) 5.2 错误分析及解决方案 (5) 第6章程序流程图及结构说明 (6) 第7章程序清单 (7) 第8章效果展示 (18)

第1章题目与要求 本次程序设计实践的题目是《通信录管理系统的设计》。 1.1基本要求(及格) (1)使用C语言,设计一个字符界面并带有菜单的通信录管理系统,每个记录中应包含:姓名、性别、年龄、联系电话、电子邮箱等项目。 (2)最大记录数:100。 (3)程序基本功能:显示记录、添加记录、删除记录。 1.2高级要求(加分) (1)以多文件方式设计该程序。 (2)对程序中的数据类型进行自定义(为方便程序的阅读和管理,定义自己的类型名)。 (3)能将该通讯录制作成文件保存于磁盘。 第2章用户需求分析 2.1 功能需求 通过《程序设计实践I(能源11-12)》指导书中的相关要求,以及参考程序流程图的基本程序的框架,同时用户需求的基本功能,要求系统需要有以下功能:(1)有菜单选择界面; (2)联系人信息修改简单方便,支持多种方式的修改; (3)方便的联系人信息查询,支持多种方式的查询; (4)联系人信息查看功能能供用户详细的查看; (5)退出时若用户更改了联系人相关信息或添加、删除联系人时,会提示用户联系人信息已更改是否保存; (8)有动态的开始界面。 第3章设计方案 3.1 设计思路 为了更好地实现上述内容,此程序采用了结构体、链表,来处理联系人的数据。结构体能够包含联系人的各项信息,如姓名、家庭地址、电话号码等,克服了数组只能包含同种类型的数据的缺点。链表数据的存放不需要连续的内存,相对于结构体数组减少了内存空间的浪费。利用fopen等函数创建文件、保存文件数据等,实现退出程序后联系人的数据能够保存,方便以后的查看、添加、修改等动作。采取多文件的方式,能够更好地对程序进行维护调试。 3.2 功能设计

C语言通讯录程序课程设计报告书

3.6 实例6 通讯录程序 本实例希望设计一个通讯录程序,要求实现通讯录信息的录入,并具有添加、查询、删除、显示等功能;使用结构体存储通讯录中记录信息;使用链表来实现通讯录信息的添加、删除、查询及显示等操作;通讯录程序可实现文件读写,在通讯录信息录入结束之后,可存入文件中,在下次程序运行时可将通讯录中的记录读取到程序中。通讯录程序可采用基于Win32控制台程序构建或采用基于MFC应用向导.EXE的应用程序,下面对这两种方法进行详细介绍。 3.6.1. 设计目的 1、掌握结构体的基本工作原理和工作方式。 2、熟悉结构体与链表的使用方法。 3、熟悉C语言下数据的输入与输出。 4、掌握C语言下对TXT文件的读写操作。 5、熟悉函数的设计方法及调用方法。 3.6.2. 基本要求 1、本实例要求实现对通讯录信息的查找、添加、删除、显示等功能,每个功能模块均能实现随时从模块中退出,可以通过键盘对功能进行选择,完成一个通讯录管理系统的运行。

2、要使用结构体来实现对通讯录信息的存储。 3、使用链表来实现对通讯录信息的查找、添加、删除、浏览显示。 4、使用文件对记录进行存储,程序运行时还可以从文件中读取记录。 5、系统设计完成后应实现类似下图所示界面。 3.6.3 设计结构及算法分析 在进行程序设计时,选择一种合理的数据存储结构是非常关键的。本实例根据题目要求,采用结构体来存放通讯录中的信息,并采用文件存储通讯录中的信息。 1、存储结构 本实例存储数据时,除了采用最常用的基本类型存储外,采用结构体的方式来存储通讯录中的个人信息,结构体如下所

示: struct stu { char name[20]; /*人名*/ char telephone[20]; /*电话*/ char sex[4]; /*性别*/ char company[20]; /*单位*/ struct stu *next; /*链表节点*/ }; typedef struct stu STU; 2、main()主函数 采用模块化设计,功能放在各模块函数中实现。主函数是程序的入口,在其中采用循环结构,根据用户的键盘输入,依次调用各功能函数。 3、mycreate()函数------创建链表函数 函数根据用户输入的信息,存储到结构体中,并建立链表结构,函数返回链表的头指针。链表建立完成后,可根据链表的头指针来添加后续指针。 4、myadd()函数------添加学生信息记录函数 函数根据用户输入信息,分配内存,将数据存储到结构体中,并建立新的链表节点,链接到已经建立好的链表尾部。 5、mydelete()函数------删除链表节点

c语言通讯录管理系统

C语言课程设计:通讯录管理系统

目录 一、需求分析 (2) 二、概要设计 (2) 三、详细设计 (3) 四、上机操作 (14) 五、实习心得 (19) 六、源程序 (20)

一、需求分析 具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 (1)数据包括:人名、工作单位、电话号码和E-MAIL地址。 (2)可对记录中的姓名和电话号码进行修改。 (3)可增加和删除记录。 (4)可显示所有的保存记录。 (5)可按人名或电话号码进行查询。 [提示] 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。 二、概要设计 根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。 通讯录管理系统 修改退出 插入显示删除查询保存

三、详细设计 1、 主函数; 主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。 流程图 N Y 【程序】 int main() //主函数 { Man man[500],*pman=man;; char control; int size; printf("\t\t**********************************************\n"); //窗口初始化 printf("\t\t********** 欢迎使用通讯录管理系统! ***********\n"); printf("\t\t*--------------------------------------------*\n"); printf("\t\t* 请按回车键继续! *\n"); printf("\t\t**********************************************\n"); 开始 显示一系列功能选项 输入n ,判断是否是0~6 根据n 的值调用各功能模块函数 结束

C++-通讯录课程设计报告

C++面向对象程序设计 课程设计报告 》 设计题目:通讯录系统 学生学号: P P 学生姓名: 王元波次仁多布杰 专业班级:2009级计算机科学与技术(3)班学生成绩: 指导教师:蔡正琦 ] 计算机科学与信息工程学院 2010-6-26

一、设计任务分析 实现以下功能: · 1) 通讯录编辑(添加、删除); 2) 按不同的项进行查找; 3) 对已存在的通讯录按不同的项排序; 4) 将通讯录写入文件; 5) 从文件读入通讯录。 二、模块设计 本次程序设计主要设计了六个模块(主要是:(),(),(),(),(),(),())()函数用于通讯录中的信息进行添加,主要流程如下: — ()函数用于通讯录中的信息进行删除,主要流程如下:

()函数用于通讯录中的信息进行修改,主要流程如下: ()函数用于通讯录中的信息进行查找,主要流程如下:

~ ()函数用于通讯录中的信息进行排序,主要流程如下: ()函数用于从文本文件中读取信息,主要流程如下:

()函数用于将信息写入文本文件,主要流程如下:

三、… 四、主要数据结构 结构数组: struct student o<

通讯录管理系统课程设计报告书(C语言)[1]

开放教育 课程设计报告书 课程名称:通讯录管理系统 班级:综合邮政07秋 学号: 0 姓名:王芬 指导老师:高海东

通讯录管理系统 一.需求分析 设计题目及要求: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子 邮箱等; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 系统功能需求分析: 主要包含一下多种功能: 添加:添加通讯录记录 显示:显示通讯录记录 删除:删除通讯录记录 查询:查询通讯录记录 修改:修改通讯录记录 保存:将信息保存到文件 二.概要设计 系统功能模块图:

添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。 显示:可以以表格形式输出所有通讯录里的记录 删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容 查询:可以选择用姓名、电话、地址三种方式查询 修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改 保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件 三.详细设计 (1).通讯录: typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/ char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person;

通讯录系统程序设计报告

通讯录系统程序设计报告专业班级:电创新1301班 项目名称:通讯录系统程序设计 (address book system) 小组成员:陈灯念(组长) 罗晶晶 杨苒晨 于桐桐 盛超群 指导老师:张丽静 完成日期:2013年1月2日 教师评价:

目录 一、系统简介 1. 目标功能 2. 实现功能 3. 未实现功能 二、成员分工及完成情况 三、数据库 1. 登录数据库 2. 查询数据库 3. 老师通讯信息数据库 4. 同学信息数据库 四、具体模块设计 1. 登录部分 2. 主界面 3. 单击同学按钮 4. 单击老师按钮 5. 单击按姓名查找按钮 6. 单击按学号查找按钮功能 五、项目总结

一系统简介 ①目标功能: 1.电创新1301班的同学可以用个人姓名作为用户名,个人学号作为密码,进行登录界面的登录。若姓名与密码匹配,则登录成功。若输入的姓名不是电创新1301班同学的姓名或用户名与密码不匹配或密码错误,则弹出消息框显示“登录错误,请重试!” 2.登录后显示主界面。 (1)双击“同学”按钮,弹出对话框,可依次查看电创新1301班同学通讯信息。 (2)单击“老师”按钮,弹出对话框,可依次查看电创新1301班老师通讯信息。 (3)单击“朋友”按钮,弹出对话框,可依次查看自己的朋友的通讯信息。 (4)单击“家人”按钮,弹出对话框,可依次查看自己的家人通讯信息。 (5)单击“按姓名查询”按钮,弹出一个对话框,键盘输入被查询人(须为电创新1301班同学)的姓名,再单击“咱们来查找吧” 按钮,即弹出消息框显示被查询人的通讯信息。 (6)单击“按学号查询”按钮,弹出一个对话框,键盘输入被查询人(须为电创新1301班同学)的学号,再单击“咱们来查找吧” 按钮,即弹出消息框显示被查询人的通讯信息。 3. 点击同学,老师,朋友或家人按钮后,弹出对话框,可以单击“添 加”按钮或“删除”按钮添加或删除联系人或者单击“修改”按钮修 改联系人的信息。 ②实现功能: 通过本小组成员的通力合作,在看书和上网查询资料后,目前本通讯录实现的功能有: 1.电创新1301班的同学可以用个人姓名作为用户名,个人学号作为密码,进行登录界面的登录。若姓名与密码匹配,则登录成功。若输入的姓名不是电创新1301班同学的姓名或用户名与密码不匹配或密码错误,则弹出消息框显示“登录错误,请重试!” 2. 登录后显示主界面。 (1)双击“同学”按钮,弹出对话框,可依次查看电创新1301班同学通讯信息。 (2)单击“老师”按钮,弹出对话框,可依次查看电创新1301班老师通讯信息。 (3)单击“按姓名查询”按钮,弹出一个对话框,键盘输入被查询人(须为电创新1301班同学)的姓名,再单击“咱们来查找吧”按钮,即弹出消息框显示被查询人的通讯信息。 (4)单击“按学号查询”按钮,弹出一个对话框,键盘输入被查询人(须

c语言通讯录源代码打印

c语言通讯录源代码打 印 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

#include <> #include <> #include <> #include <> struct person { char name[15]; char sex[2]; int nianling; long int youbian; char addr[50]; char celephone[22]; char homephone[22]; char company[20]; char email[40]; long int QQ; }per[500]; int num=0;2aame); if(strlen(per[num].name)>15) { printf("对不起!您的输入有误!请重新输入"); goto name; } printf("\n请输入性别:\n"); sex: scanf("%s",&per[num].sex); if(strlen(per[num].sex)==0) { printf("对不起!您的输入有误!请重新输入"); goto sex; } printf("\n请输入年龄:"); nianling: scanf("%d",&per[num].nianling); if(per[num].nianling<10||per[num].nianling>1 10) { printf("对不起!您的输入有误!请重新输入"); goto nianling; } printf("\n请输入邮编\n"); youbian: scanf("%d",&per[num].youbian); if(per[num].youbian<10000||per[num].youbia n>999999) { printf("对不起!您的输入有误!请重新输入"); goto youbian; } printf("\n请输入地址\n"); addr: scanf("%s",&per[num].addr); if(strlen(per[num].addr)>50||strlen(per[num].a ddr)<4) { printf("对不起!您的输入有误!请重新输入\n"); goto addr; } printf("\n请输入手机号码:\n"); celephone: scanf("%s",&per[num].celephone); if(strlen(per[num].celephone)!=11) { printf("对不起!您的输入有误!请重新输入\n"); goto celephone; }

通讯录管理系统(C语言)

说明 1、设计的目的 1)复习巩固C语言的基础知识,进一步加深对C语言编程的理解和掌握;2)利用所学知识,理论和实际结合,利用资源,采用模块化的结构,使用模仿修改自主设计相结合的方法,锻炼学生综合分析解决实际问题的编程能力;3)培养学生在项目开发中团队合作精神、创新意识及实战能力。 2、设计的任务 根据学生的实际情况,进行分组选题。主要的课程设计题目如下(学生也可自主选题): 1、图书管理系统 2、学生信息管理系统 3、学生成绩管理系统 4、学生通讯录管理系统 5、职工信息管理系统 6、设计简单的计算器 课程设计采用学生自主设计和指导老师辅导相结合的方式。 3、设计要求与设计报告 设计要求: 1、任选上述题目之一,或自选题目。 2、模块化的程序设计 3、锯齿形的程序书写格式。 4、必须通过编译连接运行 设计报告: 1、设计目的和任务 2、总体设计:包括程序设计组成框图、流程图。 3、详细设计:包括模块功能说明:函数功能、入口及出口参数说明,函数调用关系描述等。 4、调试与测试:包括调试方法,测试结果分析与讨论,测试过程中遇到的主要问题及采取的解决措施。 5、源程序清单和执行结果:清单中应有足够的注释。

设计目的和任务 (主要介绍设计的任务,为什么要设计,设计要达到什么样的目的。) 设计目的:(1)基本掌握面向过程程序设计的基本思路和方法; (2)达到熟练掌握C语言的基本知识和技能; (3)能够利用所学的基本知识和技能,解决简单的程序设计问题 程序功能:(1).学生基本信息及成绩所选科目成绩的录入。 (2).基本信息的查询(分系、班级;分科目)与修改。 (3).对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率); (4).对所开课程的成绩分析(求其平均成绩,最高分和最低分); (5).对学生考试成绩进行排名; 目录 一、总体设计 (3) 二、详细设计 (4) 三、调试与测试 (5) 四、源程序清单和执行结果 (6) 五、建议和体会 (7) 六、参考文献 (8)

C语言程序的设计报告_个人通讯录

航空航天大学金城学院 《C语言程序设计》课程设计报告个人通讯录系统 学号:: 学号:: 日期:

目录 一、需求分析: (3) 二、程序的主要功能: (3) 三、程序运行平台: (3) 四、系统总框架图: (6) 五、程序类的说明: (6) 六、模块分析: (8) 七、比较有特色的函数: (9) 八、存在的不足与编程体会 (10) 九、程序源代码: (10)

一、需求分析 各类存储和通信电子产品都带有通讯录的功能,可以对联系人进行简单的信息管理和存储。 二、程序的主要功能 ?用户信息界面美观、简洁,采用菜单式显示功能选择; ?能够从磁盘文件输入和输出数据; ?能够对联系人信息进行增、删和改的操作; ?能够根据联系人的的拼音顺序从高到低排序; 三、程序运行平台 VC6.0 运行程序“perosnalcontact.exe”,进入登录界面如下 **************************** * * * * * 通讯录文件不存在! * * 通讯录文件已建立! * * * * * **************************** 按任意键进入主菜单 请输入您的数字选择: 一、按下任意键进入主菜单 您好! 欢迎使用通讯录! 1: 添加个人信息 2: 查询个人信息 3: 删除个人信息 4: 修改个人信息 5: 信息排序 6: 输出全部信息 7: 写入文件 8: 读取文件 9: 删除所有 0: 退出 请输入您的数字选择:

选择1进入添加信息模块: 请输入您要添加的联系人的信息: 请输入: 选择2进入查询个人信息模块: 欢迎使用查询菜单 1-按查询 2-按QQ查询 3-返回主菜单 请输入您的选择 选择3进入删除个人信息模块 删除菜单 1-删除单个 2-返回主菜单 请输入您的数字选择: 选择4.进入修改个人信息模块 1-按修改 请输入您的数字选择: 选择5.进入联系人排序模块 排序菜单 1-按排序 2-返回主菜单请输入您的数字选择: 选择6.进入输出信息模块 *************** 以下为通讯录所有信息************ ________________________________ 名字: 13213 性别: 2144444444444 手机: 44444444444 电子:44444444444 QQ:444444444 ________________________________ ************************************************ 请按任意数字键返回主菜单 选择7.进入写入文件模块

通讯录管理系统(C语言)—单链表

广州大学物理与电子工程学院 程序与设计训练 通讯录管理系统实验报告 专业班级:电子121 设计人员:元达鹏 学号:1219200065 2013年6月24日

通讯录管理系统 一.需求分析 设计题目及需求: (1)查看功能:选择此功能时,列出下列三类选择。A 办公类 B 个人类 C 商务类,当选中某类时,显示出此类所有数据中的姓名和电话号码) (2)增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件。例如:杨春135******** 商务类chuny@https://www.360docs.net/doc/5d2063989.html, (3)当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。 (4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 系统功能需求分析: 主要包含以下几种功能: 1.建立通讯录(建立功能) 2.删除通讯人(删除功能) 3.保存通讯录(保存功能) 4.读取通讯录文件(读取功能) 5.查找通讯人(查找功能) 6.添加通讯人(添加功能) 7.修改通讯人信息(修改功能)

8.退出通讯录系统 二.概要设计 系统功能模块图: 主菜单 建立删除保存读取查找添加修改退出 建立功能:在主菜单中输入1,进入建立功能。用户自己输入通讯录文件名,建立一个新的通讯录,便开始输入信息,一旦想结束添加,在输入姓名处输入“*”结束录入。(当录入相同的姓名和电话时,系统会告 诉你已经重复录入) 删除功能:在主菜单中输入2,进入删除功能。用户输入待删除人的姓名,系统会自动显示待删除人的信息,并且提示是否删除该通讯人。(当输 入的姓名不存在的时候,系统会告诉你此人不存在) 保存功能:在主菜单中输入3,进入保存功能。将你已经写好的通讯录保存在建立时创建的文件里面。(当保存成功后,系统会告诉你保存成功) 读取功能:在主菜单中输入4,进入读取功能。读取一个任意一个已经存在的文件,用户可以输入想要读取的文件,一旦文件读取成功,系统会告诉你文件读取成功。 查找功能:在主菜单中输入5,进入查找功能。查找方式有三种:1. 按姓名查

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

一、实践的目的和要求 加深对C语言课程所学知识的理解,进一步巩固C语言算法规则.学会编制结构清晰.风格良好.数据结构适当的C程序,从而具备解决综合性问题的能力. 二、内容 在熟练掌握C语言的基础知识:数据类型(整型.实型.字符型.指针.数组.结构等); 运算类型(算术运算.逻辑运算.自增自减运算.赋值运算等);程序结构(顺序结构.判断选择结构.循环结构);大程序的功能分解方法(即函数的使用)等.进一步掌握各种函数的应用以及文件的读写操作等. 三、实验任务:通讯录 设计要求:实现菜单设计,使用数据文件保存和修改,应用结构体和指针 功能要求:通讯录信息生成,存储,查询,修改,插入,删除,打印等. 四、设计思路 1.通讯录的主要信息包括:编号,姓名,性别,联系电话.住址,邮编. 2.用结构体数组来存储信息,有Data_Input函数来实现信息的录入,用Data_Show函 数来显示打印信息,用Data_Sreach函数来查找信息,用Data_Insert函数来插入信 息,用Data_Alter 函数来修改信息,用Data_Delete函数来删除信息,用Data_Save 函数来保存信息,用Exit函数来退出通讯录. 3.小组分工,每个人分配几个函数,按情况进行分配任务. 五、程序代码 #include/*字符函数和字符串函数*/ #include/*字符模式函数(调用getch()函数)*/ #include/*输入输出函数*/ int i; struct friend/*电子通讯录结构定义*/ { char num[5]; /*编号*/ char name[11]; /*名字*/ char sex[2]; /*性别*/ char phone[12]; /*电话*/ char address[26]; /*地址*/ char post_num[11]; /*邮编*/ }friends[50]; FILE *fp; void Data_load() /*数据载入函数*/ {int j; fp=fopen("friend.txt","r+"); /*打开文件friend.txt*/

相关文档
最新文档