文档库 最新最全的文档下载
当前位置:文档库 › C++-通讯录课程设计报告

C++-通讯录课程设计报告

C++面向对象程序设计

课程设计报告

设计题目:通讯录系统

学生学号:P P

学生姓名: 王元波次仁多布杰

专业班级:2009级计算机科学与技术(3)班学生成绩:

指导教师:蔡正琦

计算机科学与信息工程学院

2010-6-26

一、设计任务分析

实现以下功能:

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

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

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

4) 将通讯录写入文件;

5) 从文件读入通讯录。

二、模块设计

本次程序设计主要设计了六个模块(主要是:(),(),(),(),(),(),())()函数用于通讯录中的信息进行添加,主要流程如下:

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

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

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

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

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

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

三、主要数据结构

结构数组:

struct student

o<

cout<<"姓名:"<

cout<<"地址:"<

cout<<"电话号码:"<

cout<<"邮编:"<

cout<<"E_MAIL:"<

}

};

通讯录编辑. 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)修改:"<

char select2;

cout<<" 请选择:"<

cin>>select2;

switch(select2)

{

case '1':cout<<" 输入添加的资料:"<

char no[13];

char name[20];

char address[100];

char tel_no[12];

char post_code[7];

char e_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;

(no,name,address,tel_no,post_code,e_mail);

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

char back_add;

cin>>back_add;

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

goto top;

else

goto bottom;

break;

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

char name2[20];

cin>>name2;

(name2);

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

char back_del;

cin>>back_del;

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

goto top;

else

goto bottom;

break;

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

char name3[20];

cin>>name3;

if(name3))

goto top;

else goto bottom;

break;

}

break;

case '2':cout<<" (1)根据姓名查找"<

cout<<" (2)根据学号查找"<

char select3;

cout<<" 请选择: ";

cin>>select3;

switch(select3)

{

case '1':char name4[20];

cout<<" 输入姓名: ";

cin>>name4;

(name4);

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

char back_f1;

cin>>back_f1;

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

goto top;

else

goto bottom;

break;

case '2':char no4[13];

cout<<" 输入学号: ";

cin>>no4;

(no4);

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

char back_f2;

cin>>back_f2;

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

goto top;

else

goto bottom;

break;

}

break;

case '3':();

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

char back_w;

cin>>back_w;

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

goto top;

else

goto bottom;

break;

case '4':cout<<" (1)按学号排序:"<

cout<<" (2)按姓名排序:"<

cout<<" 请选择:";

char select4;

cin>>select4;

switch(select4)

{

case '1':();

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

char back;

cin>>back;

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

goto top;

else

goto bottom;

break;

case '2':();

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

char back1;

cin>>back1;

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

goto top;

else

goto bottom;

break;

}

break;

case '5':();

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

char back_r;

cin>>back_r;

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

goto top;

else

goto bottom;

break;

case '6':cout<<" 请确认删除所有资料!(Y/N) ";

char select5;

cin>>select5;

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

();

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

char back_f;

cin>>back_f;

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

goto top;

else

goto bottom;

break;

}

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

return 0;

}

o,"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;

}

}

ame,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");

}

else x=0;

}

if(x==0)

cout<<" error:输入姓名错误!"<

ame,name))

x=i;

}

char select;

cout<<" (1)修改姓名:"<

cout<<" (2)修改学号:"<

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

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

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

cout<<" (6)修改E_MAIL:"<

cout<<" 请选择:";

cin>>select;

switch(select)

{

case '1':cout<<" 输入要修改的姓名:";

char name1[30];

cin>>name1;

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

cout<<" 修改成功!"<

return back();

break;

case '2':cout<<" 输入要修改的学号:";

char no1[13];

cin>>no1;

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

cout<<" 修改成功!"<

return back();

break;

case '3':cout<<" 输入要修改的地址:";

char address1[100];

cin>>address1;

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

cout<<" 修改成功!"<

return back();

break;

case '4':cout<<" 输入要修改的邮编:";

char post_code1[7];

cin>>post_code1;

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

cout<<" 修改成功!"<

return back();

break;

case '5':cout<<" 输入要修改的电话号码:";

char tel_no1[12];

cin>>tel_no1;

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

cout<<" 修改成功!"<

return back();

break;

case '6':cout<<" 输入要修改的E_MAIL:";

char e_mail1[40];

cin>>e_mail1;

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

cout<<" 修改成功!"<

return back();

break;

}

}

o,no))

{

x=i;

z=0;

}

else y=0;

if(z==0)

break;

}

if(y==0)

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

print(x);

}

ame,name))

{

x=i;

z=0;

}

else y=0;

if(z==0)

break;

}

if(y==0)

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

print(x);

}

xt");

ifstream file(name1);

char line[120];

char no[120];

char name[120];

char address[120];

char post_code[120];

char tel_no[120];

char e_mail[120];

int time=0;

(line,120);

while(!())

{

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

{

if(time==0)

{

strcpy(no,line);

time=1;

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

{

if(no[i]==':')

{

i++;

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

{

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

i++;

}

}

}

(line,120,'\n');

}

if(time==1)

{

strcpy(name,line);

time=2;

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

{

if(name[i]==':')

{

i++;

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

{

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

i++;

}

}

}

(line,120,'\n');

}

if(time== 2)

{

strcpy(address,line);

time=3;

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

{

if(address[i]==':')

{

i++;

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

{

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

i++;

}

}

}

(line,120,'\n');

}

if(time==3)

{

strcpy(tel_no,line);

time=4;

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

{

if(tel_no[i]==':')

{

i++;

for(int j=0;j<12;j++)

{

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

i++;

}

}

}

(line,120,'\n');

}

相关文档
相关文档 最新文档