通讯录管理系统(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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务