您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页通讯录管理系统—单链表

通讯录管理系统—单链表

来源:意榕旅游网


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

表(总36页)

--本页仅作为文档封面,使用时请直接删除即可-- --内页可以根据需求调整合适字体及大小--

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

程序与设计训练

通讯录管理系统实验报告

专业班级:电子121

设计人员:元达鹏 学号:65

22

2013年6月24日

通讯录管理系统

一. 需求分析

设计题目及需求:

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

(2)增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件。例如:杨春 商务类

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

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

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

系统功能需求分析: 主要包含以下几种功能:

33

1.建立通讯录(建立功能) 2.删除通讯人(删除功能) 3.保存通讯录(保存功能) 4.读取通讯录文件(读取功能) 5.查找通讯人(查找功能) 6.添加通讯人(添加功能) 7.修改通讯人信息(修改功能) 8.退出通讯录系统

二. 概要设计

系统功能模块图: 建立

主菜单 删除 保存 读取 查找 添加 修改 退出 建立功能: 在主菜单中输入1,进入建立功能。用户自己输入通讯录文件名,建

立一个新的通讯录,便开始输入信息,一旦想结束

名处输入“*”结束录入。(当录入相同的姓名

诉你已经重复录入) 44

添加,在输入姓

和电话时,系统会告

删除功能: 在主菜单中输入2,进入删除功能。用户输入待删除人的姓名,系

统会自动显 示待删除人的信息,并且提示是否删除该通讯人。

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

(当输 在)

保存功能: 在主菜单中输入3,进入保存功能。将你已经写好的通讯录保存在建 功)

读取功能: 在主菜单中输入4,进入读取功能。读取一个任意一个已经存在的文 告

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

添加功能: 在主菜单中输入6,进入添加功能。在还没有读取或者建立一个新 立 提

的通讯录的时候,添加功能是无效的,系统会告诉你请你先新建一个通讯录或者先读取通讯录文件。进入添加功能以后,可以按示添加通讯人信息。

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

件,用户可以输入想要读取的文件,一旦文件读取成功,系统会诉你文件读取成功。

立时创建的文件里面。(当保存成功后,系统会告诉你保存成

55

修改功能: 在主菜单中输入7,进入修改功能。在还没有读取或者建立一个新

的通讯录的 时候,修改功能也是无效的,系统会告诉你请你先立一个通讯录或者先读

取通讯录文件。修改功能是和删除功

新建 能一

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

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

三. 详细设计

(1)通讯录

#define ID struct tel 建立通讯录\\n\"); printf(\"\ printf(\"\ printf(\"\ printf(\"\ printf(\"\ printf(\"\ printf(\"\

2. 删除通讯人\\n\"); 3. 保存通讯录\\n\"); 4. 读取通讯录文件 \\n\"); 5. 查找通讯人\\n\"); 6. 添加通讯人\\n\"); 7. 修改通讯人信息\\n\"); 8. 退出通讯录系统\\n\");

66

printf(\"\\\\\Made by 元达鹏\\n\");

printf(\"\ # # # # # # # # # # # # # # # # # # # # # #\\n\"); printf(\"\\n\\n\"); scanf(\"%d\.\\n\"); 是否重新创建 输入待添加人输入类别 修改该人的信息保存文件输入名字 文件成功保存读取文件内容 输入待修改人的名保存 输出该所有相 输出该所有相输入文件名 输出所有人的所结束 文件是否存在开始 输入待删除开始 判断是不是已经开始 是否已创建 姓名是否为*是否删号 是否继续查输入通讯人信开始 free(p1); 姓名是否存在 开始名\\n\"); 将单链表的结点结束 输入文件名结束 结束 的所有信息结束 是否保存 是否保存判断类型是结点是否为空 结束 判断名字同类型的所有字 通讯录中是否存有信息 输入要用什么方有相同的名字和 printf(\"2.类别\\n\"); 在该名字的人 式查找:1,、姓 printf(\"3.所有人\\n\"); 开始结束 开始 scanf(\"%d\ \ count++; printf(\"姓名: %s\电话号码: %s\类型:%s\邮箱:%s\\n\ flag=1; count++; printf(\"姓名: %s\电话号码: %s\类型:%s\ \ 邮箱:%s\\n\ flag=1; \ count++; printf(\"姓名: %s\电话号码: %s\类型:%s\邮箱:%s\\n\

p=p->next;

.\\n\"); getch(); 建立通讯录\\n\");

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

77

printf(\"\ printf(\"\ printf(\"\ printf(\"\ printf(\"\ printf(\"\

3. 保存通讯录\\n\"); 4. 读取通讯录文件 \\n\"); 5. 查找通讯人\\n\"); 6. 添加通讯人\\n\"); 7. 修改通讯人信息\\n\"); 8. 退出通讯录系统\\n\");

printf(\"\\\\\Made by 元达鹏\\n\");

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

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

scanf(\"%d\//输入功能 getchar(); switch(choice) {

case 1:

head=Create(); j=1;

//创建 //让功能7

//吸收回车键

可以进得去

break;

case 2:

head=Delete(head); //删除 break;

case 3:

88

Save(head); //保存函数 break;

case 4: 数

j=2;

//让功能7

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

可以进得去

break;

case 5:

Search(head); //查找 break;

case 6:

if((j==1)||(j==2))

//当你进

入过创建或者读取之后才可以进入添加

{

head=Add(head);

//添加

} else {

printf(\"在你添加通讯人

的时候请先创建通讯录或者读取通讯录文件\\n\\n\");

99

printf(\"请按任意键返回

主菜单\\n\");

getch();

//按下任

意键就进入下一条语句的函数

} break;

case 7:

if((j==1)||(j==2)) //当你进入过创

建或者读取之后才可以进入添加

{

head=Change(head);

//修改

} else {

printf(\"在你删除通讯人

的时候请先创建通讯录或者读取通讯录文件\\n\\n\");

printf(\"请按任意键返回

主菜单\\n\");

getch();

//按下任

意键就进入下一条语句的函数

}

1010

case 8:

退出

default:

新输入\\n\"); } }

}

四. 界面测试

开始界面:

break;

exit(0);

break;

printf(\"你输入错了吧,请你重

//

1111

建立通讯录界面:

删除界面:

1212

保存界面:

读取界面:

1313

查找界面(1):

查找界面(2):

1414

查找界面(3):

添加界面:

1515

修改界面:

个人的体会和感想

1616

这个程序设计训练给我体会十分深刻,因为我在其中下了很大功夫,并且获得了成效。这个程序设计训练花了我一个星期的时间,几乎是从早弄到晚,但是正好有这一次的机会让我复习和巩固了数据结构,并且对整一个流程的设计有了一个全新的了解,这是很有意义的一件事。

我写程序的其中,不乏有问题的出现,但是有问题你才知道你的不足在哪里,才可以去不停地完善。

所以这一次的程序设计训练总体而言是十分有意思的一件事情,既动脑又动手,自我感觉良好吧。

1717

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务