东华理工大学《数据结构》课程设计_同学录课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据结构与算法设计》课程设计报告

题目:同学录

学生姓名:江一翀

学号: 201320182021

班级: 1321820

指导教师:王强

2015年1月9日

东华理工理工大学

摘要

随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个使用的同学录管理系统,

电子同学录在科技发展的现代是非常重要的,它具有轻便,快捷且不占存储空间的优点,有效的解决了纸质同学占用空间,不方便查找且容易丢失的问题。特别是当同学录的信息量很大的时候,这个系统就更显得尤为重要了

1 问题描述

(1)题目内容:通讯录管理。

(2)基本要求:利用单链表实现通讯录的建立、通讯者的插入、通讯者的删除、通讯者的查询以及通讯录的输出。

(3)设计目的:设计目的:

1.掌握线性表的数据存储。

2.掌握线性表的基本操作。

3.掌握查找的基本算法。

具体功能:

1.对同学基本信息进行录入,应能分类录入不同阶段的同学信息,同学信息包括同学姓名、身份证号、联系电话、qq号码、爱好、联系地址、邮箱等信息;

2.对同学信息进行查询,可按同学姓名、地址、年龄段等多种方式进行查询;

3.对同学信息进行排序,可按同学姓名、年龄、地址、qq号等多种方式查询;;

4.对同学信息进行修改;

5.对同学信息进行删除;

2 需求分析

经过本次的课程设计,我认为通讯录主要实现的功能如下:

(1)添加信息:一个通讯录应该有其基本的添加功能。在程序设计时,我通过一个具有添加功能的函数,实现了个人信息的添加,如:姓名,性别,电话号码,QQ号码,地址。

(2)删除信息:当你不需要某个联系人的信息时,可以直接将该人的

信息删除。

(3)查找:一个通讯录应该具有令一基本功能就是查找,本设计时可以按联系人为关键字查找的,只要你输入要查找人的姓名或手机号码或QQ号码就可出来相应的个人信息。

(4)输出:一个通讯录应该具有输出所有联系人的功能,本设计按照次序可以从头到尾把通讯录中的所有联系人都输出,供自己查看。(5)退出:当你做完你要做的事情之后,就可以退出该程序。

3 总体设计

3.1 算法的定义

LinkList Creat_LinkList()创建空单链表

void Insert_LinkList(LinkList H)建立通讯录,录入联系人的信息,可以把联系人的姓名,性别,手机号,QQ号,地址录入系统。

void Locate_LinkList(LinkList H)按照联系人的姓名,手机号码,QQ号码查找通讯录中联系人的信息。

void Delete_LinkList(LinkList H)按照联系人的姓名,手机号码,QQ号码删除联系人的所有信息。

void print_LinkList(LinkList H)输出通讯录中的所有联系人的信息供使用者查看。

3.2 系统流程图

图3-1通讯录管理功能图3.3 详细程序设计

1)定义数据结构

typedef struct Node //定义数据结构

{

char name[20];//姓名

char sex[4]; //性别

char tel[11];//电话号码

char qq[13]; //qq号码

char ad[100];//地址

Node *next;//存放后继元素的地址

}LNode,*LinkList;

2)创建一个空的单链表

LinkList Creat_LinkList()

{//创建空单链表,入口参数无

LinkList H;

H=new LNode;

if(H)//确认创建头结点创建是否成功,若成功,修改单链表头结点的指针域为0表空表

{

H->next=NULL;

}

return H;

}

3)向通讯录中插入联系人

void Insert_LinkList(LinkList H)

{

LinkList p;

p=new LNode;

if(!p)

{

cout<<"不能插入!"<

}

cout<<"请输入你要插入的联系人信息:"<

cout<<"姓名:"<

cin>>p->name;

cout<<"性别:"<

cin>>p->sex;

cout<<"手机号码:"<

cin>>p->tel;

cout<<"QQ号码:"<

cin>>p->qq;

cout<<"地址:"<

cin>>p->ad;

p->next=H->next;

H->next=p;

cout<<"插入成功"<

}

4)查询通讯录中某个联系人的信息

void Locate_LinkList(LinkList H)

{

int x;

LinkList p=H->next;

cout<<"你要通过哪种方式查询?"<

cout<<"1.通过联系人姓名查询"<

cout<<"2.通过联系人手机号码查询"<

cout<<"3.通过联系人QQ号码查询"<

cin>>x;

char str[30];

if(x==1)

{

cout<<"请输入你要查询的联系人的姓名:";

cin>>str;

while(p && strcmp(p->name,str)!=0)

{

p=p->next;

}

}

if(x==2)

{

cout<<"请输入你要查询的联系人的手机号码:";

cin>>str;

while(p&&strcmp(p->tel,str)!=0)

{

p=p->next;

}

}

if(x==3)

{

cout<<"请输入你要查询的联系人的QQ号码:";

cin>>str;

while(p&&strcmp(p->qq,str)!=0)

{

p=p->next;

}

相关文档
最新文档