c语言 通讯录程序代码.docx
- 文档编号:9543025
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:19
- 大小:17.27KB
c语言 通讯录程序代码.docx
《c语言 通讯录程序代码.docx》由会员分享,可在线阅读,更多相关《c语言 通讯录程序代码.docx(19页珍藏版)》请在冰豆网上搜索。
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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言 通讯录程序代码 语言 通讯录 程序代码
![提示](https://static.bdocx.com/images/bang_tan.gif)