通讯录管理系统 数据结构课程设计Word格式.docx

上传人:b****6 文档编号:8541007 上传时间:2023-05-11 格式:DOCX 页数:31 大小:567.25KB
下载 相关 举报
通讯录管理系统 数据结构课程设计Word格式.docx_第1页
第1页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第2页
第2页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第3页
第3页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第4页
第4页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第5页
第5页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第6页
第6页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第7页
第7页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第8页
第8页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第9页
第9页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第10页
第10页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第11页
第11页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第12页
第12页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第13页
第13页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第14页
第14页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第15页
第15页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第16页
第16页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第17页
第17页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第18页
第18页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第19页
第19页 / 共31页
通讯录管理系统 数据结构课程设计Word格式.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

通讯录管理系统 数据结构课程设计Word格式.docx

《通讯录管理系统 数据结构课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《通讯录管理系统 数据结构课程设计Word格式.docx(31页珍藏版)》请在冰点文库上搜索。

通讯录管理系统 数据结构课程设计Word格式.docx

姓名2:

yyf电话2:

456QQ:

456邮箱:

456@

姓名3:

vigoss电话3:

789QQ:

789邮箱:

789@

修改用:

姓名:

cold电话:

1QQ:

1邮箱:

1@

三、概要设计

1)抽象数据类型定义描述

(对各类的成员及成员函数进行抽象描述,参见书或ppt及实验)

1、student类:

成员类型有姓名,电话号码,QQ号及邮箱地址。

2、input函数:

输入:

前置条件:

功能:

添加联系人信息

输出:

3.output函数:

表存在

用来排序并输出所有联系人的信息

依次输出联系人信息

后置条件:

表不变

4、友元类AddressBook类:

定义头指针,存放数据key

5、input函数:

录入函数

若添加成功,表中增加一个新元素,并且写入文件

6、find函数:

found函数中有

子查找函数

当调用删除、修改操作时,如果找到了,则进入find函数找出该联系人的信息;

如果未找到,则提示通讯录中没有此人的信息

7、found函数:

查找函数

当调用查找操作时,如果找到了,则进入find函数找出该联系人的信息;

8、del函数:

删除函数

如果找到了,则删除该联系人信息,如果未找到,则提示通讯录中没有此人的信息

9、show函数:

显示函数

10、mend函数:

修改函数

如果找到了则显示该联系人信息并修改,如果未找到,则提示通讯录中没有此人的信息

11、save函数

保存函数

将数据保存到数据文件中

12、begin函数:

初始化函数

13、clear函数:

清空函数

14、mainmenu函数:

主选菜单函数

15、main函数:

主函数

2)功能模块设计(如主程序模块设计)

1.添加联系人信息模块:

voidAddressBook:

:

input()

2.排序并显示所有联系人信息模块:

show()

3.查询联系人信息模块:

find()

found()

4.查找并修改联系人信息模块:

voidbook:

mend()

5.查找并删除联系人信息模块:

del()

6.联系人信息写入文件模块:

save()

7.主程序模块:

voidmain()

3)模块层次调用关系图

四、详细设计

实现概要设计中定义的所有的类的定义及类中成员函数,并对主要的模块写出伪码算法。

类的定义及类中的成员函数:

classstudent

{

protected:

charname[20];

inttel;

intQQ;

charE_mail[20];

public:

student*next;

student(){}

~student(){}

char*getname(){returnname;

}

voidinput()

{

cout<

<

"

\t\t\t按提示输入:

endl;

\t\t输入姓名:

"

;

cin>

>

name;

cout<

\t\t输入电话:

cin>

tel;

\t\t输入QQ:

QQ;

\t\t输入E_mail:

E_mail;

}

voidinput(ifstream&

is)

is>

name>

tel>

QQ>

is.get();

voidoutput()

学生基本信息如下:

姓名:

name

<

电话:

tel

QQ:

QQ

e_mail:

E_mail<

voidoutput(ofstream&

os)

os<

setw(15)<

setw(20)<

E_mail

friendclassAddressBook;

};

classAddressBook

{

AddressBook(){head=newstudent;

head->

next=NULL;

key=0;

~AddressBook(){deletehead;

voidinput();

voidmend();

voiddel();

intfind(student**p,char*pn="

^"

);

voidfound();

voidshow();

voidcount();

voidsave();

voidbegin();

voidclear();

charmainmenu();

intgetkey(){returnkey;

}

voidsetkey(intk){key=k;

private:

student*head;

intkey;

主要模块的伪码算法:

student*p,*p2=NULL;

p=head;

intn;

while(p->

next)

p=p->

next;

while(n)

p2=newstudent;

p2->

input();

p->

next=p2;

AddressBook:

setkey

(1);

\t\t\t按1继续,按0返回:

n;

student*p,*q;

p=head->

chartemp[20];

while(p)

q=p->

while(q)

if(strcmp(p->

name,q->

name)==1)

{

strcpy(temp,q->

name);

strcpy(q->

name,p->

strcpy(p->

name,temp);

inttemp1;

temp1=q->

q->

tel=p->

p->

tel=temp1;

inttemp2;

temp2=q->

QQ=p->

QQ=temp2;

chartemp3[20];

strcpy(temp3,q->

E_mail);

E_mail,p->

E_mail,temp3);

q=q->

}

elseq=q->

student*p1;

p1=head->

while(p1)

p1->

output();

p1=p1->

intAddressBook:

find(student**p1,char*pn)

student*p;

(*p1)=p;

if(!

strcmp((p->

next)->

getname(),pn))

return1;

return0;

charname[20]="

\t\t\t输入要查找的姓名:

find(&

p,name))

\t\t找不到你要查找的内容!

return;

(p->

\t\t\t输入要修改的姓名:

if(!

\t\t找不到你要修改的内容!

student*p,*p2;

charname;

\t\t\t输入要删除的姓名:

p,&

name))

\t\t找不到你要删除的内容!

p2=p->

next=p2->

deletep2;

ofstreamos("

student.txt"

ios:

out);

if(AddressBook:

getkey()==1)

output(os);

\t\t\t文件已保存!

setkey(0);

AddressBookpp;

intk=1;

charn;

pp.begin();

while(k==1)

n=pp.mainmenu();

switch(n)

case'

1'

pp.input();

break;

2'

pp.show();

3'

pp.found();

4'

pp.del();

5'

pp.mend();

6'

pp.save();

0'

if(pp.getkey()==1)

\t\t\t是否保存?

1:

保存0:

不保存:

k;

if(k==1)

pp.save();

pp.clear();

k=0;

五、调试分析

包括调试过程中遇到的问题及解决的方法、算法的时间空间复杂性分析、经验体会。

在调试过程中发现了很多问题,其中包括在实现升序输出的时候,我想运用冒泡排序的方法。

起初直接将两个类进行交换,但始终实现不了。

经过反复的调试之后,我尝试将类中的“name”、“tel”、“QQ”、“E_mail”分别一次交换,最终实现了升序输出。

我的程序中的输入联系人信息函数时间复杂度为O

(1),平均空间复杂度为0(n/2),输出联系人信息函数时间复杂度由于有冒泡排序法所以为O(n^2),平均空间复杂度为O(n),查询联系人信息函数平均时间复杂度为O(n),查询并修改联系人信息函数平均时间复杂度为O

(1),查询并删除联系人信息函数平均时间复杂度为O

(1)。

调试过程中会有很多的问题,以前遇到问题时我总是显得很茫然不知所措,经过此次课程设计后,我通过逐条错误分析、修改语句,再反复调试,最终达到没有错误顺利运行,从而使我科服了以前的困难,编程和改错能力都有了质的提高。

六用户使用说明

详细列出每一步的操作说明。

1.添加联系人信息:

第一步:

打开程序,进入主界面选择菜单。

第二步:

键盘输入1进入添加联系人程序,按照提示依次输入联系人的姓名、电话、QQ号还有邮箱地址,然后按回车回到主界面选择菜单。

2.查询联系人信息(表中有联系人信息为前提,下同):

进入主界面选择菜单。

键盘输入3进入查询联系人信息程序,按照提示输入要查询的联系人姓名,按回车,如果找到了则显示该联系人的信息,如果没有找到则显示“查无此人”,然后按回车回到主界面选择菜单。

3.查询并修改联系人信息:

键盘输入5进入查询并修改联系人信息程序,按照提示输入要查询并修改的联系人姓名,按回车,如果找到了则提示输入修改后的信息,然后按照提示依次输入修改后的姓名、电话、QQ号还有邮箱地址,然后按回车回到主界面选择菜单,如果没找到则提示“找不到你要查找的内容”,然后按回车回到主界面选择菜单。

4.查询并删除联系人信息:

键盘输入4进入查询并删除联系人信息程序,按照提示输入要查询并修改的联系人姓名,按回车,如果找到了则删除该联系人信息,然后按回车回到主界面选择菜单,如果没找到则提示“找不到你要查找的内容”,然后按回车回到主界面选择菜单。

5.排序并显示所有联系人信息:

键盘输入2进入排序并显示所有联系人信息程序,然后便会得到按照姓名升序排列以后所有联系人的信息,然后按回车回到主界面选择菜单。

6.保存联系人信息

键盘输入6进入查询联系人信息程序,按照提示将数据存入“student.txt”文件,输入的内容已保存在此文件内。

7.关闭通讯录:

键盘输入0则关闭通讯录,再按一下任意一个键则退出程序窗口。

七、测试结果

1.主界面选择菜单:

2.添加新联系人:

3.查询联系人信息:

如果表中有联系人信息:

如果表中有联系人信息但没有匹配的姓名:

4.查询并修改联系人信息:

如果表中有联系人信息且有相匹配的姓名:

如果表中没有联系人信息:

5.查询并删除联系人信息:

6.排序并显示所有联系人信息:

7.联系人信息写入文件:

八、附录:

程序设计源代码

#include<

iostream>

string>

stdio.h>

stdlib.h>

fstream>

iomanip>

usingnamespacestd;

//录入函数

//子查找函数

strcmp(p->

next->

getname(),pn))

//查找函数

//删除函数

//cout<

strlen(name);

p,name))

return;

//显示函数

n

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2