大数据结构CC++学生通讯录管理系统Word文档格式.docx

上传人:b****5 文档编号:18067159 上传时间:2022-12-13 格式:DOCX 页数:38 大小:280.24KB
下载 相关 举报
大数据结构CC++学生通讯录管理系统Word文档格式.docx_第1页
第1页 / 共38页
大数据结构CC++学生通讯录管理系统Word文档格式.docx_第2页
第2页 / 共38页
大数据结构CC++学生通讯录管理系统Word文档格式.docx_第3页
第3页 / 共38页
大数据结构CC++学生通讯录管理系统Word文档格式.docx_第4页
第4页 / 共38页
大数据结构CC++学生通讯录管理系统Word文档格式.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

大数据结构CC++学生通讯录管理系统Word文档格式.docx

《大数据结构CC++学生通讯录管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《大数据结构CC++学生通讯录管理系统Word文档格式.docx(38页珍藏版)》请在冰豆网上搜索。

大数据结构CC++学生通讯录管理系统Word文档格式.docx

3.2.1总体设计思路(主流程图)

为了更好地方便大家之间的联系,更加有效地管理通讯信息,本通讯录系统共设计了新建、添加、查询、删除、输出、保存、退出7个模块。

下面是设计框图:

3.2.2主函数(main())

程序采用结构化,模块化设计。

主函数是程序的入口,各模块相互独立,并且可以分块调试,均由主函数控制调用。

控制功能的实现通过执行一个while()循环语句和一个switch()分支语句。

3.2.3新建函数(voidStudentRecords:

Build())

本函数用于建立一个新的通讯录。

依次输入编号、姓名、性别、电话、地址添加一条记录,直到输入的编号为“0”时结束通讯录的建立。

流程图如下:

 

3.2.4添加函数(voidStudentRecords:

Add())

本函数用于添加记录,依次输入编号、姓名、性别、电话、地址添加一条记录,输入“Y/N(不区分大小写)”选择是否继续添加。

3.2.5查询函数(voidStudentRecords:

Check())

本函数用于查询指定通讯记录。

可选择按编号或姓名进行查询,输出所有符合条件的记录,输入“Y/N(不区分大小写)”选择是否继续查询。

3.2.6删除函数(voidStudentRecords:

Delete())

本函数用于删除指定编号的记录,并显示删除的所有记录。

输入“Y/N(不区分大小写)”选择是否继续查询。

3.2.7输出函数(voidStudentRecords:

PrintList())

此函数用来显示当前通讯录中的所有记录。

3.2.8保存函数(voidStudentRecords:

Preservation_file())

此函数用于保存当前通讯录信息到“RD.txt文档中”。

3.2.9读取文件信息(voidStudentRecords:

cin_file(char*filename))

此函数在其他函数执行过程中自动读取。

3.3详细设计

3.3.1预编译部分

#include<

iostream>

string>

conio.h>

iomanip>

fstream>

windows.h>

usingnamespacestd;

3.3.2结构体框架

typedefstruct

{

stringnum;

stringname;

stringsex;

stringphone;

stringaddr;

}DataType;

typedefstructnode

DataTypedata;

structnode*next;

}ListNode;

typedefListNode*LinkList;

3.3.3类的定义

classStudentRecords

public:

StudentRecords(){head=newListNode;

head->

next=NULL;

}

~StudentRecords();

voidBuild();

voidAdd();

voidCheck();

voidDelete();

voidPrintList();

voidcin_file(char*filename);

voidPreservation_file();

private:

LinkListhead;

};

3.3.4通讯录的建立

voidStudentRecords:

:

Build()

stringNUM;

boolflag=false;

ListNode*p;

cout<

<

"

输入编号为0结束通讯录的建立"

endl<

----------------------------"

endl;

while(!

flag)

{

cout<

编号:

;

cin>

>

NUM;

if(NUM!

="

0"

{

p=newListNode;

p->

data.num=NUM;

cout<

姓名:

cin>

p->

data.name;

性别:

data.sex;

电话:

data.phone;

地址:

data.addr;

next=head->

next;

head->

next=p;

-------------------"

}

else

system("

cls"

);

break;

}

3.3.5析构函数释放空间

StudentRecords:

~StudentRecords()

ListNode*p,*q;

p=head;

q=p->

deletep;

while(q)

p=q;

q=p->

deletep;

3.3.6通讯录的添加

Add()

boolflag=true;

while(flag)

p=newListNode;

分别输入编号,姓名,性别,电话,地址:

data.num;

p->

head->

是否继续添加(Y/N):

charYN;

YN;

system("

if(YN=='

Y'

||YN=='

y'

)flag=true;

elseflag=false;

3.3.7通讯录的查询

Check()

inti;

boolflag1,flag2,flag3,flag;

flag=true;

charYN='

stringNAME;

if(!

next)

通信录为空!

while(YN=='

{

intj=0;

flag3=false;

cout<

请选择查询的方式(1编号,2姓名):

cin>

i;

switch(i)

{

case1:

cout<

请输入编号:

cin>

break;

case2:

请输入姓名:

NAME;

default:

输入错误,请重新输入!

flag3=true;

}

if(!

flag3)

p=head->

flag1=false;

while(p)

{

flag2=false;

switch(i)

{

case1:

if(NUM==p->

data.num){flag2=flag1=true;

q=p;

p=p->

case2:

if(NAME==p->

data.name){flag2=flag1=true;

default:

}

if(flag2)

if(j==0)

查询到学生信息如下:

cout<

q->

data.num<

data.name<

data.sex<

data.phone<

data.addr<

j++;

}

if(!

flag1)cout<

查无此人!

cout<

共查询到"

j<

条记录..."

是否继续查询(Y/N):

cin>

system("

if(YN=='

elseflag=false;

}

3.3.8通讯录的删除

Delete()

boolflag,flag1;

flag1=true;

while(flag1)

while(YN=='

inti=0;

flag=false;

p=head;

q=p->

if(!

q)

通讯录已为空,按任意键返回主界面..."

while(chara=getch())

return;

输入删除编号:

while(q)

if(NUM==q->

data.num)

if(i==0)cout<

删除学生信息如下:

-----------------"

p->

next=q->

deleteq;

flag=true;

i++;

q=p->

continue;

else{p=p->

flag){cout<

if(p)

共删除"

i<

是否继续删除(Y/N):

system("

if(YN=='

)flag1=true;

elseflag1=false;

3.3.9通讯录的输出

PrintList()

ListNode*p,*q,*s,*Max,*Min,*first;

intcount=0;

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"

┃★通讯录的全部信息★┃"

┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"

┃编号姓名性别电话地址┃"

┃----------------------------------------------------------------------------┃"

if(head->

first=newListNode;

s=first;

while(head->

Min=head->

next;

Max=Min->

q=head;

while(Max&

&

Min)

if(Max->

data.num<

Min->

data.num)

Min=Max;

Max=Max->

elseMax=Max->

while(q->

next!

=Min)q=q->

q->

next=Min->

s->

next=Min;

s=Min;

next=NULL;

deletehead;

head=first;

p=head->

while(p)

┃"

setw(8)<

data.num

<

setw(17)<

data.name

setw(13)<

data.sex

setw(16)<

data.phone

setw(21)<

┃"

p=p->

count++;

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"

elsecout<

┃通讯录为空!

共"

count<

按任意键返回主界面..."

while(chara=getch())

return;

3.3.10读取文件信息

Preservation_file()

ofstreamoutfile("

RD.txt"

ios:

out);

if(!

outfile)

cerr<

openerror!

exit

(1);

ListNode*p;

p=head->

while(p)

outfile<

setw(22)<

p=p->

记录已保存..."

outfile.close();

3.3.11主函数

intmain()

system("

color5f"

StudentRecordsRD;

intn=1;

fstreamoutfile("

out|ios:

app);

abort();

outfile.close();

RD.cin_file("

while(n)

intm;

┃★欢迎进入学生通讯录管理系统★┃"

┃(*_*)(*_*)(*_*)★1→通讯录的建立★(*_*)(*_*)(*_*)┃"

┃(*_*)(*_*)(*_*)★2→通讯录的添加★(*_*)(*_*)(*_*)┃"

┃(*_*)(*_*)(*_*)★3→通讯录的查询★(*_*)(*_*)(*_*)┃"

┃(*_*)(*_*)(*_*)★4→通讯录的删除★(*_*)(*_*)(*_*)┃"

┃(*_*)(*_*)(*_*)★5→通讯录的输出★(*_*)(*_*)(*_*)┃"

┃(*_*)(*_*)(*_*)★6→通讯录的保存★(*_*)(*_*)(*_*)┃"

┃(*_*)(*_*)(*_*)★0→退出管理系统★(*_*)(*_*)(*_*)┃"

功能调用(0~6):

m;

switch(m)

case1:

RD.Build();

case2:

RD.Add();

case3:

RD.Check();

case4:

RD.Delete();

case5:

RD.PrintList();

case6:

RD.Preservation_file();

case0:

n=0;

★感谢您的使用,再见!

★"

default:

return0;

3.4调试分析

3.4.1主界面效果图

下图为程序编译完成后运行所得界面,可以输入“0~6”进行不同功能的调用:

当输入了“0~6”之外的内容时系统提示错误并要求重新输入,如下图:

3.4.2通讯录的建立

建立一个新的通讯录,直到输入编号为“0”时结束通讯录的建立。

如下图共新建了4记录:

编号分别为:

001

002

003

004

3.4.3通讯录的添加

添加一条记录并选择是否继续添加。

如下图(左)添加了一条记录并输入“Y”继续添加,下图(右)继续添加一条记录并输入“N”结束添加:

3.4.4通讯录的删除

按编号删除通讯录中已存在的指定记录。

如下图(左)删除了一条记录并输入“Y”继续删除,下图(右)继续删除一条记录并输入“N”结束删除:

当通讯录中没有任何记录时系统提示如下可

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

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1