通讯录的管理实验报告.docx
数据结构课夕卜实践报告项目名称:通讯录的管理所在班级:计算机科学与技术小组成员:*任课教师:*起止时间:2012.11.192012.12.16项目名称通讯录的管理项目简介随着当今社会的发展,人们的人际交往不断增多,在不同的时间,不同的地点处理不同的事情,有时却很难搞清每个人的联系方式,特别是那些不经常联系的人,遇到紧要的事时,却联系不上本人,所以通讯录的管理系统能够便捷的给我们带来需要的相关信息。随着计算机的普及,人们摆脱了传统的电话薄,越来越多的靠计算机来帮助人们记住这些事情,使我们的生活变得简单。那么,这就需要有一个通讯录管理系统来查阅自己所需要的信息,而不必大费周折的去翻开那些繁琐的电话薄。通讯录管理系统是一个专门针对同学们联系方式以及一些简单个人信息的使用管理系统,它方便了众多同学间信息的存储和快速查阅功能,大大减少了查找过程的时间,使我们的交流更加简单。该通讯录管理是基于数据结构、C+和C语言中所学知识进行实现的。用链表的结构来存储数据,就是对链表进行添加、插入、查找、修改、删除、显示、读取、保存信息等操作。小组成员*任务分工*:程序代码框架,实验报告,PPt修改,信息的收集*:程序中系统功能的添加,PPt修改,程序的完善*:部分功能的实现,PPt的制作,信息的整理项目基本信息课外实践评定成绩记录指导教师意见系统完成情况:优良中差报告完成情况:优良中差团队整体成绩:成答辩评定成绩员成绩综合成绩一、问题描述及分析随着通讯业发展,学生生活中需要一种电子电话号码本,也为预防手机故障、遗失造成联系电话丢失,设计该通讯录查询系统,需要实现添加、插入、查找、修改、删除、显示、读取保存信息等功能。用链表的结构来存储数据,共有9个模块,imenu函数是主菜单,用InsertCon函数实现插入联系人的基本信息的功能,用AddDataType函数实现初始化联系人的基本信息的功能,用FindCon函数实现查找联系人的基本信息的功能,用ChangeMessage函数实现修改联系人的基本信息的功能,用De1eteMessage函数实现删除联系人的基本信息的功能,用showmessage函数实现显示联系人的基本信息的功能,用SaveFi1e1ink1ist函数实现保存联系人的基本信息的功能,用readFi1e1ink1ist函数实现读取联系人的基本信息的功能,使用的是头插法定义链表,从尾部插入的方法实现链表。在主函数则是用一个SWitCh函数控制和一个整数型全局变量,可以来选择链表函数,也实现了函数的循环使用。二、功能模块及数据结构描述1、主菜单menu(创建窗口”通讯录管理系统”;2、初始化联系人的基本信息AddDataType(通过该函数实现初始化联系人基本信息的功能3、插入联系人的基本信息InSertCon(通过该函数实现插入联系人基本信息的功能4、查找联系人的基本信息FindCon(通过该函数实现查找联系人基本信息的功能5、修改联系人的基本信息ChangeMeSSage(通过该函数实现修改某个联系人某些基本信息的功能6、删除联系人的基本信息DeIeteMeSSage(通过该函数实现删除某个联系人全部信息的功能7、保存文件SaveFi1e1ink1is(通过该函数实现保存已输入信息的功能8、读取文件内容readFi1e1ink1ist(通过该函数实现读取文件中信息的功能9、显示信息ShoWmeSSage(通过该函数实现显示己存入的全部联系人的基本信息的功能三、主要算法流程描述及部分核心算法1、算法流程图读取数据退出程序2、部分核心算法(1)初始化联系人的基本信息intAddDataType(1ink1ist*&1)(1ink1ist*p,*q;if(1=NU11)(1=(1ink1ist*)ma11oc(sizeof(1ink1ist);1->next=NU11;)inti,n;system(',C1S");q=1;CoUtVV"请输入你想输入联系人的人数:"<<end1;cin>>n;for(i=1;i<=n;i+)p=(1ink1ist*)ma11oc(sizeof(1ink1ist);cout«"开始添加第"vvivv"个联系人信息:end1;CoUt<v"请输入联系人编号:";cin>>p->ID;find(1,p->ID);CoUt<v”请输入联系人姓名:";cin»p->name;CoUtVV”请输入联系人姓别:";cin»p->sex;CoUtVV”请输入联系人班级:”;cin»p->C1ass;COUt<v"请输入联系人住址:";cin»p->Addr;CoUtVV"输入手机号:";cin»p->Mobi;p->next=1->next;1->next=p;1return0;)(2)插入联系人的基本信息intInsertCon(1ink1ist*&1)(1ink1ist*p;if(1=NU11)(COUt«”还没有添加任何联系人,请先添加联系人!"«end1;return0;p=(1ink1ist*)ma11oc(sizeof(1ink1ist);COUtVV”请依次输入被插入人的信息:编号姓名性别班级住址手机号y<end1;COUtVV”请输入联系人编号:";Cin>>p->ID;find(1,p->ID);CoUtVV”请输入联系人姓名:”;cin»p->name;CoUtVV"请输入联系人姓别:";cin»p->sex;CoUtVV”请输入联系人班级:”;cin»p->C1ass;CoUt<v"请输入联系人住址:”;cin»p->Addr;CoUtVV"输入手机号:cin»p->Mobi;p->next=1->next;1->next=p;saveFi1e!ink1ist(1);system("C1S);cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<«"»«,<<end1«"»信息修改成功!已保存修改!«,<<end1«"»«,<<end1<<,'»»»»»»»»»»»»»»»»»»»»»»»»»»»»»"«end1;return0;)(3)查找联系人的基本信息intFindCon(1inkIist*&1)(system(',C1S);charna20;1ink1ist*p,*q;if(1=NU11)(cout«"没有联系人的信息,请先添加"vvend1;return0;)COUt«”请您输入要查找人的姓名:"«end1;cin»na;P=1;whi1e(p!=NU11)(if(strcmp(p->name,na)=0)(q=p;COUtVV"找到联系人,信息如下!”end1;cout«""<<end1«",<<end1«""<<end1vv"编号:"vvq->ID<<end1«""<<end1vv"姓名:"<vq->name<<end1«""<<end1vv"性别:"<<q->sex<<end1«""<<end1vv"班级:"<<q->C1ass<<end1«""<<end1vv"住址:"<<q->Addr<<end1«""<<end1<<”手机号:,<<q->Mobi<<end1<,<<end1;«,break;1e1sep=p->next;1returnO;)(4)修改联系人的基本信息intchangeMessage(1ink1ist*&1)(1ink1ist*p;charid10;charnam10;charsex5;charAddr5O;charC1ass20;charMobi20;if(1=NU11)(CoUtVV”没有任何信息,请返回添加信息!,<<end1;return0;)e1seP=1;CoUt<v"请你输入要修改的人的名字:”;cin»nam;whi1e(p!=NU11&&p->name!=nam)if(strcmp(p->name,nam)=O)strcpy(p->name,nam);intchoose;do(COUt«"请选择要修改哪一项的信息!"«end1;CoUtVV”1修改编号2修改性别3修改班别4修改地址5修改手机号码«end1;cin»choose;switch(choose)(case 1:CoUtVV”请输入要修改后的编号:”;cin»id;find(1,id);strcpy(p->ID,id);cout«”编号修改成功!”end1;system(',C1S");return0;break;case 2:cout«"请输入要修改后的性别:cin»sex;strcpy(p->sex,sex);cout«"性另IJ修改成功!”end1;system(,C1S");return0;break;case 3:COUt«”请输入修改后的班别:cin»C1ass;strcpy(p->C1ass,C1ass);system(',C1S");cout«”班另IJ修改成功!”end1;return0;break;case 4:cout«"请输入修改后的地址:”;cin»Addr;StrCPy(P->Addr,Addr);system(',C1S");cout«”地址修改成功!”end1;return0;break;case 5:COUtVV”请输入修改后的手机号码:”;cin»Mobi;strcpy(p->Mobi,Mobi);system(',C1S");cout«"手机号修改成功!”end1;return0;break;defau1t:COUtVV"输入错误,重新选择!!"«end1;break;)whi1e(choose!=0);e1seif(p->next!=NU11&&p->name!=nam)p=p->next;)e1se(COUtVV”输入名字错误,请重新选择4修改!"VVend1;return0;(5)删除联系人的基本信息intDe1eteMessage(1ink1ist*&1)(1ink1ist*p,*q;chara20;CoUtVV”请输入要删除联系人的姓名:”;cin»a;if(1=NU11)(CoUtVV”没有任何信息可删除,请添加信息!"«