c语言 通讯录程序代码.docx

上传人:b****7 文档编号:9543025 上传时间:2023-02-05 格式:DOCX 页数:19 大小:17.27KB
下载 相关 举报
c语言 通讯录程序代码.docx_第1页
第1页 / 共19页
c语言 通讯录程序代码.docx_第2页
第2页 / 共19页
c语言 通讯录程序代码.docx_第3页
第3页 / 共19页
c语言 通讯录程序代码.docx_第4页
第4页 / 共19页
c语言 通讯录程序代码.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

c语言 通讯录程序代码.docx

《c语言 通讯录程序代码.docx》由会员分享,可在线阅读,更多相关《c语言 通讯录程序代码.docx(19页珍藏版)》请在冰豆网上搜索。

c语言 通讯录程序代码.docx

c语言通讯录程序代码

#include

#include

#include

#include

#include

classstudent

{public:

charnum[20];

charname[20];

charaddress[40];

chartel_num[12];

charpost_code[7];

chare_mail[40];

};

classfunction:

publicstudent

{public:

voidadd();

voiddel();

voidfind_num();

voidfind_name();

voidlist_num();

voidlist_name();

voidcorrect();

voidformat();

voidshow();

};

//主函数

intmain()

{

functiona;

charselect1;

cout<

intm=0;

do

{

cout<<"---------------------------------通讯录-----------------------------------"<

cout<<"******************************************************************************"<

cout<<"*1.通讯录编辑2.查询联系人3.按序排列4.格式化5.显示通讯录6.清屏7.退出*"<

cout<<"******************************************************************************"<

cout<<"请选择:

";

cin>>select1;

cout<<"------------------------------------------------------------------------------"<

switch(select1)

{

case'1':

cout<<"1.添加2.删除3.修改4.返回主菜单"<

charselect2;

cout<<"请选择:

"<

cin>>select2;

switch(select2)

{

case'1':

a.add();

break;

case'2':

a.del();

break;

case'3':

a.correct();

break;

case'4':

break;

default:

cout<<"输入错误!

"<

}

break;

case'2':

cout<<"1.姓名查找2.学号查找3.返回主菜单"<

charselect3;

cout<<"请选择:

";

cin>>select3;

switch(select3)

{

case'1':

a.find_name();

break;

case'2':

a.find_num();

break;

case'3':

break;

default:

cout<<"输入错误!

"<

}

break;

case'3':

cout<<"1.按学号排序2.按姓名排序3.返回主菜单"<

cout<<"请选择:

";

charselect4;

cin>>select4;

switch(select4)

{

case'1':

a.list_num();

break;

case'2':

a.list_name();

break;

case'3':

break;

default:

cout<<"输入错误!

"<

}

break;

case'4':

cout<<"请确认删除所有资料(Y/N)";

charselect5;

cin>>select5;

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

a.format();

break;

case'5':

a.show();break;

case'6':

system("cls");break;//清屏函数

case'7':

m=1;cout<<"谢谢使用!

"<

default:

cout<<"输入错误!

"<

}

}while(m!

=1);

return0;

}

//添加联系人

voidfunction:

:

add()

{inti;

cout<<"输入添加个数(10个以内):

";

cin>>i;

studentstud1[40]={0};

ofstreamoutfile("学生通讯录.dat",ios:

:

app|ios:

:

binary);

if(!

outfile)

{

cerr<<"打开错误,程序将退出!

";

abort();

}

for(intj=0;j

{

cout<<"学号:

";

cin>>stud1[j].num;

cout<<"姓名:

";

cin>>stud1[j].name;

cout<<"地址:

";

cin>>stud1[j].address;

cout<<"电话号码:

";

cin>>stud1[j].tel_num;

cout<<"邮编:

";

cin>>stud1[j].post_code;

cout<<"电子邮件:

";

cin>>stud1[j].e_mail;

outfile.write((char*)&stud1[j],sizeof(stud1[j]));

}

outfile.close();

}

//删除联系人

voidfunction:

:

del()

{

studentstud2[40]={0};

charname[20]="\0";

cout<<"请输入要删除的学生的姓名:

";

cin>>name;

ifstreaminfile("学生通讯录.dat",ios:

:

binary);

if(!

infile)

{

cerr<<"打开错误,程序将退出!

";

abort();

}

intk=0;

while

(1)

{

infile.read((char*)&stud2[k],sizeof(stud2[k]));

if(infile.eof())break;

k++;

}

infile.close();

remove("学生通讯录.dat");

ofstreamoutfile("学生通讯录.dat",ios:

:

binary);

if(!

outfile)

{

cerr<<"打开错误,程序将退出!

";

abort();

}

inti=0;

while

(1)

{if(i>k-1)break;//每删除一项就会减少一组数据,所以是k-1

if(!

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

i=i+1;

if(i>k-1)break;

outfile.write((char*)&stud2[i],sizeof(stud2[i]));

i++;

}

outfile.close();

if(k-1==0)

remove("学生通讯录.dat");

}

//修改联系人

voidfunction:

:

correct()

{

studentstud3[40]={0};

ifstreaminfile("学生通讯录.dat",ios:

:

binary);

intk=0;

while

(1)

{if(infile.eof())break;

infile.read((char*)&stud3[k],sizeof(stud3[k]));

k++;

}

infile.close();

charname[20]="\0";

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

";

cin>>name;

intx;

for(inti=0;i

{

if(!

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

x=i;

}

charselect;

cout<<"1.修改姓名2.修改学号3.修改地址4.修改邮编5.修改电话号码6.修改E_MAIL"<

cout<<"请选择:

";

cin>>select;

charname1[20]="\0";

charnum1[20]="\0";

charaddress1[40]="\0";

charpost_code1[7]="\0";

chartel_num1[20]="\0";

chare_mail1[40]="\0";

switch(select)

{

case'1':

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

";

cin>>name1;

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

cout<<"修改成功"<

break;

case'2':

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

";

cin>>num1;

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

cout<<"修改成功"<

break;

case'3':

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

";

cin>>address1;

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

cout<<"修改成功"<

break;

case'4':

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

";

cin>>post_code1;

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

cout<<"修改成功"<

break;

case'5':

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

";

cin>>tel_num1;

strcpy(stud3[x].tel_num,tel_num1);

break;

case'6':

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

cin>>e_mail1;

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

cout<<"修改成功"<

break;

default:

cout<<"输入错误!

";break;

}

remove("学生通讯录.dat");

ofstreamoutfile("学生通讯录.dat",ios:

:

binary);

intl=0;

while

(1)

{if(l>k-2)break;

outfile.write((char*)&stud3[l],sizeof(stud3[l]));

l++;

}

outfile.close();

}

//按学号查询

voidfunction:

:

find_num()

{

studentstud4[40]={0};

ifstreaminfile("学生通讯录.dat",ios:

:

binary);

if(infile.peek()==EOF)//发现如果不判断文件是否为空,本程序格式化过后查找出现未知数据。

{

cout<<"文件为空"<

return;

}

cout<<"请输入学号:

";

charnum[20]="\0";

cin>>num;

cout<<"------------------------------------------------------------------------------"<

inti=0;

while

(1)

{

infile.read((char*)&stud4[i],sizeof(stud4[i]));

if((!

strcmp(stud4[i].num,num))||infile.eof())break;

i++;

}

if(!

infile.eof())

{

cout<<"学号:

"<

cout<<"姓名:

"<

cout<<"地址:

"<

cout<<"电话号码:

"<

cout<<"邮编:

"<

cout<<"E-MAIL:

"<

}

else

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

infile.close();

}

//按姓名查找

voidfunction:

:

find_name()

{

studentstud5[40]={0};

ifstreaminfile("学生通讯录.dat",ios:

:

binary);

if(infile.peek()==EOF)

{

cout<<"文件为空"<

return;

}

cout<<"请输入姓名:

";

charname[20]="\0";

cin>>name;

cout<<"------------------------------------------------------------------------------"<

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

{

infile.read((char*)&stud5[i],sizeof(stud5[i]));

if(!

strcmp(stud5[i].name,name)||infile.eof())

break;

}

if(!

infile.eof())

{

cout<<"学号:

"<

cout<<"姓名:

"<

cout<<"地址:

"<

cout<<"电话号码:

"<

cout<<"邮编:

"<

cout<<"E-MAIL:

"<

}

else

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

infile.close();

}

//按学号排序

voidfunction:

:

list_num()

{

studentstud6[40]={0};

ifstreaminfile("学生通讯录.dat",ios:

:

binary);

intk=0;

while

(1)

{if(infile.eof())break;

infile.read((char*)&stud6[k],sizeof(stud6[k]));

k++;

}

charnum[20]="\0";

charname[20]="\0";

charaddress[40]="\0";

chartel_num[12]="\0";

charpost_code[7]="\0";

chare_mail[40]="\0";

for(inti=0;i

{

for(intj=0;j

{

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

{

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

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

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

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

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

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

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

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

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

strcpy(tel_num,stud6[j].tel_num);

strcpy(stud6[j].tel_num,stud6[j+1].tel_num);

strcpy(stud6[j+1].tel_num,tel_num);

strcpy(post_code,stud6[j].post_code);

strcpy(stud6[j].post_code,stud6[j+1].post_code);

strcpy(stud6[j+1].post_code,post_code);

strcpy(e_mail,stud6[j].e_mail);

strcpy(stud6[j].e_mail,stud6[j+1].e_mail);

strcpy(stud6[j+1].e_mail,e_mail);

}

}

}

infile.close();

remove("学生通讯录.dat");

ofstreamoutfile("学生通讯录.dat",ios:

:

binary);

intl=0;

while

(1)

{if(l>k-2)break;

outfile.write((char*)&stud6[l+2],sizeof(stud6[l+2]));

l++;

}

outfile.close();

}

//按姓名排序

voidfunction:

:

list_name()

{

studentstud7[40]={0};

charnum[20]="\0";

charname[20]="\0";

charaddress[40]="\0";

chartel_num[20]="\0";

charpost_code[7]="\0";

chare_mail[40]="\0";

ifstreaminfile("学生通讯录.dat",ios:

:

binary);

intk=0;

while

(1)

{if(infile.eof())break;

else

infile.read((char*)&stud7[k],sizeof(stud7[k]));

k++;

}

infile.close();

for(inti=0;i

{

for(intj=0;j

{

if(strcmp(stud7[j].name,stud7[j+1].name)>0)

{

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

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

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

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

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

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

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

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

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

strcpy(tel_num,stud7[j].tel_num);

strcpy(stud7[j].tel_num,stud7[j+1].tel_num);

strcpy(stud7[j+1].tel_num,tel_num);

strcpy(post_code,stud7[j].post_code);

strcpy(stud7[j].post_code,stud7[j+1].post_code);

strcpy(stud7[j+1].post_code,post_code);

strcpy(e_mail,stud7[j].e_mail);

strcpy(stud7[j].e_mail,stud7[j+1].e_mail);

strcpy(stud7[j+1].e_mail,e_mail);

 

}

}

}

remove("学生通讯录.dat");

ofstreamoutfile("学生通讯录.dat",ios:

:

binary);

intl=0;

while

(1)

{if(l>k-2)break;

outfile.write((char*)&stud7[l+2],sizeof(stud7[l+2]));

l++;

}

outfile.close();

}

//格式化(删除文件)

voidfunction:

:

format()

{

remove("学生通讯录.dat");

}

//显示通讯录

voidfunction:

:

show()

{

studentstud8[40]={0};

ifstreaminfile("学生通讯录.dat",ios:

:

in|ios:

:

binary);

infile.seekg(0,ios:

:

beg);

if(infile.peek()==EOF)

{

cout<<"文件为空"<

return;

}

inti=0;

while

(1)

{

infile.read((char*)&stud8[i],sizeof(stud8[i]));

if(infile.eof())

break;

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

当前位置:首页 > 高等教育 > 历史学

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

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