C++面向对象程序的设计通讯录课程设计报告8.docx

上传人:b****5 文档编号:11647717 上传时间:2023-03-29 格式:DOCX 页数:32 大小:412.95KB
下载 相关 举报
C++面向对象程序的设计通讯录课程设计报告8.docx_第1页
第1页 / 共32页
C++面向对象程序的设计通讯录课程设计报告8.docx_第2页
第2页 / 共32页
C++面向对象程序的设计通讯录课程设计报告8.docx_第3页
第3页 / 共32页
C++面向对象程序的设计通讯录课程设计报告8.docx_第4页
第4页 / 共32页
C++面向对象程序的设计通讯录课程设计报告8.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

C++面向对象程序的设计通讯录课程设计报告8.docx

《C++面向对象程序的设计通讯录课程设计报告8.docx》由会员分享,可在线阅读,更多相关《C++面向对象程序的设计通讯录课程设计报告8.docx(32页珍藏版)》请在冰豆网上搜索。

C++面向对象程序的设计通讯录课程设计报告8.docx

C++面向对象程序的设计通讯录课程设计报告8

C++面向对象程序设计

课程设计报告

 

设计题目:

学生学号:

学生姓名:

专业班级:

学生成绩:

指导教师:

 

计算机科学与技术系

20**-**-**

 

一、设计任务分析

实现以下功能:

1)通讯录编辑(添加、删除);

2)按不同的项进行查找;

3)对已存在的通讯录按不同的项排序;

4)将通讯录写入文件;

5)从文件读入通讯录。

二、模块设计

本次程序设计主要设计了六个模块(主要是:

a.add(),a.del(),a.correct(),a.find1(),a.list1(),a.read(),a.write())

a.add()函数用于通讯录中的信息进行添加,主要流程如下:

a.del()函数用于通讯录中的信息进行删除,主要流程如下:

a.correct()函数用于通讯录中的信息进行修改,主要流程如下:

a.find1()函数用于通讯录中的信息进行查找,主要流程如下:

a.list1()函数用于通讯录中的信息进行排序,主要流程如下:

a.read()函数用于从文本文件中读取信息,主要流程如下:

a.write()函数用于将信息写入文本文件,主要流程如下:

 

三、主要数据结构

结构数组:

structstudent//结构体

{

charno[13];//学号

charname[20];//姓名

charaddress[100];//地址

chartel_no[12];//电话

charpost_code[7];//邮编

chare_mail[40];//E-mail

}

classinter//派生类

{

private:

//派生类增加或替代的私有成员

studentst[35];

public:

//派生类增加或替代的公有成员

voidadd(charno[13],charname[20],charaddress[100],chartel_no[12],charpost_code[7],chare_mail[40]);

//成员函数,添加联系人

voiddel(charname[20]);

//成员函数,删除联系人

voidfind1(charno[13]);

//成员函数,按学号查找联系人

voidfind2(charname[20]);

//成员函数,按姓名查找联系人

voidlist1();

//成员函数,排序联系人

voidlist2();

//成员函数,排序联系人

intcorrect(charname[20]);

//成员函数,修改联系人

voidread();

//成员函数,读取文本文件

voidwrite();

//成员函数,写入文本文件

voidformat();

//成员函数,格式化内存保存的数据

intback()

//成员函数,返回首页

voidprint(inti)

//成员函数,输出显示

 

四、流程图

 

五、源代码

#include

#include

#include

structstudent//结构体

{

charno[13];

charname[20];

charaddress[100];

chartel_no[12];

charpost_code[7];

chare_mail[40];

};

classinter

{

private:

studentst[35];

public:

voidadd(charno[13],charname[20],charaddress[100],chartel_no[12],charpost_code[7],chare_mail[40]);

voiddel(charname[20]);

voidfind1(charno[13]);

voidfind2(charname[20]);

voidlist1();

voidlist2();

intcorrect(charname[20]);

voidread();

voidwrite();

voidformat();

intback()

{

cout<<"返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写):

";

charback;

cin>>back;

if(back=='R'||back=='r')

return1;

else

return0;

}

voidprint(inti)

{

cout<<"学号:

"<

cout<<"姓名:

"<

cout<<"地址:

"<

cout<<"电话号码:

"<

cout<<"邮编:

"<

cout<<"E_MAIL:

"<

}

};

//主函数首页

intmain()

{

intera;

a.format();

charselect1;

cout<

top:

cout<<"\t\t计科N082"<

<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"<

<<"\t\t※※"<

<<"\t\t※通迅录※"<

<<"\t\t※※"<

<<"\t\t※1.通讯录编辑.4.按序排列.※"<

<<"\t\t※※"<

<<"\t\t※2.查询联系人.5.将文件读入程序.※"<

<<"\t\t※※"<

<<"\t\t※3.将资料写入文件.6.格式化(慎用).※"<

<<"\t\t※※"<

<<"\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★"<

<<"\t\t"<

<<"\t\t\t选择:

";

cin>>select1;

switch(select1)

{

case'1':

cout<<"

(1)添加:

"<

cout<<"

(2)删除:

"<

cout<<"(3)修改:

"<

charselect2;

cout<<"请选择:

"<

cin>>select2;

switch(select2)

{

case'1':

cout<<"输入添加的资料:

"<

charno[13];

charname[20];

charaddress[100];

chartel_no[12];

charpost_code[7];

chare_mail[40];

cout<<"输入学号:

"<

cin>>no;

cout<<"输入姓名:

"<

cin>>name;

cout<<"输入地址:

"<

cin>>address;

cout<<"输入电话号码:

"<

cin>>tel_no;

cout<<"输入邮编:

"<

cin>>post_code;

cout<<"输入E_mail:

"<

cin>>e_mail;

a.add(no,name,address,tel_no,post_code,e_mail);

cout<<"返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写):

";

charback_add;

cin>>back_add;

if(back_add=='R'||back_add=='r')

gototop;

else

gotobottom;

break;

case'2':

cout<<"输入要删除人的姓名:

"<

charname2[20];

cin>>name2;

a.del(name2);

cout<<"返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写):

";

charback_del;

cin>>back_del;

if(back_del=='R'||back_del=='r')

gototop;

else

gotobottom;

break;

case'3':

cout<<"输入需要修改人的姓名:

"<

charname3[20];

cin>>name3;

if(a.correct(name3))

gototop;

elsegotobottom;

break;

}

break;

case'2':

cout<<"

(1)根据姓名查找"<

cout<<"

(2)根据学号查找"<

charselect3;

cout<<"请选择:

";

cin>>select3;

switch(select3)

{

case'1':

charname4[20];

cout<<"输入姓名:

";

cin>>name4;

a.find2(name4);

cout<<"返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写):

";

charback_f1;

cin>>back_f1;

if(back_f1=='R'||back_f1=='r')

gototop;

else

gotobottom;

break;

case'2':

charno4[13];

cout<<"输入学号:

";

cin>>no4;

a.find1(no4);

cout<<"返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写):

";

charback_f2;

cin>>back_f2;

if(back_f2=='R'||back_f2=='r')

gototop;

else

gotobottom;

break;

}

break;

case'3':

a.write();

cout<<"返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写):

";

charback_w;

cin>>back_w;

if(back_w=='R'||back_w=='r')

gototop;

else

gotobottom;

break;

case'4':

cout<<"

(1)按学号排序:

"<

cout<<"

(2)按姓名排序:

"<

cout<<"请选择:

";

charselect4;

cin>>select4;

switch(select4)

{

case'1':

a.list1();

cout<<"返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写):

";

charback;

cin>>back;

if(back=='R'||back=='r')

gototop;

else

gotobottom;

break;

case'2':

a.list2();

cout<<"返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写):

";

charback1;

cin>>back1;

if(back1=='R'||back1=='r')

gototop;

else

gotobottom;

break;

}

break;

case'5':

a.read();

cout<<"返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写):

";

charback_r;

cin>>back_r;

if(back_r=='R'||back_r=='r')

gototop;

else

gotobottom;

break;

case'6':

cout<<"请确认删除所有资料!

(Y/N)";

charselect5;

cin>>select5;

if(select5=='Y'||select5=='y')

a.format();

cout<<"返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写):

";

charback_f;

cin>>back_f;

if(back_f=='R'||back_f=='r')

gototop;

else

gotobottom;

break;

}

bottom:

cout<<"★★★★★★★★★★★★欢迎使用本软件!

★★★★★★★★★★★"<

return0;

}

//添加联系人

voidinter:

:

add(charno[13],charname[20],charaddress[100],chartel_no[12],charpost_code[7],chare_mail[40])

{

intx=1;

for(inti=0;i<35;i++)

{

if(!

strcmp(st[i].no,"0"))

{

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

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

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

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

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

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

x=0;

}

if(x==0)

break;

}

}

//删除联系人

voidinter:

:

del(charname[20])

{intx=1;

for(inti=0;i<35;i++)

{

if(!

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

{

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

strcpy(st[i].e_mail,"0");

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

strcpy(st[i].no,"0");

strcpy(st[i].post_code,"0");

strcpy(st[i].tel_no,"0");

}

elsex=0;

}

if(x==0)

cout<<"error:

输入姓名错误!

"<

}

//修改联系人

intinter:

:

correct(charname[30])

{

intx;

for(inti=0;i<35;i++)

{

if(!

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

x=i;

}

charselect;

cout<<"

(1)修改姓名:

"<

cout<<"

(2)修改学号:

"<

cout<<"(3)修改地址:

"<

cout<<"(4)修改邮编:

"<

cout<<"(5)修改电话号码:

"<

cout<<"(6)修改E_MAIL:

"<

cout<<"请选择:

";

cin>>select;

switch(select)

{

case'1':

cout<<"输入要修改的姓名:

";

charname1[30];

cin>>name1;

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

cout<<"修改成功!

"<

returnback();

break;

case'2':

cout<<"输入要修改的学号:

";

charno1[13];

cin>>no1;

strcpy(st[i].no,no1);

cout<<"修改成功!

"<

returnback();

break;

case'3':

cout<<"输入要修改的地址:

";

charaddress1[100];

cin>>address1;

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

cout<<"修改成功!

"<

returnback();

break;

case'4':

cout<<"输入要修改的邮编:

";

charpost_code1[7];

cin>>post_code1;

strcpy(st[x].post_code,post_code1);

cout<<"修改成功!

"<

returnback();

break;

case'5':

cout<<"输入要修改的电话号码:

";

chartel_no1[12];

cin>>tel_no1;

strcpy(st[x].tel_no,tel_no1);

cout<<"修改成功!

"<

returnback();

break;

case'6':

cout<<"输入要修改的E_MAIL:

";

chare_mail1[40];

cin>>e_mail1;

strcpy(st[x].e_mail,e_mail1);

cout<<"修改成功!

"<

returnback();

break;

}

}

//按学号查询联系人

voidinter:

:

find1(charno[13])

{

intx,y=1,z=1;

for(inti=0;i<35;i++)

{

if(!

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

{

x=i;

z=0;

}

elsey=0;

if(z==0)

break;

}

if(y==0)

cout<<"输入的学号查找不到!

"<

print(x);

}

//按姓名查询联系人

voidinter:

:

find2(charname[20])

{

intx,y=1,z=1;

for(inti=0;i<35;i++)

{

if(!

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

{

x=i;

z=0;

}

elsey=0;

if(z==0)

break;

}

if(y==0)

cout<<"输入的姓名查找不到!

"<

print(x);

}

//读取文件

voidinter:

:

read()

{

charname1[20];

cout<<"输入你要导入的文件名:

";

cin>>name1;

strcat(name1,".txt");

ifstreamfile(name1);

charline[120];

charno[120];

charname[120];

charaddress[120];

charpost_code[120];

chartel_no[120];

chare_mail[120];

inttime=0;

file.getline(line,120);

while(!

file.eof())

{

for(intk=0;k<35;k++)

{

if(time==0)

{

strcpy(no,line);

time=1;

for(inti=0;i<120;i++)

{

if(no[i]==':

')

{

i++;

for(intj=0;j<13;j++)

{

st[k].no[j]=no[i];

i++;

}

}

}

file.getline(line,120,'\n');

}

if(time==1)

{

strcpy(name,line);

time=2;

for(inti=0;i<120;i++)

{

if(name[i]==':

')

{

i++;

for(intj=0;j<20;j++)

{

st[k].name[j]=name[i];

i++;

}

}

}

file.getline(line,120,'\n');

}

if(time==2)

{

strcpy(address,line);

time=3;

for(inti=0;i<120;i++)

{

if(address[i]==':

')

{

i++;

for(intj=0;j<100;j++)

{

st[k].address[j]=address[i];

i++;

}

}

}

file.getline(line,120,'\n');

}

if(time==3)

{

strcpy(tel_no,line);

time=4;

for(inti=0;i<120;i++)

{

if(tel_no[i]==':

')

{

i++;

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

当前位置:首页 > 求职职场 > 简历

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

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