文档视界 最新最全的文档下载
当前位置:文档视界 › 1.通讯录管理系统课程设计报告书(C语言)

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

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

机电工程学院

中南大学

本科生C语言课程设计

题目通讯录管理系统

成员姓名蔡贵学号0806100302班级:机械1003班

成员姓名张晴学号0806100301班级:机械1003班

成员姓名陈祎靖学号0806100319班级:机械1003班

成员姓名宁磊磊学号0806100304班级:机械1003班指导教师樊广军

学院机电工程学院

完成时间2011年06 月31 日

目录

第一章绪论 (2)

1.1 设计题目及要求 (2)

1.2 系统功能需求分析 (2)

第二章开发环境 (3)

2.1 C语言的背景 (3)

2.2 C语言主菜单介绍 (3)

第三章总体设计与实现 (11)

3.1 概要设计 (11)

3.2 详细设计 (11)

第四章测试数据及其结果分析 (15)

4.1 测试 (15)

4.2 问题思考 (18)

第五章总结 (19)

附录 (20)

一源代码 (20)

二参考文献 (27)

第一章绪论

1.1 设计题目及要求:

◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子

邮箱等;

◆能够提供添加、删除和修改通讯录信息的功能;

◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询;

◆将通讯录保存在文件中;

◆能够按表格方式输出通讯录信息。

1.2系统功能需求分析:

主要包含一下多种功能:

添加:添加通讯录记录

显示:显示通讯录记录

删除:删除通讯录记录

查询:查询通讯录记录

修改:修改通讯录记录

保存:将信息保存到文件

第二章开发环境

2.1 C语言的背景

C语言属于高级程序语言的一种,它的前身是“ALGOL”。其创始人是布朗?W?卡尼汉和丹尼斯?M?利奇。C语言问世时是带有很大的局限性,因为它只能用于UNIX系统上。然而随着科学技术的进步,计算机工业的发展,C语言逐渐脱离UNIX。1987年美国标准化协会制定了C语言的国际标准,简称“ANSI C”,从此以后它便成为一种广泛使用的程序语言。C语言的优点很多,主要的有如下四点:

1.兼备高级语言与低级语言的优点,属于一种中间语言。

2.它是一种结构化程序设计语言,非常适合结构化程序设计。

3.有较丰富的数据类型、运算符以及函数供以选用。

4.直接与内存打交道,使修改、编辑其他程序与文档变得轻松,简单。

2.2 C语言主菜单介绍

主菜单在Turbo C 2.0主屏幕顶上一行, 显示下列内容:

File Edit Run Compile Projec Options Debug Break/watch

除Edit外, 其它各项均有子菜单, 只要用Alt加上某项中第一个字母(即大写字母), 就可进入该项的子菜单中。

一、File(文件)菜单

按Alt+F可进入File菜单, 该菜单包括以下内容:

.Load(加载)

装入一个文件, 可用类似DOS的通配符(如*.C)来进行列表选择。也可装入其它扩展名的文件, 只要给出文件名(或只给路径)即可。该项的热键为F3, 即只要在主菜单中按F3即可进入该项, 而不需要先进入File菜单再选此项。

.Pick(选择)

将最近装入编辑窗口的8个文件列成一个表让用户选择, 选择后将该程序装入编辑区, 并将光标置在上次修改过的地方。其热健为Alt-F3。

.New(新文件)

说明文件是新的, 缺省文件名为NONAME.C, 存盘时可改名。

.Save(存盘)

将编辑区中的文件存盘, 若文件名是NONAME.C时, 将询问是否更改文件名,

其热键为F2。

.Write to(另存为)

可由用户给出文件名将编辑区中的文件存盘, 若该文件已存在, 则询问要不要覆盖。

.Directory(目录)

显示目录及目录中的文件, 并可由用户选择。

.Change dir(改变目录)

显示当前目录, 用户可以改变显示的目录。

.Os shell(暂时退出)

暂时退出Turbo C 2.0到DOS提示符下, 此时可以运行DOS 命令, 若想回到Turbo C 2.0中, 只要在DOS状态下键入EXIT即可。

.Quit(退出)

退出Turbo C 2.0, 返回到DOS操作系统中, 其热键为Alt+X。

二、Edit(编辑)菜单

执行编辑菜单,进入编辑状态,或按Alt+E直接进入。

F1 获得Turbo C 2.0编辑命令的帮助信息

F5 扩大编辑窗口到整个屏幕

F6 在编辑窗口与信息窗口之间进行切换

F10 从编辑窗口转到主菜单

编辑命令简介:

PageUp 向前翻页

PageDn 向后翻页

Home 将光标移到所在行的开始

End 将光标移到所在行的结尾

Ctrl+Y 删除光标所在的一行

Ctrl+T 删除光标所在处的一个词

Ctrl+KB 设置块开始

Ctrl+KK 设置块结尾

Ctrl+KV 块移动

Ctrl+KC 块拷贝

Ctrl+KY 块删除

Ctrl+KR 读文件

Ctrl+KW 存文件

Ctrl+KP 块文件打印

Ctrl+F1 如果光标所在处为Turbo C 2.0库函数, 则获得有关该函数的帮助信息

三、Run(运行)菜单

按Alt+R可进入Run菜单, 该菜单有以下各项:

.Run(运行程序)

运行由Project/Project name项指定的文件名或当前编辑区的文件。如果对上次编译后的源代码未做过修改, 则直接运行到下一个断点(没有断点则运行到结束)。否则先进行编译、连接后才运行, 其热键为Ctrl+F9。

.Program reset(程序重启)

中止当前的调试, 释放分给程序的空间, 其热键为Ctrl+F2。

.Go to cursor(运行到光标处)

调试程序时使用, 选择该项可使程序运行到光标所在行。光标所在行必须为一条可执行语句, 否则提示错误。其热键为F4。

.Trace into(跟踪进入)

在执行一条调用其它用户定义的子函数时, 若用Trace into项, 则执行长条将跟踪到该子函数内部去执行, 其热键为F7。

.Step over(单步执行)

执行当前函数的下一条语句, 即使用户函数调用, 执行长条也不会跟踪进函数内部, 其热键为F8。

.User screen(用户屏幕)

显示程序运行时在屏幕上显示的结果。其热键为Alt+F5。

四、Compile(编译)菜单

按Alt+C可进入Compile菜单, 该菜单有以下几个内容:

.Compile to OBJ(编译生成目标码)

将一个C源文件编译生成.OBJ目标文件, 同时显示生成的文件名。其热键为Alt+F9。

.Make EXE file(生成执行文件)

此命令生成一个.EXE的文件, 并显示生成的.EXE文件名。其中.EXE文件名是下面几项之一。

1. 由Project/Project name说明的项目文件名。

2. 若没有项目文件名, 则由Primary C file说明的源文件。

3. 若以上两项都没有文件名, 则为当前窗口的文件名。

.Link EXE file(连接生成执行文件)

把当前.OBJ文件及库文件连接在一起生成.EXE文件。

.Build all(建立所有文件)

重新编译项目里的所有文件, 并进行装配生成.EXE文件。该命令不作过时检查(上面的几条命令要作过时检查, 即如果目前项目里源文件的日期和时间与目标文件相同或更早, 则拒绝对源文件进行编译)。

.Primary C file(主C文件)

当在该项中指定了主文件后, 在以后的编译中, 如没有项目文件名则编译此项中规定的主C文件, 如果编译中有错误, 则将此文件调入编辑窗口, 不管目前窗口中是不是主C文件。

.Get info(获得有关当前路径、源文件名、源文件字节大小、编译中的错误数目、可用空间等信息。

五、Project(项目)菜单

按Alt+P可进入Project菜单, 该菜单包括以下内容:

.Project name(项目名)

项目名具有.PRJ的扩展名, 其中包括将要编译、连接的文件名。例如有一个程序由file1.c, file2.c, file3.c组成, 要将这3个文件编译装配成一个file.exe的

执行文件, 可以先建立一个file.prj的项目文件, 其内容如下:

file1.c

file2.c

file3.c

此时将file.prj放入Project name项中, 以后进行编译时将自动对项目文件中规定的三个源文件分别进行编译。然后连接成file.exe文件。

如果其中有些文件已经编译成.OBJ文件, 而又没有修改过, 可直接写上.OBJ 扩展名。此时将不再编译而只进行连接。

.Break make on(中止编译)

由用户选择是否在有Warining(警告)、Errors(错误)、Fatal Errors( 致命错误)时或Link(连接)之前退出Make编译。

.Auto dependencies(自动依赖)

当开关置为on, 编译时将检查源文件与对应的.OBJ文件日期和时间, 否则不进行检查。

.Clear project(清除项目文件)

清除Project/Project name中的项目文件名。

.Remove messages(删除信息)

把错误信息从信息窗口中清除掉。

六、Options(选择菜单)

按Alt+O可进入Options菜单, 该菜单对初学者来说要谨慎使用。

.Compiler(编译器)

本项选择又有许多子菜单, 可以让用户选择硬件配置、存储模型、调试技术、代码优化、对话信息控制和宏定义。这些子菜单如下:

Model

共有Tiny, small, medium, compact, large, huge 六种不同模式可由同户选择。

Define

打开一个宏定义框, 同户可输入宏定义。多重定义可同分号, 赋值可用等号。

Code generation

它又有许多任选项, 这些任选项告诉编译器产生什么样的目标代码。

Calling convention 可选择C或Pascal方式传递参数。

Instruction set 可选择8088/8086或80186/80286指令系列。

Floating point 可选择仿真浮点、数学协处理器浮点或无浮点运算。

Default char type 规定char的类型。

Alignonent 规定地址对准原则。

Merge duplicate strings 作优化用, 将重复的字符串合并在一起。

Standard stack frame 产生一个标准的栈结构。

Test stack overflow 产生一段程序运行时检测堆栈溢出的代码。

Line number 在.OBJ文件中放进行号以供调试时用。

OBJ debug information 在.OBJ文件中产生调试信息。

Optimization

Optimize for 选择是对程序小型化还是对程序速度进行优化处理。

Use register variable 用来选择是否允许使用寄存器变量。

Register optimization 尽可能使用寄存器变量以减少过多的取数操作。

Jump optimization通过去除多余的跳转和调整循环与开关语句的办法, 压缩代码。

Source

Indentifier length 说明标识符有效字符的个数, 默认为32个。

Nested comments 是否允许嵌套注释。

ANSI keywords only是只允许ANSI关键字还是也允许Turbo C 2.0关键字

Error

Error stop after 多少个错误时停止编译, 默认为25个。

Warning stop after多少个警告错误时停止编译, 默认为100个。

Display warning

Portability warning 移植性警告错误。

ANSI Violations 侵犯了ANSI关键字的警告错误。

Common error常见的警告错误。

Less common error 少见的警告错误。

Names 用于改变段(segment)、组( group) 和类

(class)的名字, 默认值为CODE,DATA,BSS。

.Linker(连接器)

本菜单设置有关连接的选择项, 它有以下内容:

Map file menu 选择是否产生.MAP文件。

Initialize segments是否在连接时初始化没有初始化的段。

Devault libraries 是否在连接其它编译程序产生的目标文件时去寻找其缺省库。

Graphics library 是否连接graphics库中的函数。

Warn duplicate symbols 当有重复符号时产生警告信息。

Stack warinig 是否让连接程序产生No stack的警告信息。

Case-sensitive link 是否区分大、小写字。

.Environment(环境)

本菜单规定是否对某些文件自动存盘及制表键和屏幕大小的设置

Message tracking

Current file 跟踪在编辑窗口中的文件错误。

All files 跟踪所有文件错误。

Off 不跟踪。

Keep message 编译前是否清除Message窗口中的信息。

Config auto save 选on时, 在Run, Shell或退出集成开发环境之前, 如果Turbo C 2.0的配置被改过, 则所做的改动将存入配置文件中。选off时不存。

Edit auto save 是否在Run或Shell之前, 自动存储编辑的源文件。

Backup file 是否在源文件存盘时产生后备文件(.BAK文件)。

Tab size 设置制表键大小, 默认为8。

Zoomed windows 将现行活动窗口放大到整个屏幕, 其热键为F5。

Screen size 设置屏幕文本大小。

.Directories(路径)

规定编译、连接所需文件的路径, 有下列各项:

Include directories 包含文件的路径, 多个子目录用";"分开。

Library directories 库文件路径, 多个子目录用";"分开。

Output directoried 输出文件(.OBJ, .EXE, .MAP文件)的目录。

Turbo C directoried Turbo C 所在的目录。

Pick file name 定义加载的pick文件名, 如不定义则从current pick file中取。

.Arguments(命令行参数)

允许用户使用命令行参数。

.Save options(存储配置)

保存所有选择的编译、连接、调试和项目到配置文件中, 缺省的配置文件为TCCONFIG.TC。

.Retrive options

装入一个配置文件到TC中, TC将使用该文件的选择项。

七、Debug(调试)菜单

按Alt+D可选择Debug菜单, 该菜单主要用于查错, 它包括以下内容:

Evaluate

Expression 要计算结果的表达式。

Result 显示表达式的计算结果。

New value 赋给新值。

Call stack 该项不可接触。而在Turbo C debuger 时用于检查堆栈情况。

Find function 在运行Turbo C debugger时用于显示规定的函数。

Refresh display 如果编辑窗口偶然被用户窗口重写了可用此恢复编辑窗口的内容。

八、Break/watch(断点及监视表达式)

按Alt+B可进入Break/watch菜单, 该菜单有以下内容:

Add watch 向监视窗口插入一监视表达式。

Delete watch 从监视窗口中删除当前的监视表达式。

Edit watch 在监视窗口中编辑一个监视表达式。

Remove all watches 从监视窗口中删除所有的监视表达式。

Toggle breakpoint 对光标所在的行设置或清除断点。

Clear all breakpoints 清除所有断点。

View next breakpoint 将光标移动到下一个断点处。

Turbo C 2.0的配置文件

所谓配置文件是包含Turbo C 2.0有关信息的文件, 其中存有编译、连接的选择和路径等信息。

第三章总体设计与实现

3.1概要设计

系统功能模块图:

添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。

显示:可以以表格形式输出所有通讯录里的记录

删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容

查询:可以选择用姓名、电话、地址三种方式查询

修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改

保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件

3.2详细设计

(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())

{

case 1:

printf("\n\t添加记录到通讯录\n"); /*添加记录*/ n=Input(pe,n);

break;

case 2:

printf("\n\t\t\t 通讯录记录表\n"); /*显示记录*/ Display(pe,n);

break;

case 3:

printf("\n\t从通讯录中删除记录\n");

n=Delete_a_record(pe,n); /*删除记录*/ printf("\t");

system("pause");

break;

case 4:

printf("\n\t在通讯录中查找记录\n");

Query_a_record(pe,n); /*查找记录*/ printf("\t");

system("pause");

break;

case 5:

printf("\n\t修改通讯录中的记录\n");

Change(pe,n); /*修改数据*/ printf("\t");

system("pause");

break;

case 6:

printf("\n\t保存功能\n");

WritetoText(pe,n); /*保存数据*/ printf("\t");

system("pause");

break;

case 0:

printf("\n\t\t谢谢使用,再见!\n"); /*结束程序*/ printf("\n\t\t");

system("pause");

exit(0);

}

}

}

(2).工作流程图:

①添加:添加通讯录记录②显示:显示通讯录记录

③删除:删除通讯录记录④查询:查询通讯录记录

先选择查询方式,以姓名查询方式为例

⑤修改:修改通讯录记录

第四章测试数据及其结果分析4.1 测试:

1).显示的主菜单界面

2).添加界面:

3).显示界面:

4).删除界面:

删除后,通讯录里的显示记录:

5).查询界面:

以姓名查询方式为例:

6).修改界面:

修改后,通讯录里的显示记录:

7).保存界面:

4.2 问题思考:

1.当我在进行删除、查询、修改、保存等功能时,以查询为例,输入名字按回车后,虽然会显示该人的所有记录,但是显示后,它马上自动消失了,还没来得及等我看内容。因此,向别人请教后,在一些地方加入了system("pause");这个语言,用来对某项操作完成后进行暂停。

2. 现在这个程序的界面个人感觉很清爽。但在最初,每次进行一项操作,运行窗口里的内容会一直保留着,感觉很杂乱,如下图(添加后,进行显示操作):

之后,我去网上寻求解决办法,知道可以使用system("cls");这一语句可以解决这个问题,最后,修改成功。

第五章总结

这次的程序实设计实验是对我们进入大学以来学习程序设计语言结果的一次大检验。自己动手,自己发现和解决问题。发现了自己的许多不足。平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。我相信在以后的学习能够解决好它们。但是,收获还是不小的,我不仅对C的操作有了进一步的掌握,还了解到了程序设计的书写风格及其注释的格式。

当我选择通讯录这个题目时,一开始想运用大量链表及指针来完成,但是在慢慢琢磨之后,觉得这个不一定要用链表,于是改变了编程思路。当然还有不少文件的读写问题,不过还是通过不断测试之后顺利解决了。另外一点要说的就是这个程序用了很多的循环,因此对于循环的控制要十分小心,有时while和do-while的区别也是十分重要的。

还有一点体会就是,书上和老师教的内容是有限的,我们需要不断地靠自己去学习,向他人请教,了解和掌握更多的知识,这样我们才能编出更好的C程序。

总体来说,这次C语言程序设计实验还是比较成功的,虽然最终程序还存在一些不足,但能取得这样的成绩我还是比较高兴的。

最后,要感谢学校为我们提供这次实验机会,也要感谢老师的教导和好心人对我的帮助与支持。

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语言程序设计 教师姓名 本科生姓名 本科生学号 本科生专业 所在院系 类别: 日期:

课程设计评语 注: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.主函数 主函数的设计一般比较的简单,只提供输入,功能处理和输出部分的函数调用。其中个功能模块用菜单方式选择。菜单部分也可以写成函数。 [流程图]

手机通讯录系统课程设计报告

课程名称: 程序设计基础课程设计 学院名称: 计算机科学与工程学院 专 业: 计算机科学与技术 课程设计报告 装 订 线

目录 一、绪论 (3) 二、设计内容 (4) 1、选题 (4) 2、系统功能 (4) 3、应用到的技术 (4) 三、设计要求 (4) 四、设计环境 (5) 1、操作系统 (5) 2、开发工具 (5) 3、PC机配置 (5) 五、系统结构图 (5) 六、功能实现 (6) 1、系统运行 (6) 2、添加联系人 (6) 3、修改联系人 (7) 4、删除联系人 (8) 5、查找联系人 (8) 6、查看所有联系人 (8) 7、对联系人在文件中的存储位置进行排序 (9) 8、系统运行结束 (9) 七、遇到的问题和解决的方法 (9) 八、设计心得 (10) 九、参考文献 (11) 十、附件 (12) 1、头文件 (12) 2、主函数 (12) 3、函数实现文件 (13)

需求分析 在这个信息化的时代,手机已成为继固话之后最为通俗的交流工具。在这个人与人关系愈加密切的时代,“通讯”成了生活中的必需品。这就有这么一个系统记录下人与人之间的多样联系方式——手机通讯系统。通过系统记录下对方的联系方式,既减轻了大脑的负担,又不在受各种条件的约束,做到便捷随身管理相关的联系信息,摆脱了传统电话簿,名片的累赘。从长远利益来看,可是意义重大的环保之举。 根据市场需求,手机通讯录管理系统所记录的信息一般分为个人、商业、办公三类。清晰了机主的联系方向。针对性的分门别类,使系统具有了方便了机主的存储和快速查阅优势功能,大大减少了在电话簿,名片上机械翻阅查找过程的时间。于此同时又根据手机随身携带的特殊性,在一定程度上比一般的制作文件又其次,因为手机是随身携带的通讯工具,这与记事本相比将在一定程度上保障联系人信息的安全性,相对避免了个人隐私信息外泄从而带来的损失。 综上所述,手机通讯录管理系统是一个高效、实时、绿色环保的管理系统。 友元重载常函数构造函数析构判断数据链表 手机通讯录管理系统 一、主要功能 模拟手机通信录管理系统,要求: (1)查看功能:选择此功能时,列出下列三类选择: A 办公类 B 个人类 C 商务类,当选中某类时,依次显示出此类所有数据中的姓名和电话号码 (2)增加功能:能录入新数据(包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件)。 ?当录入了重复的姓名和电话号码时,提示数据录入重复并取消录入; ?通信录容量限定在15条以内。 ?当存储信息超出存储空间,提示存储空间已满,不能再录入新数据; ?录入的新数据能按递增的顺序自动进行条目编号。 (3)拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字,并伴随相应的拔号声音。 (4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动

安卓课程设计_手机通讯录系统全解

目录 1前言 (1) 2系统的需求分析 (2) 2.1需求分析 (2) 2.1.1基本功能需求 (2) 2.1.2系统用例分析 (2) 2.2总体设计方案 (5) 2.2.1系统模块关系与划分 (5) 3系统的概要设计 (6) 3.1通讯录需求分析 (6) 3.1.1新建、编辑联系人 (6) 3.1.2查找联系人 (6) 3.1.3通讯功能 (6) 3.1.4个人中心 (7) 3.1.5还原与备份功能 (7) 3.2系统界面设计 (8) 4系统编码实现 (14) 前言

随着移动通信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,Windows Mobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。经过多年的发展,第三代数字通信(3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此与2007年11月推出了一个专为移动设备设计的软件平台——Android。 Android 是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android 是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。 Android(Google公司)是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。 (1)优点:具备触摸屏、高级图形显示和上网功能,界面强大,可以说是一种 融入全部Web应用的单一平台 (2)缺点:由于时时刻刻都需要和网络进行连接,因此在手机的能耗方面控制就较差, 导致待机能力不足;又由于其开源性,过分依赖开发商,缺少标准配置。 1.1需求分析 1.1.1基本功能需求

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()和一系列的功能函数,只有通过这些函数才可实现程序

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

通讯录管理系统课程设 计报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

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

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) { int i=0; 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) { char s[20]; int i=0,j; printf("\t请输入想删除记录中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i

C课程设计—手机通讯录

目录 1课程设计的目的、要求及任务容 (1) 1.1课程设计的目的及要求 (1) 1.1.1设计目的 (1) 1.1.2设计要求 (1) 1.2 课程设计任务容 (2) 2详细设计说明 (3) 2.1功能使用说明 (3) 2.1.1查看功能 (3) 2.1.2增加功能 (3) 2.2函数流程图 (4) 2.2.1函数流程 (4) 2.2.2增加功能: (5) 2.3 编码及测试 (6) 2.3.1查找功能 (6) 2.3.2增加功能 (8) 2.4 程序测试所遇到的问题 (14) 3心得体会 (15) 附录 (16) 程序清单 (16)

1课程设计的目的、要求及任务容 1.1课程设计的目的及要求 1.1.1设计目的 C++课程设计是教学实践环节中一项重要容,进行此课程设计旨在: 提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质; 培养学生独自分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新月异的发展形势; 本次课程设计是以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,作出设计报告。 1.1.2设计要求 手机通信录系统信息包括:查看功能、增加功能、修改功能、删除功能。 (1)、查看功能:选择此功能时,列出下列四个选项: 1.办公类 2.个人类 3.商务类 4.全部。当选中某类时,显示出此类数据中的所有和。 (2)、增加功能:能录入新数据,每个结点包括编号、、、个人信息、类型以及信息类型。当录入重复的时,系统会提醒“该已经存在,不能重复插入!”;当添加超过15条时,系统会提醒“本通讯录最多存储15条信息,已满!不能再插入,抱歉!”;新数据:当录入新数据时,系统能按照递增顺序对条目进行编号。

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需求分析 信息记录要存放到文件中去,因而要实现文件的输入输出操作;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按人名或姓氏进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择。

手机通讯录安卓课程设计

湖南科技大学计算机科学与工程学院 智能终端系统及应用开发课程设计报告 题目:手机通讯录 学号:******** 班级:******** 姓名:******** 指导老师:********

绪论 随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。在Google和Android手机联盟的共同推动下,Android在众多手机操作系统中脱颖而出,受到广大消费者的欢迎。 手机通讯录作为手机的基本功能之一,每天我们都在频繁地使用着。根据手机功能使用调查显示,有9成以上的消费者使用手机通讯录功能。随着手机通讯录功能的不断加强与完善,手机通讯录对于人们的意义,已不仅仅像记事簿一样显示通讯地址,而是向着个性化、人性化的方向发展[4]。通讯录从无到有,从英文到中文,经过了十几年的发展历程,今后的发展趋势就是从通讯录发展为名片夹,也就是在一个人名下,可以存储座机、手机、单位、地址、电子邮件等内容。这种名片夹在电话薄的基础上,大大丰富了内容,同时结构也发生了革命性变化,而且随着手机的发展,相信更优秀的通讯录会越来越受到社会各层人士的喜爱。

一、课程设计目的 智能终端系统及应用开发课程设计是计算机相关专业的一个综合性实践教学环节,是学 习完《智能终端系统及应用开发》课程后进行的一次全面的综合练习。其目的在于促进学生 复习和巩固 Android 应用技术,加深对软件设计方法、软件设计技术和设计思想的理解,并 能运用所学 Android 设计知识,通过本课程设计让学生进行简单 Android 应用软件的开发,掌握软件设计的方法和面向对象程序设计的基本技术,提高学生在软件开发方面的综合应用能力。 二、课程设计内容 通过对Android 技术的相关研究,了解Android 源码实现原理以及过程,从而设计出一款能够使用的手机通讯录。 这款手机通讯录实现的相关内容如下: 1.简洁、实用的操作界面。 2.显示所有联系人的列表。 3.增加联系人。 4.删除联系人。 5.修改联系人。 6.呼叫联系人。 7.发送短信、邮件至联系人。 三、系统设计 功能结构图 Android 手机通讯管理软件 联系人添加 联系人编辑 联系人查看 联系人查找 联系人删除 呼叫联系人 发送短信 联系人列表

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语言课程设计 班级: 学号: 姓名:薛其乐 指导老师:

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

添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。 显示:可以以表格形式输出所有通讯录里的记录 删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容 查询:可以选择用姓名、电话、地址三种方式查询 修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改 保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件 三.详细设计 (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()) { case 1: printf("\n\t添加记录到通讯录\n"); /*添加记录*/ n=Input(pe,n); break; case 2: printf("\n\t\t\t 通讯录记录表\n"); /*显示记录*/ Display(pe,n); break; case 3: printf("\n\t从通讯录中删除记录\n");

数据结构课程设计-通讯录管理系统

《数据结构》 课程设计报告书 题目:通讯录管理系统 系别:计算机科学与应用系学号: 学生姓名: 指导教师: 完成日期:2012年5月28日

1 问题描述 (1)题目内容:通讯录管理。 (2)基本要求:利用单链表实现通讯录的建立、通讯者的插入、通讯者的删除、通讯者的查询以及通讯录的输出。 (3)设计目的:通过本次课程设计,了解通讯录的一些基本功能。掌握利用单链表进行插入,查找,用关键字建立单链表。 2 需求分析 经过本次的课程设计,我认为通讯录主要实现的功能如下: (1)添加信息:一个通讯录应该有其基本的添加功能。在程序设计时,我通过一个具有添加功能的函数,实现了个人信息的添加,如:姓名,性别,电话号码,QQ号码,地址。 (2)删除信息:当你不需要某个联系人的信息时,可以直接将该人的信息删除。 (3)查找:一个通讯录应该具有令一基本功能就是查找,本设计时可以按联系人为关键字查找的,只要你输入要查找人的姓名或手机号码或QQ号码就可出来相应的个人信息。 (4)输出:一个通讯录应该具有输出所有联系人的功能,本设计按照次序可以从头到尾把通讯录中的所有联系人都输出,供自己查看。 (5)退出:当你做完你要做的事情之后,就可以退出该程序。 3 总体设计 3.1 算法的定义 LinkList Creat_LinkList()创建空单链表 void Insert_LinkList(LinkList H)建立通讯录,录入联系人的信息,可以把联系人的姓名,性别,手机号,QQ号,地址录入系统。 void Locate_LinkList(LinkList H)按照联系人的姓名,手机号码,QQ号码查找通讯录中联系人的信息。 void Delete_LinkList(LinkList H)按照联系人的姓名,手机号码,QQ号码删除联系人的所有信息。 void print_LinkList(LinkList H)输出通讯录中的所有联系人的信息供使用者查看。

通讯录管理系统 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++-通讯录课程设计报告

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

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

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

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

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

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

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

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

三、详细设计 1、数据结构设计 #include /*标准输入输出函数库*/ #include /*标准函数库*/ #include /*字符串函数库*/ #define FILENAME "phone.dat" struct date //定义一个结构体类型数组 { char name[10]; /*姓名*/ char phone[12]; /*电话*/ char email[20]; /*邮箱*/ char QQ[20]; /*QQ*/ } per[10]; int menu() //主菜单选择函数 2.函数说明 (1) 主函数 main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。 (2)

四、程序清单 1、头文件 #include /*标准输入输出函数库*/ #include /*标准函数库*/ #include /*字符串函数库*/ #define FILENAME "phone.dat" 2、主函数 void main() //主函数 { int n=0,i; while(1) { switch (menu()) { case 1: { printf("\n\t 通讯信息录入\n"); //信息录入 n=Input(per, n); } break; case 2: printf("\n\t\t\t 通讯录记录表\n"); //显示记录 Display(per,n); break; case 3: printf("\n\t保存功能\n"); WritetoText(per,n); //保存数据 printf("\t"); system("pause"); //操作完成后进行暂停 break; case 4: printf("\n\t从通讯录中删除记录\n"); n=Delete_a_record(per,n); //删除记录 printf("\t"); system("pause"); break; case 5: printf("\n\t修改通讯录中的记录\n"); Change(per,n); //修改数据

手机通讯录课程设计报告

Visual C++课程设计 题目名称:手机通讯录 班级:信安1101 :立翼 学号:1111290105 指导教师:阎光伟 完成时间:2013.1.18

目录 1 题目描述 (2) 2 功能分析 (2) 3 系统设计 (2) 3.1 系统整体结构 (2) 3.1.1 系统中的信息类型划分 (2) 3.1.2 对分组的操作 (3) 3.1.3 对人员的操作 (3) 3.2 主要模块设计 (3) 3.2.1 信息类的设计 (3) 3.2.2 命令的设计 (4) 3.2.3 主要数据结构 (5) 3.2.4 文件存储 (5) 3.3 程序界面设计 (6) 3.3.1 树控件设计 (6) 3.3.2 列表视图控件设计 (6) 3.3.3 模糊查询设计 (7) 3.3.4 分组框设计 (7) 3.4 类与函数的设计与实现 (7) 3.4.1 联系人类的设计与实现 (7) 3.4.2 分组类设计与实现 (8) 3.4.3 命令类设计与实现 (8) 4 运行与测试结果 (10) 4.1 程序主要运行界面 (10) 4.2 系统测试 (13) 4.2.1 界面操作测试 (13) 4.2.2 功能测试 (14) 4.2.3 非正常操作测试 (14) 5 小结 (14)

1 题目描述 设计一个手机通讯录管理软件。 要求: 1)分组管理。能够添加、删除、修改,每个分组设置一个来电音乐。 2)用户管理。包括、手机、办公,电子,QQ ,微博,来电音乐 3)用户查询。初始时按照字母顺序显示所有人员,可以输入或者数字模糊查询 4)功能模拟。当选中一个用户时,有通话和短信选项可以操作,选择后进入相应界面。 2 功能分析 系统主要功能包括: (1)分组管理。可以添加、修改、删除分组。添加分组时可设置来电音乐,也可修改来电音乐。 (2)用户管理。可添加、显示、修改、删除用户信息。用户信息包括、手机、办公、电子、QQ 、微博、来电音乐。 (3)用户查询。初始时按照字母顺序显示所有人员,可输入或数字进行模糊查询。可按分组显示人员。 (4)功能模拟。当选中用户时,有通话和短信选项可以操作,选择后进入相应界面。 3 系统设计 3.1 系统整体结构 3.1.1 系统中的信息类型划分 在本系统中,主要分为两类信息:分组信息和人员信息(如图1所所示)。其中分组信息包括分组名称及分组来电音乐。人员信息包括人员、手机、办公、电子、QQ 、微博、分组、来电音乐。 图图 1 系统中的信息类型

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()函数------删除链表节点

java通讯录课程设计报告

JIANGXI AGRICULTURAL UNIVERSITY JA V A课程设计报告 题目:通讯录系统 二0一二年十二月 摘要 随着Internet速度的提高和使用的普及,网络上各式各样的应用层出不穷,通讯录系统就是其中的一种。在现实生活中,我们管理通讯录有多种方式,为了进一步提高管理通讯录的效率以及及时更新通讯录,特开发通讯录系统来方便用户使用和管理通讯录。 本系统采用Ecilpse编写程序,具有良好的程序结构和人机交互界面,通用性强。本文将从开发技术、需求分析、系统设计、编码实现和设计总结这几个方面,详细介绍

通讯录系统的设计和实现过程。 关键词:通讯录系统;JA V A;Eclipse;需求分析。

目录 1 绪论 (2) 1.1 概述 (2) 2 开发技术与工具选择 (2) 2.1 Eclipse介绍 (2) 2.1.1 Eclipse的基本概念 (2) 2.1.2 Eclipse 插件开发环境 (2) 2.1.3 Eclipse的主要组成 (2) 3 需求分析 (3) 3.1 概要说明 (3) 3.2 产品描述 (3) 3.3 系统功能列表 (3) 3.4 系统功能说明 (3) 3.4.1 <添加模块> (3) 3.4.2 <查询模块> (3) 3.4.3 <修改模块> (4) 3.4.4 <删除模块> (4) 3.5系统质量需求 (4) 4 系统设计 (4) 4.1说明 (4) 4.2总体设计结构图 (4) 4.3 总用例图 (5) 4.4 流程图 (5) 5 编码与实现 (8) 5.1包结构图 (8) 5.2主界面 (9) 5.3组操作的页面 (9) 5.4 好友操作界面 (10) 6 项目设计总结 (11) 6.1系统概述 (11) 6.2关键问题的分析和解决 (11) 6.3 系统展望 (11) 6.4 自身收获 (11) 致谢 (12) 参考文献 (13)

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");

相关文档