C通讯录课程设计报告资料Word下载.docx

上传人:b****5 文档编号:20859052 上传时间:2023-01-26 格式:DOCX 页数:33 大小:434.83KB
下载 相关 举报
C通讯录课程设计报告资料Word下载.docx_第1页
第1页 / 共33页
C通讯录课程设计报告资料Word下载.docx_第2页
第2页 / 共33页
C通讯录课程设计报告资料Word下载.docx_第3页
第3页 / 共33页
C通讯录课程设计报告资料Word下载.docx_第4页
第4页 / 共33页
C通讯录课程设计报告资料Word下载.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

C通讯录课程设计报告资料Word下载.docx

《C通讯录课程设计报告资料Word下载.docx》由会员分享,可在线阅读,更多相关《C通讯录课程设计报告资料Word下载.docx(33页珍藏版)》请在冰豆网上搜索。

C通讯录课程设计报告资料Word下载.docx

(1)需求分析(功能设计)

本通讯录包括编辑、查找、排序、录入文件、读取文件和格式化六项总功能。

其中

编辑通讯录又包括添加联系人、修改联系人和删除联系人三项功能;

查找联系人包括“按学号查找”和“按姓名查找”两项功能;

排列联系人也包括“按姓名查找”和“按学号查找”两项功能。

联系人的具体信息包括:

学号、姓名、地址、电话、邮编、邮箱。

每执行完一项功能,按相应的提示键返回主界面。

具体功能模块图介绍:

(1)

(2)

系统流程图:

R

T

图(3)

(2)详细设计(各模块流程图)

(1)主函数:

是通过一个多分支语句switch(select)实现的,其中有的分支语句中,又包含有一个多分支语句switch(selecti)[i=1,2,3],每一个分支语句结束通过输入T/t回到界面底部,或输入R/r回到主界面。

1

2

3

4

5

6

图(4)

(2)添加联系人:

addition()函数

利用for循环,和strcmp函数进行学号的比较,当学号不为0时,开始录入信息;

当,当学号为0结束

图(5)

(3)删除联系人:

del函数()

For循环,strcmp比较,定义一个变量x,并赋值为1,如果输入的姓名与通讯录中的相同,然后就将学生的所有基本信息都赋予0,如果输入的姓名不相同,就将变量的值赋为0,再用if()判断,如果变量值为0,就输出输入姓名有错这一信息。

(4)修改联系人:

correct()函数图(6)

For循环,strcmp比较,定义一个变量,如果输入的姓名与通讯录中已有的相同,就将改序号赋给变量,输出一个修改的内容界面,然后用switch()语句,输入相应的选项,分别修改学生的基本信息。

图(7)

(5)查找联系人:

find()函数

按学号进行查找,定义三个变量x,y,x,y,z分别赋值为1,字符串比较函数,如果输入的学号与通讯录的相同,将学生数组的序号赋给变量x,z赋值为0,如果相等,将y的值赋为0,如果z的值为0,break语句,跳出整个for循环,然后执行下面的语句,输出那个序号学生的信息,如果学号不相同,说明没有此人,则输入的学号找不到。

同理按姓名查找也是这样。

图(8)

(6)按序排列:

list()函数

若按姓名排序,通过冒泡排序法,n个数从小到大排序,总共要比较n-1趟,每趟比较要比较n-1次,通过一个中间变量将两个字符串调换位置,进行排序。

现将姓名排序,然后再将对应学生的基本信息分别排序。

图(9)

(3)代码设计(函数主要代码及注释)

(1)//头文件

#include<

iostream.h>

fstream.h>

string.h>

iomanip.h>

windows.h>

(2)//结构体和类的定义

structstudent

{

charnum[12];

charname[30];

charaddress[100];

chartel[12];

charpost[7];

charemail[30];

};

classinter

private:

studentst[35];

public:

voidaddition(charnum[12],charname[30],charaddress[100],chartel[12],charpost[7],charemail[30]);

voiddel(charname[30]);

voidfind1(charnum[12]);

voidfind2(charname[30]);

voidlist1();

voidlist2();

intcorrect(charname[30]);

voidformat();

voidwrite();

voidread();

voidprint(inti);

intback();

(3)//添加联系人

voidinter:

:

addition(charnum[12],charname[30],charaddress[100],chartel[12],charpost[7],charemail[30])

intx=1;

//定义一个整型变量用于判断

for(inti=0;

i<

35;

i++)

{

if(!

strcmp(st[i].num,"

0"

))

{

strcpy(st[i].num,num);

strcpy(st[i].name,name);

strcpy(st[i].address,address);

strcpy(st[i].tel,tel);

strcpy(st[i].post,post);

strcpy(st[i].email,email);

x=0;

}

if(x==0)

break;

}

}

(4)//删除联系人

del(charname[30])

booltemp=0;

//定义一个布尔变量用于判断

strcmp(st[i].name,name))//如果姓名相同

temp=1;

strcpy(st[i].address,"

);

//将0复制给数组

strcpy(st[i].email,"

strcpy(st[i].name,"

strcpy(st[i].num,"

strcpy(st[i].post,"

strcpy(st[i].tel,"

cout<

<

"

*****删除成功!

*******"

endl;

if(!

temp)

cout<

*****查无此人!

}

}

(5)//修改联系人

intinter:

correct(charname[30])

intx;

strcmp(st[i].name,name))

x=i;

*修改内容*"

**************************"

*

(1)修改姓名:

*"

*

(2)修改学号:

*(3)修改地址:

*(4)修改邮编:

*(5)修改电话号码:

*(6)修改email:

***请选择:

***"

;

charselect;

cin>

>

select;

switch(select)//多分支语句

{

case'

1'

cout<

***输入要修改的姓名:

//选择1开始修改姓名

charname1[30];

cin>

name1;

strcpy(st[x].name,name1);

***修改成功!

***"

returnback();

break;

2'

***输入要修改的学号:

charnum1[12];

num1;

strcpy(st[x].num,num1);

3'

***输入要修改的地址:

charaddress1[100];

address1;

strcpy(st[x].address,address1);

4'

***输入要修改的邮编:

charpost1[7];

post1;

strcpy(st[x].post,post1);

5'

***输入要修改的电话号码:

chartel1[12];

tel1;

strcpy(st[x].tel,tel1);

6'

***输入要修改的email:

charemail1[30];

email1;

strcpy(st[x].email,email1);

}

return0;

(6)//按学号查找

find1(charnum[12])

strcmp(st[i].num,num))//字符串比较如果学号相同

{temp=1;

print(i);

//调用print()成员函数输出基本信息

***输入的学号查找不到!

(7)//按学号排序

list1()

34;

i++)//冒泡法排序

for(intj=0;

j<

34-i;

j++)

if(strcmp(st[j].num,st[j+1].num)>

0)//比较两个字符串的大小

charnum[12];

strcpy(num,st[j].num);

//将学号信息交换

strcpy(st[j].num,st[j+1].num);

strcpy(st[j+1].num,num);

strcpy(name,st[j].name);

//将姓名信息交换

strcpy(st[j].name,st[j+1].name);

strcpy(st[j+1].name,name);

strcpy(address,st[j].address);

//将地址信息交换

strcpy(st[j].address,st[j+1].address);

strcpy(st[j+1].address,address);

strcpy(tel,st[j].tel);

//将号码信息交换

strcpy(st[j].tel,st[j+1].tel);

strcpy(st[j+1].tel,tel);

strcpy(post,st[j].post);

//将邮编信息交换

strcpy(st[j].post,st[j+1].post);

strcpy(st[j+1].post,post);

strcpy(email,st[j].email);

//将邮箱信息交换

strcpy(st[j].email,st[j+1].email);

strcpy(st[j+1].email,email);

for(intk=0;

k<

k++)

if(strcmp(st[k].num,"

print(k);

(8)//导入文件

write()

inti;

ofstreamoutfile("

通讯录.txt"

ios:

out);

//打开文件

outfile)//打开文件

cerr<

open通讯录.txterror!

exit

(1);

for(i=0;

i++)//导入文件

{

outfile<

setiosflags(ios:

left)<

setw(4)<

st[i].num<

"

setw(6)<

st[i].name<

st[i].address<

setw(12)<

st[i].tel<

setw(7)<

st[i].post<

setw(15)<

st[i].email<

outfile.close();

//关闭文件

资料已保存"

(9)//读取文件

read()

ifstreaminfile("

infile)//打开文件

cerr<

exit

(1);

i<

35;

i++)//读取文件

infile>

st[i].num;

st[i].name;

st[i].address;

st[i].tel;

st[i].post;

st[i].email;

print(i);

(10)//删除全部文件

format()

strcpy(st[i].address,"

strcpy(st[i].email,"

strcpy(st[i].name,"

strcpy(st[i].num,"

strcpy(st[i].post,"

strcpy(st[i].tel,"

(11)//输出联系人

print(inti)

cout<

setw(6)

<

st[i].post

(12)//返回

back()

***退出请按T,回到主菜单请按R(不计大小写):

***"

charback;

cin>

back;

if(back=='

R'

||back=='

r'

return1;

else

return0;

(13)//输出菜单(自定义函数)

voiddisplay()

{cout<

***通讯录¥***"

***功能选择***:

********************************"

*

(1)通讯录编辑*"

//功能列表

*

(2)查找联系人*"

*(3)排列联系人*"

*(4)录入文件*"

*(5)读取文件*"

*(6)格式化*"

********************************"

***请选择***:

(14)//设置颜色

voidSetColor(unsignedshortForeColor=6,unsignedshortBackGroundColor=6)//给参数默认值//可以接受0/1/2个参数

HANDLEhCon=GetStdHandle(STD_OUTPUT_HANDLE);

//关于颜色的输入输出语句

SetConsoleTextAttribute(hCon,ForeColor|BackGroundColor);

(15)//主函数

intmain()

intera;

a.format();

SetColor(3,0);

top:

display();

SetColor(5,0);

charselect1;

select1;

switch(select1)

case'

*通讯录编辑*"

*****************"

*

(1)添加:

<

*

(2)删除:

*(3)修改:

SetColor(2,0);

charselect2;

cin>

select2;

switch(select2)

case'

***请输入要添加的资料:

charnum[12];

输入学号:

num;

输入姓名:

name;

输入地址:

address;

输入电话号码:

tel;

输入邮编:

post;

输入email:

email;

a.addition(num,name,address,tel,post,email);

添加成功!

charback_addition;

back_addition;

if(back_addition=='

||back_addition=='

{system("

cls"

SetColor(3,0);

gototop;

else

gotobottom;

***输入要删除人的姓名:

charname2[30];

name2;

a.del(name2);

charback_del;

back_del;

if(back_del=='

||back_del=='

{cout<

****输入有误!

*****"

gotobottom;

c

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

当前位置:首页 > 医药卫生 > 药学

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

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