文档库 最新最全的文档下载
当前位置:文档库 › 全功能版通讯录(c语言) 设计说明概要

全功能版通讯录(c语言) 设计说明概要

全功能版通讯录(c语言) 设计说明概要
全功能版通讯录(c语言) 设计说明概要

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

一、需求分析

本通讯录是一款具有基本通讯信息管理功能的系统。包括基本添加,修改,删除,查询和输出等功能。其中联系组是为了更好地管理联系人信息,如常用的组有亲戚,家人,朋友,同学等。用户添加的信息存储到文件当中,本系统的数据存储文件包括group.dat和linkman.dat,其中group.dat存储组信息;而linkman.dat则存储联系人的信息。用户登陆系统后,根据需要,选择操作类型。系统一启动,便将相关数据文件装载进内存,如果数据文件不存在,系统将会创建新的数据文件。并将数据文件内的记录存放在链表数据结构类型中,接下来用户所有的操作,都是对链表的操作。当用户退出系统时,系统将自动将链表的信息存进数据文件。本系统中包含两个链表:group

链表和linkman链表,分别对应group,dat

和linkman,dat两个数据文件。

1、组信息管理模块:

◎添加新组信息:当用户添加一个新组时,这个新组将被添加到group.dat文件的末尾,如果添加的组已存在则返回出错信息。

◎修改已有组信息:用户首先输入所要修改的联系组,然后系统查询该联系组存不存在。若存在,则要求用户输入新的信息,并进行替换;若不存在,则返回错误信

息。

◎删除已有组:用户首先输入所要删除的组,然后系统查询该组存不存在。如果存在,则先删除该组下的所有联系人的信息,再删除该组;如果所要删除的信息不存在,

则返回错误信息。

◎删除所有已有组信息:该操作没有输入值。如果原来group.dat文件中没有联系组,返回错误信息;否则,删除所有联系组,同时删除各个组下的联系人信息。

◎组查询功能:按用户输入的查询条件,在group.dat文件中查询相关信息。若存在符合条件的组,则输出相应的组信息;若不存在,则返回出错信息。

◎输出所有组信息:将group.dat中所有组全部输出来。

2、联系人信息管理模块:

◎添加联系人:当用户添加一个新联系人时,这个联系人的信息将被添加到group.dat 文件的末尾,若添加的联系人已存在,则返回出错信息。添加一个联系人时,他所

属的组成员个数同时增加1。

◎修改联系人:用户首先输入所要修改的联系人,然后系统查询该联系人存不存在。

若存在,则要求用户输入新的信息,并进行替换;若不存在,则返回错误信息。

◎删除联系人:用户首先输入所要删除的联系人,然后系统查询该联系人存不存在。

如果存在,则删除,并返回相关信息;如果所要删除的信息不存在,则返回错误信

息。删除一个联系人时,他所属的组成员个数同时减少1。

◎删除所有联系人:该操作没有输入值。如果原来linkman.dat文件中没有联系联系

人,返回错误信息;否则,删除所有联系人信息。

◎联系人查询功能: 按用户输入的查询条件,在linkman.dat文件中查询相关信息。

若存在符合条件的联系人,则输出相应的联系人信息;若不存在,则返回出错信息。

而且提供不同种类的查询,如:按联系人姓名来查询,按联系人电话来查询,按联

系人所在的组来查询。

◎输出所有联系人信息:将所有联系人信息输出。

二、概要设计

1、抽象数据类型定义:

/* **********************存储结构设计**************************** */

/**************节点类型设计***************/

typedef struct{

char group_num[10]; //组号

char group_name[20]; //组名称

int mem_num; //组内联系人个数

}GroupType; //存放一条组信息

typedef struct{

char mem_num[10]; //联系人号

char mem_name[20]; //联系人名称

char mem_sex[2]; //联系人性别

char mem_phone[20]; //联系人电话

char mem_addr[50]; //联系人地址

char mem_group_num[10]; //联系人所在组的组号

}LinkmanType;

/*************线性表存储结构设计**************/

typedef struct groupnote{

GroupType groupdata; //组数据信息

struct groupnote *next;

}*GroupNote; //组表节点

typedef struct{

GroupNote head, tail; //分别指向组信息链表的头结点和尾节点

int lenth; //链表中元素个数

}GroupList;

typedef struct linkmannote{

LinkmanType linkmandata;

struct linkmannote *next;

}*LinkmanNote; //联系人表节点

typedef struct{

LinkmanNote head, tail; //分别指向联系人信息链表的头结点和尾节点int lenth; //链表中元素个数

}LinkmanList;

/*************基本操作列表******************/ /*************组管理模块功能函数**************/ ◎void addGroup(; //操作类型号是1

◎void deleteCroup(; //操作类型号是2

◎void deleteAllGroup(;//操作类型号是3

◎void selectGroup(;//操作类型号是4

◎void printAllGroup(; //操作类型号是5

/*************联系人模块功能函数**************/ ◎void addLinkman(;//操作类型号是6

◎void updateLinkman(;//操作类型号是7

◎void deleteLinkman(;//操作类型号是8

◎void deleteAllLinkman(;//操作类型号是9

◎void selectMenu(;//操作类型号是10

○ selectByName(;//查询子菜单下的类型号1

○ selectByPhone(;//子菜单下的类型号2

○ selectByGroup(;//子菜单下的类型号3

◎void printAllLinkman(; //操作类型号是12

/*************系统基本操作**************/

◎ void systemMenu(;//系统菜单

◎ void readFromFile(;//将数据文件导入内存并存储在单链表中,系统一开始运行时,就将数据文件读入内存。

◎ void writeToFile(;//将内存单链表中的数据写入数据文件

◎ void exitSystem(;//退出并保存,操作类型号是0,退出系统时自动将链表中的数据写入数据文件。

◎GroupNote selectGroupPub(char *name; /*组查询的公共函数*/

◎LinkmanNote selectLinkmanPub(char *name; /*联系人查询的公共函数*/

◎void deleteByGroup(char *groupname; /*删除某一组下的所有联系人信息

*/◎void printLinkman(LinkmanNote ln; /*输出ln节点里联系人的信息*/

三、详细设计

详细设计中主要用了PDA(问题分析图来进行设计。考虑到链表基本操作书上都有,所以这里凡是涉及到链表的基本操作,都没有给出,只轻轻带过。到代码实现部分再具体实现这些功能。

/************************系统功能模块详细设计

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

1、系统菜单函数systemMenu( 的PAD图:

List all menu items

Choose the option

addGroup(

1

2 3 4 5 6 7 8 9 10 11 0

deleteGroup( deleteAllGroup(

selectGroup( printAllGroup(

addLinkman( updateLinkman( deleteLinkman( deleteAllLinkman( selectMenu( prin tAllLinkman( exitSystem(

option=

2、查询菜单函数selectMenu(的PDA图:

List all menu items

Choose the option

selectByName(

1

2 3 0selectByPhone( selectByGroup( systemMenu(

option=

3、加载数据文件函数readFromFile(:加载数据文件时,首先判断数据文件存不

存在。如

果不存在,输出相关错误信息并返回主菜单;若存在,则打开数据文件group.dat

和linkman.dat。接着,判断数据文件是不是为空。如果为空,则什么都不做;若不为空,则建立两个链表group和linkman,并循环将group.dat和linkman.dat两个数据文件

中的每一条记录分别加载到group和linkman两个链表中。注意,每读入一条新纪录,则动态开辟一个存储节点,将记录信息读入这个节点,然后将这个节点采用尾插法插入相应链表中。

对应PDA图如下:

Open the files

Files exist?

return

nothing

Load the files

Files empty?

Load the files

Build linklist group

def

Build linklist linkman

Until group.dat end

Until linkman.dat end

Malloc a new note

Read current record into the note Insert the note into the linkman Malloc a new note

Read current record into the note Insert the note into the group

4、保存数据函数writeToFile(:将group和linkman两个链表中的所有信息分别存储到group.dat和linkman.dat中。每存储进一个节点则将对应的节点删除(头删除法,释放存储空间。由于存储节点时,从链表的首位置依次循环将所有节点都写入数据文件。对应的PAD 图如下:

Until the group empty Write current note into group.dat Delete current note from group

Until the group empty

Write current note into linkman.dat

Delete current note from linkman

Close the files

5、退出系统函数exitSystem(:退出系统,退出时将保存内存中的数据信息。Call the writeToFile(

Exit the system

6、组查询公共函数selectGroupPub(char *name:

/************************组管理功能模块详细设计

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

1、添加组函数addGroup(:开辟一个新的结点,提示用户输入要添加的组信息,并判断这

个组是否已经存在。如果存在,返回错误信息;若不存在则将这个节点插入到group链表的尾部。最后判断用户是否要继续添加。如果是,则继续完成上述过程;否则,返回主菜单。

Build the group

Group not exist?

While choice

Malloc a new note

Put in new info

Print error info

Info already exist?

Insert the note into group Put in choice(0/1

2、修改组函数updateGroup(:首先,提示用户输入所要修改的组的组名称。然后查询,如果组不存在,则输出出错信息并返回主菜单。否则,提示用户输入新的组信息替换原来的组信息。

Put in group_name

Error and ruturn

Info not exist?

Put in the new info

2、删除组信息函数deleteGroup(:删除某一个组时,同时将这个组下的所有联系人信息也

一并删除,所以进行操作之前,必须要求用户确认。首先,提示用户输入所要删除的组的组名称。判断该组存不存在,若不存在,出错并返回;否则,要求用户确认操作,若用户取消操作,则退出;否则,首先在linkman链表中查找该组下的所有联系人,并一一将它们删除,最后从group链表中删除该组。

Put in the group_name

Info not exist?

Error and return

Are you sure?

Return

Select from linkman and delete all info belonged to the group note

Delete this group note

3、删除所有组信息函数deleteAllGroup(:删除所有组信息时,首先删除所有联系人,再删

除所有组。

Delete All Linkman Delete all group Return

Are you sure ?

4、组查询函数selectGroup(:因为组信息不多,所以这里只提供一个查询函数,即按组的

名称来查询。首先,用户输入组名称,系统在group链表中查询,若存在,则输出该组的信息;否则出错返回。

Put in group_name

Select it from group

Print the info

Find?

Return

5、输出所有组信息函数printAllGroup(:这个就是将group链表的所有节点信息输出来。/************************联系人管理功能模块详细设计

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

由于

addLinkman(,updateLinkman(,deleteLinkman(,deleteAllLinkman(,printAllLinkman(和组管理模块对应功能是基本相同的,所以这里就不再对它们进行详细设计了。下面主要对查询功能给出详细设计。

1、按名字查询函数selectByName(:首先,用户输入所要查询的联系人姓名。系统按照联

系人姓名在linkman链表中进行查询,找到符合条件的则输出该联系人的所有信息。否则,输出出错信息。

Put in mem_name

Select it from linkman

Print the info

Find?

Error and return

2、按电话号码查询函数selectByPhone(:首先,用户输入所要查询的电话号码。系统按照电话号码在linkman链表中进行查询,找到符合条件的则输出该联系人的所有信息。否则,输出出错信息。

Put in mem_phone Select it from linkman

Error and return

Find?

Print the info

2、按组查询函数selectByGroup(:首先,用户输入所要查询的组的组名称。系统按照组名

称在group 链表中查询,如果该组不存在则出错并返回;否则,取得该组的组号,并按照组号在linkman 链表中进行查询,找到符合条件的则输出该组下所有联系人的信息。否则,输出出错信息。注意:由于一个组下的联系人可能不止一个,所以,系统在查询联系人信息时应该遍历全表,而不能像上两个函数一样,找到符合条件的信息就可以退出查找了。

Put in group_name Select it from linkman by the group_num

Error and return

Find?

Gain the group_num

Select it from group

Error and return

Print the info Find?

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

中国地质大学本科生课程论文封面 课程名称C语言程序设计 教师姓名 本科生姓名 本科生学号 本科生专业 所在院系 类别: 日期:

课程设计评语 注:1、无评阅人签名成绩无效; 2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效; 3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录 课程设计评语 (2) 目录 (3) 1.课程论文题目 (4) 2.程序设计思路 (4) 3.功能模块图 (5) 4.数据结构设计 (5) 5.算法设计 (5) 6.程序代码 (14) 7.程序运行结果 (14) 8.编程中遇到的困难及解决方法 (27) 9.总结心得及良好建议 (28) 10.致谢 (28)

1.课程论文题目 通讯录管理系统 要求:设计具有数据插入、修改、删除、显示和查询功能的电话簿管理系统。 ⑴数据包括:人名、工作单位、电话号码和E-mail地址。 ⑵可对记录中的姓名和电话号码进行修改。 ⑶可增加或删除记录。 ⑷可显示所有保存的记录。 ⑸可按人名或电话号码进行查询。 2.程序设计思路 根据题目的要求,程序应该采用结构体数组和文件系统实现。应该有动态的存储空间和文件输入、输出等操作功能;在程序中应该包括添加、显示、删除、查询和修改以及保存和退出的功能;另外还应提供键盘式选择菜单实现功能选择。

3.功能模块图 4.数据结构设计 整个程序中用到的数据主要是全局变量MAX 100和字符变量name[10]、addr[20]、phnum[20]、email[20]。 5.算法设计 1.主函数 主函数的设计一般比较的简单,只提供输入,功能处理和输出部分的函数调用。其中个功能模块用菜单方式选择。菜单部分也可以写成函数。 [流程图]

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语言程序设计课程设计-通讯录管理系统

通讯录信息管理系统设计计算机学院计算机科学与技术专业 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语言课程设计通讯录实验报告

太原学院计算机工程系 课程设计报告 课程名称:数据结构课程设计 姓名:苏建花 专业班级:计算机工程系网络三班 指导教师:翟婷婷 2015年12 月30日 计算机工程系课程设计报告 课程名称:C语言课程设计 课程设计题目:通讯录管理系统 班级:网络14-3班姓名:苏建花学号: 目录(参考) 1.设计目的与要求…………………………………………X 1.1题目与设计要求……………………………………X 1.2本程序涉及的知识点………………………………X 2.功能设计………………………………………………X 2.1总体设计……………………………………………X 2.2详细设计……………………………………………X 3.程序实现……………………………………………X 3.1程序实现时应考虑的问题…………………………X 3.2 XX模块核心代码…………………………………X 4.测试分析……………………………………………X 4.1 测试结果及分析…………………………………X 4.总结…………………………………………………X 参考文献………………………………………………X 1、设计目的与要求 这次课程设计的目的在于: 1.熟练的掌握C语言课程中所学的理论知识,并对其进行应用; 2.通过综合C语言的基本知识来解决实际问题; 3.加强分析和解决问题的能力; 4.提高实践动手能力,将知识化为实际成果

1.1 题目与设计要求 (1)题目:通讯录 (2)设计要求 a、建立通讯录信息,信息至少包含姓、名、电话号码、住址、分类(如同事、朋友、 同学、家人等)等。 b、该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修改,按姓名、 姓氏方式查找。 c、将通讯录保存在文件中。 d、能够输出通讯录中的信息。 1.2 本程序设计的知识点 (1)采用结构体数组。 struct Person { char a[16]; char s[16]; char d[16]; char f[24]; struct Person *next; }stu; (2)运用函数之间的调用 主函数可以调用子函数,子函数之间可以相互调用,子函数不能调用主函数,主函数可以多次调用一个子函数,也可以一次调用多个子函数。 (3)利用指针变量 struct Person *head; struct Person *p1,*p2 2 、功能设计 添加:添加通讯录记录 修改:修改通讯录记录 删除:删除通讯录记录 查找:查询通讯录记录 显示:显示通讯录记录 统计:统计通讯录数目 2.1需求分析 信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或姓氏进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。

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

C语言课程设计通讯录 管理系统 文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

***科技大学 本科生课程设计说明书 题目:C语言课程设计 ——通讯录管理系统 学生姓名:** 学号:*** 专业:软件工程 班级:1 指导教师:**

内蒙古科技大学课程设计任务书 一、教学要求 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言解决实际问题的能力 二、设计资料及参数 每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。 通讯录管理系统 现有一批通讯录的数椐,要求输入计算机并存放在内存中,然后增加若干个新通讯录的记录,并可输出通讯录清单,实现文件存盘和读入文件进行修改的功能。通讯录的基本信息包括编号,姓名,电话号码,QQ号码,电子邮件,通讯地址。要求设计菜单来调用其各功能模块: 新建文件、打开文件、保存信息到文件 输入记录、输出记录 查询记录(至少具有两种查询方式,例如以姓名查询和以电话号码查 询) 修改、插入和删除记录 三、设计要求及成果 1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目) 2. 写出详细设计说明(至少包括功能实现分析和模块流程图) 3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号) 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告(请严格按照模板进行排版) 四、进度安排 第一天? 选择课程设计题目,分析课题的要求 第二天? 编程 第三天? 编程及调试 第四天? 写课程设计报告

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

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

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

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

三、详细设计 1、主函数; 主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。 流程图 N 【程序】 int main()

***********\n"); printf("\t\t**********************************************\n"); scanf("%d",&n); for(i=0;i

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

通讯录系统的设计与实现电子科技大学电信三班傅得耕 3.1系统的需求分析 通讯录系统作为一个应用软件将为人民提供一个可以串联人与人之间的信息的一个平台。根据系统界面的提示信息对通讯录进行查询、初始化等操作。 系统功能需求分析描述如下: (1)创建联系人。 (2)显示所有联系人:显示可以进行的操作。 (3)删除联系人。 (4)查询:根据进行查询,并可显示所有关于该人的信息。(5) :退出。 3.2系统的设计 3.2.1 系统的总体设计 下面从系统的整体流程的功能模块、系统界面及数据结构进行总体设计。 (1)总体思想 本系统主要设计思想是实现通讯录系统信息的创建联系人、删除、查找等主要功能。系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解联系人的情况。 (2)系统模块结构图 根据需求分析结果,通讯录系统可以分为五大模块:创建联

系人模块、显示功能模块、查找联系人功能模块、删除联系人模块以及退出模块。 系统模块结构如图: 3.2.2 系统的概要设计 ㈠系统主菜单。 显示系统的主菜单,里面有相应的功能代码,根据选择各功能代码进入不同的界面。功能主要包括:退出系统、查询、创建显示及删除。 ㈡查询人物信息 进入此菜单功能模块,输入您要查询的图书的名字。 图书查询模块流程如图:

否是 是 重新输入 否 退出系统 3.3 测试结果 系统主界面

创建 显示系统 查询系统

删除系统 3.4 源代码 #include #include #include #define LEN sizeof(struct people) struct people {

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)课程设计报告书 设计题目:电子通讯录 2013年01月

目录 一、引言…………………………………… 二、系统功能和原始数据……………………………………… 三、程序总体设计……………………………………………… 四、功能模块函数设计和调试……………………………… 五、程序清单…………………………………………………… 六、课程设计总结……………………………………………

一、引言 通过使用C语言编程实现通讯录管理系统的基本功能,并设计了简单的界面。该程序主要使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。用到的知识点是结构体类型定义结构提数组的的定义及应用。另外还用到了大量的自定义函数。本人设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、添加等必要的功能。 二、系统功能和原始数据 2.1 原始数据 录入内容包括ID号,姓名,性别,出生日期,固定电话号码,移动电话号码,QQ号码,电子邮箱,通讯地址和邮编等。其中出生日期又包括年份,月份和日期三项。 2.2 系统功能 ●查找功能:能够提供检索除功能,他可以随心所欲的查找通讯录中任意一位 朋友的详细信息。通讯录结构中的许多项,都可以作为查找的线索,例如出生日期,邮编和姓名。 ●自动排序功能:它能提供按姓名等排序的功能 ●纪录和读盘功能:在用户结束程序时,如果做了改动操作,程序会提示用户 是否存盘。 三、程序总体设计和调试 3.1 总体设计:包括系统总体设计框架和系统功能模块图;

按出生日期查询:输入出生日期显示对应朋友资料 按邮编查询:输入邮编显示对应的朋友资料 3.2 详细设计: 1、主函数:main() 显示系统工作菜单,罗列该系统所有功能。先声明所有将会调用到的函数名。再运用选择函数switch即可根据使用者所输入的功能代号进入对应的功能程序。亮点:定义一个全局指针变量 *p和全局变量a。其中a表示当前系统中职工人数,p指向a的地址,追踪人数变化,这样在添加或者删除导致人数变化后,浏览函数display()能够正确显示出当前人数的职工信息。宏定义define N指定首次输入的职工人数,可根据不同需要随时更改。 2、输入函数:void input()

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

#include #include #include #include #define N 100 int M=5; struct student { char num[10];char name[10];char tel[10];}; void myprint(); void mycreat(struct student *p,int); void mydisplay(struct student *p,int); void mysearch(struct student *p,int); void mymodify(struct student *p,int); void mydelete(struct student *p,int); void myadd(struct student *p,int); void main() { char choose='\0',yes_no='\0'; struct student record[N]={0}; do { myprint(); printf("请选择(0-6):"); choose=getche(); switch(choose) { case '1':mycreat(record,M);break; case '2':mydisplay(record,M);break; case '3':mysearch(record,M);break; case '4':mymodify(record,M);break; case '5':myadd(record,M);break; case '6':mydelete(record,M);break; case '0':exit(0); default :printf("\nerror...\n"); } printf("\n继续选择吗(y/n)?\n"); do {yes_no=getch();} while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='Y'||yes_no=='y'); } void myprint() { system("cls");

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

通讯录系统的设计与实现桂林电子科技大学电信三班傅得耕 3.1系统的需求分析 通讯录系统作为一个应用软件将为人民提供一个可以串联人与人之间的信息的一个平台。根据系统界面的提示信息对通讯录进行查询、初始化等操作。 系统功能需求分析描述如下: (1)创建联系人。 (2)显示所有联系人:显示可以进行的操作。 (3)删除联系人。 (4)查询:根据姓名进行查询,并可显示所有关于该人的信息。 (5) :退出。 3.2系统的设计 3.2.1 系统的总体设计 下面从系统的整体流程的功能模块、系统界面及数据结构进行总体设计。 (1)总体思想 本系统主要设计思想是实现通讯录系统信息的创建联系人、删除、查找等主要功能。系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解联系人的情况。 (2)系统模块结构图 根据需求分析结果,通讯录系统可以分为五大模块:创建联系人模块、显示功能模块、查找联系人功能模块、删除联系人模

块以及退出模块。 ㈡查询人物信息 进入此菜单功能模块,输入您要查询的图书的名字。 图书查询模块流程如图: 3.3 创建

删除系统 3.4 源代码 #include #include #include #define LEN sizeof(struct people) struct people { char name[10]; char address[50]; char postcode[7]; char phonenum[12]; struct people * next; }; int n = 0, c; static struct people * head; void insert(); void show();

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语言课程设计)

安徽工业大学 《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

通讯录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*/

c语言课程设计学生通讯录管理系统精编版

c语言课程设计学生通讯录管理系统 文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

题目:学生通讯录管理系统任务说明:主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能:①记录通讯录内的人员的学号、姓名、地址、电话号码。 ②显示所有人员的信息。 ③通过输入姓名查找人员信息。 ④通过输入姓名查找到要删除的人员信息,然后可以进行删除。 ⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。 ⑥添加人员信息。 系统功能描述: 本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。 各按钮的功能如下: 查找记录:以姓名为关键字,查找并显示该记录。若查找不到,则显示“好象没有”; 添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录; 修改记录:修改当前记录,显示当前记录。姓名为关键字,不允许修改; 删除记录:删除当前记录,然后显示第一条记录; 第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动; 前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;

后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动; 最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动; 加载:从文件中掉入已保存的通讯录数据; 保存:保存通讯录数据; 退出:退出系统; 设计思路: 根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。 图1 系统功能模块图 软件中使用的结构体和结构体数组,如: struct callmember { char name[20]; char address[20]; char code[20]; char callnumber[20];

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

中国地质大学本科生课程论文封面课程名称 C语言程序设计 教师姓名 本科生姓名 本科生学号 本科生专业 所在院系 类别: 日期:

课程设计评语 注:1、无评阅人签名成绩无效; 2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效; 3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

目录 课程设计评语......................................................... 目录................................................................ 1.课程论文题目...................................................... 2.程序设计思路...................................................... 3.功能模块图........................................................ 4.数据结构设计...................................................... 5.算法设计.......................................................... 6.程序代码.......................................................... 7.程序运行结果...................................................... 8.编程中遇到的困难及解决方法.. (27) 9.总结心得及良好建议 (28) 10.致谢 (28) 1.课程论文题目 通讯录管理系统 要求:设计具有数据插入、修改、删除、显示和查询功能的电话簿管理系统。

c语言课程设计学生通讯录管理系统(推荐文档)

题目:学生通讯录管理系统 任务说明: 主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能: ①记录通讯录内的人员的学号、姓名、地址、电话号码。 ②显示所有人员的信息。 ③通过输入姓名查找人员信息。 ④通过输入姓名查找到要删除的人员信息,然后可以进行删除。 ⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。 ⑥添加人员信息。 系统功能描述: 本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。 各按钮的功能如下: 查找记录:以姓名为关键字,查找并显示该记录。若查找不到,则显示“好象没有”; 添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录; 修改记录:修改当前记录,显示当前记录。姓名为关键字,

不允许修改; 删除记录:删除当前记录,然后显示第一条记录; 第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动; 前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动; 后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动; 最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动; 加载:从文件中掉入已保存的通讯录数据; 保存:保存通讯录数据; 退出:退出系统;

设计思路: 根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。 图1 系统功能模块图 软件中使用的结构体和结构体数组,如: struct callmember { char name[20]; char address[20]; char code[20]; char callnumber[20]; }; 对用户的信息进行保存,他们都以二进制的形式读写。 其中:

c语言课程设计学生通讯录管理系统

c语言课程设计学生通讯 录管理系统 Last revision date: 13 December 2020.

题目:学生通讯录管理系统 任务说明: 主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能: ①记录通讯录内的人员的学号、姓名、地址、电话号码。 ②显示所有人员的信息。 ③通过输入姓名查找人员信息。 ④通过输入姓名查找到要删除的人员信息,然后可以进行删除。 ⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。 ⑥添加人员信息。 系统功能描述: 本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。 各按钮的功能如下: 查找记录:以姓名为关键字,查找并显示该记录。若查找不到,则显示“好象没有”;

添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录; 修改记录:修改当前记录,显示当前记录。姓名为关键字,不允许修改; 删除记录:删除当前记录,然后显示第一条记录; 第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动; 前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动; 后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动; 最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动; 加载:从文件中掉入已保存的通讯录数据; 保存:保存通讯录数据; 退出:退出系统;

设计思路: 根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。 图1 系统功能模块图 软件中使用的结构体和结构体数组,如: struct callmember { char name[20]; char address[20]; char code[20]; char callnumber[20]; }; 对用户的信息进行保存,他们都以二进制的形式读写。 其中: char name[20];

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

1设计题目的内容、任务及具体要求 一.需求分析 实现通讯录管理系统 任务:自学C语言有关链表及外部文件的内容,设计出通讯录管理系统,要求如下: ①建立通讯录信息,信息至少包含编号,姓名,年龄,电话,通讯录地址,电子邮箱等; ②能够提供添加,删除和修改通讯录信息的功能; ③能够提供按不同方式查询的功能;如按姓名或年龄,电话等查询; ④将通讯录保存在文件中; ⑤能够按表格方式输出通讯录信息 要求: 1.学生从以上几个设计任务中任选其中一个完成. 2根据以上功能需求,自己定义单链表结点的存储结构; 3.为了保证所有的数据可以长期被使用,要求程序能将相关数据存储在外部数据文件中,具体数据格式和文件名,路径等自定; 4.提供友好的用户界面,方便用户操作. 二.源程序代码 #include #include #include

#define BUFLEN 80 /* 缓冲区最大字符数 */ #define LEN 30 /* 学号和姓名最大字符数,实际请更改 */ #define N 200 /* 最大学生人数,实际请更改*/ struct record { char code[LEN+1]; /* 学号 */ char name[LEN+1]; /* 姓名 */ int age; char sex[3]; char time[LEN+1]; char add[LEN+1]; char tel[LEN+1]; char mail[LEN+1]; }stu[N]; int k=1,n,m; void readfile();/* 函数声明 */ void seek(); void modify(); void insert(); void del(); void display(); void save(); void menu(); int main() { while(k) menu(); system("pause"); return 0; } void readfile()/* 建立信息 */ { char buf[BUFLEN],*p="student.dat"; FILE *fp; int i=0; if ((fp=fopen("student.dat","r"))==NULL) /* 把此程序和文件student.dat放在同一目录下 */ { printf("Open file %s error! Strike any key to exit!",p); system("pause"); exit(0);

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