学生通讯录

来源:互联网 发布:装修平面图设计软件 编辑:程序博客网 时间:2024/04/29 11:16
问题及代码:
/****************************************************** *版权所有(c)2015.烟台大学计算机与控制工程学院 * *文件名称:main.cpp *文件标示:无 *内容摘要:该代码用于满足后缀要求的第一个文件 *其他说明:无 *当前版本:V1.0 *作者:刘慧超 *完成日期:2015.7.17 * *修改记录: *修改日期: *版本号:V1.0 *修改人: *修改内容: *********************************************************/  #include <fstream>#include <iostream>#include <cstdlib>using namespace std;int N;class Netbook{private:    int num;    string name;    int age;    char sex;    string birth;    string add;    string phone;    string email;public:    void input ();    void increas ();    void decreas();    void lookup ();};/********************************功能描述:学生信息输入输入参数:无输出参数:无返回值:无其他说明:无*********************************/void Netbook::input(){    Netbook *t;    t=new Netbook[N];    int i=0;    for(; i<N; i++)    {        cout<<"请输入第"<<i+1<<"名学生信息:"<<endl;        cout<<"          num:";        cin>>t[i].num;        cout<<"          name:";        cin>>t[i].name;        cout<<"          age:";        cin>>t[i].age;        cout<<"          sex:";        cin>>t[i].sex;        cout<<"          birth:";        cin>>t[i].birth;        cout<<"          add:";        cin>>t[i].add;        cout<<"          phone:";        cin>>t[i].phone;        cout<<"          email:";        cin>>t[i].email;    }    ofstream outfile("Netbook.txt",ios::out);    for(i=0; i<N; i++)    {        outfile<<t[i].num<<"  "<<t[i].name<<"  "<<t[i].age<<"  "<<t[i].sex<<"  ";        outfile<<t[i].birth<<"  "<<t[i].add<<"  "<<t[i].phone<<"  "<<t[i].email<<endl;    }    outfile.close();    delete []t;    cout<<"通讯录建立完毕!"<<endl;}/********************************功能描述:增加学生信息输入参数:无输出参数:无返回值:无其他说明:无*********************************/void Netbook::increas(){    Netbook *q;    int i=0,t;    cout<<"请输入要增加的学生通讯录人数:";    cin>>t;    N+=t;    q=new Netbook[t];    cout<<"请输入要增加的学生信息:"<<endl;    for(; i<t; i++)    {        cout<<"          num:";        cin>>q[i].num;        cout<<"          name:";        cin>>q[i].name;        cout<<"          age:";        cin>>q[i].age;        cout<<"          sex:";        cin>>q[i].sex;        cout<<"          birth:";        cin>>q[i].birth;        cout<<"          add:";        cin>>q[i].add;        cout<<"          phone:";        cin>>q[i].phone;        cout<<"          email:";        cin>>q[i].email;    }    ofstream outfile("Netbook.txt",ios::app);    for(i=0; i<t; i++)    {        outfile<<q[i].num<<"  "<<q[i].name<<"  "<<q[i].age<<"  "<<q[i].sex;        outfile<<"  "<<q[i].birth<<"  "<<q[i].add<<"  "<<q[i].phone<<"  "<<q[i].email<<endl;    }    outfile.close();    delete []q;    cout<<"录入完成,现通讯录总人数为:"<<N<<"人。"<<endl;}/********************************功能描述:学生信息删除输入参数:无输出参数:无返回值:无其他说明:无*********************************/void Netbook::decreas(){    cout<<"请输入要删除的学生的学号:";    int n,i=0,j=0;    Netbook *q,*p;    p=new Netbook[N];    ifstream infile("Netbook.txt",ios::in);    for(; i<N; i++)    {        infile>>p[i].num>>p[i].name>>p[i].age>>p[i].sex;        infile>>p[i].birth>>p[i].add>>p[i].phone>>p[i].email;    }    infile.close();    cin>>n;    i=0;    while(i<N)    {        if(p[i].num==n)        {            N--;            q=new Netbook[N];            for(; j<i; j++)            {                q[j]=p[j];            }            for(j=i; j<N; j++,i++)                q[j]=p[i++];            cout<<"学生通讯信息删除完毕!剩余人数为:"<<N<<"人。"<<endl;            ofstream outfile("Netbook.txt",ios::out);            for(i=0; i<N; i++)            {                outfile<<q[i].num<<"  "<<q[i].name<<"  "<<q[i].age<<"  "<<q[i].sex;                outfile<<"  "<<q[i].birth<<"  "<<q[i].add<<"  "<<q[i].phone<<"  "<<q[i].email<<endl;            }            outfile.close();            delete []q;            delete []p;            break;        }        i++;    }    if(j==0)        cout<<"通讯录中无该学生信息!"<<endl;}/********************************功能描述:学生信息查找输入参数:无输出参数:无返回值:无其他说明:无*********************************/void Netbook::lookup(){    cout<<"请输入要查询的学生的学号:";    Netbook *p;    int n,i=0,j=0;    cin>>n;    p=new Netbook[N];    ifstream infile("Netbook.txt",ios::in);    for(; i<N; i++)    {        infile>>p[i].num>>p[i].name>>p[i].age>>p[i].sex;        infile>>p[i].birth>>p[i].add>>p[i].phone>>p[i].email;    }    infile.close();    while(j<N)    {        if(p[j].num==n)        {            i=0;            cout<<"该学生的信息为:"<<endl;            cout<<"                 num:"<<p[j].num<<endl;            cout<<"                 name:"<<p[j].name<<endl;            cout<<"                 age:"<<p[j].age<<endl;            cout<<"                 sex:"<<p[j].sex<<endl;            cout<<"                 birth:"<<p[j].birth<<endl;            cout<<"                 add:"<<p[j].add<<endl;            cout<<"                 phone:"<<p[j].phone<<endl;            cout<<"                 email:"<<p[j].email<<endl;            break;        }        j++;    }    delete []p;    if(i!=0)        cout<<"无该学生信息!"<<endl;}/********************************功能描述:菜单输出输入参数:无输出参数:无返回值:无其他说明:无*********************************/void output(){    cout<<"                     1.增加学生通讯录。"<<endl;    cout<<"                     2.删除学生通讯录。"<<endl;    cout<<"                     3.查找学生通讯录。"<<endl;    cout<<"                     4.退出。"<<endl;    cout<<"请输入您要进行的操作:";}/********************************功能描述:通讯录操作输入参数:无输出参数:无返回值:无其他说明:无*********************************/void menu(){    Netbook stu;    int t;    cout<<"                     1.增加学生通讯录。"<<endl;    cout<<"                     2.删除学生通讯录。"<<endl;    cout<<"                     3.查找学生通讯录。"<<endl;    cout<<"                     4.退出。"<<endl;    cout<<"请输入您要进行的操作:";    while(cin>>t&&t!=4)    {        if(t>4||t<1)        {            cout<<"请不要瞎按!;"<<endl;            output();        }        else        {            switch(t)            {            case 1:                stu.increas();                output();                continue;            case 2:                stu.decreas();                output();                continue;            case 3:                stu.lookup();                output();                continue;            }        }    }}int main(){    Netbook Stu;    cout<<"现通讯录为空,先建立通讯录,请输入人数:";    cin>>N;    Stu.input();    menu();    return 0;}

运行结果:
0 0
原创粉丝点击