1、1 第一章第一章 设计要求设计要求 1.1 问题描述问题描述 纸质通讯录已经不能满足大家的要求,容易丢失、查找困难等问题是纸质 通讯录所有能克服的缺点。 “学生通讯录管理系统”是为了帮助老师、同学等管 理和分析的一种应用程序。 1.2 需求分析需求分析 1输入数据建立通讯录 2查询通讯录中满足要求的信息 3插入新的通讯录信息 4修改通讯录信息 5删除不需要的通讯录信息 6查看所有通讯录信息 2 第二章第二章 概要设计概要设计 2.1 主界面设计主界面设计 char book:inter_face() system(“cls“); coutchoose; fflush(stdin); retur
2、n choose; 2.2 存储结构设计存储结构设计 struct record book object; record *prior; record *next; ; book:book() name=“0“; telephone=“0“; number=“0“; 3 qq=“0“; 2.3 系统功能设计系统功能设计 界面显示的是“一个通讯录系统” ,总的操作流程有七个方面: 1添加新联系人 2删除联系人 3显示所有联系人 4修改信息 5查询联系人 6关闭通讯录 7最后是提示用户选择要使用的功能 第三章第三章 模块设计模块设计 3.1 系统子程序及功能设计系统子程序及功能设计 3.11 主界
3、面 inter_face() system(“cls“); coutsign; /输入变量 sign fflush(stdin); /清空缓冲区 record *H=new record; /新建结构体指针变量 H,并为其分配空间 record *p=H; /使 p 指针指向指针 H record *q=H; /使 q 指针指向指针 H bool flag=true; /定义布尔型变量 flag while(inDatap-object.namep-object.numberp-object.qq p-object.telephone) /读取文件中一个人的信息 p-next=new reco
4、rd; /建立双向链表 p=p-next; p-prior=q; q-next=p; q=p; p-next=NULL; /使 p 的 next 成员指向 NULL inData.close();/关闭 pbook.txt 文件 p=H; /使指针变量 P 指向结构指针 H 的头节点 while(p) /当 p 不为空时 if(p-object.name=sign)|(p-object.number=sign) /判断输入是否为空 if(flag) coutp-object.name; fflush(stdin); coutobject.number; fflush(stdin); couto
5、bject.qq; fflush(stdin); coutobject.telephone; fflush(stdin); break; /根据提示进行修改 p=p-next; /使结构体指针 p 指向该指针的末尾 if(flag) coutchoose; fflush(stdin); return choose; 14 void book:add_person() coutname; fflush(stdin); coutqq; fflush(stdin); coutsign; bool flag=true; string str; while(inDatanamenumber) getline(inData, str); if(sign=name)|(sign=number) coutsign; fflush(stdin); record *H=new record; record *p=H; record *q=H; bool flag=true; while(inDatap-object.namep-object.numberp-object.qq p-object.telephone) p-next=new record; p=p-next; p-prior=q; q-next=p; q=p; p-next=NULL; inData.close(); p=H;