通讯录链表课程设计

通讯录链表课程设计
通讯录链表课程设计

目录

一、摘要 (2)

一、实验内容 (3)

1.1问题描述 (3)

1.2选题目的 (3)

二、概要设计 (3)

3.1功能函数 (3)

3.2主程序流程图 (3)

三、实验结果 (4)

四、部分实验结果的截图 (4)

4.1主页面 (4)

4.2 通讯录链表的建立的页面 (4)

4.3通讯录链表的插入的页面 (5)

4.4通讯录链表的查询的页面 (5)

4.5通讯录链表的删除的页面 (6)

4.6通讯录链表的输出的页面 (6)

五、实验心得 (6)

六、部分功能代码 (7)

七、参考文献 (13)

八、附录 (14)

摘要

本课程设计主要利用结构类型,指针,函数等C语言知识来实现通讯录链表的建立、通讯录结点的插入、通讯录结点的删除、通讯录结点的查询、通讯录链表的输出、退出管理这六大功能。

关键字:结构类型通讯录结点

通讯录管理链表课程设计

一、实验内容:

1.1问题描述:

给出n个学生的基本信息,信息包括学生的学号、姓名、性别、年龄、电话号码、家庭住址,并能进行查询、删除、插入、输出操作,设计一个简单的学生信息管理程序。

1.2选题目的:

本课程设计可加深对C语言的理解,增强动手能力,以培养学生合作的能力,为毕业设计作好实践环节上的准备。通讯录系统是在学校常见的计算机信息管理系统。它的主要任务是对个人信息进行管理,如学生信息的输入、查询、修改、增加、删除,迅速准确地完成各种学生信息的统计和查询。

二、概要设计:

3.1功能函数:

菜单选择函数程序:intmenu_select();

用尾插法建立通讯录链表函数:linklistcreatelist(void);

在有序链表head中插入结点:voidinsertnode(linklisthead,listnode *p);

通讯录链表上的查找:listnode *listfind(linklist head);

通讯录链表上结点的删除:voiddelnode(linklist head);

通讯录链表上结点的输出:voidprintlist(linklist head);

新建结点:linklistinsertdata(void);

3.2主程序流程图:

三、实验结果:

实现了题目要求的基本功能,没有功能的拓展。

四、部分实验结果的截图:

4.1主页面:

4.2 通讯录链表的建立的页面:

4.3通讯录结点的插入页面:

4.4通讯录结点的查询的页面:

4.5通讯录结点的删除的页面:

4.6通讯录链表的输出页面:

五、实验心得:

在大学本科阶段就对C语言有了一定的了解,但是从没像现在这样完整的去做个系统,通过这次课程设计我充分认识到了指针的灵活性,当然也存在着一定的复杂性,本实验还存在着一定的欠缺,例如当存在两个学号不一样姓名一样的同学时,通过姓名查询时只能输出一个,由于时间的限制,现在只能做到这样实现基本的功能,课后我会努力找到解决此问题的方法,总之这次课程设计让我感慨良多,受益匪浅,让我学到很多东西。

六、部分功能代码:

1.建立通讯录链表的设计

要建立链表,首先要生成结点,因此,尾插法建立链表,算法描述如下:(1)使链表的头尾指针head、real指向新生成的头结点(也是尾结点); (2)置结束标志为0(假);

(3)while(结束标志不为真)

{

P指向新生成的结点;

读入一个通讯者数据至新结点的数据域;

将新结点链到尾结点之后;

使尾指针指向新结点;

提示:是否结束建表,读入一个结束标志;

}

(4)尾结点指针域置空值NULL.

具体算法实现如下:

linklistcreatelist(void)

{ //尾插法建立带头结点通讯录链表算法

linklist head=(listnode *)malloc(sizeof(listnode));

listnode *p,*rear ;

int flag=0; //结束标志置0

rear=head; //尾指针初始指向头结点

while(flag==0)

{ p= insertdata();

rear->next=p; //新结点连接到尾结点之后

rear=p; //尾指针指向新结点

printf("结束建表吗?(1/0):");

scanf("%d",&flag); //读入一个标志数据

}

rear->next=NULL; //终端结点指针域置空

return head; //返回链表头指针

}

2.通信者信息的插入

链表结点的插入,是要求将一个通讯者数据结点按其编号的次序插入有序通讯录表的相应位置,以保持通讯录表的有序性,插入结点的基本思想是:使用两个指针变量p1和p2分别指向当前刚访问过的结点和下一个待访问的结点,循环顺序查找链表,寻找插入结点的位置,其中p1指向待插入位置的前一个结点。算法描述如下:

(1)用p1指向原链表头结点,p2指向链表的第一个结点;

(2)While(p2!=NULL&&p2->data.numdata.num)

{

p1=p2; //p1指向刚访问过的结点;

p2=p2->next; //p2指向表的下一个结点;

}

(3)插入新结点。具体实现如下:

voidInsertNode(LinkListhead,ListNode *p)

{

ListNode *p1,*p2;

p1=head;

p2=p1->next;

while(p2!=NULL &&strcmp(p2->data.num,p->data.num)<0)

{

p1=p2; //p1指向刚访问过的结点

p2=p2->next; //p2指向表的下一个结点

}

p1->next=p; //插入p所指向的结点

p->next=p2; //连接表中剩余部分

}

3.在有序链表中查找指定结点

在有序表中查找指定结点的算法是比较简单的,其基本思路是:首先输入要查找的通讯者的编号或姓名,从表头顺序访问表中结点。成功返回一个指向查找到的通讯者信息的结点;若失败,则返回一个空指针值NULL.

当按编号查找时,如果需要查找的通讯者编号不在表中,则不一定需要循环比较到表尾,因表是按编号递增有序的;按姓名查找时,则要循环比较到表尾,才能确定查不到的情况。因此,查找算法实现如下:

listnode *listfind(linklist head)

{

listnode *p;

char num[5];

char name[9];

int xz;

printf("=====================\n");

printf("1.按编号查询\n");

printf("2.按姓名查询\n");

printf("=====================\n");

printf(" 请选择: ");

p=head->next;//假定通讯录表带头结点

scanf("%d",&xz);

if(xz==1){

printf("请输入要查找者的编号: ");

scanf("%s",num);

while(p && strcmp(p->data.num,num)<0)

p=p->next;

if(p==NULL || strcmp(p->data.num,num)>0)

p=NULL; //没有查到要查找的通讯者

}

else

if(xz==2){

printf("请输入要查找者的姓名:");

scanf("%s",name);

while(p &&strcmp(p->https://www.360docs.net/doc/ac9974819.html,,name)!=0)

p=p->next;

}

return p;

}

4.通讯者记录的删除

链表上结点的删除是比较简单的,先调用查询函数,查询到要删除的结点,删除结点即可。其算法如下:

voiddelnode(linklist head)

{

charjx;

listnode *p=0,*q=0;

p=listfind(head); //调用查找函数

if(p==NULL){

printf("没有查到要删除的通讯者!\n");

return;

}else

printf("真的要删除该结点吗?(y/n)");

scanf("%s",&jx);

if(jx=='y'||jx=='Y'){

q=head;

while(q!=NULL && q->next!=p)

q=q->next;

q->next=p->next;

free(p); //删除结点释放被删除的结点空间

p=NULL;

printf("通讯者已被删除!\n");

}

}

5.通讯录链表的输出

通讯录链表的输出相对来说比较简单,只要将表头指针赋给一个指针变量p,然后用p向后扫描,直至表尾,p为空为止。因此,其输出链表算法如下:voidprintlist(linklist head)

{

listnode *p;

p=head->next; //因为链表带头接点,使P指向链表开始结点

printf("编号姓名姓别年龄联系电话地址\n");

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

while(p!=NULL)

{

printf("%s %s %s %s %s %s\n",p->data.num,p->https://www.360docs.net/doc/ac9974819.html,,p->data.sex,p->data.a ge,p->data.phone,p->data.addr);

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

p=p->next;

}

}

6.通讯录一个空结点的建立

此功能主要就是存储输入的数据,然后再赋给新建立的表或要插入的结点。linklistinsertdata(void){

listnode *m;

m=(listnode *)malloc(sizeof(listnode));

printf("编号(14) 姓名(8) 性别(8)年龄(8)电话(14) 地址(30)\n");

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

scanf("%s %s %s %s %s %s",m->data.num,m->https://www.360docs.net/doc/ac9974819.html,,m->data.sex,m->data. age,m->data.phone,m->data.addr);

return m;

}

七、参考文献:

[1]《C面向对象程序设计教程》清华大学出版社2010年

[2] 苏仕华《数据结构课程设计》机械工业出版社2008年10月

[3] 百度知道https://www.360docs.net/doc/ac9974819.html,/question/9626352.html?fr=ala1

[4]百度文库

https://www.360docs.net/doc/ac9974819.html,/search?word=%A3%C3%2B%2B%A1%A1%CD%A8%D1%B6%C2%B C&lm=0&od=0

八、附录(实验源代码)

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

/*主控菜单处理测试程序main2.c*/

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

#include

#include

#include

typedefstruct{ //通讯录结点类型char num[14]; //编号

char name[8]; //姓名

char sex[8]; //性别

char age[8]; //年龄

char phone[14]; //电话

char addr[30]; //地址

}datatype;

typedefstruct node{ //结点类型定义datatype data; //结点数据域

struct node*next; //结点指针域

}listnode;

typedeflistnode*linklist;

//函数说明

intmenu_select();

linklistcreatelist(void);

voidinsertnode(linklisthead,listnode *p);

listnode *listfind(linklist head);

voiddelnode(linklist head);

voidprintlist(linklist head);

linklistinsertdata(void);

//主函数

void main()

{

for( ; ; ){

switch(menu_select())

{

case 1:

linklist head;

listnode *p;

printf("***************************\n");

printf("* 通讯录链表的建立*\n");

printf("****************************\n");

head=createlist();

break;

case 2:

printf("***************************\n");

printf("* 通讯者信息的添加*\n");

printf("******************************************\n");

p=(listnode *)malloc(sizeof(listnode));

p= insertdata();

insertnode(head,p);

break;

case 3:

printf("*************************************\n");

printf("* 通讯录信息的查询*\n");

printf("***************************************\n");

p=listfind(head);

if(p!=NULL){

printf("编号姓名性别年龄联系电话地址\n");

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

printf("%s %s %s %s %s %s\n",p->data.num,p->https://www.360docs.net/doc/ac9974819.html,,p->data.sex,p->data.a ge,p->data.phone,p->data.addr);

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

}

else

printf("没查到要查询的通讯者!\n");

//printf(0);

break;

case 4:

printf("************************************\n");

printf("* 通讯录信息的删除*\n");

printf("*************************************\n");

delnode(head);

break;

case 5:

printf("************************************\n");

printf("* 通讯录链表的输出*\n");

printf("*************************************\n");

printlist(head);

break;

case 0:

printf("\t 再见!\n");

return;

}

}

}

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

/*菜单选择函数程序*/

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

intmenu_select()

{

intsn;

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

printf("=================================================\n");

printf(" 1.通讯录链表的建立 2.通讯录结点的插入\n");

printf(" 3.通讯录结点的查询 4.通讯录结点的删除\n");

printf(" 5.通讯录链表的输出0.退出管理系统\n");

printf("=================================================\n");

printf(" 请选择0-5:(请您先建表) ");

for(;;)

{

scanf("%d",&sn);

if(sn<0 || sn>5)

printf("\n\t输入错误,重选0-5: ");

else

break;

}

returnsn;

}

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

/*用尾插法建立通讯录链表函数*/

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

linklistcreatelist(void)

{ //尾插法建立带头结点通讯录链表算法linklist head=(listnode *)malloc(sizeof(listnode));

listnode *p,*rear ;

int flag=0; //结束标志置0

rear=head; //尾指针初始指向头结点

while(flag==0)

{ p= insertdata();

rear->next=p; //新结点连接到尾结点之后

rear=p; //尾指针指向新结点

printf("结束建表吗?(1/0):");

scanf("%d",&flag); //读入一个标志数据

}

rear->next=NULL; //终端结点指针域置空

return head; //返回链表头指针

}

voidinsertnode(linklisthead,listnode *p)

{

listnode *p1,*p2;

p1=head;

p2=p1->next;

while(p2!=NULL &&strcmp(p2->data.num,p->data.num)>0)

{

p1=p2; //p1指向刚访问过的结点

p2=p2->next; //p2指向表的下一个结点}

p1->next=p; //插入p所指向的结点p->next=p2; //连接表中剩余部分

}

listnode *listfind(linklist head)

{

listnode *p;

charnum[5];

char name[9];

intxz;

printf("=====================\n");

printf("1.按编号查询\n");

printf("2.按姓名查询\n");

printf("=====================\n");

printf(" 请选择: ");

p=head->next ; //假定通讯录表带头结点scanf("%d",&xz);

if(xz==1){

printf("请输入要查找者的编号: ");

scanf("%s",num);

while (p!=NULL){if(strcmp(p->data.num,num)==0)return p;

p=p->next;}

p=NULL; //没有查到要查找的通讯者}

else

if(xz==2){

printf("请输入要查找者的姓名:");

scanf("%s",name);

while(p &&strcmp(p->https://www.360docs.net/doc/ac9974819.html,,name)!=0)

p=p->next;

}

return p;

}

voiddelnode(linklist head)

{

charjx;

listnode *p=0,*q=0;

p=listfind(head); //调用查找函数

if(p==NULL){

printf("没有查到要删除的通讯者!\n");

return;

}else

printf("真的要删除该结点吗?(y/n)");

scanf("%s",&jx);

if(jx=='y'||jx=='Y'){

q=head;

while(q!=NULL && q->next!=p)

q=q->next;

q->next=p->next; //删除结点释放被删除的结点空间

free(p);

p=NULL;

通讯录管理系统

课程设计任务书 题目C语言课程设计 系(部) 信息科学与电气工程学院 专业计算机科学与技术 班级计职141 学生姓名王雪 学号140819139 06 月21 日至07 月04 日共 2 周 指导教师 院长 2015 年6月23日

一、课程设计目的 将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼: (1)进一步巩固、加深学生所学专业课程《C++程序设计语言》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。 (2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。 (3)利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。 (4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 (5)掌握结构化程序设计方法,熟悉面向对象程序设计方法。 (6)熟练掌握C++语言的基本语法,灵活运用各种数据类型。 (7)进一步掌握在集成环境下如何调试程序和修改程序。 设计功能 录入联系人信息(包括姓名、电话号码、地址等信息);通讯录管理系统要求实现以下功能: 1、输入每一位联系人记录,将其信息存入文件中。 2、查询所有联系人的信息,并按可选的自定义规则进行排序; 3、记录修改,将修改的记录信息保存于文件中。 设计要求 1、设一个通信录由以下几项数据信息构成: 数据项类型 姓名字符串 地址字符串 邮政编码字符串 电话号码字符串 试为通信录数据定义类型和定义通信录变量,实现功能:存取、显示、删除记录、查询记录等功能。 2、要求:界面友好,易于操作 总体设计 系统功能模块图:

通讯录管理系统的设计与实现

课程设计报告 通讯录管理系的设计与实现 姓名:钟婷英 班级:计122 学号:1213023039 时间:2014年1月10日 1,问题描述 通讯录是用来记载和查询联系人通讯信息的工具,电子通讯录已经为手机,电子词典等设备中不可缺少的工具软件,请设计一个能够满足这种需求的软件,基本功能模块如下图所示。 输入:记录的录入。 显示:通讯录的显示。 查找:按指定方式,输入关键字,查找指定记录。 插入:实现记录的添加或在指定位置插入记录。 保存:将内存中正在被操作的通讯录以文件形式保存到磁盘。 读入:保存的逆操作,讲存在磁盘中的通讯录文件读到内存中。 排序:按指定关键字对通讯录数据进行排序。 修改:提供修改某条记录的功能。 移动:移动记录在通讯录中的存储位子,使其被查找或显示时的位序前移或后移。 退出:结束程序运行。 2,设计要求 (1)设计通讯录数据的逻辑结构和物理结构。 (2)通讯录至少包括下列数据信息:姓名,电话,单位等。 (3)完成图示基本功能。 (4)软件易用,操作简单。 (5)根据自己使用通讯录体会扩充其他功能,如按姓名查找,按号码查找,按序号删除等。 (6)设计足够多的测试用例 主程序 输 入 显示 查找 插入 删除 保存 读入 排序 修改 移动 退出

(7)数据输入有效性检验:如姓名不能为空,号码中不能有非法字符等。(8)提供分组管理的相关功能,如:分组显示,加入组,组创建,组查询等。(9)可视化的界面设计。 3,概要设计 1,使用struct data struct addressList定义结构体类型,struct data结构体中包括年月日的定义,strcut addressList中包括联系人ID账号,名字,性别,名族,生日,手机号码,QQ号码和家庭地址等。 struct date { int year; int month; int day; }; struct addressList { char ID[10]; char name[10]; char gender[4]; char minzu[2]; date birthday; char shoujihao[14]; char QQ[11]; char address[40]; }; 2,程序设计过程中用到的函数有: int zhujiemian( ); void tianjia(fstream & ); void xiugai(fstream & ); void shanchu(fstream & ); void chazhao(fstream & ); void liulan(fstream & ); int findRecord(fstream &, const char *); int getAmount(fstream & ); 3,整个程序用的是面向对象的方法,在主函数中调用各种函数,来实现通讯录的功能。在主函数中,使用的是c++语言中的开关语句(switch)用来选择通讯录的各种功能。

题目通讯录管理系统

题目 2 通讯录管理系统 一.设计要求 1、问题描述 设有一通讯录,记录联系人的联系信息,包括联系人姓名、联系人多个联系电话、邮箱、联系地址以及所属群组。联系人按姓氏序列升序排列并按顺序编号。使用者能根据姓名或编号对联系人信息进行增删改查。请编制一程序模拟该通讯录的管理。 2、设计要求 1)基本要求 (1) 新建联系人。输入联系人的姓名、电话、email、地址和分组等信息, 并插入通讯录的正确位置。 (2) 编辑联系人。可修改、新增或删除联系人的电话、设置首个默认电话号 码、修改或删除email、地址和分组等信息。 (3) 删除联系人。可按姓名或序号删除联系人的信息。 (4) 查询联系人。可按姓名或序号查询联系人的信息并输出。 (5) 群组管理。可根据实际情况删除或新增分组,可为联系人分配群组或移 除群组,并可按群组查询联系人信息。 (6) 输出通讯录。按顺序输出通讯录的全部信息。 2)以下为选做: (7) 按姓名查询联系人时可进行模糊查询。 (8) 通过文件读写实现通讯录信息的读取和记录。 二.概要设计 1.主界面设计 为了实现通讯录管理系统,设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。本系统主菜单运行界面如下图

所示。 2.存储结构设计 本系统主要采用链表结构类型存储联系人信息。 3.系统功能设计 本系统分为以下7个功能模块。 (1)添加联系人:添加联系人子模块可完成添加联系人姓名、电话、email、地址和分组等信息,并插入通讯录的正确位置。 (2) 编辑联系人。可修改、新增或删除联系人的电话、设置首个默认电话号码、修改或删除email、地址和分组等信息。 (3) 删除联系人。可按姓名或序号删除联系人的信息。 (4) 查询联系人。可按姓名或序号查询联系人的信息并输出。 (5) 群组管理。可根据实际情况删除或新增分组,可为联系人分配群组或移除群组,并可按群组查询联系人信息。 (6) 输出通讯录。按顺序输出通讯录的全部信息。 (7)可选择是否保存并退出系统。 三.模块设计

学生通讯录管理系统的设计与实现

学生通讯录管理系统的设计与实现 问题描述: 纸质的通讯录已经不能满足实际需求,容易丢失,查找困难等问题是纸质通讯录所不能克服的缺点。“学生通讯录管理系统”是为了帮助老师、同学,或者其他一些需要使用的通讯录的人员进行管理和应用的一种应用程序。 需求分析: 1)输入数据建立通讯录。 2)查询通讯录中满足要求的信息。 3)插入新的通讯录信息。 4)删除不需要的通讯录信息。 5)查看所有的通讯录信息。 主界面设计要求: 1)通讯录的建立 2)插入通讯录记录 3)查询通讯录记录 4)删除通讯录记录 5)显示通讯录记录 6)退出系统 设计要求: A.建立通讯录时,每个学生的信息包括:学号,姓名,电话。 B.查找时,学号、姓名、电话均可以作为查询字段。 C.查看所有的通讯录信息时,所有记录需要时有序的(按学号排序,按姓名排序(字典序),按电话号码排序)。 D.存储结构:要求使用顺序存储结构。 E.数据使用:使用本班级的具体信息。 需求分析: 本次设计目的是学生信息管理系统,可存入每个学生的基本信息,所有学生信息都可根据名字、学号、电话、邮箱进行查询,也都可以根据这四个基本信息检索到一个学生并删除其数据。 输入形式:student.txt,以文件形式进行输入。 输出形式:根据不同的输入进行不同的操作。 达到功能:能插入一个学生的信息,能删除一个学生的信息,能查询一个学生的信息。 测试数据:班上70个同学的基本数据。 概要设计: 数据类型:顺序链表ArrayList类 学生数据结构:StuData类包含name、id、phone、email四个String基本类型。 所有操作写在Structure中,包含insert、remove、query、printAll。 Main函数用Java标准输入,循环输入,用switch判断输入进行各种操作,1进行建立信息

通讯录管理系统需求分析

通讯录管理系统需求分析 项目编号:S1-BS-HTML-001 l项目概述 1.引言 1.1编写目的 在完成了针对通讯录管理系统的前期调查,同时与多位软件使用者进行了全面深入地探讨和分析的基础上,提出了这份软件需求规格说明书。 此需求规格说明书对《通讯录管理系统》软件做了通讯录管理系统的用户需求分析,明确所要开发的软件应具有的功能、性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。本说明书的预期读者为客户、业务或需求分析人员、测试人员、用户文档编写者、项目管理人员。 本说明书是整个软件开发的依据,它对以后阶段的工作起指导作用。本文也是项目完成后系统验收的依据。

1.2项目背景 本通讯录信息管理系统用计算机管理电子通讯录的一种计算机应用技术的创新,在计算机还未普及之前通讯管理都是由联系人采用名片,笔录手工记帐的方式来操作的.现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理。通讯录管理系统是典型的信息管理系统(mis),要求应用程序功能完备,易使用等特点。 1.3定义 需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。 2.任务概述 2.1目标 实现通讯录管理系统的基本功能,可以实现电话用户的查询、电话号码的查询、电话号码所在地的查询、电话号码的添加及删除等功能,以方便人们的记录和通讯。 2.2运行环境 2.2.2.1服务端 A. 操作系统:Windows 2003 Server 2.2.2.2客户端 A. Windows 95/98/me/Xp/2000/2003, Unix, Linux,Vista,Mac OS各版 2.3条件与限制 本通讯录信息管理系统用计算机管理电子通讯录的一种计算机应用技术的创新,在计算机还未普及之前通讯管理都是由联系人采用名片,笔录手工记帐的方式来操作的.现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理。通讯录管理系统是典型的信息管理系统(mis),要求应用程序功能完备,易使用等特点。 3.数据描述 开始 3.1数据流图 以可读写的方式打开一个数据文件 将此文件的内容读出,并存入一个新的结构体类型的数组中。 调用menu()菜单函数

通讯录管理系统的设计与实现

数据结构实验报告 实验名称:通讯录管理系统的设计与实现 试验时间:2011.1.13 班级:姓名 学号: 指导老师:1.问题描述: 通讯录是用来记录,查询联系人通讯信息的工具。电子通讯录已成为手机,电子词典等电子设备中不可缺少的工具软件。设计一个能够,满足这种需求的软件。 基本功能模块:输入,显示,查找,插入,删除,保存,读入,排序,修改,移动,退出。 2.设计要求: (1)基本要求 1.设计通讯录数据的逻辑结构和物理结构。 2.通讯录至少包含下列数据信息:姓名,电话,地址等。 3.完成图示基本功能。 4.软件易用,操作简单。 5.根据自己使用通讯录的体会,扩充其他功能,如按姓名查找,按学 号查找,按序号查找等。 (2)较高要求 1.数据输入有效性检验:如姓名不能为空,号码中不能有非法字符等。 2.提供分组管理的相关功能,如:分组显示,加入组,组创建,组查 询等。 3.可视化的界面设计。 3.测试案例:

请输入您的选择(0--6): 1 分别输入编号,姓名,性别,电话,地址(输入0 结束通信录的建立): 编号:01 姓名:张三 电话:152****1919 地址:2-222 编号:0 请输入您的选择(0--6): 2 编号:01 姓名:张三 电话:152****1919 地址:2-222

是否继续添加?(Y/N):N 请输入您的选择(0--6): 3 请选择查询的方式(1 编号,2 姓名):1 请输入编号:01 编号:01 姓名:张三 电话:152****1919 地址:2-222 请问是否继续查询?(Y/N):N

请输入您的选择(0--6): 4 输入删除编号:01 删除学生信息如下: 编号:01 姓名:张三 电话:152****1919 地址:2-222 请输入您的选择(0--6): 5 通讯录的全部信息如下: *****编号*****姓名*****性别*****电话*****地址*****

管理信息系统-通讯录管理系统

昆明理工大学管理信息系统课程设计通讯录管理系统 学院计算机科学与技术学院 姓名黄亚军 学号200910405229 指导教师姓名王剑 2012年05月27日

昆明理工大学管理信息系统课程设计 (1) 摘要 参考文献 (25)

摘要: 通讯录管理系统是每一个用户管理通讯录的不可缺少的一个管理信息系统,它的内容对于用户的管理者来说是至关重要的,所以通讯录管理系统应该能够为每一个用户的管理者提供充足的信息和快捷的查询手段,大大的方便用户合理的管理通讯录。 随着科学技术的不断提高,计算机科学日渐成熟,网上通讯工具的迅速发展,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对通讯录进行管理,具有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高通讯录管理的效率,也是用户理财的科学化、正规化管理,与先进科学技术接轨的重要条件。 因此,开发这样一套管理软件成为很有必要的事情,对于我们即将计算机专业毕业的学员来说,也是一次将计算机应用于现实管理的一次很有意义的实践活动。 关键词:通讯录管理信息系统计算机科学用户 一、前瞻 1.开发背景简介 随着信息活动在国民经济中主导地位的确立和信息产业的崛起信息资源管 理(Informetion Resouces Management,简称IRM)作为一个专有名词和独立的学科逐渐发展起来。如何积极开发、合理配置和有效利用信息资源,日益成为社会生活中亟待解决的问题。由于计算机和通信技术的高速发展,推广应用计算

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.主函数 主函数设计要求简洁,只提供部分提示语和函数的调用 【程序】

联系人管理系统

联系人管理系统设计报告 程珠 200907260203 信管0901 一、实验目地 通过本课程设计,要求熟悉管理信息系统开发的原理,掌握系统分析、系统设计、系统编程与调试等方法。能够完成一个中小型信息系统的规划与分析设计工作,或者能够开发一个小型的管理信息系统,提高分析问题与解决问题的能力。 二、实验内容 1.业务简介 (1)公司联系人 A.公司联系人类型构成:公司联系人类型标识,公司联系人类型 B.公司联系人构成:公司联系人标识,公司联系人名称,地址,出生日期,公司联系 人类型标识 C.查询构成:公司联系人标识,公司联系人类型标识 (2)客户 A 客户构成:客户标识,客户名称,客户地址,客户电话 (3)客户联系人 客户联系人构成:客户联系人标识,客户联系人姓名,客户联系人地址,客户联系人电话 2.系统功能 A 查看和修改公司联系人、客户、客户联系人 B添加和删除公司联系 人、客户、客户联系人 C退出系统 通过联系人管理系统,可以查询和修改公司联系人、客户、客户联系人。添加和删除公司联系人、客户、客户联系人,给企业或学校提供一个良好的人力资源管理环境。 也可以清晰地了解到三者的关系。除了可以查看公司联系人名称,地址,出生日期,公

司联系人类型还可以查看联系人的公司信息和家庭信息,如联系人的上级和下级信息,父母信息等等。以及联系人的毕业信息和在学校、公司的突出表现。方便企业对公司联系人更好的了解和统计。通过客户信息可以查找与公司有业务来往的客户信息。 三、实验过程 1. 系统分析(以公司联系人为例)

ER图 2.系统设计(以公司联系人为例) 模块结构设计 数据库设计

数据结构-通讯录管理系统的设计与实现

课程设计报告 课程设计名称:数据结构课程设计系:三系 学生姓名: 班级: 学号: 成绩: 指导教师: 开课时间:

课程设计任务书 课程名称:数据结构 指导教师: 专业班级: 学生姓名: 起止日期: 2012.12-2013.1

设计题目一:通讯录管理系统的设计与实现 1 概述 1.1现状分析 课程设计是实践教学中的重要环节,它以某一门课程为基础,涉及和课程相关的各方面知识,是一门独立于课程外的特殊课程。课程设计就是让所有同学对课程更全面的应用。本次实验项目“通讯录管理”就是针对数据结构的一门应用较为广泛的系统管理方法。 1.2 实现意义 本次实验应用性能很好,结构清楚,能随时添加、删除、查找、修改、输出联系人;并且可以用姓名、编号两种方式;而且其中增加了排序功能,使得插入之后排序为接下来的操作提供便利,操作更精确,以人性化的方式展现出来,效果十分突出。 2 系统分析 编程完成通讯录的一般性管理工作如通讯录中记录的增加、修改、查找、删除、输出等功能。每个记录包含编号、姓名、性别、电话号码、住址个人基本信息。用《数据结构》中的链表做数据结构结合c语言基本知识编写一个通讯录管理系统。本程序相对简单,使用方便,几乎不用特殊的命令,只需按提示输入即可。对于建立通讯录管理系统,则需了解并掌握数据结构与算法的设计方法,尤其在算法方面,链表及结点的联系,提高综合运用所学的理论知识和方法独立分析和解决问题的能力。 3 概要设计 3.1算法的设计 本实验从整体上分为七大模块:(1)通讯录链表的建立;(2)通讯者结点的插入;(3)通讯者结点的查询;(4)通讯者结点的删除;(5)通讯者结点的修改;(6)通讯录链表的输出;(7)退出通讯录管理通讯者结点的删除系统。

通讯录管理系统设计说明书

通讯录管理系统设计说明书 系统概述: 随着毕业的来临,我们就将面临分离。为了能在毕业后,能够方便联系我们在大学其间的同学朋友,通讯录就是一个可以帮我们方便查找同学朋友的工具。 随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。 通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。 关键字:插入,删除,查找,输出。 需求分析: 调查用户需求: 随着同学们的即将毕业,蹋出社会,交际难免地逐渐扩大,与外界联系将更为广泛和密切,传统的手工通讯录、地址簿已经难以满足快节奏、高效率的现代生活的需求。经常发生要在几十甚至上百张名片中找出某一张名片的情况,若由手工完成效率十分低。当交际扩大后,传统的手工通讯录非常不方便,不易查询、修改、存放,不易保密,容易遗失。 由计算机带来管理庞大而繁杂的通讯录是非常合适的,不仅查询和修改方便,并且效率高,速度快,完全能够满足现代化交际活动的要求,同时也更方便同学们联系交往。 本系统专门用于个人通讯信息管理的小型应用软件,主要提供个人通讯信息的登记、修改、浏览、查询和打印等功能。

1.用户的主要信息需求: ①对个人通讯信息资料进行登记、修改、浏览。 ②对个人通讯信息资料进行按姓名和学号查询。 ③对个人通讯信息资料进行打印输出。 系统功能设计与分析: 1.功能模块图 2.功能设计 (1)新建通讯录功能 增加一个新的记录,并保存通讯录; (2)搜索通讯录功能

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

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

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

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

通讯录管理系统

实验课程名称 专业班级 学生姓名 学号 指导教师 至学年第学期第至周

目录 1概述 (3) 1.1现状分析 (3) 1.2存在的问题 (3) 1.3实现意义 (3) 2系统分析 (4) 2.1 用户需求分析 (4) 2.2 管理者需求分析 (4) 3概要设计 (4) 3.1程序设计中的数据设计 (4) 3.2算法流程图 (6) 4详细设计 (11) 4.1 通讯录建立模块设计 (11) 4.2 通讯录插入模块设计 (11) 4.3 通讯录查找模块设计 (12) 4.4 通讯录删除模块设计 (12) 4.5 通讯录输出模块设计 (13) 4.6 通讯录数据保存模块设计 (13) 5运行与测试 (14) 5.1 执行过程中出现错误 (14) 5.2功能模块的调试 (14) 6总结和心得 (21) 参考文献 (21)

1概述 1.1现状分析 通讯录管理系统是一个非常通用的管理系统。很多地方都需要拥有自己的通讯录管理系统,以便对自己的同学、同事、朋友等信息资料的管理及使用。通讯录管理系统具有很强的实用性,使用者只要根据具体情况稍加修改,就可以把它应用到实际需求中。随着社会的发展及知识经济的到来,管理信息系统在各行各业发挥着越来越重要的作用。通讯录管理系统是典型的信息管理系统。通讯录管理系统工作繁琐,包含了大量的信息数据,因此需要一个完整的信息管理系统来实现对这些数据的管理,满足管理者的需求。通讯录管理系统的设计能推动机关单位信息管理走向科学化、规范化。通讯录管理系统易于开发、维护、使用方便。各行各业使用越来越广泛。常用于日常办公,提高办事效率。 1.2存在的问题 通讯录管理系统存在很多不足,由于自身编程能力的不足,这个系统实现的功能有限,只能实现管理系统最基本的功能,简单的添加、查询、删除、退出功能。每个模块设计也存在不足,还需要努力学习,进一步完善所学知识。编译过程中,由于自己的粗心造成输入错误,使程序不能运行,需要自己认真仔细对待。还有没有读懂某些模块函数的设计思想,理解困难,能力有限,某些功能自己不能设计完成,还需要进一步努力提升编程能力。不能完全满足用户的需求。 1.3实现意义 通讯录管理系统的设计使得对信息的管理更加方便,能够实现动态管理。检索迅速、查找方便、可靠性高、存储量大、保密性好。管理者工作起来效率高,可以不用再做大量的数据记录,从而减少了机关机关单位职员的工作量。运用数据结构中的算法思想做数据结构,结合C语言知识,编写一个通讯录管理系统。通过完成本课程,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,进一步熟悉指针的用法,数组的建立运用和函数的调用。加深对数据结构的理解,提高算法设计能力,锻炼编程能力。用C语言编写一个通讯录管理系统软件,要求能实现通讯录管理系统中增加新记录、按名字或编号删除记录、显示通讯录的所有信息、按名字或编号查询信息、保存通讯录、退出系统。

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); /*按姓名排序*/ 二功能框图

通讯录管理系统

通讯录管理系统 绪论 在时代不断发展的今天,很多东西都在不断的进步,当然,信息的发展也在不断的随着进步起来,因此,我们所要研究的课题信息管理系统也在向我们缓缓走来,并且涉及到很多的领域,以至于涉及到很多的方面,从大的来讲可以涉及到公司企业的系统的管理,从小的方面来讲可以涉及到单个人的联系方式的管理等等,并且随着时代不断的发展,还会涉及到更多的领域。 1引言 1.1课题简介:所谓通讯录管理系统,其实就是在世界上的每个社会上的成员作为用户来说,在他的通讯录的联系人存储中保存他所有联系人的信息的管理,以及时一个管理信息的系统。它所管理的内容对于每一个用户来说都是非常非常重要的,所以,这个所谓的通讯录管理系统必须能够具有很多很强的功能,其中包括对我们所需要的信息必须是完整的,当然对我们也必须是非常有用的,并且它还应该具有随时并且很快查询出我们所要信息的功能,从而用户使用的一个合理的,提供了很大的方便。 1.2开发的意义:当今我们面临着科技的一直提高,计算机科学技术已经逐渐趋向成熟,网上通讯工具的迅速发展,它的功能如此强大以至于已经被人们深刻认识,并且它已经逐渐开始走进人类的社会,与此同时它的地位也在很多的领域发挥着很到的作用。单纯的从计算机这个方面来说,由于这个领域还很小,所以要使用它来实现我们所需的铜须路的管理,具有太多别的方式不能达到的优点,其中这些优点包括很快的检查速度、便利的查找、存储的容量要足够大、意思安全性也要很强、但所需的费用必须合理,尽可能的很低等等。这些优点使得通讯录管理的效率得到了很大的提高。所以从以上的分析可以看出,要开发这样一套软件来管理我们的系统这件事是很有必要的,因此,我感觉这也是锻炼我在将理论运用到现实社会生活中的一次实际的考验,有很大的意义。我也希望通过本次的涉及能让我达到学为所用,从而让我的学习成为有意义,成为有价值的一种时间上的付出。 1.3开发环境及实现技术 1.3.1开发环境:Visual studio 2005,SQL severe 1.3.2开发工具简介: Visual Studio 2005(以下简称为VS 2005)是一种很新的开发工具,并且这种工具是由美国的微软公司开发出来的,这种最新的版本具有很多的全新功能,其中这种新的功能体现在很多方面在语言方面的强化,并且它的贡献也有很多,其中更好的执行就是它所提供的一种效能,并且在安全这方面也有了很大提高,他已经成为一种编程环境,并且这种环境的功能是很强大的,也是具有很高端效率的,提供了一种统一的并且集成的环境,它还能够支持很多种编程语言在同样的开发环境编写新程序并且对所编写的应用程序进行调试并加以部署。它是一种全套的并且完整的提供开发的工具集,用于生成https://www.360docs.net/doc/ac9974819.html, Web应用程序,并且它还是一个完全的能够面向对象的一种新型的开发平台。 SQL Severe也就是:数据库管理系统(DBMS),并且它是由Microsoft公司开发和推广的,但是在刚刚开始的时候它是由好几个公司在一起共同开发的,版本也随着时代和技术的发展而不断的更新。 其中数据库(DB)是存放数据的仓库,只不过这些数据存在一定的关联,并按一丁的格式存放在计算机内。简单的说,数据并不仅仅只是单纯的、数字的数据,它还包括文本的内容,当然还有很多例如视频等这些动态的数据。而数据库管理系统(DBMS)是一种系统,并且这种系统的功能是用来管理数据库,还可以根据数据的模型来组织数据,它还包括很多的功能,例如:数据的定义、

通讯录管理系统

西安科技大学 数据库课程设计报告 题目:通讯录管理系统 班级:软件工程0902 学号: 0908010224 姓名:王浩 2011年6月

摘要 基于数据库的通讯录管理系统,采用数据库原理、程序设计方法、数据结构等方面的知识结合vc++的mfc类库进行综合设计,具有基本联系人资料管理以及对于登陆用户的管理,权限设置以及数据的备份和恢复等功能。采用SQL sever 作为通讯录管理系统的后台数据库,使得通讯录管理系统具有更高的稳定性及安全性,也方便了数据库中数据的备份以及发生故障时的还原。 关键词:数据库通讯录管理系统 SQL-sever 后台

目录 目录 (3) 1.绪论 (1) 1.1课程设计目的以及意义 (1) 1.2课程设计内容 (1) 2.需求分析 (2) 2.1功能需求 (2) 2.2数据分析 (2) 3.数据库设计 (3) 3.1概念结构设计 (3) 3.2逻辑结构设计 (3) 3.3物理结构设计 (4) 4.系统功能设计 (5) 5.系统实现 (6) 5.1系统的开发环境 (6) 5.2代码部分 (6) 6.总结 (57)

1.绪论 1.1课程设计目的以及意义 通过本课程设计,培养学生具有C/S模式的数据库应用软件系统的设计和开发能力;熟练掌握SQL Server数据库的使用,熟练掌握使用VC++开发工具开发数据库应用的能力;为毕业设计打下坚实的基础。根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库的目的。根据所学的数据库原理与程序设计的知识, 通过对一个实际问题的分析,设计与实现,将原理与应用相结合,使我学会如何把书本上学到的知识用于解决实际问题,培养自己的动手能力;另一方面,使我能深入理解和灵活掌握教学内容。 1.2课程设计内容 通讯录管理系统 主要的数据表: 用户信息表,联系人信息表等;

通讯录管理系统 链表

一、通讯录管理系统 1.题目要求 通讯录一般包括通讯者的编号、姓名、性别、电话及地址等信息,设计一个通讯录要求实现通讯者的插入、查询、删除、更新、排序操作。 struct node { char num[5]; //编号 char name[8]; //姓名 char sex; //性别 char tel[8]; //电话 char address[100]; //地址 }; 2.应用程序功能 开始运行时界面如下: 通讯录链表建立界面如下:

通讯录链表插入界面如下: 通讯录链表查询界面如下: 按编号查询界面如下:

按姓名查询编号如下: 通讯录链表删除界面如下: 通讯录链表输出界面如下: 3.输入数据类型、格式和内容限制 输入数据类型为字符型,但在输入过程中不可包含空格,如输入地址过程中不可出现空

格! 4.主要算法模块描述 流程图: 5.源程序代码 #include #include "iostream" int flag1=0; #include "string.h" #include "stdlib.h" #include "windows.h" using namespace std; typedef struct { //通讯录结点类型char num[5]; //编号 char name[9]; //姓名

char sex[3]; //性别 char phone[13]; //电话 char addr[31]; //地址 } DataType; typedef struct node { //结点类型定义 DataType data; //结点数据域 struct node *next; //结点指针域 } ListNode; typedef ListNode *LinkList; LinkList head; ListNode *p; LinkList CreateList(void); void InsertNode(LinkList head,ListNode *p); ListNode *ListFind(LinkList head); void DelNode(LinkList head); void PrintList(LinkList head); /*******尾插法建立带头结点的通讯录链表算法*******/ LinkList CreateList(void) { LinkList head=(ListNode *)malloc(sizeof(ListNode)); //申请头结点ListNode *p,*rear; char flag='y'; //int flag=0; //结束标志置0 rear=head; //尾指针初始指向头结点 while (flag=='y') { p=(ListNode *)malloc(sizeof(ListNode)); //申新结点 printf("编号(4) 姓名(8) 性别电话(11) 地址(31)\n"); printf("-----------------------------------------------\n"); printf("\n添加的编号:\n"); cin>>p->data.num; printf("\n添加的姓名:\n"); cin>>p->https://www.360docs.net/doc/ac9974819.html,; printf("\n性别:\n"); cin>>p->data.sex; printf("\n电话:\n"); cin>>p->data.phone; printf("\n地址:\n"); cin>>p->data.addr; rear->next=p; //新结点连接到尾结点之后 rear=p; //尾指针指向新结点 printf("继续建表?(y/n):"); cin>>flag;

通讯录管理系统课程设计报告

设计课题题目 一、课程设计目的与要求 1.课程设计目的 (1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。 (2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。 2. 课程设计要求 制作一个通讯录系统。 (1)该程序具有查找、添加、修改、删除功能。 (2)通讯录包括:姓名、电话、街道、城市、省、邮编等。 二、总体设计 根据系统的要求,系统总体设计如图1所示。

图 三、详细设计 1、数据结构设计 #include<> /*标准输入输出函数库*/ #include<> /*标准函数库*/ #include<> /*字符串函数库*/ #define FILENAME "" struct date 退出\n"); printf("\t--------------------\n"); printf("\t请您选择(0-7):"); scanf("%d",&c); }while(c>7&&c<0); return(c); } int Input(struct date per[10],int n)

char sign,x[10]; while(sign!='n'&&sign!='N') { printf("\t姓名:"); scanf("%s",per[n+i].name); printf("\t电话号码:"); scanf("%s",per[n+i].phone); printf("\t电子邮箱:"); scanf("%s",per[n+i].email); printf("\tQQ:"); scanf("%s",per[n+i].QQ); gets(x); printf("\n\t是否继续添加(Y/N)"); fflush(stdin); ame,per[i-1].phone,per[i-1].QQ,per[i-1].email); if(i>1&&i%10==0) { printf("\t-----------------------------------\n"); printf("\t"); system("pause"); printf("\t-----------------------------------\n"); } } printf("----------------------------------------------------------------------\n"); system("pause"); } int Delete_a_record(struct date per[10],int n)

通讯录管理系统数据库设计【可直接使用】.doc

通讯录管理系统数据库设计与实现 1 需求简介(赵河南) 1.1功能概述 1.2数据要求 功能中涉及的数据项说明。 1.用分组基本信息(Admin):包括分组号、分组名; 2.用户基本信息(Dormitory):包括账号、密码、昵称、个性签名,这样可以 方便分清用户记录的联系人;

3.联系人基本信息(linkman):包括姓名、性别、关系、手机号、座机号、QQ、 E-mail、生日、工作单位、地址、所属用户、所属分组; 1.3数据字典 数据项列表 数据项编号数据项名数据项含义与其它数据项的关系存储结构别名TXL-1 G_number 分组号CHAR(10) TXL-2 G_name 分组名CHAR(20) TXL-3 ID 所属用户等同于账号ID CHAR(10) TXL-4 ID 账号CHAR(10) TXL-5 Nickname 昵称CHAR(20) TXL-6 Password 密码CHAR(20) TXL-7 Qianming 签名CHAR(50) TXL-8 L_number 联系人号CHAR(100) TXL-9 Name 姓名CHAR(20) TXL-10 Sex 性别CHAR(2) TXL-11 Concern 关系CHAR(10) TXL-12 Phone 手机号CHAR(11) TXL-13 Landline 座机号CHAR(10) TXL-14 QQ QQ号CHAR(10) TXL-15 Email E-mail CHAR(20) TXL-16 Work 工作单位CHAR(30) TXL-17 Address 地址CHAR(30) TXL-18 Birthday 生日Date 数据结构列表 数据结构编号数据结构名 数据结构 含义 组成 DS-1 Grouping 分组G_number,G_name,ID, DS-2 Worker 用户ID,Nickname,Password,Qianming DS-3 Linkman 联系人L_number,Name,Sex,Concern,Phone,Landline,QQ,Email,Work,Address,Birthday,ID,G_number

相关文档
最新文档