文档库 最新最全的文档下载
当前位置:文档库 › 通讯录管理系统(C语言)—单链表

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

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

广州大学物理与电子工程学院

程序与设计训练

通讯录管理系统实验报告

专业班级:电子121

设计人员:元达鹏

学号:1219200065

2013年6月24日

通讯录管理系统

一.需求分析

设计题目及需求:

(1)查看功能:选择此功能时,列出下列三类选择。A 办公类 B 个人类 C 商务类,当选中某类时,显示出此类所有数据中的姓名和电话号码)

(2)增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件。例如:杨春135******** 商务类chuny@https://www.wendangku.net/doc/398485904.html,

(3)当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。

(4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改

(5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。

系统功能需求分析:

主要包含以下几种功能:

1.建立通讯录(建立功能)

2.删除通讯人(删除功能)

3.保存通讯录(保存功能)

4.读取通讯录文件(读取功能)

5.查找通讯人(查找功能)

6.添加通讯人(添加功能)

7.修改通讯人信息(修改功能)

8.退出通讯录系统

二.概要设计

系统功能模块图:

主菜单

建立删除保存读取查找添加修改退出

建立功能:在主菜单中输入1,进入建立功能。用户自己输入通讯录文件名,建立一个新的通讯录,便开始输入信息,一旦想结束添加,在输入姓名处输入“*”结束录入。(当录入相同的姓名和电话时,系统会告

诉你已经重复录入)

删除功能:在主菜单中输入2,进入删除功能。用户输入待删除人的姓名,系统会自动显示待删除人的信息,并且提示是否删除该通讯人。(当输

入的姓名不存在的时候,系统会告诉你此人不存在)

保存功能:在主菜单中输入3,进入保存功能。将你已经写好的通讯录保存在建立时创建的文件里面。(当保存成功后,系统会告诉你保存成功)

读取功能:在主菜单中输入4,进入读取功能。读取一个任意一个已经存在的文件,用户可以输入想要读取的文件,一旦文件读取成功,系统会告诉你文件读取成功。

查找功能:在主菜单中输入5,进入查找功能。查找方式有三种:1. 按姓名查

找 2. 按类型查找 3. 查看所有人

添加功能:在主菜单中输入6,进入添加功能。在还没有读取或者建立一个新的通讯录的时候,添加功能是无效的,系统会告诉你请你先新建立

一个通讯录或者先读取通讯录文件。进入添加功能以后,可以按提

示添加通讯人信息。

修改功能:在主菜单中输入7,进入修改功能。在还没有读取或者建立一个新的通讯录的时候,修改功能也是无效的,系统会告诉你请你先新建

立一个通讯录或者先读取通讯录文件。修改功能是和删除功能一

样,也是通过姓名进行查找的。

退出功能:在主菜单中输入8,退出通讯录管理系统。

三.详细设计

(1)通讯录

#define ID struct tel //宏定义,方便以后的使用

struct tel

{

char name[10]; //姓名

char tele[15]; //电话

char style[15]; //类型

char mail[20]; //邮箱

ID * next;

};

void main()

{

ID *head=NULL; //这是这个程序的头,什么功能都是靠这个来进行链接的int choice; //存放用户的选择

int j=0; //这个j是用于功能之间的配合使用

while(1)

{

system("cls"); //清屏

printf("\n\n");

printf("\t # # # # # System Of Communication # # # # #\n");

printf("\t 1. 建立通讯录\n");

printf("\t 2. 删除通讯人\n");

printf("\t 3. 保存通讯录\n");

printf("\t 4. 读取通讯录文件\n");

printf("\t 5. 查找通讯人\n");

printf("\t 6. 添加通讯人\n");

printf("\t 7. 修改通讯人信息\n");

printf("\t 8. 退出通讯录系统\n");

printf("\t\t\t\t\tMade by 元达鹏\n");

printf("\t # # # # # # # # # # # # # # # # # # # # # #\n");

printf("\n\n");

scanf("%d",&choice); //输入功能

getchar(); //吸收回车键

switch(choice)

{

case 1:

head=Create(); //创建

j=1; //让功能7可以进得去

break;

case 2:

head=Delete(head); //删除

break;

case 3:

Save(head); //保存函数

break;

case 4:

head=Read(); //读取文件的函数

j=2; //让功能7可以进得去

break;

case 5:

Search(head); //查找

break;

case 6:

if((j==1)||(j==2)) //当你进入过创建或者读取之后才可以进入添加

{

head=Add(head); //添加

}

else

{

printf("在你添加通讯人的时候请先创建通讯录或者读取通讯录文件\n\n");

printf("请按任意键返回主菜单\n");

getch(); //按下任意键就进入下一条语句的函数

}

break;

case 7:

if((j==1)||(j==2)) //当你进入过创建或者读取之后才可以进入添加

{

head=Change(head); //修改

}

else

{

printf("在你删除通讯人的时候请先创建通讯录或者读取通讯录文件\n\n");

printf("请按任意键返回主菜单\n");

getch(); //按下任意键就进入下一条语句的函数

}

break;

case 8:

exit(0); //退出

break;

default:

printf("你输入错了吧,请你重新输入\n");

}

}

}

(2)工作流程图 ①建立:建立一个通讯录

N

Y

Y N

N

Y

N

开始

是否已创建

是否重新创建

输入文件名 输入通讯人信息

姓名是否为*号

是否保存

保存文件

结束

②删除:删除一个通讯人

N

Y

Y

N

N

Y

开始

姓名是否存在

输入待删除人的姓名

是否删除

是否保存

保存

结束

③保存:保存通讯录于文件中

Y N

开始

结点是否为空

将单链表的结点输入到文件中

文件成功保存

结束

④读取:读取文件中的通讯录

Y

N

开始

输入文件名

文件是否存在 读取文件内容

结束

⑤查找:多种方式查找通讯人 3

1

2

Y

N

Y

N

Y

开始

输入要用什么方式查找:1,、姓名,2、类别,3.所有人

输入名字

输入类别

判断名字是否存在

判断类型是否存在

输出该所有相同名字的所有信息

输出该所有相同类型的所有信息

输出所有人的所有信息

是否继续查询

结束

⑥添加:添加通讯人

开始

判断是不是已经有

相同的名字和电话

输入待添加人

的所有信息

结束

⑦修改:通过名字修改通讯人信息

N

Y

开始

输入待修改人的名字

通讯录中是否存在该名字的人

修改该人的信息

结束

四.程序源代码

#include

#include //除了一些常用函数需要以外,如在网上查到的system清屏函数,exit退出函数也需要这个H文件

#include //程序中的字符比较strump函数需要这个H文件

#include //在网上查的getch函数需要这一个H文件

#define ID struct tel //宏定义,方便以后的使用

struct tel

{

char name[10]; //姓名

char tele[15]; //电话

char style[15]; //类型

char mail[20]; //邮箱

ID * next;

};

int total=0; //通讯录人数的统计

void Save(ID *head); //保存函数的声明,因为你在调用Create函数时用到了

/***********************************************

*函数名:Create(创建)

*功能:创建一个单链表,把数据放在链表里面,一旦需要保存,就调用save函数保存在文件中

*返回值:ID *(结构体指针)

***********************************************/

ID* Create()

{

total=0;

int k=0;

int i=0;

ID *head,*p1,*p2,*p3; //创建一个头指针和两个可用于移动的指针

char saveflag; //这个字符用来接收是否保存的Y or y的

head=p1=p2=NULL; //首先把上述的指针赋值为空

while(1) //这个循环可以实现多次添加通讯人

{

p1= (ID*)malloc(sizeof(ID)); //给p1分配一个动态存储空间

printf("请输入姓名,当你不想录入时,在姓名处输入*,结束录入\n");

scanf("%s",p1->name); //输入姓名

if(strcmp(p1->name,"*")==0) //这里是结束函数的一个通道(没有输入联系人),就是判断输入的是否为*号

{

if(total==0) //当记录人数为0时做以下事情

{

printf("你输入了0条记录,单链表没有创建...\n");

free(p1); //释放p1空间

return (head); //把head返回

}

else

{

break; //跳出while循环

}

}

printf("请输入电话号码:\n");

scanf("%s",p1->tele);

printf("请输入类别:办公类、个人类、商务类\n");

scanf("%s",p1->style);

printf("请输入邮箱:\n");

scanf("%s",p1->mail);

if(k>0)

{

p3=head; //让p3从头开始遍历

while(p3!=NULL) //当p3不为空时

{

if((strcmp(p1->name,p3->name)==0)&&(strcmp(p1->tele,p3->tele)==0))

{

free(p1);

printf("你重复输入了,这一条不保存。请按任意键返回主菜单\n");

i=1;

printf("请按任意键返回主菜单\n");

getch(); //按下任意键就进入下一条语句的函数

break;

}

if((strcmp(p1->name,p3->name))&&(strcmp(p1->tele,p3->tele))&&(p3==p2)) //一旦到了最后一个结点,并且还没有和他相同的信息的时候

{

i=0;

break; //跳出第一个循环

}

p3=p3->next;

}

if(i==1)

{

break; //跳出第二个循环

}

}

if(head==NULL) //这是第一次进来的时候,head为空

{

head=p1; //head和p2都为p1

p2=p1;

}

else

{

p2->next=p1; //这是第二次以后的执行命令,目的就是p2向后移,而head 的位置不变

p2=p1;

}

total++; //这是录入一个人后,总数就加1

k++;

}

p2->next=NULL; //把最后一个的指针域赋值为NULL,在以后的函数中,很多判断都是靠这一点来实现的,所以很重要

if(i==0)

{

free(p1);

printf("\n新建通讯录成功,共有%d个联系人,是否保存?(Y/N)\n ",total);

getchar(); //这个getchar是吸收回车键的,十分重要

scanf("%c",&saveflag); //写入一个字符

if(saveflag=='y'||saveflag=='Y') //判断它是不是为Y or y

Save (head); //进入到保存函数里面,保存到文件里面

else

printf("\n没有保存到成功保存到文件,请在返回主菜单后输入3保存通讯录。\n");

}

return head; //返回一个头指针,这个是最重要的,因为在后面的函数中,大部分都是要头指针作为参数的

}

/************************************************

*函数名:Save(保存)

*功能:将链表(数据)保存在文件

*返回值:NULL

*************************************************/

void Save(ID *head)

{

FILE *fp; //定义一个文件指针,接收fopen的返回值,用于最后的关闭文件

ID* t ; //定义一个指针,从头到尾遍历一遍单链表,向文件中写入

if ((fp=fopen("telephone.txt","w"))==NULL) //打开文件来写入

{

printf("打开文件失败!\n");

getch(); //输入任意键进入下一步

exit(0); //退出

}

t=head; //把头指针赋给t,让它从头开始

while(t!=NULL) //只要t指针不为空,即等于链表没有结束

{

fwrite(t,sizeof(ID),1,fp); //把链表的东西写入文件中

t=t->next; //把指针往后移

}

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

printf("文件保存成功\n");

printf("请按任意键返回主菜单\n");

getch(); //按下任意键就进入下一条语句的函数

}

/************************************************

*函数名:Read(读取文件)

*功能:读取文件中的信息并将其放入单链表中,并且最后返回一个头指针

*返回值:ID *(结构体指针)

*************************************************/

ID * Read()

{

FILE *fp; //定义一个文件指针,接收fopen的返回值,用于最后的关闭文件

ID *t1,*t2,*head=NULL; //定义3个结构体指针,一个头指针用于返回,2个可移动的临时指针

char ch; //定义一个变量来存放文件的第一个字符,但在这个函数里面主要是用来判断

文件是不是为空

if((fp=fopen("telephone.txt","r"))==NULL) //这可以判断有没有文件给你去读取

{

printf("打开文件失败!没有该文件\n\n");

printf("请按任意键退出程序\n");

getch(); //一个在网上查到的函数,用于你可以按任意键进入下一步

exit(0); //退出程序

}

/****** 这是在网上查到的一段有关于文件的程序******/

ch=fgetc(fp); //这是在网上查到的一个有关文件的函数,返回值是文件的第一个字符,当文件为空的时候,他返回的是一个特殊值:EOF

if(ch==EOF) //当文件为空的时候

{

printf("文件为空,请重新建立一个通讯录\n");

printf("请按任意键返回主菜单\n");

getch(); //按下任意键就进入下一条语句的函数

return (head); //返回一个指针,因为这个函数要有一个返回值,所以把头指针返回出去

}

else

{

rewind(fp); //这个函数是把一个文件的位置指针从新移至开头,不然的话会出现一个组数据丢失

}

/*************************************************/

t1=(ID *) malloc(sizeof(ID)); //开始申请动态空间,用t1接着

head=t1; //把t1赋给头结点

while(!feof(fp)) //feof函数的功能是判断这个文件是不是结束了,如果结束了,返回一个非零值,否则返回一个0,来自百度

{

if(fread(t1,sizeof(ID),1,fp)!=1) //根据书上的定义,fread函数的类型为int型,返回一个输入数据项的个数

break; //如果没有读取的内容,则结束

total++; //人数加1

t1->next=(ID *)malloc(sizeof(ID)); //把在申请动态空间的同时,把t1的next指向下一个结点

t2=t1; //让t2和t1指向同一个地方

t1=t1->next; //t1向后移一个结点

}

t2->next=NULL; //把t2的指针域赋值为空,因为数据最多到t2这里

free(t1); //把后来的t1申请多出来的空间清空掉

fclose(fp); //关闭文件

printf("文件已经成功读取\n");

printf("请按任意键返回主菜单\n");

getch(); //按下任意键就进入下一条语句的函数

return head; //返回一个头指针,因为在没有创建一个单链表和文件的时候,就是靠这个头指针进行一系列的操作的

}

/************************************************

*函数名:Search(查询)

*功能:可以通过姓名查询,也可以通过类别查询

*返回值:NULL

*************************************************/

void Search(ID* head)

{

int num; //定义一个变量在确定是否进入switch语句里

int count=1;

ID* p; //定义一个结构体变量,用来放头指针

int flag,searchflag=1; //变量flag是用来判断是不是有符合要求的数据,变量searchflag 是一个while语句的出入口

char c,temp; //变量c是来存放姓名的首字符的,变量temp是用来存放Y or y的

char ch[10]; //数组ch用来放输入的类型

printf("请输入你希望通过什么方式查询:(请输入序号)\n");

printf("1.姓名\n");

printf("2.类别\n");

printf("3.所有人\n");

scanf("%d",&num); //选择你想要查询的方式

getchar(); //吸收回车键

switch(num) //switch语句是看你要进入哪个功能

{

case 1:

while(searchflag) //searchflag已经初始化为1,所以进入while中,通过改变searchflag的值确定是不是离开while语句

{

flag=0; //初始化为0

printf("\n请输入待查找者的首字母,或者查找者的姓: \n");

scanf("%c",&c); //存放你的要求,首字母或姓

getchar(); //吸收回车键

p=head; //把形参头指针head给p

while(p!=NULL) //一直循环直到p结点为空

{

if(p->name[0]==c) //当姓名的第一个字符和你的要求c一样的时候,进入if语句

{

printf("%d. ",count);

count++;

printf("姓名:%s\t电话号码: %s\t类型:%s\t邮箱:%s\n",p->name,p->tele,p->style,p->mail);

flag=1; //flag赋值为1,表示为已经查到了数据了

}

p=p->next; //p1指针向后移

}

if(flag==0) //这表示为没有找到相关数据

{

printf("\n对不起,未能找到符合条件的记录\n");

}

printf("\n查找完毕,是否需要重新查询?Y/N\n");

scanf("%c",&temp); //输入是或者否(Y/N)

getchar(); //吸收回车键

if(temp=='y'||temp=='Y') //判断是不是y or Y

{

searchflag=1; //回到while继续从头开始

}

else

{

searchflag=0; //回到while并且退出

system("cls"); //为了美观,在网上找了清屏函数

}

}

break;

case 2:

while(searchflag) //searchflag已经初始化为1,所以进入while中,通过改变searchflag的值确定是不是离开while语句

{

flag=0; //初始化为0,

printf("\n请输入被查找人的类别:(如:“办公类”“个人类”“商务类”)\n");

scanf("%s",ch); //用字符数据接收字符串

getchar(); //吸收回车键

p=head; //把形参头指针head给p

while(p!=NULL) //searchflag已经初始化为1,所以进入while中,通过改变searchflag的值确定是不是离开while语句

{

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语言-通讯录管理系统

#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语言的基本常识,并可以逐渐自己来实现一些简单的程序任务。此次程序设计我选择了通讯录设计,通过函数、结构体的定义以及一些基本操作运用,经过一个多月的编写、调试、测试,最终完成了该程序的设计。以下为我的设计思路:首先,确定通讯录的功能,我初步设计了六项功能:输入(程序中对应 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语言课程设计报告

重庆科技学院 《C语言程序设计》 课程设计报告 学院:_电气与信息工程学院_ 专业班级:电自专2011-01 学生姓名:蒋洪山学号: 2011630194 设计地点(单位)________ I515 ______________ __ 设计题目:__________个人通讯录管理系统 _____________ 完成日期: 2012 年12月28日 指导教师评语: ______________________ _________________ __________________________________________________________________________________ __________________________________________________________________________________ _____________________________________ __________ _ 成绩(五级记分制):______ __________ 指导教师(签字):________ ________

摘要 本次课程设计的题目为个人通讯录管理系统,要求将程序中所输入的联系人姓名、电话和地址信息这三个数据以文本方式保存在磁盘中,并且能够对所储存的联系人信息进行显示、查询、修改、删除等功能。 我编写的程序从整体上看可分为两个部分,一部分为文件的建立、读取和保存,另一部分为通讯录功能的实现。在文件部分,我通过readfile()函数和writefile()函数从而实现了对磁盘上数据的进行写和读,通过刚开始的界面提示可以知道文件是否建立,以免丢失数据,我还为用户设计了保存退出和不保存退出两大功能供用户做选择。在模块功能实现部分,通过scanf从键盘上输入的数字放到switch() case 循环中来实现调用zengjia()、shanchu()、xiugai()、chazhao()等十五个函数来实现“添加”、“查询和显示”、“修改”、“删除”等不同功能。 关键字:文件、数组、循环、函数

c课程设计通讯录管理系统》

课程设计说明书(论文)课程名称 C++程序设计实践 题目通信录管理系统 专业软件工程班级 学号姓名 xx 起止日期 指导教师赵新慧成绩 辽宁石油化工大学计算机与通信工程学院

摘要 本次课程设计任务是通过编写一个通信录管理系统,学习用Visual?C++?开发简单的管理系统。采用Visual?C++?软件为主要开发工具。巩固和加深学生对C++课程的基本知识的理解和掌握,掌握C++编程和程序调试的基本技能,利用C++进行简单软件设计的基本思路和方法,提高运用C++解决实际问题的能力,掌握书写程序设计说明文档的能力使用计算机进行信息管理。实现通信录的管理功能(添加、删除、排序)、按姓名查询的功能,以及把联系人资料保存在文件中,将文件中内容读出来。使用计算机进行系统管理,不仅提高了工作效率,而且大大提高了其安全性,尤其对于复杂的信息管理,计算机能充分地发挥它的优越性,通信录管理系统是每个人不可缺少的部分,在课程设计中,系统开发平台为Windows XP,程序设计语言采用Visual C++,在程序设计中,运用了面向对象解决问题的方法。程序通过调试运行,初步实现了设计目标。 Abstract The curriculum design task is through the preparation of a student achievement ranking management system, learning management system with Visual C++ 6 to develop simple. Using Visual C++ 6 software as the main development tool. To consolidate and deepen the students the basic knowledge of C++ course of understanding and master, master the basic skills of C++ programming, the basic idea and method of software design using C++, to improve the ability to use C++ to solve practical problems, to master the ability to write program design use of computer information management. Realization grade management functions (add, delete, sort), statistical functions (the highest score, the lowest score, average score, pass rate), student ID, name, or the name of course query results function, as well as the students' scores are stored in the file. The use of computer management system, not only

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语言)

说明 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语言)[1]

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

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

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

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语言)—单链表

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

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

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

个人通讯录管理系统C语言源程序(总6页)

个人通讯录管理系统C语言 源程序(总6页) -CAL-FENGHAI.-(YICAI)-Company One1 -CAL-本页仅作为文档封面,使用请直接删除

#include <> xt","r"))==NULL) /*以只读方式打开判定文件是否为空*/ { printf("\n\t\t\t 通讯录文件不存在"); /*判断结论*/ if ((fp=fopen("同通讯录.txt","w"))==NULL) /*只写方式判断*/ { printf("\n\t\t建立失败"); /*为空结论*/ exit(0); /*退出*/ } else /*不为空则执行else*/ { printf("\n\t-----------------欢迎使用通讯录管理系统------------------"); printf("\n\t 通讯录文件已建立 "); printf("\n\t 按任意键进入主菜单 "); printf("\n\t---------------------------------------------------------"); getch(); return ; } exit(0); } fseek(fp,0,2); /*文件位置指针移动到文件末尾*/ if (ftell(fp)>0) /*文件不为空*/ { rewind(fp); /*文件位置指针移动到文件开始位置*/ for (n=0;!feof(fp) && fread(&txl[n],sizeof(struct tongxunlu),1,fp);n++); printf("\n\t----------欢迎使用通讯录管理系统版----------------"); printf("\n\t 文件导入成功 "); printf("\n\t 按任意键返回主菜单 "); printf("\n\t---------------------------------------------------------"); getch(); return; } printf("\n\t------------欢迎使用通讯录管理系统版--------------"); printf("\n\t 文件导入成功 "); printf("\n\t 通讯录文件中无任何纪录 "); printf("\n\t 按任意键返回主菜单 "); printf("\n\t---------------------------------------------------------"); getch(); return; } ingming); /*键盘输入*/ printf("\n\t\t输入联系人电话号码:"); scanf("%s",txl[n].dianhua); printf("\n\t\t输入联系人地址:"); scanf("%s",txl[n].dizhi);

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

个人通讯录管理系统C语言源程序优秀版 Last revision date: 13 December 2020.

#i n c l u d e/*头文件*/ #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 通讯录文件不存在"); /*判断结论*/

c语言通讯录管理系统

一课程设计要求 1通讯录要求惯例的信息结构体成员有:姓名,单位,电话,家庭住址。2程序菜单为: ************************MEUN*************************** 0.Enter record /*输入记录*/ 1.List the file /*显示全部记录*/ 2.Search record on name /*查找记录*/ 3.display record on name /*按序号显示记录*/ 4.Delete a record /*删除记录*/ 5.add record /*增加记录*/ 6.sort by name /*按姓名排序*/ 7.Quit /*退出*/ 3定义多个子函数与菜单对应: /***********以下是函数原型************/ int menu_Select(); /*主菜单函数*/ void Init();/*单链表初始化*/ void Create();/*创建单链表,输入记录*/ void List (ADDRESS t[],int n); /*显示全部记录*/ void SearchByName (ADDRESS t[],int n); /*按姓名查找*/ int Delete (ADDRESS t[],int n); /*删除记录*/ int Delete (ADDRESS t[],int n); /*删除记录*/ int Add (ADDRESS t[],int n); /*插入记录*/ void SearchByIndex (ADDRESS t[],int n); /*按序号查找显示序列 */ void Sort(ADDRESS t[],int n); /*按姓名排序*/ 二功能框图

个人通讯录管理(c语言课程设计)

安徽工业大学 《C语言课程设计》实习综合报告课题名称:个人通讯录管理系统 实习成员:王刚 学号: 109074372 专业班级: 网络工程103班 指导教师: 郑啸老师

目录 一.问题描述 (2) 二. 各功能流程图与设计思路 (3) 2.1显示模块 (3) 2.2查找模块……………………………………………4.. 2.3添加模块 (6) 2.4删除模块 (8) 2.5修改模块 (9) 三、文件的读取与保存 (11) 四、程序源代码 (12) 五、调试与运行结果 (18) 六、计算机学院课程设计评定意见 (24) 一.问题描述

设计通讯录包含以下功能: (1)通讯录的每一条信息包括姓名、单位、固定电话、移动手 机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ 等。 (2)输入功能:可以一次完成若干条信息的输入。 (3)显示功能:完成全部通讯录信息的显示。 (4)查找功能:可以按姓名等多种方式查找通讯信息。 (5)增加、删除、修改功能:完成通讯录信息的多种更新。 二.各功能流程图与设计思路 Menu菜单:

运用switch()进行操作: case'1': 显示功能,list()函数 说明:利用for循环,逐个输出已保存的内容 代码如下: //*****************显示通讯录中的内容************* void list() { printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n"); for(i=0;i

相关文档
相关文档 最新文档