2学生通讯录管理系统.doc

上传人:marr****208 文档编号:141792509 上传时间:2020-08-12 格式:DOC 页数:27 大小:62.98KB
返回 下载 相关 举报
2学生通讯录管理系统.doc_第1页
第1页 / 共27页
2学生通讯录管理系统.doc_第2页
第2页 / 共27页
2学生通讯录管理系统.doc_第3页
第3页 / 共27页
2学生通讯录管理系统.doc_第4页
第4页 / 共27页
2学生通讯录管理系统.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《2学生通讯录管理系统.doc》由会员分享,可在线阅读,更多相关《2学生通讯录管理系统.doc(27页珍藏版)》请在金锄头文库上搜索。

1、“学生通讯录管理系统”的设计与实现1、 设计要求1.1问题描述为什么要设计该系同?设计该系统的现实意义?纸质的通讯录已经不能满足大家的要求,容易丢失、查找困难等问题是纸质通讯录所不能克服的缺点。“学生通讯录管理系统”是为了帮助老师、同学,或者其他一些需要使用通讯录的人员进行管理和分析的一种应用程序。1.2需求分析陈述说明程序设计的任务,重点强调的是程序要做什么?一般可以包括以下几个内容:1、所设计的系统需要具备的功能2、 输入数据的形式和输入值的范围3、 输出的形式4、 测试数据:包括正确的输入及其输出结果,和含有错误的输入及其输入结果。(1) 输入数据建立通讯录。(2) 查询通讯录中满足要求

2、的信息。(3) 插入新的通讯录信息。(4) 删除不需要的通讯录信息。(5) 查看所有的通讯录信息。2、 概要设计包括界面的设计、所有抽象数据类型的定义、各功能模块的设计为了实现需求分析中的功能,可以从三个方面着手设计。2.1 主界面设计为了实现学生通讯录系统各功能的管理,设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。本系统主控菜单运行界面如下图所示:*欢迎使用通讯录系统* 1 通讯录的建立 * 2 插入通讯记录 * 3 查询通讯记录 * 4 删除通讯记录 * 5 显示通讯录信息 * 0 退出管理系统 *欢迎使用通讯录系统*请选择0-5:2.2 存储结构设计本

3、系统主要采用链表结构类型来表示存储在“学生通讯录管理系统”中的信息。其中,链表结点由四个分量构成:通讯录成员学号、通讯录成员姓名、通讯录成员电话号码、指向该结构体的指针。此外,系统还设置了一个全局变量seat,表示通讯录中成员的序号。2.3 系统功能设计本系统设置了五个子功能菜单,五个子功能的设计描述如下。(1) 建立通讯录系统。可以一次输入多个成员通讯录的信息,建立通讯录。该功能由creatIncreLink( )函数实现。(2) 插入通讯记录。每次可以插入一个成员通讯录的信息。如果要连续插入多个成员通讯录信息必须多次选择该功能。该功能由insertYouXu( )函数实现。(3) 查询通讯

4、记录。可以按照两种方式查询所需要的通讯录成员记录,一是按学号查询,二是按姓名查询。分别由searchNum()函数和searchName()函数实现。(4) 删除通讯记录。可以对通讯录中不再需要的信息进行删除。有三种删除方式:按序号进行删除,按学号进行删除和按姓名进行删除。分别由deleteElem()函数、delNum()函数和delName()函数实现。(5) 显示通讯录信息。可以查看通讯录中所有的通讯录成员信息。该功能由printList()函数实现。3、模块设计3.1 模块设计 本程序包含两个模块:主程序模块和链表操作模块。其调用关系如下图:主程序模块 - 链表操作模块3.2 系统子程

5、序及功能设计本系统共设置十个子程序,各程序的函数名及功能说明如下,其中大部分函数都是链表的基本操作函数。(1) LinkList creatIncreLink( ) /链表的创建(2) deleteElem (LinkList L, int i) /从通讯录中按序号删除第i个元素(3) delName(LinkList L, char n) /按姓名删除通讯者记录(4) delNum(LinkList L, int n) /按学号删除通讯者记录(5) void insertYouXu(LinkList L, LinkList Elem)/插入一条通讯录(6) printList(LinkLis

6、t L) /打印指针地址为L的通讯录(7) prior(LinkList L, LinkList p)/查找位于当前地址元素的前一个元素的地址(8) searchaName(LinkList L, char n )/按姓名查找通讯录记录(9) int searchNum(LinkList L, int n)/按学号查找通讯录记录(10) void main() /主函数。设定界面的颜色和大小,调用链表操作模块3.3 函数主要调用关系图本系统十个子程序之间的主要调用关系如下图所示。图中数字是各函数的编号。10 main()12345689754、详细设计4.1 数据类型定义本系统采用链式结构存储

7、通讯录结点。结点定义如下:typedef struct LNode int number; double telemum; char name20; struct LNode *next; LNode *LinkList;4.2 系统主要子程序详细设计(1) 建立链表的函数,主要用来建立通讯录。 LinkList creatIncreLink( ) /创建一个存放通讯录成员的非递减有序表,返回头结点地址。 LinkList L=(LinkList)malloc(LEN); /头结点 L-next=NULL; LinkList p; int num=1, number;double telenu

8、m;char name20;printf(“请输入学生学号、姓名和电话号码,建立通信录,以-1为输入结束标志n”);printf(“请输入学号&d:”,num);scanf(“%d”,&number);printf(“请输入姓名%d:”,num);char temp=getchar();gets(name);printf(“请输入电话号码%d:”,num);scanf(“%1f”,&telenum);while(number=0)p=(LinkList)malloc(LEN);/新结点p-number=number;p-telenum=telenum;strcpy(p-name,name);i

9、nsertYouXu(L,p);/有序地插入新结点num+;printf(“请输入学号%d:”, num);scanf(“%d”,&number);printf(“请输入姓名%d:”,num);temp=getchar();gets(name);printf(“请输入电话号码%d:”,num);scanf(“%1f”,&telenum);return(L);(2) 显示链表中所有结点的信息,用于查看通讯录所有的记录。void printList(LinkList L)/打印头结点地址为L的通讯录 printf(“n -n”);pirntf(“ 学号 姓名 电话号码n”);printf(“ -n

10、”);LinkList p=L;int n=1;if (L=NULL | L-next=NULL) printf(“该通讯录中没有元素n”); /判断通讯录是否为空else while (p-next !=NULL) printf(“ %2d %-9d”,n,p-next-number); printf(“ %-5s %.0fn”,p-next-name,p-next-telenum); p=p-next; n+;printf(“ -n”);return;5、测试分析系统运行主界面如前面所示。各子功能测试运行结果如下。5.1 通讯录的建立在主菜单下,用户输入1并回车,然后按照提示建立通讯录,分

11、别输入通讯录成员的学号,姓名,电话号码,运行结果如下图:*欢迎使用通讯录系统* 1 通讯录的建立 * 2 插入通讯记录 * 3 查询通讯记录 * 4 删除通讯记录 * 5 显示通讯录信息 * 0 退出管理系统 *欢迎使用通讯录系统*请选择0-5:1请输入学生学号,姓名和电话号码,建立通讯录,以-1为输入结束标志请输入学号1:100请输入姓名1:张燕请输入电话号码1:88087655请输入学号2:101请输入姓名2:李敏请输入电话号码2:13589763452要求学生做截图5.2 插入通讯记录在主菜单下,用户输入2并回车,可以插入一个新的通讯录成员,依次输入学号,姓名和电话号码,运行结果如下图:选择功能:2请输入通讯者的学号和姓名:请输入学号:103请输入姓名:李娜请输入电话号码:13676548003插入后:-学号 姓名 电话号码-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号