最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

c语言 通讯录程序代码

来源:动视网 责编:小OO 时间:2025-09-29 05:16:31
文档

c语言 通讯录程序代码

#include#include#include#include#includeclassstudent{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
推荐度:
导读#include#include#include#include#includeclassstudent{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
#include

#include

#include

#include

#include

class student 

{public:

char num[20];

char name[20];

char address[40];

char tel_num[12];

char post_code[7];

char e_mail[40];

};

class function:public student

{public:

    void add();

    void del();

    void find_num();

    void find_name();

    void list_num();

    void list_name();

    void correct();

    void format();

    void show();

};

//主函数

int main()

{

    function a;

    char select1;

cout<    int m=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.返回主菜单"<    char select2;

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.返回主菜单"<        char select3;

     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<<"请选择:";

            char select4;

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

                char select5;

             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); 

    return 0;

}

//添加联系人

void function::add()

{int i;

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

cin>>i;

student stud1[40]={0};

ofstream outfile("学生通讯录.dat",ios::app|ios::binary);

if (! outfile)

{

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

    abort();

}

for(int j=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 ();    

}

//删除联系人

void function::del()

{

    student stud2[40]={0};

    char name[20]="\\0";

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

cin>>name;

    ifstream infile("学生通讯录.dat",ios::binary);

    if (!infile)

    {

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

        abort();

    }

    int k=0;

    while(1)

    {

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

    if(infile.eof())break;

    k++;

    }

    infile.close();

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

    ofstream outfile("学生通讯录.dat",ios::binary);

    if (!outfile)

    {

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

        abort();

    }

    int i=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");

}

//修改联系人

void function::correct()

{

    student stud3[40]={0};

    ifstream infile("学生通讯录.dat",ios::binary);

    int k=0;

    while(1)

    {if(infile.eof())break;

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

    k++;

    }

    infile.close();

    char name[20]="\\0";

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

cin>>name;

    int x;

for(int i=0;i    {

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

            x=i;

    }

    char select;

    

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

cin>>select;

        char name1[20]="\\0";

        char num1[20]="\\0";

        char address1[40]="\\0";

        char post_code1[7]="\\0";

        char tel_num1[20]="\\0";

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

    ofstream outfile("学生通讯录.dat",ios::binary);

    int l=0;

    while(1)

{if(l>k-2)break;

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

    l++;

    }

    outfile.close();

}

//按学号查询

void function::find_num()

{

    student stud4[40]={0};

    ifstream infile("学生通讯录.dat",ios::binary);

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

    {

     cout<<"文件为空"<        return;

    }

cout<<"请输入学号:";

    char num[20]="\\0";

cin>>num;

cout<<"------------------------------------------------------------------------------"<    int i=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();

    

}

//按姓名查找

void function::find_name()

{

    student stud5[40]={0};

    ifstream infile("学生通讯录.dat",ios::binary);

    if(infile.peek()==EOF)

    {

     cout<<"文件为空"<        return;

    }

cout<<"请输入姓名:";

    char name[20]="\\0";

cin>>name;

cout<<"------------------------------------------------------------------------------"< for(int i=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();

    

}

//按学号排序

void function::list_num()

{

    student stud6[40]={0};

    ifstream infile("学生通讯录.dat",ios::binary);

    int k=0;

    while(1)

    {if(infile.eof())break;

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

    k++;

    }

                char num[20]="\\0";

                char name[20]="\\0";

                char address[40]="\\0";

                char tel_num[12]="\\0";

                char post_code[7]="\\0";

                char e_mail[40]="\\0";

for(int i=0;i    {

     for(int j=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");

    ofstream outfile("学生通讯录.dat",ios::binary);

    int l=0;

    while(1)

{if(l>k-2)break;

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

    l++;

    }

    outfile.close();

}

//按姓名排序

void function::list_name()

{

    student stud7[40]={0};

                char num[20]="\\0";

                char name[20]="\\0";

                char address[40]="\\0";

                char tel_num[20]="\\0";

                char post_code[7]="\\0";

                char e_mail[40]="\\0";

    ifstream infile("学生通讯录.dat",ios::binary);

    int k=0;

    while(1)

    {if(infile.eof())break;

    else

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

    k++;

    }

    infile.close();

for(int i=0;i    {

     for(int j=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");

    ofstream outfile("学生通讯录.dat",ios::binary);

    int l=0;

    while(1)

{if(l>k-2) break;

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

    l++;

    }

    outfile.close();

}

//格式化(删除文件)

void function::format()

{

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

}

//显示通讯录

void function::show()

{

    student stud8[40]={0};

    ifstream infile("学生通讯录.dat",ios::in|ios::binary);

    infile.seekg(0,ios::beg);

    if(infile.peek()==EOF)

    {

     cout<<"文件为空"<        return;

    }

    int i=0;

    while(1)

    {

        

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

        if(infile.eof())

            break;

        else

         cout<<"学号:"<         cout<<"姓名:"<         cout<<"地址:"<         cout<<"电话号码:"<         cout<<"邮编:"<         cout<<"E-MAIL:"<        i++;        

    }

    infile.close();

}

文档

c语言 通讯录程序代码

#include#include#include#include#includeclassstudent{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
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top