您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 2学生通讯录管理系统
“学生通讯录管理系统”的设计与实现1、设计要求1.1问题描述纸质的通讯录已经不能满足大家的要求,容易丢失、查找困难等问题是纸质通讯录所不能克服的缺点。“学生通讯录管理系统”是为了帮助老师、同学,或者其他一些需要使用通讯录的人员进行管理和分析的一种应用程序。1.2需求分析(1)输入数据建立通讯录。(2)查询通讯录中满足要求的信息。(3)插入新的通讯录信息。(4)删除不需要的通讯录信息。(5)查看所有的通讯录信息。2、概要设计为了实现需求分析中的功能,可以从三个方面着手设计。2.1主界面设计为了实现学生通讯录系统各功能的管理,设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。本系统主控菜单运行界面如下图所示:*************************欢迎使用通讯录系统******************************1通讯录的建立**2插入通讯记录**3查询通讯记录**4删除通讯记录**5显示通讯录信息**0退出管理系统***************************欢迎使用通讯录系统****************************请选择0-5:2.2存储结构设计本系统主要采用链表结构类型来表示存储在“学生通讯录管理系统”中的信息。其中,链表结点由四个分量构成:通讯录成员学号、通讯录成员姓名、通讯录成员电话号码、指向该结构体的指针。此外,系统还设置了一个全局变量seat,表示通讯录中成员的序号。2.3系统功能设计本系统设置了五个子功能菜单,五个子功能的设计描述如下。(1)建立通讯录系统。可以一次输入多个成员通讯录的信息,建立通讯录。该功能由creatIncreLink()函数实现。(2)插入通讯记录。每次可以插入一个成员通讯录的信息。如果要连续插入多个成员通讯录信息必须多次选择该功能。该功能由insertYouXu()函数实现。(3)查询通讯记录。可以按照两种方式查询所需要的通讯录成员记录,一是按学号查询,二是按姓名查询。分别由searchNum()函数和searchName()函数实现。(4)删除通讯记录。可以对通讯录中不再需要的信息进行删除。有三种删除方式:按序号进行删除,按学号进行删除和按姓名进行删除。分别由deleteElem()函数、delNum()函数和delName()函数实现。(5)显示通讯录信息。可以查看通讯录中所有的通讯录成员信息。该功能由printList()函数实现。3、模块设计3.1模块设计本程序包含两个模块:主程序模块和链表操作模块。其调用关系如下图:主程序模块------------链表操作模块3.2系统子程序及功能设计本系统共设置十个子程序,各程序的函数名及功能说明如下,其中大部分函数都是链表的基本操作函数。(1)LinkListcreatIncreLink()//链表的创建(2)deleteElem(LinkListL,inti)//从通讯录中按序号删除第i个元素(3)delName(LinkListL,charn[])//按姓名删除通讯者记录(4)delNum(LinkListL,intn)//按学号删除通讯者记录(5)voidinsertYouXu(LinkListL,LinkListElem)//插入一条通讯录(6)printList(LinkListL)//打印指针地址为L的通讯录(7)prior(LinkListL,LinkListp)//查找位于当前地址元素的前一个元素的地址(8)searchaName(LinkListL,charn[])//按姓名查找通讯录记录(9)intsearchNum(LinkListL,intn)//按学号查找通讯录记录(10)voidmain()//主函数。设定界面的颜色和大小,调用链表操作模块3.3函数主要调用关系图本系统十个子程序之间的主要调用关系如下图所示。图中数字是各函数的编号。4、详细设计4.1数据类型定义本系统采用链式结构存储通讯录结点。结点定义如下:typedefstructLNode{intnumber;doubletelemum;charname[20];structLNode*next;}LNode*LinkList;4.2系统主要子程序详细设计(1)建立链表的函数,主要用来建立通讯录。LinkListcreatIncreLink(){//创建一个存放通讯录成员的非递减有序表,返回头结点地址。LinkListL=(LinkList)malloc(LEN);//头结点L-next=NULL;LinkListp;10main()1523456789intnum=1,number;doubletelenum;charname[20];printf(“请输入学生学号、姓名和电话号码,建立通信录,以’-1’为输入结束标志\n”);printf(“请输入学号&d:”,num);scanf(“%d”,&number);printf(“请输入姓名%d:”,num);chartemp=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);insertYouXu(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)显示链表中所有结点的信息,用于查看通讯录所有的记录。voidprintList(LinkListL){//打印头结点地址为L的通讯录printf(“\n------------------------\n”);pirntf(“学号姓名电话号码\n”);printf(“------------------------\n”);LinkListp=L;intn=1;if(L==NULL||L-next==NULL)printf(“该通讯录中没有元素\n”);//判断通讯录是否为空elsewhile(p-next!=NULL){printf(“%2d%-9d”,n,p-next-number);printf(“%-5s%.0f\n”,p-next-name,p-next-telenum);p=p-next;n++;}printf(“--------------------------\n”);return;}5、测试分析系统运行主界面如前面所示。各子功能测试运行结果如下。5.1通讯录的建立在主菜单下,用户输入1并回车,然后按照提示建立通讯录,分别输入通讯录成员的学号,姓名,电话号码,运行结果如下图:*************************欢迎使用通讯录系统******************************1通讯录的建立**2插入通讯记录**3查询通讯记录**4删除通讯记录**5显示通讯录信息**0退出管理系统***************************欢迎使用通讯录系统****************************请选择0-5:1请输入学生学号,姓名和电话号码,建立通讯录,以’-1’为输入结束标志请输入学号1:100请输入姓名1:张燕请输入电话号码1:88087655请输入学号2:101请输入姓名2:李敏请输入电话号码2:135897634525.2插入通讯记录在主菜单下,用户输入2并回车,可以插入一个新的通讯录成员,依次输入学号,姓名和电话号码,运行结果如下图:选择功能:2请输入通讯者的学号和姓名:请输入学号:103请输入姓名:李娜请输入电话号码:13676548003插入后:--------------------------------------------------------------------学号姓名电话号码-------------------------------------------------------------------1100张燕880876552101李敏135897634523102李娜13676548003--------------------------------------------------------------------5.3查询通讯记录在主菜单下,用户输入3并回车,可以按照两种方式查询通讯录。一种是按学号查询,另一种方式是按姓名查询。可按照提示操作,运行结果如下图:选择功能:3选择查找方式:1.按学号2.按姓名1请输入学号:100要查找的第1位通讯着:学号:100姓名:张燕电话号码:88087655选择功能:3选择查找方式:1.按学号2.按姓名2请输入姓名:李敏要查找的第2位通讯着:Number:102Name:李敏TeleNo:135897634525.4删除通讯记录在主菜单下,用户输入4并回车,进行通讯录记录的删除。可以按照三种方式进行删除操作:按序号、按学号和姓名。下图是按序号删除的运行结果。选择功能:4选择删除方式:1.按序号2.按学号3.按姓名1请输入通讯录序号:1删除后:--------------------------------------------------------------------学号姓名电话号码-------------------------------------------------------------------1101李敏135897634522102李娜136765480035.5显示通讯录信息在主菜单下,用户输入5并回车,可以查看通讯录中所有的成员信息。运行结果如下图。选择功能:5当前通讯录内容如下:--------------------------------------------------------------------学号姓名电话号码-------------------------------------------------------------------1100张燕880876552101李敏135897634523102李娜13676548003--------------------------------------------------------------------6、源程序清单#includestdio.h#includestdlib.h#includestring.h#defineNULL0#defineLENsizeof(LNode)intseat;typedefstructLNode{//用于通讯录结点intnumber;doubletelenum;charname[20];structLNode*next;}LNode,*LinkList;//1.创建链表LinkListcreatIncreLlink(){//创建一个存放通讯录成员的非递减有序表,返回头结点地址。LinkListL=(LinkList)malloc(LEN);//头结点L-next=NULL;LinkListp;intnum=1,number;doubletelenum;charname[20];printf(“请输入学生学号、姓名和电话号码,建立通信录,以’-1’为输入结束标志\n”);printf(“请输入学号&d:”,num);scanf(“%d”,&number);printf(“请输入姓名%d:”,num);chartemp=getchar();gets(name);
本文标题:2学生通讯录管理系统
链接地址:https://www.777doc.com/doc-3559080 .html